pawn Код:
/*------------------------------------------------------------------------------
                                 [INCLUDES]                                
------------------------------------------------------------------------------*/
#include a_samp
#include SII
/*------------------------------------------------------------------------------
                                 [DINHEIRO]                                
------------------------------------------------------------------------------*/
#define DarDinheiro(%0,%1)                              Info[%0][Dinheiro] += %1
#define RetirarDinheiro(%0,%1)                          Info[%0][Dinheiro] -= %1
#define SetarDinheiro(%0,%1)                             Info[%0][Dinheiro] = %1
#define GetarDinheiro(%0)                                     Info[%0][Dinheiro]
#define ResetarDinheiro(%0)                              Info[%0][Dinheiro] = 0;
/*------------------------------------------------------------------------------
                                 [C & AB]                                
------------------------------------------------------------------------------*/
#define Contas                                                   "Contas/%s.ini"
#define AdminBot                                                      "Diogo B."
/*------------------------------------------------------------------------------
                                 [DIALOGS]                                
------------------------------------------------------------------------------*/
#define DialogRegistar                                                     (100)
#define DialogLogar                                                        (101)
#define DialogSexo                                                         (102)
#define DialogKickado                                                      (104)
/*------------------------------------------------------------------------------
                                 [CORES]                                
------------------------------------------------------------------------------*/
#define Esverdeado                                                  (0x808000AA)
#define Vermelho                                                    (0xE60000FF)
#define Amarelo                                                     (0xFFFF00FF)
#define Branco                                                      (0xFFFFFFAA)
#define Verde                                                       (0x21DD00FF)
#define aCor                                                        (0x0080C0AA)
 
/*------------------------------------------------------------------------------
                               [CORES VIP]                                
------------------------------------------------------------------------------*/
#define cVip1                                                       (0xFFF000AA) //Alterar
#define cVip2                                                       (0xFFF000AA) //Alterar
#define cVip3                                                       (0xFFF000AA) //Alterar
 
/*------------------------------------------------------------------------------
                                   [CS]                                
------------------------------------------------------------------------------*/
#define CASE_SENSITIVE                                                     false
 
/*------------------------------------------------------------------------------
                                 [ARRAYS]                                
------------------------------------------------------------------------------*/
enum Informacoes
{
    Administrador,
        Jogador[24],
        SenhaErrada,
    Outro[24],    
    Dinheiro,    
    Logado,    
    Banco,    
        Senha,
        Sexo,
    Vip,
};
 
static
    Info[MAX_PLAYERS][Informacoes],    
    sStringFrm[128],    
    sStringArq[128],
    Data[3],
    Time[3];
 
forward CallSalvar(playerid);
forward CallCarregar(playerid);
 
/*------------------------------------------------------------------------------
                                 [CALBACKS]                                
------------------------------------------------------------------------------*/
public OnPlayerDisconnect(playerid, reason)
        return CallSalvar(playerid);
 
