[Ajuda] Ajuda com um sistema de Dialog
#1

i Aew, bom eu queria uma ajuda em um sistema de salбrio que estou querendo fazer, na GM tem um sistema de CASH e GRANA, e esse salario eu queria que desse uma quantidade de cash e grana quando usado, mas nгo da nada, sу aparece a mensagem, por que?

pawn Код:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define RECEBER 1
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(!strcmp("/receber", cmdtext, true))
    {
       ShowPlayerDialog(playerid,RECEBER,DIALOG_STYLE_LIST, "Receber Salario", "Player Normal - 100 CASH e R$3000000\nSub-Moderador - 200 CASH e R$6000000 R$\nModerador - 400 CASH e R$9000000\nSub-Administrador - 600 CASH e R$12000000\nAdministrador - 800 CASH e R$15000000\nSuper-Administrador - 1100 CASH e R$18000000\nGame Master - 1500 CASH e R$22000000\n","Receber","Sair");
       return 1;
    }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(dialogid == RECEBER)
    {
        if(response)
        {
           if(listitem == 0)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",100);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",3000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 100 CASH e R$30000000 de seu salario!");
           }
           else if(listitem == 1)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",200);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",6000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 200 CASH e R$60000000 de seu salario!");
           }
           else if(listitem == 2)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",400);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",9000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 400 CASH e R$90000000 de seu salario!");
           }
           else if(listitem == 3)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",600);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",12000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 600 CASH e R$120000000 de seu salario!");
           }
           else if(listitem == 4)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",800);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",15000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 800 CASH e R$150000000 de seu salario!");
           }
           else if(listitem == 5)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",1100);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",18000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 1100 CASH e R$180000000 de seu salario!");
           }
           else if(listitem == 6)
           {
                dini_IntSetPlayer(PlayerName(playerid),"Cash",1500);
                dini_IntSetPlayer(PlayerName(playerid),"Grana",22000000);
                SendClientMessage(playerid, COLOR_VERDE2, "Vocк recebeu 1500 CASH e R$220000000 de seu salario!");
           }
        }
    }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Eu queria que esse comando sу pudesse ser usado nos 5 primeiros dias do mкs e somente uma vez a cada mкs.
Hoje й dia 1 por exemplo, e o player usa o comando e recebe teu salбrio, e se ele tentar usar de novo no mesmo dia, ou nos dias seguintes nгo conseguir, e aparecer uma mensagem de que ele jб recebeu o salбrio.

E tambйm, eu queria que separasse os salбrios dos Players Normais e dos Administradores por cada level de Admin, e ter a permissгo de receber o salбrio de acordo com seu Level Admin.
Se o Player Normal tentar receber o salбrio do Sub-Moderador por exemplo, aparecer uma mensagem ao mesmo que ele nгo й um Sub-Moderador, assim sucessivamente.

Por favor me ajudem com isso, eu sei que й pedir de mais, mas por favor..

@Edit

O sistema das permissхes dos Admin й esse:
pawn Код:
if(IsPlayerAdmin(playerid) || Stats[playerid][LEVELADMIN]==SUBMODERADOR)
Os level's dos Admin: SUBMODERADOR - MODERADOR - SUBADMIN - ADMIN - SUPERADMIN - GM
Reply
#2

Alguйm? por favor?
Reply
#3

pawn Код:
if(!strcmp("/receber", cmdtext, true))
{
    if(!(IsPlayerAdmin(playerid) || Stats[playerid][LEVELADMIN]>=SUBMODERADOR))
        return SendClientMessage(playerid, -1, "nao podes usar este comando");
    new PT[3];
    getdate(PT[0], PT[1], PT[2]);
    switch(PT[2])
    {
        case 1..5:
            return ShowPlayerDialog(playerid,RECEBER,DIALOG_STYLE_LIST, "Receber Salario", "Player Normal - 100 CASH e R$3000000\nSub-Moderador - 200 CASH e R$6000000 R$\nModerador - 400 CASH e R$9000000\nSub-Administrador - 600 CASH e R$12000000\nAdministrador - 800 CASH e R$15000000\nSuper-Administrador - 1100 CASH e R$18000000\nGame Master - 1500 CASH e R$22000000\n","Receber","Sair");
        default: SendClientMessage(playerid, -1, "Isto so funciona entre o dia 1 e 5 de cada mes");
    }
    return 1;
}
teste ai

so que ele pode fazer sempre entre o dia 1 a 5 para nao deixar fazer mais que uma vez estude como salvar isso.
Reply
#4

pawn Код:
//Coloque isso de baixo dos dini_IntSetPlayer
GivePlayerMoney(playerid, 1000000000); //ou a quantidade que preferir
pawn Код:
//vocк poderia usar um timer para detectar os minutos por exemplo:

//no seu salvamento de dados vocк adiciona isso:
enum Stats
{
    ...,
    tempo
}
//e no seu salvamento vocк coloca igual aos outros com "Int"


forward tempo(playerid);
public tempo() {
    if(Stats[playerid][tempo] == 1)//Para nгo ocorrer bugs
    {
        Stats[playerid][tempo] = 0;
        SendClientMessage(playerid, -1, "Vocк jб pode receber seu salбrio de novo.");
    }
    return 1;
}

//ai Nos listitem embaixo de cada 1 vocк coloca isso

if(listitem == Sбlбrio Admin)//Modifique
{
    if(Stats[playerid][tempo] == 0)
    {
         if(!IsPlayerAdmin(playerid) || Stats[playerid][LEVELADMIN] != SUBMODERADOR) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para utilizar este comando!");
         {
              //Funзхes
              SetTimerEx("tempo", 2592000000, true, "i", playerid);
              Stats[playerid][tempo] = 1;
    }
    else{
         SendClientMessage(playerid, -1, "Vocк jб recebeu seu salбrio mensal sу daqui 1 mкs vocк receberб!");
    }
}
Espero ter retirado as dъvidas..

#edit

Caramba PT, vocк й rapidгo, me desculpa novamente eu estava a escrever e nгo vi Novamente...
Reply
#5

Vallew cara, foi quase isso, ai no comando vocк colocou a permissгo para maior ou igual a Submoderador, mas eu queria que todo mundo poder usar este comando, tipo assim, se o Player normal tentar receber o salбrio do Submoderador, nгo funcionar, mas se o Player normal tentar receber o salario do Player normal funcionar, e se o Submoderador tentar receber o salario do Administrador, nгo funcionar, e se o Administrador ou Submoderador, ou qualquer outro Adm tentar receber o salбrio do player normal nгo funcionar, eu queria que funcionasse cada salбrio para cada tipo de player.

Quote:
Originally Posted by PT
Посмотреть сообщение
so que ele pode fazer sempre entre o dia 1 a 5 para nao deixar fazer mais que uma vez estude como salvar isso.
Entгo se hoje for dia 1, o comando poderб ser usado diretamente? como eu iria fazer para o comando ser usado pelo player 1 vez a cada dia 1 a 5 do mкs?
Reply
#6

Usa uma variavel para ver isso e salva

pawn Код:
new uso[MAX_PLAYERS];

// quando usar
uso[playerid] = 1;
dps so salvar a variavel.

acho que vc tem de estudar um pouco, nao poderemos fazer sempre tudo por si no futuro.
Reply
#7

Pois й cara, teu tendo estudar, mas nгo entendo muito, por isso eu venho aqui pedir a ajuda, eu jб fui na Wiki, jб pesquisei sobre muita coisa, mas nгo entendo muito como funciona, e muitas das explicaзхes estгo em Inglкs, e quando eu traduzo, nгo sai muito perfeito, ai nгo entendo muito, mas quando eu vejo vocкs mexendo, criando que eu vou entendo aos poucos de como funciona, desculpa ai se incomodo muito. :/

E tenho outas duvidas, antes de me falar para eu estudar, eu jб pesquisei, li, tentei entender, mas ainda nгo entendi como funciona o enum, eu vi no site da Wiki https://sampwiki.blast.hk/wiki/Keywords:Initialisers#enum

Minha duvida й o que eu coloco no lugar dos "..."
pawn Код:
enum Stats
{
    ...,
    tempo
}
E outra coisa, e porque que quando se usa o comando, ele nгo da os Cash nem a Grana?
pawn Код:
dini_IntSetPlayer(PlayerName(playerid),"Cash",100);
dini_IntSetPlayer(PlayerName(playerid),"Banco",3000000);
Me desculpem, eu sou muito enjoado, e acho que estreзo vocкs, foi mal eu sу queria uma ajuda...
Reply
#8

1° Regra - Para se aprender a programar qualquer linguagem - Saber Inglкs
2° Regra - Tem que ter lido ao menos 1 Apostila sobre Lуgica de Programaзгo e ter feito as atividades

e tem vбrias, sу que nгo lembro de todas.

Nгo tem essa de desculpa ou enjoado, vocк se esforзando claramente saнra um 'produto' bem melhor.

E na sua enum do Jogador onde contйm Nome, Senha, Ip, Dinheiro, Level, Admin, Vip. Vocк coloca em baixo disso tempo.

Atualize-o, nгo use GMS antigos, bases antigas. E use coisas atualizadas, tal como YCMD, MySQL entre outras.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)