18.06.2013, 10:13
Bem, vi um tutorial de fazer um sistema de Login/Registo aqui na Board, e fiz certinho... Mas quando o player se regista, o servidor crasha
O que serб?
Preciso mesmo de ajuda. Obrigado
O que serб?
PHP код:
#define DIALOG_REGISTO 1
#define DIALOG_LOGIN 2
PHP код:
public OnPlayerConnect(playerid)
{
new ficheiro[32];
new playername[MAX_PLAYER_NAME];
CarregarStats(playerid);
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Vermelho, " ");
SendClientMessage(playerid, Verde, "Bem Vindo ao servidor Infinity RPG [ Versгo Alpha 0.1 ]");
GetPlayerName(playerid, playername, 32);
format(ficheiro, sizeof(ficheiro), "iRPG/Contas/%s.ini", playername);
if(DOF2_FileExists(ficheiro))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Insira a sua password abaixo!", "Login", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_INPUT, "Registo", "Tu ainda nгo te registaste, escreve uma password para te registares!", "Registar", "Cancelar");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new ficheiro[32];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(ficheiro, sizeof(ficheiro), "iRPG/Contas/%s.ini", playername);
if(dialogid == DIALOG_REGISTO)
{
if(!strval(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_REGISTO, DIALOG_STYLE_INPUT, "Registo", "Tu ainda nгo te registaste, escreve uma password para te registares!", "Registar", "Cancelar");
return 1;
}
if(!response)
{
Kick(playerid);
return 1;
}
else
{
iPlayer[playerid][Password] = strval(inputtext);
DOF2_CreateFile(ficheiro);
DOF2_SetInt(ficheiro, "Password", iPlayer[playerid][Password]);
DOF2_SetInt(ficheiro, "Score", iPlayer[playerid][Score]);
DOF2_SetInt(ficheiro, "Dinheiro", iPlayer[playerid][Dinheiro]);
DOF2_SaveFile();
GivePlayerMoney(playerid, iPlayer[playerid][Dinheiro]);
SetTimerEx("Spawnar",1000,false,"i",playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Insira a sua password abaixo!", "Login", "Cancelar");
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!strval(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Insira a sua password abaixo!", "Login", "Cancelar");
return 1;
}
if(!response)
{
Kick(playerid);
return 1;
}
else
{
iPlayer[playerid][Password] = DOF2_GetInt(ficheiro, "Password");
if(strval(inputtext) == iPlayer[playerid][Password])
{
iPlayer[playerid][Score] = DOF2_GetInt(ficheiro, "Score");
iPlayer[playerid][Dinheiro] = DOF2_GetInt(ficheiro, "Dinheiro");
GivePlayerMoney(playerid, iPlayer[playerid][Dinheiro]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Tu erraste na password. Insira a sua password abaixo!", "Login", "Cancelar");
new Erro[4];
Erro[playerid]++;
if(Erro[playerid] == 3)
{
SendClientMessage(playerid, Vermelho, "Foste kickado por falhar a password 3 vezes!");
Kick(playerid);
return 1;
}
}
}
}
return 1;
}