SA-MP Forums Archive
[Ajuda] Problema em GangZones - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Problema em GangZones (/showthread.php?tid=495782)



Problema em GangZones - s4kuL - 18.02.2014

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);
        }
    }



Re: Problema em GangZones - ViniBorn - 18.02.2014

SEGUNDOS_DOMINAR й uma variбvel global?


Re: Problema em GangZones - s4kuL - 18.02.2014

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



Re: Problema em GangZones - ViniBorn - 18.02.2014

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

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


Re: Problema em GangZones - s4kuL - 18.02.2014

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;
            }
        }
    }
}



Re: Problema em GangZones - ViniBorn - 18.02.2014

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.


Re: Problema em GangZones - .FuneraL. - 18.02.2014

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?


Re: Problema em GangZones - s4kuL - 18.02.2014

Como eu poderia resolver o problema sem usar settimer?