Ein String (Zeichenkette) ist eigentlich ein Array. In jedem Feld des Arrays kann ein Zeichen gespeichert werden. Somit ist das die Anzahl aller Zeichen.
Ich erklär dir am besten mal die Funktionsweise der Auflistung nochmal:
Die For Schleife wiederholt sich so oft, wie es die Funktion GetMaxPlayers() sagt. Wenn nun 250 Spieler das Maximum des Servers ist, welches man eingestellt hat, geht die Schleife exakt 250 mal durch.
Dabei wird die Variable i pro Durchgang um eins erhöht.
i im ersten Durchgang ==> 1
i im zweiten Durchgang ==> 2
usw.
Somit kann man jede PlayerID durchlaufen und damit auch jeden Spieler.
Man frägt also für jeden Spieler eine Variable ab. In Deinem Fall die Variable, die besagt, dass genau der Spieler, dessen playerid = i ist, ein Duell möchte.
Wenn die Variable 1 ist (If Abfrage) möchte er ein Duell und soll im Dialog angezeigt werden.
Somit macht man nun per Format() die Auflistung.
Jetzt sagen wir es gibt folgende Spieler:
ID 1 = Manyula (möchte ein Duell)
ID 2 = John_Hunter
ID 3 = Kye (möchte ein Duell)
ID 4 = Whatever
Die Schleife ist bei ID 1 angekommen: str = Manyula\n
Die Schleife ist bei ID 2 angekommen: str = Manyula\n
Die Schleife ist bei ID 3 angekommen: str = Manyula\nKye
Die Schleife ist bei ID 4 angekommen: str = Manyula\nKye
Bei der Zuweisung einer Variable gibt es einen L-Wert und einen R-Wert.
L = Links, R = Rechts
i = i+1;
Der Variable str wird somit immer der eigene Wert zugewiesen (der nach dem zweiten Durchgang "Manyula\n" beinhaltet) und der neue Wert (in dem Fall "Kye").
Somit enthält am Ende dann die Variable str = Manyula\nKye
Ich hoffe, das war jetzt verständlich genug, wenn auch sehr umfangreich.