[Ajuda] Sistema Login/Cadastro
#1

Olб amigos, bom eu fiz um sistema de login mas tem que apertar SPAWN para ir para o LOGIN/CADASTRO e eu queria fazer com que as setas <> SPAWN fiquem junto com login e com cadastro, serб que vocкs tem uma soluзгo dessa?

Eu jб tentei, mas nгo consegui!
Reply
#2

a funзгo de chamar o dialog do login esta aonde ? esta na public onplayerrequestclass ?
Reply
#3

Na Callback "OnPlayerRequestClass" coloque o Player em Modo Espectador
pawn Код:
TogglePlayerSpectating(playerid, true);
E inicie o sistema de Login Nessa Callback
Reply
#4

pawn Код:
#include <a_samp>
#include "../include/gl_common.inc"
#include Dini

// Dialogs

#define DIALOG_LOGAR            1000
#define DIALOG_CADASTRAR        1001
#define DIALOG_BOLSA            1002

// Pastas

#define PastaP "Server/Players/%s.ini"

// Cargos

#define Player          0
#define Vip             1
#define OrgEventos      2
#define Ajudante        3
#define Moderador       4
#define Administrador   5
#define Sкnior          6
#define Programador     7

// Cores

#define Branco              0xFFFFFFAA
#define Preto               0x000000AA
#define Cinza               0xA1A1A1AA
#define CinzaClaro          0xE3E3E3AA
#define Azul                0x0011FFAA
#define AzulClaro           0x00C8FFAA
#define AzulEscuro          0x0004DBAA
#define Esverdeado          0x25FA89AA
#define Azulado             0x4985BAAA
#define Verde               0x00FF00AA
#define VerdeEscuro         0x06B500AA
#define Vermelho            0xFF0000AA
#define VermelhoClaro       0xFF6B6BAA
#define VemelhoEscuro       0xBA0000AA
#define Roxo                0xCD00D4AA
#define Laranja             0xFFA600AA
#define Amarelo             0xFFF000AA
#define VerdeCeu            0x2BB5ACAA

#define PRETO               "{000000}"
#define BRANCO              "{FFFFFF}"
#define CINZACLARO          "{E3E3E3}"
#define CINZA               "{A1A1A1}"
#define AZUL                "{0011FF}"
#define AZULCLARO           "{00C8FF}"
#define AZULESCURO          "{0004DB}"
#define ESVERDEADO          "{25FA89}"
#define AZULADO             "{4985BA}"
#define VERDE               "{00FF00}"
#define VERDEESCURO         "{60B500}"
#define ROXO                "{CD00D4}"
#define VERMELHO            "{FF0000}"
#define VERMELHOCLARO       "{FF6B6B}"
#define AMARELO             "{FFF000}"
#define LARANJA             "{FFA600}"
#define VERDECEU            "{2BB5AC}"


new
    bool:Canal[MAX_PLAYERS],
    Admin[MAX_PLAYERS],
    String[800];

forward msg();

public msg()
{
    SendClientMessageToAll(Vermelho, "> "VERDE"sua presenзa em nosso servidor й muito boa.");
    return 1;
}


main()
{
    print("\n----------------------------------");
    print(" Racer Better Life");
    print("----------------------------------\n");
}


