#define Dialog_Registro 0
#define Dialog_Login 1
if(DOF2_FileExists( GetPlayerArquivo( playerid ) ) )
{
new pName[MAX_PLAYER_NAME], texto[256];
GetPlayerName(playerid, pName, sizeof(pName));
format(texto, sizeof(texto), "{FFFFFF}Bem-Vindo(a) Novamente!\n\nNick: {F2EA05}%s\n{FFFFFF}Level: {FF0000}%d\n{FFFFFF}Conta: {00FF04}Registrada!\n{FFFFFF}\n\n{FFFFFF}Digite Sua Senha Para Logar No Servidor!", pName,DOF2_GetInt( GetPlayerArquivo( playerid ), "Score" ));
ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "Login", texto ,"Logar","Sair");
}
else
{
new str[256], Nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nick, sizeof(Nick));
format(str, sizeof(str), "{FFFFFF}Bem-Vindo(a)!\n\nNick: {f2EA05}%s\n{FFFFFF}Conta: {FF0000}Nгo Registrada!\n\n{FFFFFF}Digite Uma Senha Para Se Registrar!", Nick);
ShowPlayerDialog( playerid, Dialog_Registro, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", str, "Registrar","Sair");
}
SavePlayer(playerid);
switch(dialogid){
case Dialog_Registro:
{
if( response )
{
if( strlen( inputtext ) < 5 || strlen( inputtext ) > 20 || !strlen( inputtext ) )
{
ShowPlayerDialog( playerid, Dialog_Registro ,DIALOG_STYLE_PASSWORD, "{FF0000}OPS", "{FFFFFF}Sua Senha Deve Conter No Mнnimo 5 Caracteres!\nE No Mбximo 20!\nTente Novamente!", "Registrar","Sair" );
return 0;
}
// Aqui eram as funcхes de setar os valores na conta do jogador, removi para nгo ocupar muito espaзo, somente seta valores na conta
// tipo dinheiro, vip, admin, skin, etc..
SendClientMessage(playerid, verde, "| REGISTRO | Sua Conta Foi Registrada Com Sucesso! Bom Jogo!");
TaLogado[playerid] = 1;
ShowPlayerDialog( playerid, Dialog_Login ,DIALOG_STYLE_PASSWORD, "{FFFFFF}Conta Registrada Com Sucesso!", "{00FF04}Conta Registrada Com Sucesso!\n\n\n{FFFFFF}Digite Sua Senha Abaixo Para Fazer O Login!", "Logar","Sair" );
format(Log, sizeof(Log), "%s - Nova Conta Registrada.", GetPlayerNameEx(playerid));
fileLog("Registros", Log);
return 0;
}
else
{
Kick( playerid );
}
}
case Dialog_Login:
{
if( response )
{
if( strlen( inputtext ) < 5 || strlen( inputtext ) > 20 || !strlen( inputtext ) )
{
ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FF0000}Senha Incorreta!\n\n{FFFFFF}Digite Sua Senha Corretamente Para Logar!", "Logar", "Sair");
return 0;
}
if( strcmp( inputtext, DOF2_GetString( GetPlayerArquivo( playerid ), "Senha" )) == 0 )
{
LoadPlayer( playerid );
format(Log, sizeof(Log), "O Jogador %s[%d] Logou No Servidor.", GetPlayerNameEx(playerid), playerid);
fileLog("Logins", Log);
GameTextForPlayer(playerid, "~g~Logado Com Sucesso!", 5000, 1);
TaLogado[playerid] = 1;
for(new a; a < 100; a++)
{
SendClientMessage(playerid, 0, " ");
}
SetSpawnInfo(playerid, 0, Player[playerid][Skin], Player[playerid][pX], Player[playerid][pY], Player[playerid][pZ], Player[playerid][pA],0,0,0,0,0,0);
SpawnPlayer(playerid);
TogglePlayerSpectating(playerid, 0);
TogglePlayerControllable(playerid, 1);
return 1;
}
else
{
Erro[ playerid ] ++;
if ( Erro[ playerid ] == 3 ){
Kick ( playerid );
}
ShowPlayerDialog( playerid, Dialog_Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FF0000}Senha Incorreta!\n\n{FFFFFF}Digite Sua Senha Corretamente Para Logar!","Logar", "Sair");
return 0;
}
}
else{
Kick( playerid );
}
}
}
Nгo tem nada de errado no code. Deve ser um bug do DOF2, se for .... acho difнcil alguйm resolver
Vou tentar achar uma soluзгo aqui pra te ajudar , e pra me ajudar tambйm. |
Resete todas as variбveis antes de carregar ou registrar a conta do jogador (de preferкncia na OnPlayerConnect).
|
Resete todas as variбveis antes de carregar ou registrar a conta do jogador (de preferкncia na OnPlayerConnect).
|
Resetando todas as variбveis da conta dele, vai ter resetado a conta dele, pois se eu resetar, vai carregar depois tudo zerado, entгo a conta dele vai estar zerada :/
|
// na stock de getar o player
Player[playerid][Admin] = DOF2_GetInt(file[], "Admin" );
// Ai se eu fosse resetar ia ter que usar
Player[playerid][Admin] = 0; /* Esta funзгo й para setar no arquivo do jogador (na conta dele, salvar), o valor de "Admin", entгo resetando
isso na OnPlayerConnect iria resetar a conta dele antes de ele logar, e quando ele logar, jб vai estar zerado, nгo iria adiantar.
Nгo tem como fazer isso, pois nгo tem funзгo que resete as variбveis sem mexer com o DOF2, entrando na pasta da conta do jogador, tipo
PHP код:
|
public OnPlayerConnect(playerid)
{
new arquivo[40], name[MAX_PLAYER_NAME], Dialog[240], ip[26];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerIp(playerid, ip, sizeof(ip));
format(arquivo, sizeof(arquivo),"Contas/%sInfos.ini", name);
Player[playerid][pSkin] = 0;
Player[playerid][pScore] = 0;
Player[playerid][pMoney] = 0;
Player[playerid][pProcurado] = 0;
Player[playerid][pPosX] = 0;
Player[playerid][pPosY] = 0;
Player[playerid][pPosZ] = 0;
Player[playerid][pPosA] = 0;
Player[playerid][pLogado] = false;
if(DOF2_FileExists(arquivo))
{
TogglePlayerSpectating(playerid, 1);
format(Dialog, sizeof(Dialog), "{FFFFFF}Nick: {058AFF}%s\n\n{FFFFFF}Registrado: {27FF05}Sim\n\n{FFFFFF}IP: {058AFF}%s", name, ip);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", Dialog, "Confirmar", "Sair");
}else{ // Se Nгo
TogglePlayerSpectating(playerid, 1);
format(Dialog, sizeof(Dialog), "{FFFFFF}Nick: {058AFF}%s\n\n{FFFFFF}Registrado: {FF0505}Nгo\n\n{FFFFFF}IP: {058AFF}%s", name, ip);
ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", Dialog, "Confirmar", "Sair");
}
return 1;
}