public OnPlayerConnect(playerid)
{
    CallCarregar(playerid);
    GetPlayerName(playerid, Info[playerid][Jogador], 23);
        format(sStringArq, sizeof(sStringArq), Contas, Info[playerid][Jogador]);
        if(INI_Exist(sStringArq))
        {
                format(sStringFrm, sizeof(sStringFrm), "{5CACEE}Nome: {FFFFFF}%s\n{5CACEE}Tipo de conta: {FFFFFF}Registada!\n\nColoque a sua senha para se poder logar no servidor (:", Info[playerid][Jogador]);
                ShowPlayerDialog(playerid, DialogLogar, DIALOG_STYLE_INPUT, "{5CACEE}Sistema de Login:", sStringFrm, "Logar", "Cancelar" );
        }
        else
        {
                format(sStringFrm, sizeof(sStringFrm), "{5CACEE}Nome: {FFFFFF}%s\n{5CACEE}Tipo de conta: {FFFFFF}Nгo registada!\n\nColoque a sua senha para se registar no servidor (:", Info[playerid][Jogador]);
        ShowPlayerDialog( playerid, DialogRegistar, DIALOG_STYLE_INPUT, "{5CACEE}Sistema de Registo:", sStringFrm, "Registar", "Cancelar" );
        }
 
        return true;
}
 
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        GetPlayerName(playerid, Info[playerid][Jogador], 23);
        format(sStringArq, sizeof(sStringArq), Contas, Info[playerid][Jogador]);
        if(dialogid == DialogLogar)
        {
            if(response)
            {
                if(strlen(inputtext) == 0)
                {
                                format(sStringFrm, sizeof(sStringFrm), "{5CACEE}Nome: {FFFFFF}%s\n{5CACEE}Tipo de conta: {FFFFFF}Registada!\n\nColoque a sua senha para se poder logar no servidor (:", Info[playerid][Jogador]);
                ShowPlayerDialog(playerid, DialogLogar, DIALOG_STYLE_INPUT, "{5CACEE}Sistema de Login:", sStringFrm, "Logar", "Cancelar");
                SendClientMessage(playerid, Verde, "A senha deve ter mais do que 0 digitos!");
                        }
                        static Input[20];
                        INI_Open(sStringArq);
                        INI_ReadString(Input, "Senha");
                INI_Close();
                        if(!strcmp(inputtext, Input, CASE_SENSITIVE))
                        {
                SpawnPlayer(playerid);
                                format(sStringFrm, sizeof(sStringFrm), "%s, seja bem-vindo ao servidor (:", Info[playerid][Jogador]);
                                SendClientMessage(playerid, Amarelo, sStringFrm);
                                if(Info[playerid][Administrador] >= 1)
                                {
                                    format(sStringFrm, sizeof(sStringFrm), "Logado com nнvel %d de administrador (:", Info[playerid][Administrador]);
                                    SendClientMessage(playerid, aCor, sStringFrm);
                                }
 
                                if(Info[playerid][Vip] == 1)
                                        return SendClientMessage(playerid, cVip1, "Logado com Vip Gold (:");
 
                                if(Info[playerid][Vip] == 2)
                                    return SendClientMessage(playerid, cVip2, "Logado com Vip Prata (:");
 
                                if(Info[playerid][Vip] == 3)
                                    return SendClientMessage(playerid, cVip3, "Logado com Vip Bronze (:");
                        }
                        else
                        {
                            format(sStringFrm, sizeof(sStringFrm), "{5CACEE}Nome: {FFFFFF}%s\n{5CACEE}Tipo de conta: {FFFFFF}Registada!\n\nColoque a sua senha para se poder logar no servidor (:", Info[playerid][Jogador]);
                ShowPlayerDialog(playerid, DialogLogar, DIALOG_STYLE_INPUT, "{5CACEE}Sistema de Login:", sStringFrm, "Logar", "Cancelar");
                SendClientMessage(playerid, Vermelho, "Senha errada! Se errar 3 vezes, й kickado!");
                Info[playerid][SenhaErrada] += 1;
                if(Info[playerid][SenhaErrada] == 3)
                {
                                        SendClientMessage(playerid, Branco, "Vocк foi kickado do servidor por errar a senha 3 vezes!");
                                        Kickar(playerid, "Errou a senha 3 vezes");
                                }
                        }
                }
                else if(!response)
                {
                        SendClientMessage(playerid, Branco, "Vocк foi kickado por nгo querer-se logar!");
                        Kickar(playerid, "Nгo quis logar");
                }
        }
 
        else if(dialogid == DialogRegistar)
        {
            if(response)
            {
                if(!strlen(inputtext))
                {
                        format(sStringFrm, sizeof(sStringFrm), "{5CACEE}Nome: {FFFFFF}%s\n{5CACEE}Tipo de conta: {FFFFFF}Nгo registada!\n\nColoque a sua senha para se registar no servidor (:", Info[playerid][Jogador]);
                ShowPlayerDialog( playerid, DialogRegistar, DIALOG_STYLE_INPUT, "{5CACEE}Sistema de Registo:", sStringFrm, "Registar", "Cancelar" );
                                SendClientMessage(playerid, Verde, "A senha nгo pode conter 0 digitos!");
                        }
                        strmid(Info[playerid][Senha], inputtext, 0, strlen(inputtext), 128);
                        INI_Create(sStringArq);
                        INI_Open(sStringArq);
                        INI_WriteString("Senha", Info[playerid][Senha]);
                        ShowPlayerDialog(playerid, DialogSexo, DIALOG_STYLE_MSGBOX, "{5CACEE}A que sexo pertence?", "Para acabarmos de fazer o seu registo, precisamos de saber o seu sexo.\nEscolha o sexo abaixo", "Masculino", "Feminino");
                }
                else
                {
                        SendClientMessage(playerid, Branco, "Vocк foi kickado por nгo querer-se registar!");
                        Kickar(playerid, "Nгo quis registar");
                }
        }
 
        else if(dialogid == DialogSexo)
        {
            if(response)
            {
                Info[playerid][Sexo] = 1;
                        SendClientMessage(playerid, Esverdeado, "Agora que vocк acabou seu registo... logue-se (:");
                        Info[playerid][Logado] = true;
                        SetTimerEx("CallInicioPlayer", 2000, false, "i", playerid);
            INI_WriteInt("Sexo", Info[playerid][Sexo]);
                }
                else if(!response)
                {
                    Info[playerid][Sexo] = 2;
                    SendClientMessage(playerid, Esverdeado, "Agora que vocк acabou seu registo... logue-se (:");
                    Info[playerid][Logado] = true;
            INI_WriteInt("Sexo", Info[playerid][Sexo]);
                }
        }  
        return true;
}
/*------------------------------------------------------------------------------
                        [SISTEMA DE REGISTO E LOGIN]
------------------------------------------------------------------------------*/
public CallSalvar(playerid)
{
        GetPlayerName(playerid, Info[playerid][Jogador], 23);
        format(sStringArq, sizeof(sStringArq), Contas, Info[playerid][Jogador]);
        if(INI_Exist(sStringArq))
        {
            INI_Open(sStringArq);
        INI_WriteInt("Dinheiro", GetarDinheiro(playerid));
        INI_WriteInt("Banco", Info[playerid][Banco]);
        INI_WriteInt("Sexo", Info[playerid][Sexo]);
        INI_WriteInt("Vip", Info[playerid][Vip]);      
        INI_WriteInt("Administrador", Info[playerid][Administrador]);        
        INI_Save();
        INI_Close();
        }
        else INI_Create(sStringArq);
        return true;
}
 
