[AJUDA]Sistema de Profisгo
#1

Olб, eu queria uma ajuda aqui •___•
Tipo eu queria fazer um sistema de profissгo que salva a prof do player, e que seja em um dialog que setasse a prof do player

Podem me dar um exemplo? (Com Cmd, Dialog e Salvamento no OnPlayerDisconect ou Similar)
Reply
#2

Olб NandoTroll,

segue abaixo o script necessбrio, leia os comentбrios em verde para melhor entender como funciona.


No comeзo de seu script:
pawn Код:
//irб definir o id de cada profissгo
#define DESEMPREGADO 0
#define PROGRAMADOR 1
#define TAXISTA 2

new Profissao[MAX_PLAYERS];//a variбvel que irб guardar a profissгo de cada player
new nome[24];//a variбvel que irб guardar o nome do player

Em OnPlayerCommandText:

pawn Код:
if(!strcmp(cmdtext, "/profissoes", true))//comando que irб ser digitado
{
    SendClientMessage(playerid, -1, "Escolha uma profissгo...");//irб mandar a mensagem
    ShowPlayerDialog(playerid, 99883, DIALOG_STYLE_LIST, "-[ Profissхes ]-", "Desempregado\nProgramador\nTaxista", "Escolher", "Cancelar");//irб enviar o dialog para escolher as profissoes
    return 0x1;
}
Em OnDialogResponse:
pawn Код:
if(dialogid == 99883)//irб verificar se o dialog atual do player й o da profissao (99883)
{
    if(response)//caso ele aperte o primeiro botгo do dialog (escolher)
    {
        if(listitem == 0) Profissao[playerid] = DESEMPREGADO, SendClientMessage(playerid, -1, "Vocк agora estб desempregado !!");
        if(listitem == 1) Profissao[playerid] = PROGRAMADOR, SendClientMessage(playerid, -1, "Vocк agora й um programador !!");
        if(listitem == 2) Profissao[playerid] = TAXISTA, SendClientMessage(playerid, -1, "Vocк agora й um taxista !!");
        //listitem == 0, caso ele escolha a primeira opзгo (desempregado)
        //listitem == 1, caso ele escolha a segunda opзгo (programador)
        //listitem == 2, caso ele escolha a terceira opзгo (taxista)
        //Profisao[playerid] = PROGRAMADOR, irб definir a profissao dele como programador
    }
}
Em OnPlayerConnect:
pawn Код:
GetPlayerName(playerid, nome, sizeof(nome));//funзгo para pegar o nome do player
format(arquivo, sizeof(arquivo), "%s.ini", nome);//irб formatar o arquivo a ser aberto
Profissao[playerid] = DOF2_GetInt(arquivo, "Profissao");//irб setar a profissao novamente quando o player entrar no server
Em OnPlayerDisconnect:
pawn Код:
GetPlayerName(playerid, nome, sizeof(nome));//funзгo para pegar o nome do player
format(arquivo, sizeof(arquivo), "%s.ini", nome);//irб formatar o arquivo a ser aberto
if(!fexist(arquivo)) DOF2_CreateFile(arquivo);//irб verificar se o arquivo existe
DOF2_SetInt(arquivo, "Profissao", Profissao[playerid]);// irб salvar a profissao do player em sua conta
DOF2_SaveFile();//irб salvar o arquivo
para verificar a profissao do player basta usar a variбvel criada Profisao[MAX_PLAYERS];

pawn Код:
if(Profissao[playerid] == TAXISTA) SendClientMessage(playerid, -1, "Sua profissao й taxista");
No exemplo estou utilizando a include DOF2 como manipulador de arquivos.


Atenciosamente,
Falcon.
Reply
#3

[Y]Falcon

Faltou so uma coisa no comando.. , se for para RP ou RPG

no topo
pawn Код:
#define COLOR_RED 0xAA3333AA   // < cor da mensagem
pawn Код:
if(!IsPlayerInRangeOfPoint(playerid,5.0,x,y,z)) // < Posiзгo onde o player deve esta para usar o comando.
        return SendClientMessage(playerid, COLOR_RED, "[Erro] Vocк nгo estб na prefeitura);
Reply
#4

Olб Sampizito,

o cуdigo й para uso geral, e cabe ao autor do tуpico a escolha de opзхes alternativas ao sistema principal, atй porque nгo tem como saber qual o Gamemode que o mesmo utiliza.


Atenciosamente,
Falcon.
Reply
#5

Blz Galera, vou testar aqui, agradeзo desde jб!
__
+REP
Reply
#6

Quote:
Originally Posted by [Y]Falcon
Посмотреть сообщение
Olб Sampizito,

o cуdigo й para uso geral, e cabe ao autor do tуpico a escolha de opзхes alternativas ao sistema principal, atй porque nгo tem como saber qual o Gamemode que o mesmo utiliza.


Atenciosamente,
Falcon.
Sim rs , mais quem sabe seja RP

Deixei minha colaboraзгo '-'
Reply
#7

Sampizito, eu ja estou usando o seu exemplo rsrs mas mesmo assim obrigado
Reply
#8

Quote:

Sampizito, eu ja estou usando o seu exemplo rsrs mas mesmo assim obrigado

Nгo tem que quк , precisa tamo aк.
Reply
#9

Deu um probleminha aqui...
eu uso o cmd pra abrir a profissao mais o dialog nao aparece '-'
Код:
if(!strcmp(cmdtext, "/profissoes", true))//comando que irб ser digitado
{
    SendClientMessage(playerid, -1, "Escolha uma profissгo...");//irб mandar a mensagem
    ShowPlayerDialog(playerid, 99883, DIALOG_STYLE_LIST, "-[ Profissхes ]-", "Desempregado\nProgramador\nTaxista", "Escolher", "Cancelar");//irб enviar o dialog para escolher as profissoes
    return 0x1;
}
Код:
if(dialogid == 99883)//irб verificar se o dialog atual do player й o da profissao (99883)
{
    if(response)//caso ele aperte o primeiro botгo do dialog (escolher)
    {
        if(listitem == 0) Profissao[playerid] = DESEMPREGADO, SendClientMessage(playerid, -1, "Vocк agora estб desempregado !!");
        if(listitem == 1) Profissao[playerid] = PROGRAMADOR, SendClientMessage(playerid, -1, "Vocк agora й um programador !!");
        if(listitem == 2) Profissao[playerid] = TAXISTA, SendClientMessage(playerid, -1, "Vocк agora й um taxista !!");
        //listitem == 0, caso ele escolha a primeira opзгo (desempregado)
        //listitem == 1, caso ele escolha a segunda opзгo (programador)
        //listitem == 2, caso ele escolha a terceira opзгo (taxista)
        //Profisao[playerid] = PROGRAMADOR, irб definir a profissao dele como programador
    }
}
Reply
#10

Olб NandoTroll,

acho que exagerei nos nъmeros do dialog. altere o 99883 para um nъmero menor por exemplo 453.
verifique se jб nгo existe um dialog com esse memso id, caso exista aumente um pouco mais o valor, desculpe-me pelo erro.


Atenciosamente,
Falcon.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)