[Ajuda] Sistema de registro
#1

Bom dia, amigos do fуrum SA-MP.

Entгo, minha dъvida й a seguinte: como eu faзo para setar o nome do jogador que estб entrando no servidor no sistema de registro?

Exemplo: Seja vem vindo, Sofina.

Tipo, no lugar do sofina, no pawn, eu colocaria %s, certo? Mas, nгo sei como realmente colocar para que %s leia o nome do jogador. Agradeзo a quem me ajudar.
Reply
#2

Acho que isso deve resolver

Код:
new stringlogar[158];
format(stringlogar, sizeof(stringlogar), "Seja Bem-Vindo %s", GetUserName(playerid));
ShowPlayerDialog(playerid, SUA DIALOG DE REGISTRO , DIALOG_STYLE_PASSWORD,"Logar",stringlogar,"Logar","Sair");
Reply
#3

Quote:
Originally Posted by GuilhermeH
Посмотреть сообщение
Acho que isso deve resolver

Код:
new stringlogar[158];
format(stringlogar, sizeof(stringlogar), "Seja Bem-Vindo %s", GetUserName(playerid));
ShowPlayerDialog(playerid, SUA DIALOG DE REGISTRO , DIALOG_STYLE_PASSWORD,"Logar",stringlogar,"Logar","Sair");
Obrigado pela ajuda.

@edit:

ficaria assim?

pawn Код:
{
        format(nomejogador, sizeof(nomejogador), "Seja bem-vindo, %s!", GetUserName(playerid));
        ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "LOGIN", nomejogador, "Digite sua senha para entrar no servidor.", "Entrar", "Sair");
    }
Reply
#4

/\ Yeap.
Reply
#5

Caramba, sistema de registro eu nгo consigo me dar bem. INCRНVEL! Sempre que vou criar um, dб erros. Tem como dб um help?

Код:
gamemodes\gt.pwn(60) : error 017: undefined symbol "GetUserName"
gamemodes\gt.pwn(65) : error 017: undefined symbol "GetUserName"
gamemodes\gt.pwn(66) : warning 202: number of arguments does not match definition
gamemodes\gt.pwn(244) : error 017: undefined symbol "Player"
gamemodes\gt.pwn(244) : warning 215: expression has no effect
gamemodes\gt.pwn(244) : error 001: expected token: ";", but found "]"
gamemodes\gt.pwn(244) : error 029: invalid expression, assumed zero
gamemodes\gt.pwn(244) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


6 Errors.
pawn Код:
//includes
#include    <   a_samp  >
#include    <   zcmd    >
#include    <   sscanf  >
#include    <   dof2    >

//defines
#define     cor_vermelhoescuro  0x8B0000
#define     cor_verdeescuro     0x008B00

#define     DIALOG_ENTRAR       1
#define     DIALOG_REGISTRAR    2

//enum
enum enum_jogador
{
    dinheiro,
    senha,
    skin,
    matou,
    morreu,
};

//new's
new PlayerInfo[MAX_PLAYERS][enum_jogador];
new Erro[MAX_PLAYERS];
   

