Eventscripts

Bei den ersten vier Dateien handelt es sich um Eventscripts, die (falls vorhanden) automatisch zu Beginn einer Mission ausgeführt werden. Des Weiteren stehen zum Zeitpunkt der Ausführung dieser Scripts die in der Mission eingestellten Parameter bereits zur Verfügung.

Im Folgenden schauen wir noch auf zwei Eventscripts, die beim Eintreten eines bestimmten Falles ausgeführt werden. Für alle diese Scripte gilt jedoch, dass sie viel mehr Nutzungsmöglichkeiten haben, als ich hier aufführe. Es hängt einfach davon ab, was ihr umsetzen wollt. 

Sämtliche Eventscripts müssen dazu im Hauptverzeichnis eurer Mission vorliegen, um ausgeführt zu werden.

init.sqf

Die Anweisungen dieses Scripts werden beim Starten der Mission für jeden ausgeführt (Server und Client). Dies gilt auch für JIP. 

Nutzen:
- statische Variablen definieren, die jedem Client und dem Server bekannt sein müssen.

- Scripte ausführen, die auf jedem Client und dem Server laufen müssen (VORSICHT, zu viele oder die falschen Skripte führen zu drastischen Performance Einbrüchen)

initServer.sqf

Dieses Script wird nur auf dem Server ausgeführt, es ist daher das einzige der Eventscripts, welches globale Befehle beinhalten sollte (da der Server nie JIPed - also ein laufendes Spiel “joint”). 

Nutzen:

  • Skripte ausführen, die auf dem Server laufen sollen;
  • Variablen nur für den Server definieren;
  • globale Befehle wie setDamage o.ä. ausführen;
  • gesetzte Parameter verarbeiten.

 

initPlayerLocal.sqf

Dieses Script wird bei jedem Spieler lokal ausgeführt, der sich mit dem Server verbindet. Daher wird dies für alle Spieler am Beginn der Mission und jeden, der noch dazukommt, ausgeführt. 

Nutzen:

  • addAction für jeden Spieler hinzufügen;
  • in einem TvT den verschiedenen Seiten verschiedene Marker; anzeigen, oder verschiedene Briefing-Einträge erstellen
  • Loadouts je nach Klasse anpassen;
  • gesetzte Parameter verarbeiten.

 

initPlayerServer.sqf

Dieses Script wird für jeden Spieler, der der Mission beitritt, auf dem Server ausgeführt. 

Nutzen:

  • Spieler für Zeus sichtbar machen

 

Anmerkungen:

Die Init.sqf ist eine Mischung aus der InitServer.sqf und der InitPlayerLocal.sqf. Man sollte daher entweder die Init.sqf mit den nötigen if(isServer) oder if(!isServer) benutzen, oder es auf die InitServer.sqf und die InitPlayerLocal.sqf aufteilen. Von einer Mischung ist aus Gründen der Lesbarkeit abzusehen.

Pro Init.Sqf:

  • Alles in einer Datei

Pro InitServer.sqf, InitPlayerLocal.sqf:

  • Sofortiger Überblick was für den Server und was für Spieler gedacht ist;
  • geringere Fehleranfälligkeit bei JIP-Spielern.

 

onPlayerKilled.sqf

Dieses Script wird jedesmal ausgeführt, wenn ein Spieler stirbt. Es gibt unzählige Möglichkeiten, dies zu nutzen - sei es mit Abzug von Tickets (wie im Liberation-Spielmodus) oder auch dem Verändern der Respawnzeit. Hier ist vieles möglich. Beachtet jedoch, dass ihr in diesem Skript KEINE Änderung vornehmen könnt, die die neu gespawnte Einheit betreffen (zumindest solltet ihr es nicht tun).

Nutzen:

  • Respawnzeit anpassen;
  • Leiche verschwinden lassen;
  • Loadout der verstorbenen Einheit speichern.

 

onPlayerRespawn.sqf

Dieses Script wird jedesmal ausgeführt, wenn ein Spieler respawnt. Hier könnt ihr seine Ausrüstung anpassen, seinen Standort verändern und vieles mehr.

Nutzen:

  • Respawnposition verändern
  • Loadout anpassen
  • Neue Aufträge per Hint verteilen