Wysłany: 2013-08-14, 07:37
macias133
Wiek: 37 Na forum: 6149 dni Posty: 13
Piwa : 146
Cze??, mam pewien problem z wczytywaniem zmiennych.
1. HP zamiast zapisywa? si? 100.0, wpisuje si? 1.000000, dodatkowo ci?gle mnie zabija.
2. Nie wczytuj? mi score oraz kasy przez co zapis niepoprawnie dzia?a.
Tutaj kilka skrawek kodu:
Kod z dialogu rejestracji.
Kod:
new hashpass[129];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"informacje'o graczu");
INI_WriteString(file,"haslo",hashpass);
INI_WriteInt(file,"admin",0);
INI_WriteInt(file,"virtualworld",0);
INI_WriteInt(file,"licencjaB",0);
INI_WriteInt(file,"licencjaC",0);
INI_WriteInt(file,"licencjaD",0);
INI_WriteInt(file,"licencjaCE",0);
INI_WriteInt(file,"interior",0);
INI_WriteInt(file,"bank",0);
INI_WriteInt(file,"kasa",500);
INI_WriteInt(file,"vip",0);
INI_WriteInt(file,"gamepoints",10);
INI_WriteInt(file,"obecnytowar",0);
INI_WriteFloat(file, "zycie", 100.0);
INI_Close(file);
Przydzielnia zmiennych do gracza:
Kod:
stock setPlayerVariables(playerid)
{
if(E_DATA[playerid][E_USER_LOGGED] == true)
{
GivePlayerMoney(playerid, E_DATA[playerid][E_USER_MONEY]),
SetPlayerScore(playerid, E_DATA[playerid][E_USER_GAME_POINTS]),
SetPlayerInterior(playerid, E_DATA[playerid][E_USER_INTERIOR]),
SetPlayerVirtualWorld(playerid, E_DATA[playerid][E_USER_VIRTUALWORLD]);
if(E_DATA[playerid][E_USER_POS][0] != 0.0 || E_DATA[playerid][E_USER_POS][1] != 0.0 || E_DATA[playerid][E_USER_POS][2] != 0.0)
return SetPlayerPos(playerid, E_DATA[playerid][E_USER_POS][0], E_DATA[playerid][E_USER_POS][1], E_DATA[playerid][E_USER_POS][2]);
SetPlayerHealth(playerid, E_DATA[playerid][E_USER_HEALTH]);
}
return 1;
}
Wczytywanie zmiennych:
Kod:
forward loadaccount_user(playerid, name[], value[]);
public loadaccount_user(playerid, name[], value[])
{
INI_String("haslo", E_DATA[playerid][E_USER_PASS],129);
INI_String("pochodzenie",E_DATA[playerid][E_USER_ORIGIN],64);
INI_Int("kasa",E_DATA[playerid][E_USER_MONEY]);
INI_Int("bank",E_DATA[playerid][E_USER_BANK]);
INI_Int("gamepoints",E_DATA[playerid][E_USER_GAME_POINTS]);
INI_Int("vip",E_DATA[playerid][E_USER_VIP]);
INI_Int("admin",E_DATA[playerid][E_USER_ADMIN]);
INI_Int("interior",E_DATA[playerid][E_USER_INTERIOR]);
INI_Int("virtualworld",E_DATA[playerid][E_USER_VIRTUALWORLD]);
INI_Int("obecnytowar",E_DATA[playerid][E_USER_ARTICLE]);
INI_Int("licencjaB",E_DATA[playerid][E_USER_LICENSE][0]);
INI_Int("licencjaC",E_DATA[playerid][E_USER_LICENSE][1]);
INI_Int("licencjaD",E_DATA[playerid][E_USER_LICENSE][2]);
INI_Int("licencjaCE",E_DATA[playerid][E_USER_LICENSE][3]);
INI_Float("x",E_DATA[playerid][E_USER_POS][0]);
INI_Float("y",E_DATA[playerid][E_USER_POS][1]);
INI_Float("z",E_DATA[playerid][E_USER_POS][2]);
INI_Float("zycie", E_DATA[playerid][E_USER_HEALTH]);
return 1;
}
Plik gracza.
Kod:
[informacje'o graczu]
haslo = 93AECA60C622B16C615B570986A7605B7BC08BE618BF00260D4F5E5B4DD3A4AB381C85CC6FF8D9897F74D062A43CC130990CBECC837BD725998B50922590AD5A
admin = 0
virtualworld = 0
licencjaB = 0
licencjaC = 0
licencjaD = 0
licencjaCE = 0
interior = 0
bank = 0
kasa = 0
vip = 0
gamepoints = 0
obecnytowar = 0
zycie = 1.000000
pochodzenie = Los Angeles
x = 1759.018920
y = -1898.125976
z = 14.059319
Zapis konta.
Kod:
stock saveaccount_user(playerid)
{
if(E_DATA[playerid][E_USER_LOGGED] == true)
{
new INI:file = INI_Open(Path(playerid));
INI_SetTag(file,"informacje'o graczu");
INI_WriteInt(file, "kasa",GetPlayerMoney(playerid));
INI_WriteInt(file, "gamepoints", GetPlayerScore(playerid));
INI_WriteInt(file, "bank",E_DATA[playerid][E_USER_BANK]);
INI_WriteInt(file, "vip",E_DATA[playerid][E_USER_VIP]);
INI_WriteInt(file, "admin",E_DATA[playerid][E_USER_ADMIN]);
INI_WriteInt(file, "interior",GetPlayerInterior(playerid));
INI_WriteInt(file, "virtualworld",GetPlayerVirtualWorld(playerid));
INI_WriteInt(file, "obecnytowar",E_DATA[playerid][E_USER_ARTICLE]);
INI_WriteInt(file, "licencjaB",E_DATA[playerid][E_USER_LICENSE][0]);
INI_WriteInt(file, "licencjaC",E_DATA[playerid][E_USER_LICENSE][1]);
INI_WriteInt(file, "licencjaD",E_DATA[playerid][E_USER_LICENSE][2]);
INI_WriteInt(file, "licencjaCE",E_DATA[playerid][E_USER_LICENSE][3]);
new Float:health;
GetPlayerPos(playerid,E_DATA[playerid][E_USER_POS][0], E_DATA[playerid][E_USER_POS][1], E_DATA[playerid][E_USER_POS][2]),
GetPlayerHealth(playerid, health);
INI_WriteFloat(file, "x",E_DATA[playerid][E_USER_POS][0]);
INI_WriteFloat(file, "y",E_DATA[playerid][E_USER_POS][1]);
INI_WriteFloat(file, "z",E_DATA[playerid][E_USER_POS][2]);
INI_WriteFloat(file, "zycie", health);
INI_Close(file);
E_DATA[playerid][E_USER_LOGGED] = false;
}
return 1;
}
Wysłany: 2013-08-14, 10:52
optimus
PawnoMen
Wiek: 27 Na forum: 5614 dni Posty: 453
Nick w MP: [PMS]ReveresPL
Piwa : 159
Ja ci radze zmien na dini lun DOF2 i takim systemem sie trzymaj
Wysłany: 2013-08-14, 11:12
macias133
Wiek: 37 Na forum: 6149 dni Posty: 13
Piwa : 146
Ju? naprawione, wystarczy?o po ko?cu rejestracji wy?wietli? ponownie gui zalogowania i dzia?a.
Wysłany: 2013-08-14, 12:42
IgrexolonO
Wiek: 34 Na forum: 6809 dni Posty: 1386
Piwa : 1062
"optimus" napisał/a :Ja ci radze zmien na dini lun DOF2 i takim systemem sie trzymaj
^ 4 razy wolniej dzia?aj?, nawet nie pozdrawiam.
A przepraszam, ?eby poda? prawdziwe informacje postanowi?em si? upewni?.
yini: 1564
dini: 63810
emu : 27297
SII: 52807
Co w przeliczeniu daje 40.79923273657289 dzia?anie y_ini, kt?rego u?ywa za?o?yciel tematu, od Twojego dini. Co? jeszcze? <3
Tagi: wczytywanie :: [y_ini]
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: