28.02.2014, 00:47
Olб galera, bom eu jб sei mexer com pawn porйm estou mudando meu servidor para mysql e estou com dificuldades.
Jб procurei exemplos e estou indo direto na wiki samp porйm nгo estб resolvendo muito meu problema.
Meu problema й que quando o player entra no servidor, eu acho que nгo estб verificando se ele tem conta no banco de dados, porque se ele tiver irб aparecer a dialog login, esse ele nгo tiver conta no banco de dados eu quero que apareзa a dialog registro e crie a conta dele com as propriedades abaixo.
Obs: a conexгo com o banco de dados estб funcionando normalmente, o erro й em um dos cуdigos abaixo.
Quem puder e conseguir me ajudar irei dar reputaзгo
Informaзхes:
Nome do banco de dados: samp
Nome da tabela: usuarios
Informaзхes da tabela:
id MEDIUMINT PRIMARY KEY NOT NULL AUTO_INCREMENT
usuario VARCHAR( 24 )
senha VARCHAR( 40 )
level INT( 20 )
dinheiro INT( 20 )
Comeзo para verificar se o player tem conta no banco de dados
Stock para verificar se o player tem conta no banco de dados
Stock para checar a senha do Login
Dialog de Login
Dialog de Registro
Jб procurei exemplos e estou indo direto na wiki samp porйm nгo estб resolvendo muito meu problema.
Meu problema й que quando o player entra no servidor, eu acho que nгo estб verificando se ele tem conta no banco de dados, porque se ele tiver irб aparecer a dialog login, esse ele nгo tiver conta no banco de dados eu quero que apareзa a dialog registro e crie a conta dele com as propriedades abaixo.
Obs: a conexгo com o banco de dados estб funcionando normalmente, o erro й em um dos cуdigos abaixo.
Quem puder e conseguir me ajudar irei dar reputaзгo

