SA-MP Forums Archive
[FilterScript] Sistema de Registro [SIMPLES] [MySQL] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [FilterScript] Sistema de Registro [SIMPLES] [MySQL] (/showthread.php?tid=326781)



Sistema de Registro [SIMPLES] [MySQL] - Jason` - 18.03.2012

Um simples sistema de registro que salva senha, dinheiro e score, hб mais chances de alguem utilizar para estudar MySQL do que usar em seu gm ou oq for, mais ai vai.

pawn Код:
// Sistema de Registro [MySQL]

#include <a_samp>
#include <a_mysql>

#define FOREACH

#if defined FOREACH
    #include <foreach>
#endif

const D_REGISTRO = 1345;
const D_LOGIN = 1354;

new
    iQuery[ 128 ],
    bool: gPlayerLogged[ MAX_PLAYERS ],
    gPlayerName[ MAX_PLAYERS ][ MAX_PLAYER_NAME ]
;

public OnFilterScriptInit( ) {
    mysql_connect( "localhost" , "root" , "sa-mp" , "");
    if( mysql_ping( ) >= 1 ) print( "=> Conectado ao Banco de Dados" );
    else print( "=> Incapaz de conectar ao banco de dados\nFS descarregado" ) , SendRconCommand( "unloadfs pregister" );
   
    mysql_query( "CREATE TABLE IF NOT EXISTS `playerContas` (`playerNome` VARCHAR(24),`playerSenha` VARCHAR(128),`playerDinheiro` INT(11),`playerScore` INT(11))");
    return 0x01;
}

public OnFilterScriptExit( )
{
    #if defined FOREACH
        foreach( Player, i ) {
            if( gPlayerLogged[ i ] ) {
                salvarPlayer( i );
            }
        }
    #else
        for( new i = 0 ; i < MAX_PLAYERS ; ++i ) {
            if( IsPlayerConnected( i ) && gPlayerLogged[ i ] ) {
                salvarPlayer( i );
            }
        }
    }
    #endif
    mysql_close( );
    return 0x01;
}

public OnPlayerConnect( playerid ) {
    GetPlayerName( playerid , gPlayerName[ playerid ] , MAX_PLAYER_NAME );
    format( iQuery , sizeof( iQuery ) , "SELECT * FROM `playerContas` WHERE `playerNome` = '%s'" , gPlayerName[ playerid ] );
    mysql_query( iQuery );
    mysql_store_result( );
    if( mysql_num_rows( ) ) {
        ShowPlayerDialog( playerid , D_LOGIN , 3 , "{FFFFFF}Login" , "{FFFFFF}Digite sua senha para logar!" , "Logar" , "Sair" );
    }
    else ShowPlayerDialog( playerid , D_REGISTRO , 3 , "{FFFFFF}Registro" , "{FFFFFF}Digite uma senha para registrar!" , "Registrar" , "Sair" );
    mysql_free_result( );
    return 0x01;
}

public OnPlayerDisconnect( playerid , reason ) {
    #pragma unused reason
    if( gPlayerLogged[ playerid ] ) {
        salvarPlayer( playerid );
    }
    return 1;
}

public OnDialogResponse( playerid , dialogid , response , listitem , inputtext[ ] ) {
    switch( dialogid ) {
        case D_REGISTRO: {
            if( !response ) Kick( playerid );
            else registrarPlayer( playerid , inputtext );
        }
        case D_LOGIN: {
            if( !response ) Kick( playerid );
            else {
                format( iQuery , sizeof( iQuery ) , "SELECT * FROM `playerContas` WHERE `playerNome` = '%s' AND `playerSenha` = '%s'" , gPlayerName[ playerid ] , inputtext );
                mysql_query( iQuery );
                mysql_store_result( );
                if( mysql_num_rows( ) ) {
                    new
                        loadStr[ 90 ]
                    ;
                    gPlayerLogged[ playerid ] = true;
                    SendClientMessage( playerid , 0x00CD00AA , "Logado!" );
                    while( mysql_retrieve_row( ) ) {
                        mysql_get_field( "playerDinheiro" , loadStr );
                        GivePlayerMoney( playerid , strval( loadStr ) );
                       
                        mysql_get_field( "playerScore" , loadStr );
                        SetPlayerScore( playerid , strval( loadStr ) );
                    }
                }
                else SendClientMessage( playerid , 0xE31919AA , "Senha errada!" ) , Kick( playerid );
                mysql_free_result( );
            }
        }
    }
    return 1;
}

stock registrarPlayer( playerid , senha[ ] ) {
    format( iQuery , sizeof( iQuery ) , "INSERT INTO `playerContas` (`playerNome`,`playerSenha`,`playerDinheiro`,`playerScore`) VALUES ('%s','%s',0,0)" , gPlayerName[ playerid ] , senha );
    mysql_query( iQuery );
    return 1;
}

stock salvarPlayer( playerid ) {
    format( iQuery , sizeof( iQuery ) , "UPDATE `playerContas` SET `playerDinheiro` = '%i', `playerScore = '%i' WHERE `playerNome` = '%s'" , GetPlayerMoney( playerid ) , GetPlayerScore( playerid ) , gPlayerName[ playerid ] );
    mysql_query( iQuery );
    return 1;
}
Pastebin


Re: Sistema de Registro [SIMPLES] [MySQL] - Lucas_Alemao - 18.03.2012

muito legal cara, um dia eu vo aprender a usar MySql


Re: Sistema de Registro [SIMPLES] [MySQL] - marcelodell - 18.03.2012

Muito bom, parabens pelo trabalho! Muito ъtil para quem estб aprendendo a usar MySQL, na йpoca que eu aprendi a usar foi usando o Tutorial que o Ricop fez, mas agora esse FS darб um Help a mais para quem esta aprendendo =D


Re: Sistema de Registro [SIMPLES] [MySQL] - Jason` - 18.03.2012

Foi lб que eu aprendi tambйm xD


Re: Sistema de Registro [SIMPLES] [MySQL] - DouglasRodrigues - 18.03.2012

Mesmo sendo simples, й bom.
Parabйns.


Re: Sistema de Registro [SIMPLES] [MySQL] - Abravanel - 18.03.2012

good job.

Й difнcil ver alguйm se interessar por MySQL rs


Re: Sistema de Registro [SIMPLES] [MySQL] - Jason` - 18.03.2012

Vlw


Respuesta: Sistema de Registro [SIMPLES] [MySQL] - [NVC]iTrevaS - 18.03.2012

Muito Bom !


Re: Sistema de Registro [SIMPLES] [MySQL] - Bruno Pereira - 18.03.2012

Nгo sei porque mas nгo confio muito no MySQL de Pawn...
Prefiro usar outros DB mesmo que salva na maquina os arquivos.

MySQL uso em outros linguбgens.


Re: Sistema de Registro [SIMPLES] [MySQL] - [S]trong - 19.03.2012

Quote:
Originally Posted by Bruno Pereira
Посмотреть сообщение
Nгo sei porque mas nгo confio muito no MySQL de Pawn...
Prefiro usar outros DB mesmo que salva na maquina os arquivos.

MySQL uso em outros linguбgens.
vdd, em sa-mp mysql n serve para nada, arruma os bugs do sqlite e manda bala...

ficar rodando 1 plugin ai a toa й coisa de retardado (sem ofensa), sem falar q sqlite й mais rбpido.