Jass:GetLocalPlayer
| Funktion: GetLocalPlayer | |
|---|---|
| Parameter: | nothing |
| Rückgabewert: | player |
| Autor: | Blizzard |
| Quelle: | common.j |
| Synchron: | Unbekannt |
Die Funktion GetLocalPlayer() gibt als Rückgabewert den lokalen Spieler zurück. Die Besonderheit ist hierbei, dass der Rückgabewert auf jedem Computer anders ist. Für "Spieler 1" ist es "Spieler 1" für "Spieler 2" ist es "Spieler 2" und so weiter. Es ist somit die einzige Funktion, die auf allen Rechnern grundsätzlich asynchron abläuft.
Mit der Hilfe dieser Funktion lassen sich Aktionen nur auf einzelnen Rechner ausführen. Zum Beispiel kann man Multiboards nur für einen Spieler anzeigen , oder einen Sound nur für einen Spieler abspielen lassen. Werden allerdings Funktionen nur auf einem Rechner aufgerufen, die synchron ablaufen müssen, dann führt das zu einem Netsplit. Synchronisierte Funktionen sind grob gesagt alle, die den Spielverlauf beeinflussen. Wird zum Beispiel eine Einheit asynchron bewegt, wäre das die Ursache für einen Netsplit.
Code
constant native GetLocalPlayer takes nothing returns player
Anwendung
Ein Beispiel für die Verwendung:
if GetLocalPlayer() == Player(1) then // mache irgendwas endif
Der Code innerhalb der If-Anweisung wird nun nur für "Spieler 2" ausgeführt, da nur auf seinem Computer der lokale Spieler "Spieler 2" ist.
if IsPlayerInForce(GetLocalPlayer(), whichForce) then // mache irgendwas endif
Der Code innerhalb der If-Verzweigung wird nun nur für die Spieler der Streitmacht ausgeführt.