public OnGameModeInit()
{
    EnableStuntBonusForAll(0);
    SetGameModeText("RBL(RACER)");
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    format(String, sizeof(String), "Olб "BRANCO"%s"AZULADO", seja bem-vindo.", pName(playerid));
    SendClientMessage(playerid, Azulado, String);
    SetPlayerCameraPos(playerid, 1997.1031494141, -2493.8444824219, 14.259727478027);
    SetPlayerCameraLookAt(playerid, 1897.0999755859, -2494.1000976563, 15.10000038147);
    format(String, sizeof(String), PastaP, pName(playerid));
    if(!dini_Exists(String))
    {
        Cadastrar(playerid);
        return 1;
    }
    Logar(playerid);
   
    SetTimer("msg", 50000, true);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarDados(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    new
        idx,
        cmd[256];

    cmd = strtok(cmdtext, idx);

    if(strcmp(cmd, "/Canal", true) == 0) // Entrar e Sair
    {
        cmd = strtok(cmdtext, idx);
        if(!strlen(cmd))
        {
            SendClientMessage(playerid, Vermelho, "- > Vocк deve digitar /Canal Entrar/Sair.");
            return 1;
        }
       
        if(strcmp(cmd, "Entrar", true) == 0)
        {
        if(!Canal[playerid])
            {
                Canal[playerid] = true;
                SendClientMessage(playerid, Verde, "- > Vocк entrou no canal ajuda.");
                return 1;
            }
        if(Canal[playerid] == true)
            {
                SendClientMessage(playerid, Amarelo, "- > Vocк jб estб no canal.");
                return 1;
            }

        return 1;
        }
        if(strcmp(cmd, "Sair", true) == 0)
        {
       
            if(Canal[playerid] == true)
            {
                Canal[playerid] = false;
                SendClientMessage(playerid, Verde, "- > Vocк saiu do canal ajuda.");
                return 1;
            }
            if(Canal[playerid] == false)
            {
                SendClientMessage(playerid, Amarelo, "- > Vocк nгo estб no canal ajuda.");
                return 1;
            }
            return 1;
        }
        return 1;
    }

    if(strcmp(cmd, "/Duvida", true) == 0)
    {
        if(!Canal[playerid])
        {
            SendClientMessage(playerid, Vermelho, "- > Vocк nгo estб no canal ajuda.");
            return 1;
        }
        if(Canal[playerid] == true)
        {
            new
                ajuda[256];
            ajuda = strrest(cmdtext, idx);
            if(strlen(ajuda))
            {
                SendClientMessage(playerid, Vermelho, "- > Vocк deve digitar /Dъvida [SUA DЪVIDA].");
                return 1;
            }
            format(String, sizeof(String), "Dъvida %s:%s", pName(playerid), ajuda);
            SendClientMessageCanal(Azulado, String);
            return 1;
        }
        return 1;
    }

    if(strcmp(cmd, "/cv", true) == 0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            SendClientMessage(playerid, -1, "Vocк nгo pode estб em um veiculo");
            return 1;
        }
        new
            id,
            c1,
            c2;

        cmd = strtok(cmdtext, idx);
        id = strval(cmd);

        if(!strlen(cmd))
        {
            SendClientMessage(playerid, Vermelho, " - > Comando correto: /cv [ID] [COR 1] [COR 2]");
            return 1;
        }
        if(id < 400 || id > 611)
        {
            SendClientMessage(playerid, Vermelho, " - > Id dos veiculos de 400 atй 611");
            return 1;
        }

        cmd = strtok(cmdtext, idx);
        c1 = strval(cmd);

        if(!strlen(cmd))
        {
            SendClientMessage(playerid, Vermelho, " - > Use /Cv [ID] [Cor 1] [Cor 2]");
            return 1;
        }

        cmd = strtok(cmdtext, idx);
        c2 = strval(cmd);

        if(!strlen(cmd))
        {
            SendClientMessage(playerid, Vermelho, " - > Use /Cv [ID] [Cor 1] [Cor 2]");
            return 1;
        }
        new
            v,
            Float:P[4];

        GetPlayerPos(playerid, P[0], P[1], P[2]);
        GetPlayerFacingAngle(playerid, P[3]);
        v = CreateVehicle(id, P[0], P[1], P[2]+1, P[3], c1, c2, 0);
        PutPlayerInVehicle(playerid, v, 0);
        SendClientMessage(playerid, Verde, "- >  Veнculo criado.");
        return 1;
    }
   
    if(strcmp(cmd, "/c", true) == 0)
    {
        RepairVehicle(GetPlayerVehicleID(playerid));
        SendClientMessage(playerid, Verde, "- > Veiculo consertado.");
        return 1;
    }
    return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_CADASTRAR)
        {
        if(!response)
        {
            SendClientMessage(playerid, -1, ";(");
            return 1;
        }
        if(strlen(inputtext) < 4 || strlen(inputtext) > 15)
        {
            SendClientMessage(playerid, Vermelho, " - > Senha muito PEQUENA/EXTENSA.");
            return 1;
        }
        format(String, sizeof(String), PastaP, pName(playerid));
        dini_Create(String);
        dini_Set(String, "Senha", inputtext);
        Bolsa(playerid);
        return 1;
    }

    if(dialogid == DIALOG_LOGAR) // Logar-se
    {
        if(!response)
        {
            SendClientMessage(playerid, Verde, " - > Volte sempre!");
            Kick(playerid);
            return 1;
        }
        if(!strlen(inputtext))
        {
            SendClientMessage(playerid, Vermelho, " - > Senha invбlida!");
            Logar(playerid);
            return 1;
        }
        format(String, sizeof(String), PastaP, pName(playerid));
        if(strcmp(inputtext, dini_Get(String, "Senha"), false) != 0)
        {
            SendClientMessage(playerid, Vermelho, " - > Senha incorreta!");
            return 1;
        }
        SendClientMessage(playerid, Verde, " - > Logado com sucesso!");
        SetarDados(playerid);
        return 1;
    }
   
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

stock Bolsa(playerid)
{
    SetPlayerPos(playerid, 0, 0, 0);
    GivePlayerMoney(playerid, 5000);
    SendClientMessage(playerid, -1, "~~~~~~~~~~~~~~");
    SendClientMessage(playerid, Verde, "- > Conta criada com sucesso!");
    SendClientMessage(playerid, Amarelo, "- > Comandos ъteis: /Comandos /Regras /Admins /Ajuda.");
    SendClientMessage(playerid, -1, "~~~~~~~~~~~~~~");
    return 1;
}

