Problem(error/warning): Ne znam zasto, ali posle restarta servera, ne ucitava sifru, ucita acc, ali ne ucita sifru od acc pise da je pogresna, a dobra je
Dio skripte:
[pawn]
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Venturas Register","Sifra nije dozvoljena, pokusajte sa drugom sifrom!","Nastavi","Odustani");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File, "Password", udb_hash(inputtext));
INI_Close(File);
PlayerInfo[playerid][pPass] = udb_hash(inputtext);
SavePlayer(playerid);
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1685.4795,-2335.0781,13.5469);
SetSpawnInfo(playerid, 0, 0, 1685.4795,-2335.0781,13.5469,357.0069,0,0,0,0,0,0);
SpawnPlayer(playerid);
GivePlayerMoney(playerid, 30000);
}
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File, "Password", udb_hash(inputtext));
INI_WriteInt(File, "Pare(Ruka)", PlayerInfo[playerid][pCash]);
INI_WriteInt(File, "Level", PlayerInfo[playerid][pScore]);
INI_WriteInt(File, "Pare(Banka)", PlayerInfo[playerid][pBankMoney]);
INI_WriteInt(File, "AdminLevel", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
PlayerInfo[playerid][pPass] = udb_hash(inputtext);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, -1,"Uspesno ste se ulogovali na Vas account");
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1685.4795,-2335.0781,13.5469);
SetSpawnInfo(playerid, 0, 0, 1685.4795,-2335.0781,13.5469,357.0069,0,0,0,0,0,0);
SpawnPlayer(playerid);
SavePlayer(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Venturas Login","Pogresna Sifra, pokusajte ponovo","Nastavi","Odustani");
}
}
}
[/pawn]
[pawn]
public OnPlayerConnect(playerid)
{
//Rent
RentaVozilo[playerid] = 0;
IdRentVozila[playerid] = -1;
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid),"LoadUser_%s.ini",.bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Venturas RolePlay Login","Dobrodosli na Venturas RolePlay\nVas account je uspesno pronadjen, ukucajte Vasu sifru kako bi mogli da se ulogujete na Vas Acoount","Nastavi","Odustani");
}
[/pawn]
[pawn]
forward LoadUser_data(playerid, name[], value[]);
public LoadUser_data(playerid, name[], value[])
{
INI_Int("Password",PlayerInfo[playerid][pPass]);
INI_Int("Pare(Ruka)",PlayerInfo[playerid][pCash]);
INI_Int("Level",PlayerInfo[playerid][pScore]);
INI_Int("Pare(Banka)",PlayerInfo[playerid][pBankMoney]);
INI_Int("AdminLevel",PlayerInfo[playerid][pAdmin]);
return 1;
}
[/pawn]
[pawn]
stock UserPath(playerid)
{
new string[128],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string,sizeof(string),PATH,playername);
return string;
}
stock udb_hash(buf[])
{
new length=strlen(buf);
new s1 = 0;
new s2 = 1;
new n;
for (n=0; n<length; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}
[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):
P.S. AKo treba jos nesto iz skripte da se posalje recite
Vidim da radiš "mod od nule" tako što kopiraš stvari iz Underpointa, u Underpointu pod SavePlayer nemaš čuvanje lozinke :D
[pawn]SavePlayer(playerid);[/pawn]
Bolje briši sve ovo i pogledaj kako se koristi MySQL, SAMP Bcrypt i ostale novije stvari nego što se mučiš da sve copy-pasteaš iz UPa :D
Citat: PabloK poslato Maj 08, 2020, 14:08:50 POSLE PODNE
Vidim da radiš "mod od nule" tako što kopiraš stvari iz Underpointa, u Underpointu pod SavePlayer nemaš čuvanje lozinke :D
[pawn]SavePlayer(playerid);[/pawn]
Bolje briši sve ovo i pogledaj kako se koristi MySQL, SAMP Bcrypt i ostale novije stvari nego što se mučiš da sve copy-pasteaš iz UPa :D
ja il sam glup il retardiran...
[pawn]
forward SavePlayer(playerid);
public SavePlayer(playerid)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",PlayerInfo[playerid][pPass]);
INI_WriteInt(File,"Pare(Ruka)",GetPlayerMoney(playerid));
INI_WriteInt(File,"Level",GetPlayerScore(playerid));
INI_WriteInt(File,"Pare(Banka)",PlayerInfo[playerid][pBankMoney]);
INI_WriteInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
INI_Close(File);
return 1;
}
[/pawn]
I ne da mi se raditi jos sa MySQL-om, jel bi mogao da mi kazes kako ovo da Fixam sa y_ini
Uredi debug vidi gdje je problem i tjt
Citat: //>> Vedran poslato Maj 08, 2020, 15:13:22 POSLE PODNE
Uredi debug vidi gdje je problem i tjt
kako da ga uredim? mozes mi objasniti pls
Jesi probao pozvati funkciju za cuvanje podataka na OnGameModeExit?
Citat: Darkic poslato Maj 08, 2020, 20:54:17 POSLE PODNE
Jesi probao pozvati funkciju za cuvanje podataka na OnGameModeExit?
Nope, kako to da uradim
Citat: Teodor poslato Maj 08, 2020, 21:11:00 POSLE PODNE
Nope, kako to da uradim
[pawn] for(new i; i <= GetPlayerPoolSize(); i++)
{
if(IsPlayerConnected(i))
{
SavePlayer(i);
}
}[/pawn]
Citat: Teodor poslato Maj 08, 2020, 21:11:00 POSLE PODNE
Nope, kako to da uradim
Totalno je bespotrebno, ne slušaj ga...
Bukvalno nije do toga jer treba da je sačuvan svakako :)
EDIT: Tek sada vidim u cemu je bio problem, zasto ponovo pišeš ceo fajl pod case DIALOG_LOGIN?
[pawn]case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File, "Password", udb_hash(inputtext));
INI_WriteInt(File, "Pare(Ruka)", PlayerInfo[playerid][pCash]);
INI_WriteInt(File, "Level", PlayerInfo[playerid][pScore]);
INI_WriteInt(File, "Pare(Banka)", PlayerInfo[playerid][pBankMoney]);
INI_WriteInt(File, "AdminLevel", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
PlayerInfo[playerid][pPass] = udb_hash(inputtext);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, -1,"Uspesno ste se ulogovali na Vas account");
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1685.4795,-2335.0781,13.5469);
SetSpawnInfo(playerid, 0, 0, 1685.4795,-2335.0781,13.5469,357.0069,0,0,0,0,0,0);
SpawnPlayer(playerid);
SavePlayer(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Venturas Login","Pogresna Sifra, pokusajte ponovo","Nastavi","Odustani");
}
}
}[/pawn]
EDIT: Nije ni ovo ipak, au nym u pm
Citat: PabloK poslato Maj 08, 2020, 21:29:54 POSLE PODNE
Totalno je bespotrebno, ne slušaj ga...
Bukvalno nije do toga jer treba da je sačuvan svakako :)
EDIT: Tek sada vidim u cemu je bio problem, zasto ponovo pišeš ceo fajl pod case DIALOG_LOGIN?
[pawn]case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File, "Password", udb_hash(inputtext));
INI_WriteInt(File, "Pare(Ruka)", PlayerInfo[playerid][pCash]);
INI_WriteInt(File, "Level", PlayerInfo[playerid][pScore]);
INI_WriteInt(File, "Pare(Banka)", PlayerInfo[playerid][pBankMoney]);
INI_WriteInt(File, "AdminLevel", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
PlayerInfo[playerid][pPass] = udb_hash(inputtext);
SetCameraBehindPlayer(playerid);
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid, -1,"Uspesno ste se ulogovali na Vas account");
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, 1685.4795,-2335.0781,13.5469);
SetSpawnInfo(playerid, 0, 0, 1685.4795,-2335.0781,13.5469,357.0069,0,0,0,0,0,0);
SpawnPlayer(playerid);
SavePlayer(playerid);
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Venturas Login","Pogresna Sifra, pokusajte ponovo","Nastavi","Odustani");
}
}
}[/pawn]
EDIT: Nije ni ovo ipak, au nym u pm
Pa kako ja sad ovo da fixam ? xD
Daj mi izgled fajla
Fixao sam, Nzm ni ja kako xD