SA-MP Forums Archive
[FilterScript] Sistema de Rank DataBase - 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 Rank DataBase (/showthread.php?tid=205314)



Sistema de Rank DataBase - ipsBruno - 01.01.2011

Introduзгo
Resolvi fazer este Filterscript com base de um Tutorial americano,o sistema й 100% funcional e rбpido

Utiliza banco de dados *db

pawn Код:
#include <a_samp.inc>

#define MAX_CHARS 56            //Mбximo de caracters por palavras
#define MAX_STRNS 256           //Mбximo de string de dados
#define BASE_NOME "Players.db"  //Arquivo para salvar os dados

static
        zStringTwo[128] ,
        DBResult:sResult ,
        DBResult:sResultTwo ,
        zStrFormat[150],
        DB:DataBase,
        zStrDlg[1024],
        zQuery[MAX_STRNS]
;


public
    OnFilterScriptInit()
{
    DataBase = db_open(BASE_NOME);
    format(zQuery , sizeof(zQuery ) , "CREATE TABLE IF NOT EXISTS `Usuarios` (`Nome` , 'Pontos' )" ) ;
    db_free_result(db_query(DataBase , zQuery ) ) ;
    return true;
}

public
    OnPlayerDisconnect(playerid,reason)
{
    SaveDataRankPlayer(playerid);
    return true;
}

public
    OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/ver-rank", true))
    {
        LoadDataRankPlayer(playerid);
        return true;
    }
    if(!strcmp(cmdtext, "/save-rank", true))
    {
        for(new a; a < 500; a++)
            if(IsPlayerConnected(a))
                SaveDataRankPlayer(a);
        return true;
    }
    if(!strcmp(cmdtext, "/ajuda-rank", true))
    {
        SendClientMessage(playerid,0xFFFFFF,"- Sistema de Rank DataBase -");
        SendClientMessage(playerid,0xFFFFFF,"-      http://www.feksquad.net  -");
        SendClientMessage(playerid,0xFFFFFF,"/ver-rank > Veja o Rank");
        SendClientMessage(playerid,0xFFFFFF,"/save-rank > Salve o Rank");
        return true;
    }
    return false;
}

stock
    SaveDataRankPlayer(playerid)
{
    format(zQuery , 150 , "SELECT `Nome` FROM `Usuarios` WHERE `Nome`='%s' LIMIT 1" , GetPlayerNick(playerid ) );
    sResult = db_query(DataBase , zQuery );
    if (db_num_rows(sResult ) == 1 )
    {
        format(zQuery , 150 , "UPDATE `Usuarios` SET 'Pontos'='%d' WHERE (`Nome` = '%s')" , GetPlayerScore(playerid ) , GetPlayerNick(playerid ) );
        db_free_result(db_query(DataBase , zQuery ) );
    }
    else if (db_num_rows(sResult ) == 0 )
    {
        format(zQuery , 160 ,  "INSERT INTO `Usuarios` (`Nome`, 'Pontos') VALUES('%s',%d)" , GetPlayerNick(playerid ) , GetPlayerScore(playerid ) );
        db_free_result(db_query(DataBase , zQuery ) );
    }
    return true;
}

