18.12.2011, 12:52
(
Последний раз редактировалось CoaPsyFactor; 18.12.2011 в 13:12.
Причина: Solved
)
Код:
Hi there. So I created my gamemode, and it worked with 0.3c, I paused developing for few months, and then 0.3d was released, I decided to continue developing, but I found one very big bug. When player enters his/her password, server just kick player out. Here is login code:and here is OnPlayerRequestSpawnpawn Код:public LoginPlayer(const PlayerName[], const PlayerPassword[]){ new Login_String[128], pass, pass_new[128], id; GetPlayerIDByName(PlayerName, id); if(WrongPassword[id] == 3){ SendClientMessage(id, COLOR_RED, "You have type wrong password for three times, you have been kicked"); Kick(id); return 1; } format(Login_String, 128, "Players/%s.ini", PlayerName); if(!dini_Exists(Login_String)){ SendClientMessage(id, COLOR_RED, "Username is not registered, please register."); return 1; } pass = dini_Int(Login_String, "Key"); format(pass_new, sizeof(pass_new), "%s", PlayerPassword); if(udb_hash(pass_new) != pass){ SendClientMessage(id, COLOR_RED, "Wrong password."); ShowPlayerDialog(id, 1, 1, "Login", "Wrong password please try again", "Login", "Close"); WrongPassword[id]++; return 1; } SpawnPlayer(id);
and here is onplayerspawnpawn Код:public OnPlayerRequestSpawn(playerid){ if(PlayerLogedIn[playerid] != 1){ SendClientMessage(playerid, COLOR_RED, "You need to login first."); return 0; }else{ return 1; }}
pawn Код:public OnPlayerSpawn(playerid){ if(Player_Infos[playerid][pTutorial] == 999){ TutorialStep1(playerid); return 0; } new spawn_string[128]; if(Player_Infos[playerid][pAdministrator] >= 1338){ format(spawn_string, sizeof(spawn_string), "Welcome back owner %s", Player_Infos[playerid][pName]); SendClientMessage(playerid, COLOR_BLUE, spawn_string); } SetPlayerCash(playerid, Player_Infos[playerid][pCash]); SetPlayerSkin(playerid, Player_Infos[playerid][pSkin]); SetPlayerPos(playerid, Player_Infos[playerid][pSpawn_X], Player_Infos[playerid][pSpawn_Y], Player_Infos[playerid][pSpawn_Z]); SetPlayerInterior(playerid, Player_Infos[playerid][pInterior]); return 1;}