[Ajuda] gangzoni
#1

bom queria que alguem me ajudasse a colocar pra nгo dominar quando outra gang ou um memnbro da mesma gang estiver dominando.

E tem umn problema quando domina nгo fica com a cor da gang que dominou ..

todo o cуdigo:

pawn Код:
#define GZS_CRIADAS 8
new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
    "BarcoN",//1
    "BarcoP",//2
    "Golfers",//3
    "Hunter",//4
    "Industria",//5
    "PertoDoAero",//6
    "Puteiro",//7
    "Wokers"//8
};
new Float:CordGZs[GZS_CRIADAS][8] =
{
    {-1486.952,1501.404,-1347.895,1548.743}, // BarcoN
    {-2545.777,1506.446,-2253.83,1588.191}, // BarcoP
    {-2811.853,-407.9592,-2618.718,-183.0962}, // Golfers
    {-2556.915,-695.9416,-2483.524,-569.7027}, // Hunter
    {-1158.624,-774.8409,-950.0385,-565.7578}, // Industria
    {-2195.441,-1051.009,-1845.104,-688.9946}, // PertoDoAero
    {-2738.462,1319.935,-2553.053,1548.743}, // Puteiro
    {-2151.333,112.7761,-1989.101,361.3089} // Wokers
};

forward Terminar(playerid);

for(new i = 0; i <GZS_CRIADAS; i++) //Loop
{
    GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
}
   
public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
    }
    return 1;
}

CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimer("Terminar",5000,false);
    return 1;
}

stock IsAreaInGangCheck(playerid)
{
     new Float:x, Float:y, Float:z;
     GetPlayerPos(playerid, x, y, z);
     for (new i=0; i < GZS_CRIADAS; i++)
     if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500) return 1;
     return 0;
}
alguйm poderia me ajudar POR FAVOR fazer isso? X_x
Reply
#2

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
bom queria que alguem me ajudasse a colocar pra nгo dominar quando outra gang ou um memnbro da mesma gang estiver dominando.

E tem umn problema quando domina nгo fica com a cor da gang que dominou ..

todo o cуdigo:

pawn Код:
#define GZS_CRIADAS 8
new GZCriadas[GZS_CRIADAS];
new NomesGZs[GZS_CRIADAS][] =
{
    "BarcoN",//1
    "BarcoP",//2
    "Golfers",//3
    "Hunter",//4
    "Industria",//5
    "PertoDoAero",//6
    "Puteiro",//7
    "Wokers"//8
};
new Float:CordGZs[GZS_CRIADAS][8] =
{
    {-1486.952,1501.404,-1347.895,1548.743}, // BarcoN
    {-2545.777,1506.446,-2253.83,1588.191}, // BarcoP
    {-2811.853,-407.9592,-2618.718,-183.0962}, // Golfers
    {-2556.915,-695.9416,-2483.524,-569.7027}, // Hunter
    {-1158.624,-774.8409,-950.0385,-565.7578}, // Industria
    {-2195.441,-1051.009,-1845.104,-688.9946}, // PertoDoAero
    {-2738.462,1319.935,-2553.053,1548.743}, // Puteiro
    {-2151.333,112.7761,-1989.101,361.3089} // Wokers
};

forward Terminar(playerid);

for(new i = 0; i <GZS_CRIADAS; i++) //Loop
{
    GZCriadas[i] = GangZoneCreate(CordGZs[i][0], CordGZs[i][1], CordGZs[i][2], CordGZs[i][3]);
}
   
public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
    }
    return 1;
}

CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimer("Terminar",5000,false);
    return 1;
}

stock IsAreaInGangCheck(playerid)
{
     new Float:x, Float:y, Float:z;
     GetPlayerPos(playerid, x, y, z);
     for (new i=0; i < GZS_CRIADAS; i++)
     if (x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500) return 1;
     return 0;
}
alguйm poderia me ajudar POR FAVOR fazer isso? X_x

Uma coisa muito ъtil para vocк.... Clique aqui (se esse nгo ajudar....) CLIQUE NESSE
Reply
#3

Quote:
Originally Posted by focaximubh
Посмотреть сообщение
Uma coisa muito ъtil para vocк.... Clique aqui (se esse nгo ajudar....) CLIQUE NESSE
Meu filho, se vocк nгo percebe, dб pra saber que eu segui esse nй..
Reply
#4

Cara, crie uma array com os todos os players,
e quando o player estiver dominnado, armazene o id da gangzona na array criada.
Logo quando ele terminar de dominar vocк zera a array(colocando valor -1), assim
nгo dando incompatibilidade com os id's das gangzones.


Cheers.
Reply
#5

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Cara, crie uma array com os todos os players,
e quando o player estiver dominnado, armazene o id da gangzona na array criada.
Logo quando ele terminar de dominar vocк zera a array(colocando valor -1), assim
nгo dando incompatibilidade com os id's das gangzones.


Cheers.
O foda й fazer nйh..
Reply
#6

simples:
pawn Код:
new
    PlayerDominating[MAX_PLAYERS char]
;

CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid))
        return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
       
       
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    {
        if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
            GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
            PlayerDominating{playerid} = i;
        }
    }

    // Criamos um loop para percorrer todos os players.
    for(new i, e = GetMaxPlayers(); i != e; ++i){
   
        // Com a condiзгo dos mesmos estarem connectados
        if(IsPlayerConnected(i)){
       
       
            // e tambйm que o id seja diferente do player que estб dominando
            if(i != playerid){
           
           
                // Verifica se o id em questгo, estб dominando a mesma gangzona
                if(PlayerDominating{playerid} == PlayerDominating{i}){
               
               
                    // Manda mensagem
                    SendClientMessage(playerid, red, "ERROR: Alguйm de sua equipe jб estб dominando esta gangzona");
                   
                    // Zera a array de dominaзгo
                    PlayerDominating{playerid} = -1;
                    return false;
                }
            }
        }
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimerEx("Terminar",5000,false, "d", playerid);
    return 1;
}


public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
    }
    PlayerDominating{playerid} = -1;
    return 1;
}
Reply
#7

Ficou desse modo:

pawn Код:
new PlayerDominating[MAX_PLAYERS char];

CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    {
        if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
            GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
            PlayerDominating{playerid} = i;
        }
    }
    for(new i, e = GetMaxPlayers(); i != e; ++i)
    {
        if(IsPlayerConnected(i))
        {
            if(i != playerid)
            {
                if(PlayerDominating{playerid} == PlayerDominating{i})
                {
                    SendClientMessage(playerid, red, "-Erro- Jб esxiste uma gangue(ou sua gangue) dominando estб gangzone");
                    PlayerDominating{playerid} = -1;
                    return 0;
                }
            }
        }
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimerEx("Terminar",5000,false,"d",playerid);
    return 1;
}

public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
    }
    PlayerDominating{playerid} = -1;
    return 1;
}
Mais consigo digitar o comando vбrias vezes.. e quando acaba de dominar nгo seta a cor da GZ para cor do player.. Help-me?
Reply
#8

Alguйm?
Reply
#9

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
Ficou desse modo:

pawn Код:
new PlayerDominating[MAX_PLAYERS char];

CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    {
        if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
            GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
            PlayerDominating{playerid} = i;
        }
    }
    for(new i, e = GetMaxPlayers(); i != e; ++i)
    {
        if(IsPlayerConnected(i))
        {
            if(i != playerid)
            {
                if(PlayerDominating{playerid} == PlayerDominating{i})
                {
                    SendClientMessage(playerid, red, "-Erro- Jб esxiste uma gangue(ou sua gangue) dominando estб gangzone");
                    PlayerDominating{playerid} = -1;
                    return 0;
                }
            }
        }
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimerEx("Terminar",5000,false,"d",playerid);
    return 1;
}

public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
    }
    PlayerDominating{playerid} = -1;
    return 1;
}
Mais consigo digitar o comando vбrias vezes.. e quando acaba de dominar nгo seta a cor da GZ para cor do player.. Help-me?
Rs, Vejo que nгo leu oque eu coloquei de comentбrio no script nй?




pawn Код:
CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    {
        if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
            GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
            PlayerDominating{playerid} = i;
        }
    }
    for(new i, e = GetMaxPlayers(); i != e; ++i)
    {
        if(IsPlayerConnected(i))
        {
            if(i != playerid) // ATENЗГO: Se o id do player for igual ao interador I, o cуdigo abaixo serб ignorado!!, entгo caso for testar consigo mesmo , apague esta linha!!!
            {
                if(PlayerDominating{playerid} == PlayerDominating{i})
                {
                    SendClientMessage(playerid, red, "-Erro- Jб esxiste uma gangue(ou sua gangue) dominando estб gangzone");
                    PlayerDominating{playerid} = -1;
                    return 0;
                }
            }
        }
    }
    SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
    SetTimerEx("Terminar",5000,false,"d",playerid);
    return 1;
}

public Terminar(playerid)
{
    if(!IsAreaInGangCheck(playerid))
    {
        return SendClientMessage(playerid,red,"-Erro- Vocк nгo consegui domninar a gangzone, pois vocк saiu dela!");
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i=0; i < GZS_CRIADAS; i++)
    if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
    {
        GangZoneStopFlashForAll(GZCriadas[i]);
        GangZoneShowForAll(GZCriadas[i], GetPlayerColor(playerid));
    }
    PlayerDominating{playerid} = -1;
    return 1;
}
Reply
#10

Valeu cara ta de boa agora mais meu unico problema agora й assim, quando eu ponho pra dominar, e a gungue ja e do meu time aparece la dominando aguarde 2 minutos....

e tabйm nгo salva o dono da gz quando sai do jogo..

pawn Код:
CMD:dominar(playerid,params[])
{
    if(!IsAreaInGangCheck(playerid)) return SendClientMessage(playerid,red,"-Erro- Vocк nгo estб em uma gangzone!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    for(new i = 0; i < GZS_CRIADAS; i++)
    {
        if(x > CordGZs[i][0] && y > CordGZs[i][1] && x < CordGZs[i][2] && y < CordGZs[i][3]&& z < 500)
        {
            GangZoneFlashForAll(GZCriadas[i],GetPlayerColor(playerid));
            PlayerDominating{playerid} = i;
            SendClientMessage(playerid,green,"Dominando... aguarde 2 minutos na бrea.");
            SetTimerEx("Terminar",5000,false,"d",playerid);
        }
    }
    for(new i, e = GetMaxPlayers(); i != e; ++i)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerDominating{playerid} == PlayerDominating{i})
            {
                SendClientMessage(playerid,red,"-Erro- Essa gangue zone jб й de seu time!");
                PlayerDominating{playerid} = -1;
                return 0;
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)