stock
    LoadDataRankPlayer(playerid,maxrank = 10)
{
    format(zQuery , 200 , "SELECT `Nome` FROM `Usuarios` ORDER BY ('Pontos' * 1 ) DESC limit %d",maxrank);
    sResult = db_query(DataBase , zQuery );
    format(zStrDlg ,  sizeof(zStrDlg ) , "<<<<<<<<<<<<<<<<<<<<<<<<*>>>>>>>>>>>>>>>>>>>>>>>>\r\n" );
    for(new a , zTotal = db_num_rows(sResult ); a < zTotal ;a++ )
    {
        db_get_field(sResult , 0 , zStrFormat , 128 );
        format(zQuery , sizeof(zQuery ) , "SELECT 'Pontos' FROM `Usuarios` WHERE `Nome` ='%s'" , zStrFormat );
        sResultTwo = db_query(DataBase , zQuery );
        db_get_field(sResultTwo , 0 , zStringTwo , 128 );

        format(zStrDlg , 1023 , "%sLugar: %02d  | Pontos: %d    | Player: %s \n" , zStrDlg , ( a + 1 ) , zStringTwo , zStrFormat );

        db_next_row(sResult );
        db_free_result(sResultTwo );
    }
    db_free_result(sResult );
    ShowPlayerDialog(playerid , 122 , DIALOG_STYLE_MSGBOX , "Sistema de Ranks [FeK]" , zStrDlg , "Fechar" ,  "" );
    return true;
}

stock
    GetPlayerNick(playerid)
{
    static Naming[24];
    GetPlayerName(playerid,Naming,24);
    return Naming;
}
Pasta Plugar Jogar


Lembrando que estou utilizando GetPlayerScore para os Recordes

Basta Mudar:
Код:
GetPlayerScore(playerid);
Para array ou funзгo que deseja!

E Brevemente mais projetos relacionado a banco de dados.

Valeu Gente,Feliz 2011.

Paz e Amor.


Respuesta: Sistema de Rank DataBase - Ichigo_Kurosaki - 01.01.2011

Tipo e se eu quizer no meu GM ROLEPLAYER colocar para ele salvar o rank dos LEVEIS da galera?


AW: Sistema de Rank DataBase - [Banido]HigorOliver - 01.01.2011

Sol troca a Array.


Re: Sistema de Rank DataBase - PsyShotter - 01.01.2011

Belo tuto, mas isso й ranking .-.
Rank й usado para denominar level e patentes xD


Respuesta: AW: Sistema de Rank DataBase - Ichigo_Kurosaki - 01.01.2011

Quote:
Originally Posted by [Banido]HigorOliver
Посмотреть сообщение
Sol troca a Array.
como assim?


Respuesta: Re: Sistema de Rank DataBase - ipsBruno - 01.01.2011

Quote:
Originally Posted by PsyShotter
Посмотреть сообщение
Belo tuto, mas isso й ranking .-.
Rank й usado para denominar level e patentes xD
Vocкs Jovens de hoje em dia estгo com SA:MP em sua Cabeзa.

Rank = Top Players - Pontuaзгo

Nгo me corrija,vocк esta errado sobre level e patentes,nгo tenho culpa se as pessoas nгo tem criatividade de criar um sistema de patentes que ser chamado de Rank.

http://pt.wikipedia.org/wiki/Ranking

Ranking й o processo de posicionamento de itens de [b]estatнsticas individuais[/], de grupos ou comerciais, na escala ordinal de nъmeros, em relaзгo a outros.


AW: Sistema de Rank DataBase - [Banido]HigorOliver - 01.01.2011

Patentes : Denomina um nome de um nivel !

Ranking : Gera a melhor pessoa de um determinado rank.


Respuesta: Sistema de Rank DataBase - ipsBruno - 01.01.2011

[Banido]HigorOliver:
Seria isto nй,mas as pessoas querem fazer tudo a base de GF hoje em Dia.


AW: Respuesta: Sistema de Rank DataBase - [Banido]HigorOliver - 01.01.2011

Quote:
Originally Posted by [FeK]DraKiNs
Посмотреть сообщение
[Banido]HigorOliver:
Seria isto nй,mas as pessoas querem fazer tudo a base de GF hoje em Dia.
Yes Yes Yes


Respuesta: Sistema de Rank DataBase - Ichigo_Kurosaki - 01.01.2011

Quote:
Originally Posted by Ichigo_Kurosaki
Посмотреть сообщение
Tipo e se eu quizer no meu GM ROLEPLAYER colocar para ele salvar o rank dos LEVEIS da galera?
alguem pode me respondeR? Drakins?