public OnGameModeInit()
{
    SetGameModeText("nomeservidor");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    new nomejogador[128];
    new nome[MAX_PLAYER_NAME];
    new arquivo[128];
   
    GetPlayerName(playerid, nome, 32);
    format(arquivo, 40, "Usuarios/%s.ini", nome);
    if(DOF2_FileExists(arquivo))
    {
        format(nomejogador, sizeof(nomejogador), "Seja bem-vindo novamente, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
        ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");
    }
    else
    {
        format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo ao servidor, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
        ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
    }
    return 1;
}


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


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRAR)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
        if(!response) return Kick(playerid);
        else
        {
            Player[playerid][Senha] = strval(inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", "Seja bem-vindo, %s! Digite sua senha para entrar no servidor.", "Entrar", "Sair");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            Player[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(strval(inputtext) == Player[playerid][Senha])
            {
                Player[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
                Player[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
                Player[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
            }
            else
            {
                SendClientMessage(playerid, cor_vermelhoescuro, "Vocк errou sua senha. Digite-a novamente. Lembrando, que vocк sу pode errar 5 vezes."
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, cor_vermelhoescuro, "Sua conta estб banida de nosso servidor por ter errado a senha 5 vezes errado. Contate um dos administradores via fуrum.");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}

//stock's
stock Contas(playerid)
{
    new arquivo[40], nome[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nome, 32);
    format(arquivo, 40, "Usuarios/%s.ini", name);
    return arquivo;
}

stock SalvarContas(playerid)
{
    if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        Player[playerid][Dinheiro] = GetPlayerMoney(playerid);
        DOF2_SetInt(Contas(playerid), "Senha", Player[playerid][Senha]);
        DOF2_SetInt(Contas(playerid), "Matou", Player[playerid][Matou]);
        DOF2_SetInt(Contas(playerid), "Morreu", Player[playerid][Morreu]);
        DOF2_SetInt(Contas(playerid), "Dinheiro", Player[playerid][Dinheiro]);
        DOF2_SaveFile();
    }
    return 1;
}
Reply
#6

Troca os GetUserName por GetPlayerName
Reply
#7

Quote:
Originally Posted by GuilhermeH
Посмотреть сообщение
Troca os GetUserName por GetPlayerName
Depois que eu troquei, deu este erro.

Код:
warning 202: number of arguments does not match definition
linha do erro

pawn Код:
format(nomejogador, sizeof(nomejogador), "Seja bem-vindo novamente, %s! Digite sua senha para entrar no servidor.", GetPlayerName(playerid));
Reply
#8

@EDIT
Acho que isso deve resolver, nгo chequei os codigos deireito, mas tinha alguns erros de escrita apenas.
Isso aн deve resolver(espero ^^):

Код:
//includes
#include < a_samp >
#include < zcmd >
#include < sscanf >
#include < dof2 >

//defines
#define cor_vermelhoescuro 0x8B0000
#define cor_verdeescuro 0x008B00

#define DIALOG_ENTRAR 1
#define DIALOG_REGISTRAR 2

//enum
enum enum_jogador
{
dinheiro,
senha,
skin,
matou,
morreu
};

//new's
new PlayerInfo[MAX_PLAYERS][enum_jogador];
new Erro[MAX_PLAYERS];


public OnGameModeInit()
{
SetGameModeText("nomeservidor");
//AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
DOF2_Exit();
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
new nomejogador[128];
new nome[MAX_PLAYER_NAME];
new arquivo[128];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
if(DOF2_FileExists(arquivo))
{
format(nomejogador, sizeof(nomejogador), "Seja bem-vindo novamente, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");
}
else
{
format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo ao servidor, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
}
return 1;
}


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


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRAR)
{
//if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
if(!strval(inputtext)) return format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Registrar", "Sair");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = strval(inputtext);
SalvarContas(playerid);
//ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", "Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", "Entrar", "Sair");
new nomejogador[158];
format(nomejogador, sizeof(nomejogador), " Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");

}
}
if(dialogid == DIALOG_LOGAR)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == PlayerInfo[playerid][Senha])
{
PlayerInfo[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
PlayerInfo[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
GivePlayerMoney(playerid, PlayerInfo[playerid][Dinheiro]);
}
else
{
SendClientMessage(playerid, cor_vermelhoescuro, "Vocк errou sua senha. Digite-a novamente. Lembrando, que vocк sу pode errar 5 vezes."
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, cor_vermelhoescuro, "Sua conta estб banida de nosso servidor por ter errado a senha 5 vezes errado. Contate um dos administradores via fуrum.");
Ban(playerid);
return 1;
}
}
}
}
return 1;
}

//stock's
stock Contas(playerid)
{
new arquivo[40], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
return arquivo;
}

