Dificuldade com verificaзгo de senha (Sistema de Registro) - BWCALLEf - 08.12.2014
galera oque tem de errado apontem os erro pra mim nгo estou conseguindo fazer...
registra quando vem a dialog pedindo para logar coloco qualquer senha e vai.. :/
pawn Код:
new
Arquivo[128],
Administrador[MAX_PLAYERS],
Nome[MAX_PLAYER_NAME],
Skin[MAX_PLAYERS],
Level[MAX_PLAYERS],
PlayerIP[MAX_PLAYERS],
PlayerERRO[MAX_PLAYERS],
Morreu[MAX_PLAYERS],
Matou[MAX_PLAYERS]
;
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
new STR[128];
GetPlayerName( playerid, Nome, sizeof( Nome ) );
GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if( DOF2_FileExists( Arquivo ) )
{
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
}else{
format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
}
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName( playerid, Nome, sizeof( Nome ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(DOF2_FileExists(Arquivo))
{
DOF2_SetInt(Arquivo, "Administrador", Administrador[playerid]);
DOF2_SetInt(Arquivo, "Level", Level[playerid]);
Skin[playerid] = GetPlayerSkin(playerid);
DOF2_SetInt(Arquivo, "Dinheiro", GetPlayerMoney(playerid));
DOF2_SetInt(Arquivo, "Matou", Matou[playerid]);
DOF2_SetInt(Arquivo, "Morreu", Morreu[playerid]);
DOF2_SaveFile();
}
return 1;
}
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
new STR[128];
GetPlayerName( playerid, Nome, sizeof( Nome ) );
GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(response)
{
if( strlen ( inputtext ) < 4 || strlen ( inputtext ) > 16 && !strlen( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo sua Senha tem que ter no Minimo 4 Caracteres e no Mбximo 16 Caracteres.");
format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
return 1;
}else{
DOF2_CreateFile( Arquivo );
DOF2_SetString( Arquivo, "Senha", inputtext );
DOF2_SetInt( Arquivo, "Administrador", 0 );
DOF2_SetInt( Arquivo, "Level", 0 );
DOF2_SetInt( Arquivo, "Dinheiro", 250 );
DOF2_SetInt( Arquivo, "Skin", 0 );
DOF2_SetInt( Arquivo, "Matou", 0 );
DOF2_SetInt( Arquivo, "Morreu", 0 );
DOF2_SaveFile();
format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк Acaba de se Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
}
}
if(dialogid == DIALOG_LOGIN)
{
new STR[128];
if(response)
{
if( !strlen ( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
{
GetPlayerName( playerid, Nome, sizeof( Nome ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
Level[playerid] = DOF2_GetInt( Arquivo, "Level");
GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
DOF2_SaveFile();
return 1;
}else{
PlayerERRO[playerid]+=1;
if(PlayerERRO[playerid] == 3 )
{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
Kick(playerid);
} return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
return 1;
}
}
return 1;
}
Re: Dificuldade... -
JonathanFeitosa - 08.12.2014
Analisando rбpido seu code.. se funcionar eu explico o motivo
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRO)
{
new STR[128];
GetPlayerName( playerid, Nome, sizeof( Nome ) );
GetPlayerIp( playerid, PlayerIP, sizeof( PlayerIP ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(response)
{
if( strlen ( inputtext ) < 4 || strlen ( inputtext ) > 16 && !strlen( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo sua Senha tem que ter no Minimo 4 Caracteres e no Mбximo 16 Caracteres.");
format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк nгo tem uma Conta Cadastrada\n\nDigite uma Senha para se Cadastrar\n\nStatus:Nгo Cadastrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, " ~ Registrando ~", STR, "Registrar", "Cancelar");
return 1;
}else{
DOF2_CreateFile( Arquivo );
DOF2_SetString( Arquivo, "Senha", inputtext );
DOF2_SetInt( Arquivo, "Administrador", 0 );
DOF2_SetInt( Arquivo, "Level", 0 );
DOF2_SetInt( Arquivo, "Dinheiro", 250 );
DOF2_SetInt( Arquivo, "Skin", 0 );
DOF2_SetInt( Arquivo, "Matou", 0 );
DOF2_SetInt( Arquivo, "Morreu", 0 );
DOF2_SaveFile();
format( STR, sizeof( STR ), "Bem Vindo(a) ao Servidor %s\n\nVocк Acaba de se Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
}
}
if(dialogid == DIALOG_LOGIN)
{
new STR[128];
if(response)
{
if( !strlen ( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
GetPlayerName( playerid, Nome, sizeof( Nome ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
{
Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
Level[playerid] = DOF2_GetInt( Arquivo, "Level");
GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
DOF2_SaveFile();
return 1;
}else{
PlayerERRO[playerid]+=1;
if(PlayerERRO[playerid] == 3 )
{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
Kick(playerid);
} return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
return 1;
}
}
return 1;
}
Re: Dificuldade... - BWCALLEf - 08.12.2014
Olб Jonathan, eu registro ai vem a dialog para logar escrevo qualquer senha nгo retorna a mensagem nem a dialog dizendo que esta errado ainda sabe oque pode estar errado? ja use o codigo a cima deu a mesma coisa Obrigado.
Re: Dificuldade... -
JonathanFeitosa - 08.12.2014
O servidor desliga? ou fica apenas paradгo?
Estб carregando as informaзхes dos players quando o mesmo conecta?
Re: Dificuldade... - BWCALLEf - 08.12.2014
Registrar vai normal mas na hora de logar nгo loga nгo spawna se colocar qualquer senha nгo retorna a dialog.
eu digito uma senha qualquer e some fica igual quando conecta sem sistema e so clicar em spawn
pawn Код:
if(dialogid == DIALOG_LOGIN)
{
new STR[128];
if(response)
{
if( !strlen ( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
GetPlayerName( playerid, Nome, sizeof( Nome ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
{
// Aqui Esta Carregando o Player
Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
Level[playerid] = DOF2_GetInt( Arquivo, "Level");
GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
DOF2_SaveFile();
SpawnPlayer(playerid);
DOF2_SaveFile();
return 1;
}else{
PlayerERRO[playerid]+=1;
if(PlayerERRO[playerid] == 3 )
{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
Kick(playerid);
} return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
return 1;
}
}
}
Re: Dificuldade... -
JonathanFeitosa - 08.12.2014
#edit
pawn Код:
if(dialogid == DIALOG_LOGIN)
{
new STR[128];
if(response)
{
if( !strlen ( inputtext ) )
{
SendClientMessage( playerid, COR_AVISO, "| AVISO | Atenзгo Vocк precisa digitar sua Senha para Logar.");
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ja tem uma Conta Cadastrada\n\nDigite Sua Senha para Logar no Servidor\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
return 1;
}
GetPlayerName( playerid, Nome, sizeof( Nome ) );
format( Arquivo, sizeof( Arquivo ), "Contas/%s.ini", Nome );
if(!strcmp(inputtext,DOF2_GetString(Arquivo,"Senha"),false))
{
// Aqui Esta Carregando o Player
Administrador[playerid] = DOF2_GetInt( Arquivo, "Administrador");
Level[playerid] = DOF2_GetInt( Arquivo, "Level");
GivePlayerMoney(playerid, DOF2::GetInt(Arquivo,"Dinheiro"));
Skin[playerid] = DOF2_GetInt( Arquivo, "Skin");
Matou[playerid] = DOF2_GetInt( Arquivo, "Matou");
Morreu[playerid] = DOF2_GetInt( Arquivo, "Morreu");
DOF2_SaveFile();
SpawnPlayer(playerid);
DOF2_SaveFile();
return 1;
}else{
// BOTA PARA CHAMAR O DIALOG LOGIN AQUI
format( STR, sizeof( STR ), "Bem Vindo(a) Novamente ao Servidor %s\n\nVocк ERROU SUA SENHA!! 3x vocк serб kickado\n\nStatus:Registrado\n\nSeu IP:%s", Nome, PlayerIP );
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, " ~ Logando ~", STR, "Logar", "Cancelar");
// ==================
PlayerERRO[playerid]+=1;
if(PlayerERRO[playerid] == 3 )
{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:Limite de Erro", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
Kick(playerid);
} return 1;
}
}else{
format( STR, sizeof( STR ), "| INFO | O Jogador(a) %s foi Kickado do Servidor Motivo:N/A Registrou", Nome );
SendClientMessageToAll( COR_ADMIN, STR );
return 1;
}
}
}
Estou corrigindo uma prova, estб ai a soluзгo IIpart exata.
Re: Dificuldade... - BWCALLEf - 08.12.2014
Caramba Era isso msm Eu tinha feito este sistema umas 3 vezes e nada
Obrigado Jonathan vlw pela paciкncia +REP