[Ajuda] Salario
#1

Como posso fazer uma verificaзгo de profissгo neste cуdigo, e apenas deixar membros de tal profissгo receberem o salario?


PHP код:
/*         FORWARDS              */
forward Salario(playerid);
/*      PUBLIC'S CRIDADAS         */
public Salario(playerid)
{
for(new 
iMAX_PLAYERS; ++i)
    {
        
SendClientMessage(i, -1"Vocк recebeu seu salario!");
        
SendClientMessage (i, -1"Seu salario й de $3000");
        
SendClientMessage (i, -1"Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor");
        
SendClientMessage (i, -1"O salario й a cada 1 hora");
        
GivePlayerMoney (i,5000);
    }
return 
1;

Reply
#2

Idente com as variaveis do seu cуdigo(de trampos)
vou dar um exemplo:
Код:
/*         FORWARDS              */ 

forward Salario(playerid); 


/*      PUBLIC'S CRIDADAS         */ 

public Salario(playerid) 
{ 
for(new i; i < MAX_PLAYERS; ++i) 
    { 
        if(Profissгo[playerid] = Bombeiro){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000); 
        }
        if(Profissгo[playerid] = PoliciaMilitar){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000); 
        }
        if(Profissгo[playerid] = Lixeiro){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000);
        }

    } 
return 1; 
}
Reply
#3

PHP код:
/*         FORWARDS              */ 
forward Salario(playerid); 
/*      PUBLIC'S CRIDADAS         */ 
public Salario(playerid

for(new 
iMAX_PLAYERS; ++i
    { 
        
SendClientMessage(i, -1"Vocк recebeu seu salario!"); 
        
SendClientMessage (i, -1"Seu salario й de $3000"); 
        
SendClientMessage (i, -1"Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        
SendClientMessage (i, -1"O salario й a cada 1 hora"); 
        if(
pInfo[i][ProfID] == ID)
        {
        
SendClientMessage(i, -1,"voce e de tal profissao e ganhou R$??");
        
GivePlayerMoney (i,5000); 
        }
    } 
return 
1

Pequena base, agora sу adaptar e fazer o resto das verificaзхes.
Reply
#4

Vlws !
Reply
#5

Quote:
Originally Posted by TheBob
Посмотреть сообщение
Idente com as variaveis do seu cуdigo(de trampos)
vou dar um exemplo:
Код:
/*         FORWARDS              */ 

forward Salario(playerid); 


/*      PUBLIC'S CRIDADAS         */ 

public Salario(playerid) 
{ 
for(new i; i < MAX_PLAYERS; ++i) 
    { 
        if(Profissгo[playerid] = Bombeiro){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000); 
        }
        if(Profissгo[playerid] = PoliciaMilitar){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000); 
        }
        if(Profissгo[playerid] = Lixeiro){
        SendClientMessage(i, -1, "Vocк recebeu seu salario!"); 
        SendClientMessage (i, -1, "Seu salario й de $3000"); 
        SendClientMessage (i, -1, "Vocк tambem ganhou um bonus  de $2000 por jogar em nosso servidor"); 
        SendClientMessage (i, -1, "O salario й a cada 1 hora"); 
        GivePlayerMoney (i,5000);
        }

    } 
return 1; 
}
vocк fez um loop nao verifico se o player esta conectado e ainda fez um verificaзгo do playerid e nao do valor do i
Reply
#6

Vocк tem duas opзхes.

A primeira й usar o Salбrio como padrгo. Sendo recebida a cada 1 hora independente do horбrio que a pessoa entrar como й em alguns GM de RPG atuais. Ai vocк usa um SetTimer normal. Caso contrбrio, se quiser botar para contar o TEMPO quando o player entrar no servidor, vocк deve utilizar SetTimerEx. O uso do Loop no SetTimer й essencial e no SetTimerEx й desprezнvel.

A verificaзгo й sу uma condiзгo, mas com ( == ) e nгo ( = ) como alguйm botou acima.
Reply
#7

Quote:
Originally Posted by JonathanFeitosa
Посмотреть сообщение
Vocк tem duas opзхes.

A primeira й usar o Salбrio como padrгo. Sendo recebida a cada 1 hora independente do horбrio que a pessoa entrar como й em alguns GM de RPG atuais. Ai vocк usa um SetTimer normal. Caso contrбrio, se quiser botar para contar o TEMPO quando o player entrar no servidor, vocк deve utilizar SetTimerEx. O uso do Loop no SetTimer й essencial e no SetTimerEx й desprezнvel.

A verificaзгo й sу uma condiзгo, mas com ( == ) e nгo ( = ) como alguйm botou acima.
Olha o que eu fiz com base:


PHP код:
/*         FORWARDS              */
forward Salario(playerid);
/*      PUBLIC'S CRIDADAS         */
public Salario(playerid//salario
{
for(new 
iMAX_PLAYERS; ++i)
    {
        if(
CarroF[playerid] == true)
        {
        
SendClientMessage(iAmarelo"-------------SALARIO--------------!");
        
SendClientMessage (iAmarelo"Salario: {FFFFFF}$900");
        
SendClientMessage (iAmarelo"O salario й a cada {FFFFFF}1 hora");
        
SendClientMessage(iAmarelo"-------------SALARIO--------------!");
        
GivePlayerMoney (i,900);
        }
        else
        {
        
SendClientMessage(iAmarelo"-------------SALARIO--------------!");
        
SendClientMessage (iAmarelo"Salario Desempregado: {FFFFFF}$200");
        
SendClientMessage (iAmarelo"O salario й a cada {FFFFFF}1 hora");
        
SendClientMessage(iAmarelo"-------------SALARIO--------------!");
        
GivePlayerMoney (i,900);
        return 
1;
        }
    } 
Ta certo? tem algo pra mudar ai pra ficar melhor?

PS: Compilei e deu certinho, testei tambйm no jogo e foi do jeito que queria. Mas se faltar alguma otimizaзгo ai, ou algum detalhe, ta ai o code pra quem quiser ajudar
Reply
#8

Seu cуdigo sу irб funcionar para o ID 0. Logo, se ele tiver emprego, todos do servidor vгo estб empregado. E se ele nгo tiver emprego, todos desempregados.

Como eu bem mencionei, jб que vocк usa o Loop, nгo precisa passar como parвmetro playerid ( mesmo caso dos settimers que eu citei )

Logo, troque essas linhas para

PHP код:
forward Salario(); 
public 
Salario()
if(
CarroF[i] == true
E na hora de chamar a funзгo bote apenas Salбrio()
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)