09.07.2013, 02:10
I have a satdm edit, and i've tried adding a login dialog on the connect and it only works a few times it doesn't work all the time. Here is my code
pawn Код:
new tmp[50],tmp2[256];
GetPlayerIp(playerid,tmp,128);
tmp2 = dini_Get(file,"ip");
if(!strcmp(tmp,tmp2,true)) {
GameTextForPlayer(playerid,"~r~Before you can play, you must login!",4000,3);
new paramsl[128];
ShowPlayerDialog(playerid, DIALOGID0+2, DIALOG_STYLE_INPUT,"~~~~~~Login Password~~~~~~", paramsl, "OK", "Quit"); //Broken
format(string,sizeof(string),"Welcome back, %s. Please login or you will be disconnected in 60 seconds!",PlayerName);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_BRIGHTRED, "-----------------------------------------------------------------------------------------------------------------------");
PlayerInfo[playerid][LoggedIn] = 0;}}
pawn Код:
if(dialogid == DIALOGID0+2){
if(response == 0 && ServerInfo[MustLogin] == 1){
Kick(playerid);}
if(response){
cmd_login(playerid,inputtext);
if (!udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Account doesn't exist, please use '/register [password]'.");
if (udb_CheckLogin(PlayerName2(playerid),inputtext)){
new file[256], tmp3[100], lname[MAX_PLAYER_NAME];
GetPlayerName(playerid,lname,sizeof(lname));
format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(lname));
GetPlayerIp(playerid,tmp3,100);
dini_Set(file,"ip",tmp3);
LoginPlayer(playerid);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if(PlayerInfo[playerid][Level] > 0) {
return SendClientMessage(playerid,green,string);
} else return SendClientMessage(playerid,green,"ACCOUNT: Successfully Logged In");}
return ShowPlayerDialog(playerid, DIALOGID0+2, DIALOG_STYLE_INPUT,"Password", "WRONG Password, Try Again", "OK", "Cancel");}
return 1;}