[Ajuda] Gangzone
#1

Estou fazendo uma gangzone prolongavel porem eu tinha feito um loop para verificar e talz dai nгo dava certo retirei ele e fiz tudo com if mas agora ele tambem nгo responde quando tem as duas orgs no quadrado!
pawn Код:
public IVagosxBallas(playerid)
{
    new string[128];
    new playername[MAX_PLAYER_NAME];
    if(provocoidlewood[playerid] == 1)
    {
        /*for(new player; player<MAX_PLAYERS; player++)
        {*/

        if(PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && PlayerInfo[playerid][pLider] == 11 || PlayerInfo[playerid][pMembro] == 11 && IsPlayerInPlace(playerid,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendVagosMessage(COLOR_WHITE, string, 1);
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendBallasMessage(COLOR_WHITE, string, 1);
            tempoidlewood = SetTimerEx("IVagosxBallas", 120000, 0, "i", playerid);
            return 1;
        }
        else if(PlayerInfo[playerid][pMembro] == 11 || PlayerInfo[playerid][pLider] == 11 && !IsPlayerInPlace(playerid,1905.908,-1810.773, 2227.908,-1530.773))
        {
            GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
            format(string, sizeof(string), "[TERRITУRIO]: Vagos conseguiram tomar o controle de Idlewood. ");
            SendClientMessageToAll(COLOR_YELLOW, string);
            GangZoneStopFlashForAll(Idlewood);
            GangZoneShowForAll(Idlewood, COR_VAGOS);
            Dominando[playerid] = 0;
            provocoidlewood[playerid] = 0;
            guerraemidlewood = 0;
            donoidlewood = 4;
            KillTimer(tempoidlewood);
            return 1;
        }
        else if(PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && !IsPlayerInPlace(playerid,1905.908,-1810.773, 2227.908,-1530.773))
        {
            GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
            format(string, sizeof(string), "[TERRITУRIO]: Ballas consegue manter o controle de Idlewood. ");
            SendClientMessageToAll(COLOR_YELLOW, string);
            GangZoneStopFlashForAll(Idlewood);
            GangZoneShowForAll(Idlewood, COR_BALLAS);
            Dominando[playerid] = 0;
            provocoidlewood[playerid] = 0;
            guerraemidlewood = 0;
            donoidlewood = 2;
            KillTimer(tempoidlewood);
            return 1;
        }
        else if(PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && PlayerInfo[playerid][pLider] == 11 || PlayerInfo[playerid][pMembro] == 11 && !IsPlayerInPlace(playerid,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O territуrio em Idlewood estб livre de Gangsters!");
            SendClientMessageToAll(COLOR_YELLOW, string);
            GangZoneStopFlashForAll(Idlewood);
            GangZoneShowForAll(Idlewood, Cinza);
            Dominando[playerid] = 0;
            provocoidlewood[playerid] = 0;
            guerraemidlewood = 0;
            donoidlewood = 0;
            KillTimer(tempoidlewood);
            return 1;
        }
    }
    return 1;
}
Explicaзгo:
quando tem 1 vagos na gz e nenhum ballas ele mostra a mensagem "Vagos consegue tomar o controle de idlewood"
quando tem 1 ballas na gz e nenhum vagos ele mostra a mensagem "Ballas consegue tomar o controle de idlewood"
quando nгo tem nenhum deles na gz ele mostra a mensagem "O territуrio de idlewood estб livre de Gangsters"
o problema й quando tem duas que ele nгo mostra nada, nem para de piscar a gz e tambem nгo manda nenhuma noticia! (O certo era mandar "O combate em Idlewood foi prolongado")

Please me ajudem ai.
Reply
#2

pawn Код:
for(new x = 0; x <= GetMaxPlayers(); x++)
{
    if(PlayerInfo[x][pMembro] == 10 && PlayerInfo[x][pMembro] == 11)
    {
        //...
    }
 }
Coloquei apenas para membros.. agora adapte ao seu sistema e coloque tambйm a parada dos lideres. Tente e me diga algo.
Reply
#3

Quote:
Originally Posted by [A]rray
Посмотреть сообщение
pawn Код:
for(new x = 0; x <= GetMaxPlayers(); x++)
{
    if(PlayerInfo[x][pMembro] == 10 && PlayerInfo[x][pMembro] == 11)
    {
        //...
    }
 }
Coloquei apenas para membros.. agora adapte ao seu sistema e coloque tambйm a parada dos lideres. Tente e me diga algo.
Mais mano nгo pode ficar tudo dentro do loop, o certo seria fazer um loop sу o prolongamento.

Explicando: Se as duas orgs estiverem dentro da GZ ele prolonga +2 minutos e retorna para ver se as duas ainda estгo dentro da gz(loop), se vagos estiver no quadrado sozinha sу ela ir mandar uma mensagem dizendo que ela conquistou, se ballas estiver sozinho no quadrado irб mandar mensagem dizendo que ballas conquistou, se nгo tiver nimguem no quadrado irб aparecer que o territorio nгo estб sob dominio de nenhum gangster!

tenta ai!
Reply
#4

Tente, sу colocar as paradas certo dentro
pawn Код:
for(new x = 0; x <= GetMaxPlayers(); x++)
{
    if(IsPlayerConnected(x))
    {
        if(PlayerInfo[x][pMembro] == 10 || PlayerInfo[x][pLider] == 10 && PlayerInfo[x][pLider] == 11 || PlayerInfo[x][pMembro] == 11 && IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
        {
            //...
        }
        else if(PlayerInfo[x][pMembro] == 11 || PlayerInfo[x][pLider] == 11 && !IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
        {
            //...
        }
        else if(PlayerInfo[x][pMembro] == 10 || PlayerInfo[x][pLider] == 10 && !IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
        {
            //...
        }
        else if(PlayerInfo[x][pMembro] == 10 || PlayerInfo[x][pLider] == 10 && PlayerInfo[x][pLider] == 11 || PlayerInfo[x][pMembro] == 11 && IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
        {
            //...
        }
    }
}
pawn Код:
!IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
Nгo seria melhor tirar o ' ! ' ? й que assim sу funciona se o jogador nгo estiver nessas coordenadas.
Reply
#5

Sim tem que ser !IsPlayerInPlace porque se nгo ele chega ali ve que o vagos ta no quadrado e termina a execuзгo!

Porque o loop unindo todos eles? Nгo seria sу o 1° :
pawn Код:
if(PlayerInfo[x][pMembro] == 10 || PlayerInfo[x][pLider] == 10 && PlayerInfo[x][pLider] == 11 || PlayerInfo[x][pMembro] == 11 && IsPlayerInPlace(x,1905.908,-1810.773, 2227.908,-1530.773))
        {
            //...
        }
Reply
#6

pawn Код:
for(new player; player<MAX_PLAYERS; player++)
    {
        if(PlayerInfo[player][pMembro] == 10 && PlayerInfo[player][pMembro] == 11 && IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendVagosMessage(COLOR_WHITE, string, 1);
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendBallasMessage(COLOR_WHITE, string, 1);
            tempoidlewood = SetTimerEx("IVagosxBallas", 120000, 0, "i", playerid);
            return 1;
        }
    }
Este e um exemplo
Reply
#7

Quote:
Originally Posted by Don_Speed
Посмотреть сообщение
pawn Код:
for(new player; player<MAX_PLAYERS; player++)
    {
        if(PlayerInfo[player][pMembro] == 10 && PlayerInfo[player][pMembro] == 11 && IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendVagosMessage(COLOR_WHITE, string, 1);
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendBallasMessage(COLOR_WHITE, string, 1);
            tempoidlewood = SetTimerEx("IVagosxBallas", 120000, 0, "i", playerid);
            return 1;
        }
    }
Este e um exemplo
Poisй Don, eu tinha feito isso e acontece que ele pulou esta parte e fez oque havia em baixo :S
Veja se esta certo como eu tinha feito:
pawn Код:
for(new player; player<MAX_PLAYERS; player++)
{
        if(PlayerInfo[player][pMembro] == 11 || PlayerInfo[player][pLider] == 11 && PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendVagosMessage(COLOR_WHITE, string, 1);
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendBallasMessage(COLOR_WHITE, string, 1);
            tempoidlewood = SetTimerEx("IVagosxBallas", 120000, 0, "i", playerid);
            return 1;
        }
}
if(PlayerInfo[playerid][pMembro] == 11|| PlayerInfo[playerid][pLider] == 11 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
     //
}
else if(PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
    //
}
else if(PlayerInfo[player][pMembro] == 11 || PlayerInfo[player][pLider] == 11 && PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
   //
}
Quando eu fiz isso eu e meu primo ficamos dentro do quadrado e ele passou direto o loop e foi para o 1° if e fez a funзгo que tinha la!
Reply
#8

Quote:
Originally Posted by ViniKuliveguisky
Посмотреть сообщение
Poisй Don, eu tinha feito isso e acontece que ele pulou esta parte e fez oque havia em baixo :S
Veja se esta certo como eu tinha feito:
pawn Код:
for(new player; player<MAX_PLAYERS; player++)
{
        if(PlayerInfo[player][pMembro] == 11 || PlayerInfo[player][pLider] == 11 && PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
        {
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendVagosMessage(COLOR_WHITE, string, 1);
            format(string, sizeof(string), "[TERRITУRIO]: O combate em Idlewood foi prolongado. ");
            SendBallasMessage(COLOR_WHITE, string, 1);
            tempoidlewood = SetTimerEx("IVagosxBallas", 120000, 0, "i", playerid);
            return 1;
        }
}
if(PlayerInfo[playerid][pMembro] == 11|| PlayerInfo[playerid][pLider] == 11 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
     //
}
else if(PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
    //
}
else if(PlayerInfo[player][pMembro] == 11 || PlayerInfo[player][pLider] == 11 && PlayerInfo[playerid][pMembro] == 10 || PlayerInfo[playerid][pLider] == 10 && !IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773))
{
   //
}
Quando eu fiz isso eu e meu primo ficamos dentro do quadrado e ele passou direto o loop e foi para o 1° if e fez a funзгo que tinha la!
Pense comigo para ele ser lider ele precisa ter a varivel membro setada ao mesmo numero do orgid!
Entгo e so usar assim.
pawn Код:
PlayerInfo[player][pMembro] == 10 && PlayerInfo[player][pMembro] == 11 && IsPlayerInPlace(player,1905.908,-1810.773, 2227.908,-1530.773)



#edit

Sempre dento do loop ja que nгo estamos falando de um jogador e sim de varios
Reply
#9

Acontece que eu fiz diferente esta parte de Membro e Lider!
eu fiz se ele for Lider entгo й Lider = numero da org no caso 10 (Vagos)
Membro seria Membro = numero da org no caso 10

Sу se eu setar ele para Membro tbm :S

@Edit mas isso tbm nгo influencia sу irб aumentar o tamanho na hora do Code.

@Off se eu for mecher nessa parte vou ter que mudar toda a estrutura das orgs, ja que nгo й nescessбrio nгo irei mecher.
Reply
#10

@Desculpa o Double Post!

olha sу, eu fiz isso ai http://pastebin.com/PTw4wFCC

Porйm ele nгo ta fazendo nada quando tem os dois dentro do territуrio :S

Coloquei pra printa no CMD a 1° parte para ver se mostrava, mais ele nem entra ali nгo!

ALGUEM AJUDA POR FAVOR!!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)