Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Load;Save XP


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 13.11.2009 20:17

Witam. Chciałbym aby ktoś napisał mi funkcję SaveXP i LoadXP do jednego pliku.
Dla kilku danych: wartosc1[id],wartosc2[id],wartosc3[id],wartosc4[id],wartosc5[id]

public SaveXP(id)
{
    ...
} 

public LoadXP(id)
{
	...
}

  • +
  • -
  • 0

#2 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 13.11.2009 21:27

Jako, ze nie dales dosc informacji by to zrobic (konkretnie po czym ma szukac gracza by zrobic load, co jest istotne tez przy zapisie), daje przyklad z diablo 5.3f:

public SaveXP(id){
	new name[32];     
	get_user_name(id,name,31);
	
	replace_all(name, 31, " ", "'")
	 
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Dbmod",name)
	format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i",player_class[id],player_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' />[id],player_lvl[id],player_intelligence[id],player_strength[id],player_point[id],player_agility[id],player_dextery[id])
	nvault_set(g_vault,vaultkey,vaultdata)
	return PLUGIN_HANDLED
} 
    
public LoadXP(id){
	new name[32];     
	get_user_name(id,name,31);
	
	replace_all(name, 31, " ", "'")
	 
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Dbmod",name)
	nvault_get(g_vault,vaultkey,vaultdata,255)
	 
	replace_all(vaultdata, 255, "#", " ")
	
	new playerclass[33], playerxp[33],playerlvl[33],playerintelligence[33],playerstrength[33],playerpoint[33],playeragility[33],playerdextery[33]
	 
	parse(vaultdata, playerclass, 32, playerxp, 32, playerlvl, 32, playerintelligence, 32, playerstrength, 32, playerpoint, 32, playeragility, 32, playerdextery, 32)
	 
	player_class[id] = str_to_num(playerclass)
	player_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' />[id] = str_to_num(playerxp)
	player_lvl[id] = str_to_num(playerlvl)
	player_intelligence[id] = str_to_num(playerintelligence)
	player_strength[id] = str_to_num(playerstrength)
	player_point[id] = str_to_num(playerpoint)
	player_agility[id] = str_to_num(playeragility)
	player_dextery[id] = str_to_num(playerdextery)
	
	player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
		
	return PLUGIN_HANDLED
}

  • +
  • -
  • 0

#3 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 14.11.2009 19:54

Znaczy ujmę to tak. Pierwotnie miałem:
public SaveXP(id)
{
	new authid[32]; 
	get_user_authid(id,authid,31); 
	
	new vaultkey[64], vaultdata[64]; 
	
	format(vaultkey,63,"MT2-%s-class",authid); 
	format(vaultdata,63,"%d",PlayerClass[id]); 
	set_vaultdata(vaultkey,vaultdata); 
}
i
public LoadXP(id)
{
	new authid[32]; 
	get_user_authid(id,authid,31); 
	
	new vaultkey[64], vaultdata[64]; 
	
	format(vaultkey,63,"MT2-%s-class",authid); 
	get_vaultdata(vaultkey,vaultdata,63); 
	PlayerClass[id] = str_to_num(vaultdata); 
return PLUGIN_HANDLED
}

Przypuśćmy , że chciałem przerobić coś w stylu właśnie diablo , ale nie do końca wyszło.
public SaveXP(id)
{
	new authid[32]; 
	get_user_authid(id,authid,31); 
	
	new vaultkey[64], vaultdata[64]; 
	
	format(vaultkey,63,"MT2-%s-class",authid); 
	format(vaultdata,63,"%d",PlayerClass[id]); 
	set_vaultdata(vaultkey,vaultdata); 
	
	format(vaultkey,63,"MT2-%s-xp",authid); 
	format(vaultdata,63,"%d",PlayerXP[id]); 
	set_vaultdata(vaultkey,vaultdata); 
	
	format(vaultkey,63,"MT2-%s-level",authid); 
	format(vaultdata,63,"%d",PlayerLevel[id]); 
	set_vaultdata(vaultkey,vaultdata);
	
	format(vaultkey,63,"MT2-%s-ability",authid); 
	format(vaultdata,63,"%i#%i#%i#%i#%i",player_hp[id],player_int[id],player_str[id],player_dex[id],player_point[id]); 
	set_vaultdata(vaultkey,vaultdata);
} 

public LoadXP(id)
{
	new authid[32]; 
	get_user_authid(id,authid,31); 
	
	new vaultkey[64], vaultdata[64]; 
	
	format(vaultkey,63,"MT2-%s-class",authid); 
	get_vaultdata(vaultkey,vaultdata,63); 
	PlayerClass[id] = str_to_num(vaultdata); 
	
	format(vaultkey,63,"MT2-%s-xp",authid); 
	get_vaultdata(vaultkey,vaultdata,63); 
	PlayerXP[id] = str_to_num(vaultdata);   
	
	format(vaultkey,63,"MT2-%s-level",authid); 
	get_vaultdata(vaultkey,vaultdata,63);
	PlayerLevel[id] = str_to_num(vaultdata); 
	
	format(vaultkey,63,"MT2-%s-ability",authid); 
	format(vaultdata,63,"%i#%i#%i#%i#%i",player_hp[id],player_int[id],player_str[id],player_dex[id],player_point[id]); 
	
	new playerhp[33],playerint[33],playerstr[33],playerdex[33],playerpoint[33]
	
	parse(vaultdata, playerhp, 32, playerint, 32, playersrt, 32, playerdex, 32,playerpoint, 32)
	
	player_hp[id] = str_to_num(playerhp)
	player_int[id] = str_to_num(playerint)
	player_str[id] = str_to_num(playerstr)
	player_dex[id] = str_to_num(playerdex)
	player_point[id] = str_to_num(playerpoint)
	
	replace_all(vaultdata, 64, "#", " ")
	
	return PLUGIN_HANDLED
}

  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 14.11.2009 20:06

Nie lepiej wszystkie dane w 1 formacie jak w diablo? Po co pobierac dane sto razy skoro mozna raz...

Poza tym po co format w loadzie? Patrz na przyklad co dalem wyzej ;>
  • +
  • -
  • 0

#5 Ortega

    mów mi Orti

  • Autor tematu
  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 14.11.2009 21:46

No właśnie dlatego piszę bo chciałem mieć w 1 pliku wszystko.
A co do formatu w loadzie:

public LoadXP(id){
new name[32];
get_user_name(id,name,31);

replace_all(name, 31, " ", "'")

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Dbmod",name)
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i",player_class[id],player_xP[id],player_lvl[id],player_intelligence[id],player_strength[id],player_point[id],player_agility[id],player_dextery[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")


Dzięki za pomoc poradziłem sobie jakoś ^^
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych