[Ajuda] Problema em GangZones
#1

Bom, li um tutorial e fiz meu prуprio sistema de dominar gangzones.. atй lб tudo bem.

Sу que hб um problema, eu tambйm fiz um sistema de Configurar o servidor in-game no meu scritp, porem quando eu vou configurar os segundos para dominar gangzones, nгo й alterado corretamente.

Ex: Se eu coloco lб 5 segundos, na verdade й "10", quando os players vгo dominar..

RESUMINDO: o nъmero que eu digito para alterar, se "multiplica".


pawn Код:
//Variaveis

new
    MEMBROS_DOMINAR = 3,
    SEGUNDOS_DOMINAR = 120
;

//Essa й a parte da minha callback ZoeUpdate(); onde estб o problema
if(GetMembersInZone(z, ZoneTakeOverTeam[z]) > 0)
            {
                ZoneTakeOverTime[z] ++;
                if(ZoneTakeOverTime[z] >= SEGUNDOS_DOMINAR) //tempo para dominar a ganzone
                {
                    GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
                    GangZoneShowForAll(ZoneInfo[z][z_id], GetTeamColor(ZoneTakeOverTeam[z]));
                    ZoneInfo[z][z_team] = ZoneTakeOverTeam[z];
                    for(new i=0; i<MAX_PLAYERS; i++)
                    {
                        if(IsPlayerConnected(i))
                        {
                            if(GetPlayerZone(i) == z && pTeam[i] == ZoneTakeOverTeam[z])
                            {
                                GameTextForPlayer(i, "~r~] ~g~Gangzone dominada ~r~] ~w~~n~~n~+1 Score~n~+5.000$", 8000, 3);
                                SetPlayerScore(i, GetPlayerScore(i) + 1);
                                GivePlayerMoney(i, 5000);

                            }
                        }
                    }
                    ZoneTakeOverTeam[z] = -1;
                    ZoneTakeOverTime[z] = 0;
                }
            }
            else
                ZoneTakeOverTeam[z] = -1;
                GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
                ZoneTakeOverTime[z] = 0;
            }

//DialogResponse
if(dialogid == 5969)
    {
        if(!response)
        {
            ServerConfig(playerid);
        }
        else
        {
            new stringa[150];

            SEGUNDOS_DOMINAR = strval(inputtext);

            format(stringa,sizeof(stringa),"Segundos para dominar gangzones alterado para %d",SEGUNDOS_DOMINAR);
            SendClientMessage(playerid,cor_laranja,stringa);
           
            ServerConfig(playerid);
        }
    }
Reply
#2

SEGUNDOS_DOMINAR й uma variбvel global?
Reply
#3

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
SEGUNDOS_DOMINAR й uma variбvel global?
Sim.
Reply
#4

Mostra a linha de cуdigo onde vocк utiliza SEGUNDOS_DOMINAR no sistema.

Nessa pedaзo que vocк mandou, nгo vi nada errado.
Reply
#5

Nгo uso em nenhum outro lugar.
Toda a CallBack:



pawn Код:
forward ZoneUpdate();
public ZoneUpdate()
{
    for(new z=0; z < MAX_ZONES; z++)
    {
        if(ZoneTakeOverTeam[z] == -1)
        {
            for(new t=0; t < MAX_TEAMS; t++)
            {
                if(t == ZoneInfo[z][z_team]) continue;
                if(GetMembersInZone(z, t) >= MEMBROS_DOMINAR) //numero minimo de membros para comeзar a dominar
                {
                    ZoneTakeOverTeam[z] = t;
                    GangZoneFlashForAll(ZoneInfo[z][z_id], GetTeamColor(t));
                    ZoneTakeOverTime[z] = 0;
                }
            }
        }
        else
        {
            if(GetMembersInZone(z, ZoneTakeOverTeam[z]) > 0)
            {
                ZoneTakeOverTime[z] ++;
                if(ZoneTakeOverTime[z] >= SEGUNDOS_DOMINAR) //tempo para dominar a ganzone
                {
                    GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
                    GangZoneShowForAll(ZoneInfo[z][z_id], GetTeamColor(ZoneTakeOverTeam[z]));
                    ZoneInfo[z][z_team] = ZoneTakeOverTeam[z];
                    for(new i=0; i<MAX_PLAYERS; i++)
                    {
                        if(IsPlayerConnected(i))
                        {
                            if(GetPlayerZone(i) == z && pTeam[i] == ZoneTakeOverTeam[z])
                            {
                                GameTextForPlayer(i, "~r~] ~g~Gangzone dominada ~r~] ~w~~n~~n~+1 Score~n~+5.000$", 8000, 3);
                                SetPlayerScore(i, GetPlayerScore(i) + 1);
                                GivePlayerMoney(i, 5000);

                            }
                        }
                    }
                    ZoneTakeOverTeam[z] = -1;
                    ZoneTakeOverTime[z] = 0;
                }
            }
            else
            {
                ZoneTakeOverTeam[z] = -1;
                GangZoneStopFlashForAll(ZoneInfo[z][z_id]);
                ZoneTakeOverTime[z] = 0;
            }
        }
    }
}
Reply
#6

Uй, entгo nгo faz sentido.

Vocк simplesmente criou a variбvel (new SEGUNDOS_DOMINAR) , e fez um jeito de poder alterб-la (OnDialogResponse), mas nгo usou.
Reply
#7

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Uй, entгo nгo faz sentido.

Vocк simplesmente criou a variбvel (new SEGUNDOS_DOMINAR) , e fez um jeito de poder alterб-la (OnDialogResponse), mas nгo usou.
Serб que talvez nгo seria melhor aplicar a variбvel SEGUNDOS_DOMINAR em um settimer, e digitando entгo o valor da variбvel em MS (ex: 10000, 10 segundos), serб que talvez nгo funcionaria melhor?
Reply
#8

Como eu poderia resolver o problema sem usar settimer?
Reply


Forum Jump:


Users browsing this thread: 7 Guest(s)