public CallCarregar( playerid )
{
        GetPlayerName(playerid, Info[playerid][Jogador], 23);
        format(sStringArq, sizeof(sStringArq), Contas, Info[playerid][Jogador]);
        if(INI_Exist(sStringArq))
        {
                INI_Open(sStringArq);
                DarDinheiro(playerid, INI_ReadInt("Dinheiro"));
        Info[playerid][Dinheiro] = INI_ReadInt("Dinheiro");
        Info[playerid][Banco] = INI_ReadInt("Banco");
        Info[playerid][Sexo] = INI_ReadInt("Sexo");
                Info[playerid][Vip] = INI_ReadInt("Vip");        
        Info[playerid][Administrador] = INI_ReadInt("Administrador");        
        }
        return true;
}
/*------------------------------------------------------------------------------
                                 [KICKAR]                                
------------------------------------------------------------------------------*/
stock Kickar(playerid, motivo[])
{
        getdate(Data[0], Data[1], Data[2]);
        gettime(Time[0], Time[1], Time[2]);
        GetPlayerName(playerid, Info[playerid][Jogador], 23);
        format(sStringFrm, sizeof(sStringFrm), "{E60000}[Kickado] {FFFFFF}%s foi kickado do servidor. [{E60000}Motivo: {FFFFFF}%s]", Info[playerid][Jogador], motivo);
        SendClientMessageToAll(Branco, sStringFrm);
        format(sStringArq, sizeof(sStringArq), "%s, vocк foi kickado do servidor!\n{5CACEE}Administrador: {FFFFFF}%s\n{5CACEE}Motivo: {FFFFFF}%s\n{5CACEE}Data: {FFFFFF}%d/%d/%d\n{5CACEE}Hora: {FFFFFF}%d:%d:%d ", Info[playerid][Jogador], AdminBot, motivo, Data[2], Data[1], Data[0], Time[0], Time[1], Time[2]);
        ShowPlayerDialog(playerid, DialogKickado, DIALOG_STYLE_MSGBOX, "{5CACEE}Sistema de Kick", sStringArq, "Concluir", "");
        return true;
}
 (o code estб bem identado, mas ao copiar fica assim).