[Ajuda] Comando Multi-Uso
#1

Bom queria saber como um comando tem funзхes diferentes, ah nгo sei bem explica tipo, queria fazer o /localizar funfar para Taxista e Policia, Sу que para poder localizar sendo taxista й liberado, sу que para policial o jogador tem que estб procurado, quero saber como faz isso...

PHP код:
     if(PlayerDados[playerid][Profissao] == PMILITAR)
    {
        
format(StringContassizeof(StringContas), PASTA_CONTASPlayerName(ID));
        if(
sscanf(params"u"ID)) return SendClientMessage(playeridVERMELHO"Use: /Localizar (id)");
        if(
IsPlayerConnected(ID))
        {
            if(
DOF2_GetInt(StringContas"Procurado") > 0)
            {
                if(
Localizando[playerid] == 0)
                 {
                    
Localizando[playerid] = 1;
                    
Localizado[ID] = 1;
                    
SendClientFormat(playeridGetPlayerColor(playerid), "Vocк estб localizando o(a) jogador(a) %s[%d]."PlayerName(ID), ID);
                    
TimerLocalizar[playerid] = SetTimerEx("LocalizarPlayer"500true"ii"playeridID);
                    return 
1;
                 }
                else 
SendClientMessage(playeridVERMELHO"Vocк jб estб localizando alguйm!");
                return 
1;
            }
            else 
SendClientMessage(playeridVERMELHO"Jogador nгo estб sendo procurado pela polнcia!");
        }
        else 
SendClientMessage(playeridVERMELHO"Jogador nгo conectado!");
        return 
1;
    } 
