Da ich immer wieder Fragen diesbezüglich sehe, wie das ganze funktioniert, hier nun ein Tutorial dazu. Ich gehe das ganze Anhand eines Beispielcodes durch, diese Vorgehensweise ist allerdings auf alle anderen Scripte ebenfalls anwendbar.
Tutorial: life_fnc_MP umschreiben auf remoteExec
Version: Altis Life 4.4 und neuer (vorher obsolet)
Schiwerigkeitsgrad: Fortgeschrittener (man sollte Grundlagenkenntnis besitzen)
In diesem Tutorial erlangte Fähigkeiten:
~ life_fnc_MP Funktionen auf remoteExec umschreiben und korrekt whitelisten (life_fnc_MP existiert ab Version 4.4 nicht mehr)
Rechtliche Hinweise (Copyright):
Ich untersage die Verbreitung dieser Daten und die des von mir verfassten Tutorials in anderen Foren ohne vorher mein Einverständnis dazu einzuholen.
Nun zum eigentlichen Teil dieses Posts...
Anleitung:
Gegeben sei ein Codeschipsel aus einem Tutorial für Version 3.1.4.8, der ein Script per life_fnc_MP aufruft. Da wir allerdings 4.4 verwenden, müssen wir diesen auf remoteExec umschreiben. Und das geht wie folgt:
- Wir entfernen vom Ende der Zeile das spawn life_fnc_MP
- Wir entfernen die erste und die letzte Klammer des Arrays
- Wir entfernen das letzte false und das davor stehende Komma
- Wir setzen den Namen der Funktion und den darauf folgenden Wert (kann eine Seite, eine Person oder "false" sein) in eckige Klammern
- Wir entfernen das Komma und schreiben an seine Stelle remoteExec
- Sollte nach dem Funktionsname (hier an der Stelle von "west") false stehen, ersetzen wir dieses durch 0 (Wer sich genauer damit auskennt, kann auch 2 für rein serverseitige und -2 für rein clientseitige Ausführung angeben)
- Wir achten darauf, das am Ende der Zeile ein Semikolon (;) steht!
- Wir öffnen unsere CfgRemoteExec.hpp und fügen die Funktion (wenn nicht bereits vorhanden) bei class Functions ein. Für Funktionen, die nur Clientseitig ausgeführt werden, schreiben wir nach dem Komma CLIENT, für serverseitige Funktionen SERVER und für Funktionen die auf beiden ausgeführt werden oder von denen wir es nicht genau wissen ANYONEC
Alles anzeigen#define F(NAME,TARGET) class NAME { \ allowedTargets = TARGET; \ }; #define ANYONE 0 #define CLIENT 1 #define SERVER 2 class CfgRemoteExec { class Functions { mode = 1; jip = 0; ... F(life_fnc_broadcast,ANYONE) //neuer Eintrag unserer Funktion ... }; class Commands { mode = 1; jip = 0; ... }; };
Hinweis: Das Erscheinungsbild der CfgRemoteExec.hpp kann variieren. Es ist lediglich wichtig, dass die Funktion unter class Functions steht und nicht bei class Commands
Fertig!
Das war's schon!
Ich wünsche euch Viel Spaß mit dem Tutorial