23.04.2018, 18:57
Opa, suave brother? Entгo, venho aqui pedir uma ajuda, no meu servidor o DOF2 estб bugando, quando um jogador desconecta, e outro loga, as vezes buga a conta, e carrega a conta do jogador que saiu, aconteceu isso esses dias, no meu servidor, um membro da administraзгo logou apуs minha saнda, e com isso, carregou minha conta na dele.
isso nгo й nada legal, por que atй mesmo jogadores comuns, jб ficaram com esse bug, e carregaram contas de administradores, atй mesmo a minha, poderia ser usado para o mau...
- OnPlayerConnect
- OnPlayerDisconnect
OnDialogResponse
-- As stocks "LoadPlayer" e "SavePlayer" sгo somente para carregar/salvar as informaзхes do jogador, verificando se a conta existe e setando os valores (nada de errado nas stocks).
isso nгo й nada legal, por que atй mesmo jogadores comuns, jб ficaram com esse bug, e carregaram contas de administradores, atй mesmo a minha, poderia ser usado para o mau...
PHP код:
#define Dialog_Registro 0
#define Dialog_Login 1
PHP код:
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");
}
PHP код:
SavePlayer(playerid);
PHP код:
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 );
}
}
}