[Ajuda] gang zona dominada
#1

ola galera!

Quando 1 player domina o territorio aparece isso:

|GANGZONE| - O (Os, A, As) 'BaLLAS' invadiram e dominaram mais um territуrio!

Atй ai tudo bem!

Mas quando entra 2 player no check point ai fica aparecendo as frase a acaba fazendo um flood no chat pq vai subindo as frase sem parar. sу para depois que os player sai do check point.

|GANGZONE| - O (Os, A, As) 'BaLLAS' invadiram e dominaram mais um territуrio!
|GANGZONE| - O (Os, A, As) 'ERMANOS' invadiram e dominaram mais um territуrio!


Alguйm pode me ajudar a bloquear pra que na suba frases igual eu mostrei ae?


Codigo:

public ZoneCheckpointChecker()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(CPS_GetPlayerCheckpoint(i) > 0 && CPS_GetPlayerCheckpoint(i) <= MAX_GZS &&
gzcolors[CPS_GetPlayerCheckpoint(i)-1] != teamcolors[gTeam[i]])
{
if(cpzone[i][CPS_GetPlayerCheckpoint(i)] < 15)
{
if(cpzone[i][CPS_GetPlayerCheckpoint(i)] == 5)
{
for(new j; j < MAX_PLAYERS; j++)
{
if(gTeam[j] == CPS_GetPlayerCheckpoint(i)-1)GameTextForPlayer(j, " ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~y~Uma area de ~g~seu time ~y~esta sendo ~r~dominada~y~!", 4000, 4);
}
}
cpzone[i][CPS_GetPlayerCheckpoint(i)]++;
new tmp[10];
format(tmp, sizeof tmp, "~w~%2d/15", cpzone[i][CPS_GetPlayerCheckpoint(i)]);
GameTextForPlayer(i, tmp, 1005, 4);
GangZoneFlashForAll(CPS_GetPlayerCheckpoint(i)-1, teamcolors[gTeam[i]]);
}
else if(cpzone[i][CPS_GetPlayerCheckpoint(i)] == 15)
{
GameTextForPlayer(i, "~r~AREA DOMINADA!!!", 4000, 3);
GivePlayerMoney(i, 2000);
gzcolors[CPS_GetPlayerCheckpoint(i)-1] = teamcolors[gTeam[i]];
GangZoneStopFlashForAll(CPS_GetPlayerCheckpoint(i)-1);
GangZoneHideForAll(CPS_GetPlayerCheckpoint(i)-1);
GangZoneShowForAll(CPS_GetPlayerCheckpoint(i)-1, gzcolors[gTeam[i]]);
new string[256];
format(string, sizeof string, "|GANGZONE| - O (Os, A, As) '%s' invadiram e dominaram mais um territуrio!", teamnames[gTeam[i]]);
SendClientMessageToAll(INFO, string);
NoFlood[i] = 1;
Dominar[i] ++;
}
}
}
}
Reply
#2

Crie um SetTimerEx

Exemplo:

PHP код:
TempoDominandoSetTimerEx("Territorio"400000"i"playerid); 
Reply
#3

nao entendi mt bem
Reply
#4

tenta

new str[256];
format(str, sizeof str, "|GANGZONE| -(O, Os, A, As) '%s' Dominaram Mais um Territуrio!", teamnames[gTeam[i]][0]);
SendClientMessageToAll(COLOR_YELLOW, str);
}
}
}
}
Reply
#5

facil, tinha o mesmo probelma, a soluзгo foi fazer assim, criei uma variavel para o player dominar(para cada gangzone), quando entra no CP, eu tenho um settimer no ongamemodeinit de 1 segundo, se eles estiver dentro do CP, ele soma +1 na variavel, quando a variavel chega a 20 ele domina, mas antes seu verifico se a variavel for maior ou igual a 1, ele diz que ja ta dominando!, foi uma gambiarra, mas deu certo, simplifiquei um cуdigo do meu gm como expemplo:

EXEMPLO SIMPLIFICADO DO MEU GM:
pawn Код:
OnGameModeInit()
{
    SetTimer("Dominado",1000,1);
}
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    if(CPS_IsPlayerInCheckpoint(playerid,cpstunt))
    {
        if(corstunt == GetPlayerColor(playerid)) return SendClientMessage(playerid, VERMELHO, "[GZ.INFO]Essa Gangzone ja й Sua !");
        if(PlayerDomi[playerid][Stunt] >= 1) return SendClientMessage(playerid, VERMELHO, "[GZ.INFO]Vocк Ja esta Dominando !");
        new striing[128];
        format(striing, sizeof(striing),"[GZ.INFO]O %s esta tentando dominar o Stunt Park | Local: /gps",Nome(playerid));
        SendClientMessageToAll(GetPlayerColor(playerid), striing);
        GangZoneFlashForAll(stuntpark, GetPlayerColor(playerid));
        GameTextForPlayer(playerid, "~w~Aguarde ~r~20~w~ seg no CP", 3000, 1);
    }
    return 1;
}
pawn Код:
forward Dominado();
public Dominado()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(CPS_IsPlayerInCheckpoint(i,cpstunt))
        {
            PlayerDomi[i][Stunt] ++;
            if(PlayerDomi[i][Stunt] >= 20)
            {
                PlayerDomi[i][Stunt] = 0;
                new striing[128], org[20];
                format(striing, sizeof(striing),"[GZ.INFO]O %s dominou o Stunt Park | Local: /gps",Nome(i));
                SendClientMessageToAll(GetPlayerColor(i), striing);
                GangZoneStopFlashForAll(stuntpark);
                GangZoneHideForAll(stuntpark);
                GangZoneShowForAll(stuntpark, GetPlayerColor(i));
                corstunt = GetPlayerColor(i);
                SendClientMessage(i, -1, "[GZ.INFO] Vocк Ganhou {00FF00}$250{FFFFFF} por Dominar Essa GangZone");
                GivePlayerMoney(i, 250);
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)