Scripta: Moja od nule
Opis problema: Koju god sifru da ukucam, mene uloguje i spawnuje.
Deo scripte:
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""CRVENA"Register", ""BELA"Uneli ste nemogucu sifru.\nUnesite sifru da bi ste se registrovali!", "U redu", "Izadji");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "PlayerData");
new HashPass[129];
WP_Hash(HashPass, sizeof(HashPass), inputtext);
INI_WriteString(File, "Password", HashPass);
INI_WriteInt(File, "Sex", 0);
INI_WriteInt(File, "Age", 0);
INI_WriteInt(File, "Country", 0);
INI_WriteInt(File, "Money", 0);
INI_WriteInt(File, "Admin", -1);
INI_WriteInt(File, "Kills", 0);
INI_WriteInt(File, "Deaths", 0);
ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_LIST, ""CRVENA"Izaberite vas pol", ""BELA"Musko\nZensko", "U redu", "Izadji");
}
}
case DIALOG_LOGIN:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""CRVENA"Login", ""BELA"Uneli ste pogresnu sifru.\nUnesite sifru da bi ste se ulogovali!", "U redu", "Izadji");
new HashPass[129];
WP_Hash(HashPass, sizeof(HashPass), inputtext);
if(!strcmp(HashPass, PlayerInfo[playerid][pPassword], false))
{
INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""CRVENA"Login", ""BELA"Uneli ste pogresnu sifru.\nUnesite sifru da bi ste se ulogovali!", "U redu", "Izadji");
}
return 1;
}
}
Bump!
Ne vidim nigdje da si ucitao
if(!strcmp(HashPass,[color=red] PlayerInfo[playerid][pPassword][/color], false))
Å to znaci da je PlayerInfo[playerid][pPassword]
ima vrijednos 0,odnosno funkcija strcmp ce ti vrati 0 jer je drugi string prazan,odnosno u tvom slucaju 1 i uvjet je zadovoljen.Ne znam kako iscitavas podatke,ali probaj stavit
INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
prije
if(!strcmp(HashPass,[color=red] PlayerInfo[playerid][pPassword][/color], false))
public OnPlayerConnect(playerid)
{
TogglePlayerSpectating(playerid, 0);
Rented[playerid] = 299;
vEngine[playerid] = 0;
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""CRVENA"Login", ""BELA"Dobrodosli!\nUnesite vasu sifru da bi ste se ulogovali!", "U redu", "Izadji");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""CRVENA"Register", ""BELA"Dobrodosli!\nUnesite sifru da bi ste se registrovali!", "U redu", "Izadji");
}
return 1;
}
Imam to vec pod OnPlayerConnect, da stavim jos jednom i u Dialog za login ?
Probaj:
if(!strcmp( PlayerInfo[playerid][pPassword],HashPass, false,129))
Ako ne ide,pogledaj dal ti u varijablu PlayerInfo[playerid][pPassword]
dobro sprema iz fajla.
Nece opet, ne znam sta vise da radim....
kada zapises igracevu sifru, proveri prvo da li je on lepo zapisuje, zatim, ako je to ispravno, napravis proveru tipa ovoga if(!strcmp(PlayerInfo[playerid][pPassword],password,true))
Evo uspeo sam nekako, bio je problem u spremanju...
case DIALOG_REGISTER:
{
if(!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""CRVENA"Register", ""BELA"Uneli ste nemogucu sifru.\nUnesite sifru da bi ste se registrovali!", "U redu", "Izadji");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "PlayerData");
new HashPass[129];
WP_Hash(HashPass, sizeof(HashPass), inputtext);
INI_WriteString(File, "Password", HashPass);
/*INI_WriteInt(File, "Sex", 0);
INI_WriteInt(File, "Age", 0);
INI_WriteInt(File, "Country", 0);
INI_WriteInt(File, "Money", 0);
INI_WriteInt(File, "Admin", -1);
INI_WriteInt(File, "Kills", 0);
INI_WriteInt(File, "Deaths", 0);
INI_WriteInt(File, "Business", 0);
INI_WriteInt(File, "House", 0);*/
PlayerInfo[playerid][pPassword] = HashPass;
PlayerInfo[playerid][pSex] = 0;
PlayerInfo[playerid][pAge] = 0;
PlayerInfo[playerid][pCountry] = 0;
PlayerInfo[playerid][pMoney] = 0;
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pKills] = 0;
PlayerInfo[playerid][pDeaths] = 0;
PlayerInfo[playerid][pBizzID] = 0;
PlayerInfo[playerid][pHouseID] = 0;
PlayerInfo[playerid][pVehicle1] = 999;
PlayerInfo[playerid][pVehicle2] = 999;
PlayerInfo[playerid][pVehicle3] = 999;
SavePlayer(playerid);
//INI_WriteInt(File, "Vehicle1", 999);
//INI_WriteInt(File, "Vehicle2", 999);
//INI_WriteInt(File, "Vehicle3", 999);
ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_LIST, ""CRVENA"Izaberite vas pol", ""BELA"Musko\nZensko", "U redu", "Izadji");
}
}
onda lock