E o comando /localizar
PHP код:
CMD:localizar(playeridparams[])
{
    new 
ID;
    
format(StringContassizeof(StringContas), PASTA_CONTASPlayerName(ID));
    if(
PlayerDados[playerid][Admin] > || PlayerDados[playerid][Profissao] == TAXISTA)
    {
        if(
sscanf(params"u"ID)) return SendClientMessage(playeridVERMELHO"Use: /Localizar (id)");
        if(
IsPlayerConnected(ID))
        {
            if(
Localizando[playerid] == 0)
            {
                
Localizando[playerid] = 1;
                
Localizado[ID] = 1;
                
SendClientFormat(playeridGetPlayerColor(playerid), "Vocк estб localizando o(a) jogador(a) %s[%d]."PlayerName(ID), ID);
                
TimerLocalizar[playerid] = SetTimerEx("LocalizarPlayer"500true"ii"playeridID);
                return 
1;
            }
            else 
SendClientMessage(playeridVERMELHO"Vocк jб estб localizando alguйm!");
            return 
1;
        }
        else 
SendClientMessage(playeridVERMELHO"Jogador nгo conectado!");
        return 
1;
    }
    else 
SendClientMessage(playeridVERMELHO"Vocк nгo tem permissгo!");
    return 
1;

Reply
#2

Vocк quer liberar o comando para os dois, e tipo, para taxista nгo precisar verificar nada, e para policial sу consegue se tiver procurado, й isso?
Reply
#3

Simples, utilize as suas variбveis criadas e faзa as abordagens com condicionais.
Ex.:
PHP код:
#include <a_samp>
#include <pawn.cmd>

new bool:Policial[MAX_PLAYERS];
new 
bool:Taxista[MAX_PLAYERS];

CMD:localizar(playerid)
{
    if(
Policial[playerid])
    {
        
/* Funзгo para o policial */
    
}
    else
    {
        if(
Taxista[playerid])
        {
            
/* Funзгo para o taxista */
        
}
    }
    return 
true;

Reply
#4

@Edit: Tinha entendido errado...
Reply
#5

Quote:
Originally Posted by GuilhermeW
Посмотреть сообщение
Vocк quer liberar o comando para os dois, e tipo, para taxista nгo precisar verificar nada, e para policial sу consegue se tiver procurado, й isso?
Sim, sу isso que muda.. Mas quero saber tambйm como o comando efetuar multi tarefas tipo esse /localizar, /carregar, /descarregar... entendeu...
Reply
#6

Quote:
Originally Posted by Pool
Посмотреть сообщение
Simples, utilize as suas variбveis criadas e faзa as abordagens com condicionais.
Ex.:
PHP код:
#include <a_samp>
#include <pawn.cmd>
new bool:Policial[MAX_PLAYERS];
new 
bool:Taxista[MAX_PLAYERS];
CMD:localizar(playerid)
{
    if(
Policial[playerid])
    {
        
/* Funзгo para o policial */
    
}
    else
    {
        if(
Taxista[playerid])
        {
            
/* Funзгo para o taxista */
        
}
    }
    return 
true;

acho desnecessбrio o uso do else...
Reply
#7

Quote:
Originally Posted by Coringa_Vilao
Посмотреть сообщение
acho desnecessбrio o uso do else...
O else (if) vai servir como a funзгo de "caso contrбrio", para dessa forma, caso a condicional nгo for verdadeira em o jogador ser policial, a funзгo do else vai retornar para a funзгo do taxista.
Pode ser utilizada da forma que eu fiz.:
PHP код:
new bool:Policial[MAX_PLAYERS];
new 
bool:Taxista[MAX_PLAYERS];
CMD:localizar(playerid)
{
    if(
Policial[playerid])
    {
        
/* Funзгo para o policial */
    
}
    else
    {
        if(
Taxista[playerid])
        {
            
/* Funзгo para o taxista */
        
}
    }
    return 
true;

Ou dessa forma:
PHP код:
new bool:Policial[MAX_PLAYERS];
new 
bool:Taxista[MAX_PLAYERS];
CMD:localizar(playerid)
{
    if(
Policial[playerid])
    {
        
/* Funзгo para o policial */
    
}
    else if(
Taxista[playerid])
    {
        
/* Funзгo para o taxista */
    
}
    return 
true;

Ou, um pouco de exemplo mais entendнvel.
Vamos para a explicaзгo com um pouco de objetividade.
Nгo serei prolongado com as palavras, irei dar resultados resumidos.

Se o jogador for policial, ele receberб 100 de vida, e se for taxista, receberб 50.
PHP код:
new bool:Policial[MAX_PLAYERS];
new 
bool:Taxista[MAX_PLAYERS];
CMD:localizar(playerid)
{
    if(
Policial[playerid])
    {
        
SetPlayerHealth(playerid100);
    }
    else if(
Taxista[playerid])
    {
        
SetPlayerHealth(playerid50);
    }
    return 
true;

O uso do else if й pra fazer uma condicional extra, uma verificaзгo extra...

Resumo do que a execuзгo fez:
  • Irб fazer a verificaзгo se o jogador й um policial, e executou as funзхes dentro das chaves.
    PHP код:
    if(Policial[playerid]) 
  • Caso contrбrio, ele irб verificar se o jogador й um taxista, e se caso for um taxista, ele irб retornar com as funзхes de taxista.
    PHP код:
    else if(Taxista[playerid]) 
Ou seja, o amigo quis que o comando fosse para duas condiзхes e nгo uma. (Atй o prуprio tнtulo do tуpico diz isso ao leitor)
Reply
#8

Bom cara entendi um pouco, mas agora eu te pergunto e se eu fizesse isso no /carregar por exemplo, nгo sу suas 2 profissхes...
Reply
#9

Quote:
Originally Posted by WalterSantos
Посмотреть сообщение
Bom cara entendi um pouco, mas agora eu te pergunto e se eu fizesse isso no /carregar por exemplo, nгo sу suas 2 profissхes...
Sу for mais, faзa uma condicional utilizando os operadores: "||" e "&&".
Leia um pouco e entenda a lуgica.: Tabela da verdade

@Coringa_Vilao
Acho que entendi o que vocк quis dizer, vocк nгo quis que eu utilizasse o else podendo utilizar os operadores de condicionais, me desculpe.
Reply
#10

Quote:
Originally Posted by WalterSantos
Посмотреть сообщение
Bom queria saber como um comando tem funзхes diferentes, ah nгo sei bem explica tipo, queria fazer o /localizar funfar para Taxista e Policia, Sу que para poder localizar sendo taxista й liberado, sу que para policial o jogador tem que estб procurado, quero saber como faz isso...

PHP код:
     if(PlayerDados[playerid][Profissao] == PMILITAR)
    {
        
format(StringContassizeof(StringContas), PASTA_CONTASPlayerName(ID));
        if(
sscanf(params"u"ID)) return SendClientMessage(playeridVERMELHO"Use: /Localizar (id)");
        if(
IsPlayerConnected(ID))
        {
            if(
DOF2_GetInt(StringContas"Procurado") > 0)
            {
                if(
Localizando[playerid] == 0)
                 {
                    
Localizando[playerid] = 1;
                    
Localizado[ID] = 1;
                    
SendClientFormat(playeridGetPlayerColor(playerid), "Vocк estб localizando o(a) jogador(a) %s[%d]."PlayerName(ID), ID);
                    
TimerLocalizar[playerid] = SetTimerEx("LocalizarPlayer"500true"ii"playeridID);
                    return 
1;
                 }
                else 
SendClientMessage(playeridVERMELHO"Vocк jб estб localizando alguйm!");
                return 
1;
            }
            else 
SendClientMessage(playeridVERMELHO"Jogador nгo estб sendo procurado pela polнcia!");
        }
        else 
SendClientMessage(playeridVERMELHO"Jogador nгo conectado!");
        return 
1;
    } 
E o comando /localizar
PHP код:
CMD:localizar(playeridparams[])
{
    new 
ID;
    
format(StringContassizeof(StringContas), PASTA_CONTASPlayerName(ID));
    if(
PlayerDados[playerid][Admin] > || PlayerDados[playerid][Profissao] == TAXISTA)
    {
        if(
sscanf(params"u"ID)) return SendClientMessage(playeridVERMELHO"Use: /Localizar (id)");
        if(
IsPlayerConnected(ID))
        {
            if(
Localizando[playerid] == 0)
            {
                
Localizando[playerid] = 1;
                
Localizado[ID] = 1;
                
SendClientFormat(playeridGetPlayerColor(playerid), "Vocк estб localizando o(a) jogador(a) %s[%d]."PlayerName(ID), ID);
                
TimerLocalizar[playerid] = SetTimerEx("LocalizarPlayer"500true"ii"playeridID);
                return 
1;
            }
            else 
SendClientMessage(playeridVERMELHO"Vocк jб estб localizando alguйm!");
            return 
1;
        }
        else 
SendClientMessage(playeridVERMELHO"Jogador nгo conectado!");
        return 
1;
    }
    else 
SendClientMessage(playeridVERMELHO"Vocк nгo tem permissгo!");
    return 
1;

Vocк mandou duas funзхes, o de cima provavelmente й um comando diferente do de baixo, certo?

@Edit

Eu ainda nгo entendi muito bem o que vocк quer, aparentemente quer juntar as duas funзхes a cima em uma sу, pelo que eu entendi й isso.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)