stock SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
PlayerInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", PlayerInfo[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", PlayerInfo[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", PlayerInfo[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", PlayerInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
stock GetUserName(playerid) {
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	for(new i = 0; i < MAX_PLAYER_NAME; i++) {
        if (name[i] == '_') name[i] = ' ';
    }
	return name;
}
Reply
#9

pawn Код:
new stringlogar[158];
format(stringlogar, sizeof(stringlogar), "Seja Bem-Vindo %s", JogadorNome(playerid));
ShowPlayerDialog(playerid, SUA DIALOG DE REGISTRO , DIALOG_STYLE_PASSWORD,"Logar",stringlogar,"Logar","Sair");

forward JogadorNome(playerid);
public JogadorNome(playerid) {
    new Nome[MAX_PLAYERS];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    return true;
}
Reply
#10

Quote:
Originally Posted by GuilhermeH
Посмотреть сообщение
@EDIT
Acho que isso deve resolver, nгo chequei os codigos deireito, mas tinha alguns erros de escrita apenas.
Isso aн deve resolver(espero ^^):

Код:
//includes
#include < a_samp >
#include < zcmd >
#include < sscanf >
#include < dof2 >

//defines
#define cor_vermelhoescuro 0x8B0000
#define cor_verdeescuro 0x008B00

#define DIALOG_ENTRAR 1
#define DIALOG_REGISTRAR 2

//enum
enum enum_jogador
{
dinheiro,
senha,
skin,
matou,
morreu
};

//new's
new PlayerInfo[MAX_PLAYERS][enum_jogador];
new Erro[MAX_PLAYERS];


public OnGameModeInit()
{
SetGameModeText("nomeservidor");
//AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
DOF2_Exit();
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
new nomejogador[128];
new nome[MAX_PLAYER_NAME];
new arquivo[128];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
if(DOF2_FileExists(arquivo))
{
format(nomejogador, sizeof(nomejogador), "Seja bem-vindo novamente, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");
}
else
{
format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo ao servidor, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
}
return 1;
}


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


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_REGISTRAR)
{
//if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", "Registrar", "Sair");
if(!strval(inputtext)) return format(nomejogador, sizeof(nomejogador), "Seja muito bem-vindo, %s! Digite sua senha para se registrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "REGISTRO", nomejogador, "Registrar", "Sair");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = strval(inputtext);
SalvarContas(playerid);
//ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", "Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", "Entrar", "Sair");
new nomejogador[158];
format(nomejogador, sizeof(nomejogador), " Seja bem-//vindo, %s! Digite sua senha para entrar no servidor.", GetUserName(playerid));
ShowPlayerDialog(playerid, DIALOG_ENTRAR, DIALOG_STYLE_PASSWORD, "ENTRAR", nomejogador, "Entrar", "Sair");

}
}
if(dialogid == DIALOG_LOGAR)
{
if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
if(!response) return Kick(playerid);
else
{
PlayerInfo[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
if(strval(inputtext) == PlayerInfo[playerid][Senha])
{
PlayerInfo[playerid][Matou] = DOF2_GetInt(Contas(playerid), "Matou");
PlayerInfo[playerid][Morreu] = DOF2_GetInt(Contas(playerid), "Morreu");
PlayerInfo[playerid][Dinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
GivePlayerMoney(playerid, PlayerInfo[playerid][Dinheiro]);
}
else
{
SendClientMessage(playerid, cor_vermelhoescuro, "Vocк errou sua senha. Digite-a novamente. Lembrando, que vocк sу pode errar 5 vezes."
Erro[playerid]++;
if(Erro[playerid] == 5)
{
SendClientMessage(playerid, cor_vermelhoescuro, "Sua conta estб banida de nosso servidor por ter errado a senha 5 vezes errado. Contate um dos administradores via fуrum.");
Ban(playerid);
return 1;
}
}
}
}
return 1;
}

//stock's
stock Contas(playerid)
{
new arquivo[40], nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, 32);
format(arquivo, 40, "Usuarios/%s.ini", nome);
return arquivo;
}

stock SalvarContas(playerid)
{
if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
else
{
PlayerInfo[playerid][Dinheiro] = GetPlayerMoney(playerid);
DOF2_SetInt(Contas(playerid), "Senha", PlayerInfo[playerid][Senha]);
DOF2_SetInt(Contas(playerid), "Matou", PlayerInfo[playerid][Matou]);
DOF2_SetInt(Contas(playerid), "Morreu", PlayerInfo[playerid][Morreu]);
DOF2_SetInt(Contas(playerid), "Dinheiro", PlayerInfo[playerid][Dinheiro]);
DOF2_SaveFile();
}
return 1;
}
stock GetUserName(playerid) {
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	for(new i = 0; i < MAX_PLAYER_NAME; i++) {
        if (name[i] == '_') name[i] = ' ';
    }
	return name;
}
Obrigado! Apesar de ainda ter uns erros mнnimos, eu arrumo depois que chegar da escola. Muito obrigado!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)