[Ajuda] Problema com comando
#1

Boa a noite a todos!
Bem й o seguinte, eu criei um comando que depois de uma Team explodir com um portгo a equipa inimiga possa coloca-lo de novo caso nгo esteja ninguem inimigo por perto, atй ai tudo bem, o problema й que quando executo o comando no servidor recebo sempre a mensagem de comando invбlido quando estou dentro das coordenadas e quando estou fora nгo aparece nada... Se me poderem ajudar agradeзo!!

Comando:
pawn Code:
CMD:fportao(playerid, params[])
{
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 214.0234,1875.9612,13.1406))
    {
        if(Portao1Exploded && !Portao2Exploded)
        {
            if(IsEnemyOnRange())
            {
                SendClientMessage(playerid, COLOR_ERROR, "ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
            }
            else
            {
                SendClientMessageToAll(COLOR_TDM, "[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
                Portao1Exploded = false;
                Portao1 = CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            }
            //else{SendClientMessage(playerid, COLOR_ERROR, "ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");}
        }
        else
        {
            if(Portao2Exploded) { SendClientMessage(playerid, COLOR_ERROR, "[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo."); }
        }
    }
}
Funзгo IsEnemyOnRange:
pawn Code:
public IsEnemyOnRange()
{
    new bool:Is=false;
    for(new i=0; i<=MAX_PLAYERS; i++)
    {
        if(Team[i]==TERRORISTS)
        {
            if(IsPlayerInRangeOfPoint(i, 10.0, 214.0234,1875.9612,13.1406))
            {  
                Is=true;
            }
        }
    }
    return Is;
}
Obrigado!!
Reply
#2

Tente assim:
PHP Code:
CMD:fportao(playerid)
{
    if(
IsPlayerInRangeOfPoint(playerid5.0214.0234,1875.9612,13.1406))
    {
        if(
Portao1Exploded && !Portao2Exploded)
        {
            if(
IsEnemyOnRange()) return SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
            
SendClientMessageToAll(COLOR_TDM"[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
            
Portao1Exploded false;
            
Portao1 CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            
return 1;
        }
        else
        {
            if(
Portao2Exploded) return SendClientMessage(playeridCOLOR_ERROR"[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo.");
        }
    }
    return 
1;

Reply
#3

Quote:
Originally Posted by [BOPE]Seu._.Madruga
View Post
Tente assim:
PHP Code:
CMD:fportao(playerid)
{
    if(
IsPlayerInRangeOfPoint(playerid5.0214.0234,1875.9612,13.1406))
    {
        if(
Portao1Exploded && !Portao2Exploded)
        {
            if(
IsEnemyOnRange()) return SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
            
SendClientMessageToAll(COLOR_TDM"[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
            
Portao1Exploded false;
            
Portao1 CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            
return 1;
        }
        else
        {
            if(
Portao2Exploded) return SendClientMessage(playeridCOLOR_ERROR"[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo.");
        }
    }
    return 
1;

Estб igual..

@EDIT acho que o problema estб na funзгo IsEnemyOnRange, pois quando tiro a funзгo funciona bem
Reply
#4

Vocк declarou a forward?

Tente usar assim:

pawn Code:
stock IsEnemyOnRange(playerid)
{
    new bool:Is = false;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(Team[i] == TERRORISTS)
        {
            if(IsPlayerInRangeOfPoint(i, 10.0, 214.0234,1875.9612,13.1406))
            {
                Is = true;
            }
        }
    }
    return Is;
}
Reply
#5

PHP Code:
CMD:fportao(playeridparams[])
{
    if(
IsPlayerInRangeOfPoint(playerid5.0214.0234,1875.9612,13.1406))
    {
        if(
Portao1Exploded && !Portao2Exploded)
        {
            if(!
IsEnemyOnRange(playerid))
            {
                
SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
            }
            else
            {
                
SendClientMessageToAll(COLOR_TDM"[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
                
Portao1Exploded false;
                
Portao1 CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            
}
        }
        else
        {
            if(
Portao2Exploded) { SendClientMessage(playeridCOLOR_ERROR"[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo."); }
        }
    }
    else
    {
        
SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Vocк nгo estб perto do portгo !");
    }

Reply
#6

Quote:
Originally Posted by s4kuL
View Post
Vocк declarou a forward?

Tente usar assim:

pawn Code:
stock IsEnemyOnRange(playerid)
{
    new bool:Is = false;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(Team[i] == TERRORISTS)
        {
            if(IsPlayerInRangeOfPoint(i, 10.0, 214.0234,1875.9612,13.1406))
            {
                Is = true;
            }
        }
    }
    return Is;
}
Sim estб declarada e nгo funcionou assim
Reply
#7

Quote:
Originally Posted by lucas_mdr1235
View Post
PHP Code:
CMD:fportao(playeridparams[])
{
    if(
IsPlayerInRangeOfPoint(playerid5.0214.0234,1875.9612,13.1406))
    {
        if(
Portao1Exploded && !Portao2Exploded)
        {
            if(!
IsEnemyOnRange(playerid))
            {
                
SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
            }
            else
            {
                
SendClientMessageToAll(COLOR_TDM"[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
                
Portao1Exploded false;
                
Portao1 CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            
}
        }
        else
        {
            if(
Portao2Exploded) { SendClientMessage(playeridCOLOR_ERROR"[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo."); }
        }
    }
    else
    {
        
SendClientMessage(playeridCOLOR_ERROR"ERRO: {FFFFFF}Vocк nгo estб perto do portгo !");
    }

Tambйm nгo funcionou ....
Reply
#8

Ajuda?
Reply
#9

Esse portгo exploded nгo tem nenhum valor? e outra coloque um return true no final do comando, antes da ultima chave

pawn Code:
}
      return true;
}
Se nгo der teste assim
pawn Code:
CMD:fportao(playerid, params[])
{
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 214.0234,1875.9612,13.1406))
    {
        if(Portao1Exploded && !Portao2Exploded)
        {
            /*if(!IsEnemyOnRange(playerid))
            {
                SendClientMessage(playerid, COLOR_ERROR, "ERRO: {FFFFFF}Nгo podes reparar o portгo enquanto um inimigo estiver por perto!");
                return true;
            } */

            //else
            if(IsPlayerConnected(playerid))
            {
                SendClientMessageToAll(COLOR_TDM, "[TDM] - {FFFFFF}O primeiro portгo foi fechado pelos militares!");
                Portao1Exploded = false;
                Portao1 = CreateObject(8210,208.2000000,1875.2000000,13.2000000,0.0000000,180.0000000,180.0000000); //object(vgsselecfence12) (1)
            }
        }
        else
        {
            if(Portao2Exploded) { SendClientMessage(playerid, COLOR_ERROR, "[ERRO] - {FFFFFF}Primeiro precisas de fechar o segundo portгo."); return true;}
        }
    }
    else
    {
        SendClientMessage(playerid, COLOR_ERROR, "ERRO: {FFFFFF}Vocк nгo estб perto do portгo !");
        return true;
    }
    return true;
}
se nгo der assim o problema serб na public IsEnemyOnRange, se nгo der poderб ser a variбvel PortaoExploded
Reply
#10

Ok, quando tiver disponibilidade testarei, obrigado.
Mas sу 2 coisas: return 1 й igual a return true e a variбvel portaoExploded nгo tem nada de mal pois, eu a uso em outros comandos e funзoes e estб tudo certa, inclusive atй jб tinha criado um comando para debug e estб tudo ok. Mas mais uma vez obrigado mais tarde postarei resultados.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)