Informaзхes:
Nome do banco de dados: samp
Nome da tabela: usuarios
Informaзхes da tabela:
id MEDIUMINT PRIMARY KEY NOT NULL AUTO_INCREMENT
usuario VARCHAR( 24 )
senha VARCHAR( 40 )
level INT( 20 )
dinheiro INT( 20 )
Comeзo para verificar se o player tem conta no banco de dados
PHP Code:
public OnPlayerRequestClass(playerid, classid)
{
new query[255];
format(query,sizeof(query),"SELECT * FROM `usuarios` WHERE usuario='%s'", aname);
mysql_function_query(dbhandle, query, true, "MySQL_Verificando", "d", playerid);
return 1;
}
PHP Code:
stock MySQL_Verificando(playerid)
{
static rows,fields;
cache_get_data(rows, fields, dbhandle);
if(rows)
{
format( string1, sizeof( string1 ) ,"{FFFFFF} » Logando em sua conta.\n\nSeja bem vindo( a ) novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00} Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00} Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Login", "Cancelar" ) ;
}
else
{
format( string1, sizeof( string1 ) ,"{FFFFFF} » Registrando sua conta.\n\nSeja bem vindo( a ) ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00} Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00} Status da conta: {FF0000}Nгo registrada\n\n {FFFFFF}Insira uma senha abaixo para registrar-se:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Registrar", "Cancelar" ) ;
}
return 1;
}
PHP Code:
stock MySql_ChecarSenha(playerid)
{
static rows,fields;
cache_get_data(rows, fields, dbhandle);
if(rows)
{
new string[255];
format( string, sizeof( string ) , "{FFFF00}[ > ] Seu ъltimo login foi dia {FFFFFF}%s бs %s", dini_Get(file, "UltimoLoginData"), dini_Get(file, "UltimoLoginHora")) ;
SendClientMessage( playerid, -1, string ) ;
SendClientMessage( playerid, -1, "{a9c4e4}[ > ] Caso queira continuar da sua ъltima posiзгo salva, digite: {FFFFFF}/Continuar");
SendClientMessage( playerid, -1, "{a9c4e4}[ > ] Vocк tem 30 segundos para usar este comando!");
TimerContinuar [ playerid ] = SetTimerEx( "BloquearContinuar", 30000, false, "i", playerid ) ;
LiberadoContinuar[playerid] = 1;
CarregarDados( playerid ) ;
SetPlayerColor( playerid,-1 ) ;
SpawnPlayer( playerid ) ;
}
else
{
SendClientMessage( playerid, -1, " [ x ] {FF0000}Senha invбlida, Digite a senha correta!" ) ;
format( string1, sizeof( string1 ) ,"{FFFFFF} » Logando em sua conta.\n\nSeja bem vindo( a ) novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00} Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00} Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Login", "Cancelar" ) ;
}
return 1;
}
PHP Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if( dialogid == DIALOG_LOGIN )
{
if( response )
{
new aname [ MAX_PLAYER_NAME ], string1 [ 450 ];
GetPlayerName( playerid,aname, sizeof( aname ) ) ;
if( !strlen( inputtext ) )
{
SendClientMessage( playerid, -1, " [ x ] {FF0000}Digite uma senha para sua conta!" ) ;
format( string1, sizeof( string1 ) ,"{FFFFFF} » Logando em sua conta.\n\nSeja bem vindo( a ) novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00} Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00} Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Login", "Cancelar" ) ;
}
new query[255];
format(query,sizeof(query),"SELECT * FROM `usuarios` WHERE usuario='%s' and senha='%s'", aname, inputtext);
mysql_function_query(dbhandle, query, true, "MySql_ChecarSenha", "d", playerid);
}
else
{
new stringz [ 148 ];
format( stringz, sizeof( stringz ) ," [ x ] O( a ) player %s foi kickado( a ) por nгo efetuar Login." ) ;
SendClientMessageToAll( -1, stringz ) ;
Kick( playerid ) ;
}
}
return 1;
}
PHP Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if( dialogid == DIALOG_REGISTRO )
{
if( response )
{
new aname [ MAX_PLAYER_NAME ], string1 [ 450 ];
GetPlayerName( playerid,aname, sizeof( aname ) ) ;
if( !strlen( inputtext ) )
{
SendClientMessage( playerid, -1, " [ x ] {FF0000}Digite uma senha para sua conta!" ) ;
format( string1, sizeof( string1 ) ,"{FFFFFF} » Registrando sua conta.\n\nSeja bem vindo( a ) ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00} Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00} Status da conta: {FF0000}Nгo registrada\n\n {FFFFFF}Insira uma senha abaixo para registrar-se:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Registrar", "Cancelar" ) ;
}
else
{
new query[255];
format(query, sizeof(query),"INSERT INTO usuarios (usuario, senha, morreu, matou, dinheiro, minuto1, minuto2, segundo1, segundo2) VALUES('%s', SHA1('%s'), 0, 0, 5000, 0, 9, 5, 9)", aname, inputtext);
mysql_query(dbhandle, query);
format( string1, sizeof( string1 ) ,"{FFFFFF}» {FF0000}COLOQUE ABAIXO SEU E-MAIL PARA RECUPERACAO DE SENHA!\n{FFFFFF}» {FF0000}COLOQUE UM E-MAIL VБLIDO!\n{FFFFFF}» {FF0000}NГO SEREMOS RESPONSAVEIS A RECUPERAR CONTAS SEM E-MAIL!\n\n{FFFFFF}Insira um e-mail vбlido para recuperaзгo de senha:", aname ) ;
ShowPlayerDialog( playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™", string1, "Salvar", "Cancelar" ) ;
return 1;
}
}
else
{
new stringz [ 148 ];
format( stringz, sizeof( stringz ) ," [ x ] O( a ) player %s foi kickado( a ) por nгo efetuar um registro." ) ;
SendClientMessageToAll( -1, stringz ) ;
Kick( playerid ) ;
}
}
return 1;
}