stock SalvarDados(playerid)
{
    new
        Float:Colete,
        Float:Vida,
        Float:P[4];
    GetPlayerArmour(playerid, Colete);
    GetPlayerHealth(playerid, Vida);
    GetPlayerPos(playerid, P[0], P[1], P[2]);
    GetPlayerFacingAngle(playerid, P[3]);
    format(String, sizeof(String), PastaP, pName(playerid));
    dini_FloatSet(String, "X", P[0]);
    dini_FloatSet(String, "Y", P[1]);
    dini_FloatSet(String, "Z", P[2]);
    dini_FloatSet(String, "A", P[3]);
    dini_IntSet(String, "Dinheiro", GetPlayerMoney(playerid));
    dini_IntSet(String, "Level", GetPlayerScore(playerid));
    dini_FloatSet(String, "Vida", Vida);
    dini_FloatSet(String, "Colete", Colete);
    dini_IntSet(String, "Skin", GetPlayerSkin(playerid));
    dini_IntSet(String, "Admin", Admin[playerid]);

    return 1;
}


stock SetarDados(playerid)
{
    format(String, sizeof(String), PastaP, pName(playerid));
    SetPlayerHealth(playerid, dini_Float(String, "Vida"));
    SetPlayerArmour(playerid, dini_Float(String, "Colete"));
    GivePlayerMoney(playerid, dini_Int(String, "Dinheiro"));
    Admin[playerid] = dini_Int(String, "Admin");
    SetPlayerPos(playerid, dini_Float(String, "X"), dini_Float(String, "Y"), dini_Float(String, "Z"));
    SetPlayerFacingAngle(playerid, dini_Float(String, "A"));
    SetPlayerScore(playerid, dini_Int(String, "Level"));
    SetPlayerSkin(playerid, dini_Int(String, "Skin"));

    return 1;
}

stock Logar(playerid)
{
    format(String, sizeof(String), "Olб, seja bem vindo.");
    ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logue-se", String, "Logar", "Sair");
    return 1;
}

stock Cadastrar(playerid)
{
    format(String, sizeof(String), "Olб, seja bem vindo.");
    ShowPlayerDialog(playerid, DIALOG_CADASTRAR, DIALOG_STYLE_INPUT, "Cadastre-se", String, "Cadastrar", "Sair");

    return 1;
}

stock SendClientMessageCanal(cor, msg[])
{
    for(new i; i < MAX_PLAYERS; i++)
    {
     if(Canal[i])
        {
            SendClientMessage(i, cor, msg);
        }

    }
    return 1;
}

stock pName(id)
{
    new
        n[MAX_PLAYER_NAME];
       
    GetPlayerName(id, n, sizeof(n));
    return n;
}
Aqui estб todo o cуdigo.
Reply
#5

Quote:
Originally Posted by rhaegartargaryen
Посмотреть сообщение
a funзгo de chamar o dialog do login esta aonde ? esta na public onplayerrequestclass ?
Nгo estб em OnPlayerConnect.
Reply
#6

Ponha o cуdigo de login/registro na callback OnPlayerRequestClass.
Uma dica: mude o retorno da callback OnPlayerRequestSpawn para false para evitar que o player nasзa sem efetuar o loggin/registro.
PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    
//Chame o dialog aqui.
    
return true;
}
public 
OnPlayerRequestSpawn(playerid)
{
    return 
false;

Reply
#7

Sу uma dъvida, esse OnPlayerRequestSpawn й a mesma coisa que OnPlayerSpawn ?

@edit

Deu certo, mas depois que eu logo Fica na setas <> Spawn e quando clico em Spawn nгo aparece nada
Reply
#8

Quote:
Originally Posted by oDenniS
Посмотреть сообщение
Sу uma dъvida, esse OnPlayerRequestSpawn й a mesma coisa que OnPlayerSpawn ?

@edit

Deu certo, mas depois que eu logo Fica na setas <> Spawn e quando clico em Spawn nгo aparece nada
Olб oDenniS, quer essa base em DOF2, mais atualizado?
Reply
#9

Quote:
Originally Posted by oDenniS
Посмотреть сообщение
Sу uma dъvida, esse OnPlayerRequestSpawn й a mesma coisa que OnPlayerSpawn ?

@edit

Deu certo, mas depois que eu logo Fica na setas <> Spawn e quando clico em Spawn nгo aparece nada
OnPlayerRequestSpawn й chamada quando o jogador clica no botгo "Spawn".
OnPlayerSpawn й chamada apуs o spawn.
Reply
#10

Quote:
Originally Posted by oDenniS
Посмотреть сообщение
Deu certo, mas depois que eu logo Fica na setas <> Spawn e quando clico em Spawn nгo aparece nada
TogglePlayerSpectating(playerid, true);

Na OnPlayerRequestClass
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)