SA-MP Forums Archive
[Off] O foreach realmente funciona? - 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: [Off] O foreach realmente funciona? (/showthread.php?tid=423246)



O foreach realmente funciona? - Mr.Hardy - 17.03.2013

Fala galera, pensei em uma lуgica provavel sobre o foreach!! Quando tem 20 players o foreach faz um loop de 20 players e se entra 1 faz um loop de 21 players. Supondo que tem 50 players e sai os players 49 atй 20 vai sobra 21 players, mais sobrou o player id 50! E ele serб atingido pelo loop? nгo porque o loop vai ser de 21 players.


Re: O foreach realmente funciona? - Sky™ - 17.03.2013

sua logica me parece errada o loop funcionarб normalmente pois refarб a contagem de players.


Re: O foreach realmente funciona? - Gii - 17.03.2013

Acho que ele quis dizer que se o servidor esteja 100/100, ultimo ID serб o 99, caso saiam 80 players do servidor, porem o player de ID 99 continue online, o loop funcionara com ele ?

Se usar a lуgica por contagem de players online nгo funcionara. Porem nunca abri a include foreach para estudar, quem conhece bem ela ai poderia compartilhar esta informaзгo.

Se й que eu intendi й isso.


Re: O foreach realmente funciona? - Mr.Hardy - 17.03.2013

Mais tipo imaginamos que existem 5 jogadores online. Com o ID 0,1,2,3,4,5. e Sai o numero 3 e 4, o Loop irб ser de 3 jogadores atingindo os jogadores 0,1,2 e esquecendo o jogador ID 5.

O sistema de foreach funciona deste mйtodo:

Connect: +player
Disconnect: -player

Й uma soma, em que o loop й feito em base da soma.


Re: O foreach realmente funciona? - Sky™ - 17.03.2013

ai meu deus tem toda uma logicara que isso nгo de bug mano a contagem nгo й feita pelo id como vocк mesmo disse ..

mбs por meio de duvidas abra a foreach


Re: O foreach realmente funciona? - Mr.Hardy - 17.03.2013

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
ai meu deus tem toda uma logicara que isso nгo de bug mano a contagem nгo й feita pelo id como vocк mesmo disse ..

mбs por meio de duvidas abra a foreach
Foi da include que eu tirei esse conclusгo


Re: O foreach realmente funciona? - Sky™ - 17.03.2013

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Foi da include que eu tirei esse conclusгo
Fiz inumeros testes sobre isos antigamente. ja sabia como funciona pois a uso.^^

#isso й hora de criar topicos? ehuehu quase 03:00 #vaidurmi kk


Re: O foreach realmente funciona? - Mr.Hardy - 17.03.2013

LEK eu durmo б hora que o sei . Vocк sabe aonde eu moro por acaso?? Japгo??


Re: O foreach realmente funciona? - Maklister - 17.03.2013

й so usar IsPlayerConnected para loops normais, agora com foreach acho que a contagem й certa, ele fazer a contagem nгo pelo id e sim pela quantidade de ID'd ON


Re: O foreach realmente funciona? - CyNiC - 17.03.2013

Quote:
Originally Posted by Mr.Hardy
Посмотреть сообщение
Mais tipo imaginamos que existem 5 jogadores online. Com o ID 0,1,2,3,4,5. e Sai o numero 3 e 4, o Loop irб ser de 3 jogadores atingindo os jogadores 0,1,2 e esquecendo o jogador ID 5.

O sistema de foreach funciona deste mйtodo:

Connect: +player
Disconnect: -player

Й uma soma, em que o loop й feito em base da soma.
Nгo й simplesmente incremento e descremento de uma variбvel, й a adiзгo/remoзгo de um ID a uma variбvel.
Estude mais profundamente cada funзгo e entenderб que o que vocк diz nгo faz sentido.

pawn Код:
public OnPlayerConnect(playerid)
    {
        P:0("Iter_OnPlayerConnect: %d", playerid);
        #if defined _FOREACH_BOT
            if (!IsPlayerNPC(playerid))
            {
                Itter_Add(Player, playerid);
            }
            #if !defined FOREACH_NO_BOTS
                else
                {
                    Itter_Add(Bot, playerid);
                }
                #pragma tabsize 4
                Itter_Add(Character, playerid);
            #endif
        #else
            Itter_Add(Player, playerid);
        #endif
        if (YSI_g_sCallbacks & 2)
        {
            CallLocalFunction(YSI_gsOnPlayerConnect, YSI_gsSpecifier@i, playerid);
        }
        P:0("Iter_OnPlayerConnect end");
        return 1;
    }