player.Iterator

Açıklama

Sunucudaki tüm oyuncular için bir Durumsuz Yineleyici (Stateless Iterator) döndürür. Genel For Döngülerinde (Generic For-Loops) kullanılmak üzere tasarlanmıştır.
Tüm varlıklar için benzer bir fonksiyon olan ents.Iterator'a bakın.

Dahili olarak bu fonksiyon, bir C++ fonksiyonu olan player.GetAll'ın aksine, Lua'da saklanan önbelleğe alınmış değerleri kullanır. Lua'dan C++'a yapılan bir çağrı işlemi *ve* Lua'ya geri dönüş oldukça maliyetli olduğundan, bu fonksiyon player.GetAll'dan daha verimli olacaktır.

Döndürülen Değerler

1 function
ipairs'ten gelen Yineleyici Fonksiyonu.
2 sequential table<Player>
Mevcut tüm Oyuncuların tablosu. Bu, player.GetAll'ın önbelleğe alınmış bir kopyasıdır.
Bu tablonun salt okunur olması amaçlanmıştır.

Döndürülen tabloyu değiştirmek, önbellek yenilenene kadar bu fonksiyona yapılacak sonraki tüm çağrıları etkileyecektir. Bu nedenle, tüm player.GetAll kullanımlarınızı bu fonksiyonla değiştirmek istenmeyen yan etkilere neden olabilir.

Bir örnek:

-- Kötü kod. local scan_ents = select( 2, player.Iterator() ) table.Add( scan_ents, ents.FindByClass( "ttt_decoy" ) )

-- İyi kod. Tablonun bir kopyası oluşturuluyor ve kullanılıyor. local scan_ents = table.Copy( select( 2, player.Iterator() ) ) table.Add( scan_ents, ents.FindByClass( "ttt_decoy" ) )
3 number
Oyuncu tablosu için başlangıç indeksi.
Bu her zaman 0'dır ve Genel For Döngülerinin (Generic For-Loops) yararı için döndürülür.

Örnek

Bu fonksiyonun örnek bir kullanımı. Tüm oyuncuları konsola yazdırır.

for _, ply in player.Iterator() do print( ply ) end

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord