SA-MP Forums Archive
[Ajuda] Comando Multi-Uso - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Comando Multi-Uso (/showthread.php?tid=645378)



Comando Multi-Uso - WalterSantos - 25.11.2017

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;




Re: Comando Multi-Uso - GuilhermeW - 25.11.2017

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?


Re: Comando Multi-Uso - Pool - 25.11.2017

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;




Re: Comando Multi-Uso - GuilhermeW - 25.11.2017

@Edit: Tinha entendido errado...


Re: Comando Multi-Uso - WalterSantos - 25.11.2017

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...


Re: Comando Multi-Uso - Coringa_Vilao - 25.11.2017

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...


Re: Comando Multi-Uso - Pool - 25.11.2017

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: 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)


Re: Comando Multi-Uso - WalterSantos - 25.11.2017

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...


Re: Comando Multi-Uso - Pool - 25.11.2017

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.


Re: Comando Multi-Uso - Gguiz - 25.11.2017

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.