Hallo Breadfish-User,
ich darf ihnen voller Stolz ein neues System vorstellen, welches ihnen jede Menge Vorteile verschafft.
Ich hab heute ein ganz tolles System entwickelt, welches vielen Projekten, Scriptern und Entwicklern eine Erleichterung zum Scripten werden soll.
Wieso sollte das Scripten schwer sein? Wieso sollte man bei mehreren Scripten gleich komplette GameModes versenden mit den immer wieder kommenden Gedanken, dass der andere einfach ohne jede Spur verschwindet?
Bei diesen Script geht es darum, dass mehrere Systeme zusammengefasst werden und das alles zu einen Filterscript.
Aber wieso nicht einfach für jedes System ein neues Filterscript erstellen?
Ein Grund für dieses System ist, dass man unendliche viele Systeme haben kann, bei Filterscripten nicht.
Hier ist eine grafische Vorstellungsmöglichkeit und weitere Informationen:
[tabmenu]
[tab='Grafik', 'http://cdn1.iconfinder.com/data/icons/X-Mac/web_design/png/32/graphic_design.png']
Grafik
[tab='Vorteile', 'http://cdn5.iconfinder.com/data/icons/pixelo/32/lamp.png']
Vorteile
1. Eine unbegrenzte mögliche Anzahl von Systemen (bei FS'en begrenzt)
2. Du brauchst bei den System-Dateien garnichts #include'en
3. Selbstbestimmbare System-Priorität
4. Einfaches bearbeiten von einen System
5. Man muss niemals das GameMode neustarten
6. Jedes System ist seperat zu anderen Systemen
7. Man muss nicht bei Problemen Teile von anderen Systemen preisgeben
8. Bei mehreren Scripten muss nicht gleich das ganze Script versendet werden
9. Man muss nicht jedes Callback in den System-Dateien nutzen
10. Keine Callback-Hooks nötig
11. Einfaches hinzufügen von Systemen
12. Einfaches Entfernen von Systemen
13. Statistik Möglichkeit (Anzahl der Aufrufe der einzelnen Callbacks)
14. Debug Mode
15. Die Script-Liste wird beim Start automatisch nach Priorität geordnet
16. Nach dem Kompillieren muss nur das Filterscript hochgeladen werden
[tab='Download', 'http://cdn2.iconfinder.com/data/icons/crystalproject/32x32/apps/ark.png']
[subtab='Information']
Download
Es gibt 2 Varianten vom System.
Beim 'Full-EmptyServer' wird ein kompletter Serverordner geliefert ohne speziellen Gamemode und ohne spezielle Filterscripts.
Widerrum beim 'Only-System' werden nur die benötigten Dateien gelieft, welche für das System benötigt werden.
[subtab='Full-EmptyServer-Package']
Full-EmptyServer-Package
Download via MediaFire
Download via Uploaded.to
Download via MegaUpload
Installation:
1. Datei herunterladen
2. Den Selbstentpackungsvorgang starten
3. Serverordner anpassen (normalerweise nicht nötig)
4. Server starten
[subtab='Only-System-Package']
Only-System-Package
Download via MediaFire
Download via Uploaded.to
Download via MegaUpload
Installation:
1. Datei herunterladen
2. Den Selbstentpackungsvorgang starten
3. Den gesamten Inhalt in das eigene Serververzeichnis übertragen
4. Die Datei 'server.cfg' öffnen und bei 'filterscripts' folgendes hinzufügen: '_atomwork'
5. Server starten
[tab='Anleitungen', 'http://cdn3.iconfinder.com/data/icons/49handdrawing/32x32/info.png']
[subtab='System(e) hinzufügen']
System(e) hinzufügen
Folgende Dateien werden benötigt:
• filterscripts/_atomwork.pwn
Anleitung:
1. Das Script '_atomwork.pwn' öffnen.
2. Das System einbeziehen. (Zeile(n): 4-6)
3. Zu 'gListOfScripts' gehen. Neue Zeile anlegen.
4. Falls die Priorität höher ist als die Ursprüngliche dann (Anfang: 3)
5. Die Systemanzahl erhöhen (Anfang: 3)
6. Filterscript speichern und das Script Kompillieren.
Falls Ihr noch keine System-Datei habt, dann könnt ihr sie so erstellen:
1. Die Template-Datei aufrufen:
2. Oben im Dateikopf das Makro bearbeiten
3. Dort, wo 'Name' steht, die Systembezeichnung reinschreiben von:
/
5. Datei speichern und in den folgenden Ordner reinstecken: '_atomwork/_Scripts/_Name.pwn'
6. WICHTIG! Kein Kompillieren der Systemdatei (Am Ende braucht ihr nur die _atomwork.amx hochzuladen)
Sie haben erfolgreich ein neues System hinzugefügt!
[subtab='System(e) entfernen']
System(e) entfernen
Folgende Dateien werden benötigt:
• filterscripts/_atomwork.pwn
Anleitung:
1. Das Script '_atomwork.pwn' öffnen.
2. Oben im Dateikopf die #include Zeile entfernen oder auskommentieren#include "../_atomwork/_Name.pwn"
3. Falls das Script die höchste Priorität hatte, die Maximale Prioritätsstufe runtersetzen
4. Die Systemanzahl verringern
/
5. Zu 'gListOfScripts' gehen. Die Zeile mit dem System entfernen
6. Man kann, muss man aber nicht, das System entfernen
Info: Es sollte kein Fehler ausgegeben werden, falls ihr temporär die Systemzeile unter 'gListOfScripts' auskommentiert. (Untested)
Sie haben erfolgreich ein System entfernt!
[subtab='Callback(s) hinzufügen']
Callback(s) hinzufügen
Es ist sehr einfach ein Eigenes Callback oder ein Callback von einen Plugin hinzuzufügen.
Folgende Dateien werden benötigt:
• filterscripts/_atomwork.pwn
• _atomwork/_atomscripts.pwn
Anleitung:
1. Das Script '_atomwork.pwn' öffnen.
2. Zu 'ENUM_SCORENAMES' gehen. Neue Zeile am Ende anlegen:
eOnVehicleStreamIn, eOnVehicleStreamOut, eOnDialogResponse, eOnPlayerClickPlayer,meinCallback <-- Am Ende der Auflistung kein Komma benutzen
Jetzt müsst ihr nur noch das Callback in der _atomscripts.pwn Datei hinzufügen
In der Datei ist bereits eine Vorlage, wie das Callback am Ende aussehen muss.
Sie haben erfolgreich ein neues Callback hinzugefügt!
[subtab='Callback(s) entfernen']
Callback(s) entfernen
Es ist sehr einfach ein Callback zu entfernen.
Folgende Dateien werden benötigt:
• filterscripts/_atomwork.pwn• _atomwork/_atomscripts.pwn
Anleitung:
1. Das Script '_atomwork.pwn' öffnen.
2. Zu 'ENUM_SCORENAMES' gehen. Die Callback-Zeile entfernen:
eOnVehicleStreamIn, eOnVehicleStreamOut, eOnDialogResponse, eOnPlayerClickPlayer <-- Komma nicht vergessen
Jetzt nur noch das Callback aus dem Script '_atomscripts.pwn' entfernen, falls gewünscht, und NUR das Filterscript '_atomwork.pwn' Kompillieren.
Sie haben erfolgreich ein Callback entfernt!
[tab='Quellcode', 'http://cdn5.iconfinder.com/data/icons/fatcow/32x32/source_code.png']
[subtab='Filterscript']
Filterscript
Pastebin
[subtab='Callback-Script']
Callback-Script
Pastebin
[subtab='System-Datei-Template']
System-Datei-Template
Pastebin
[tab='Videos', 'http://cdn1.iconfinder.com/data/icons/nuvola2/32x32/apps/konqsidebar_mediaplayer.png']
[subtab='Plugins verwenden']
[video]
[subtab='Callback(s) hinzufügen']
[video]
[subtab='Callback(s) entfernen']
[video]
[subtab='System(e) hinzufügen']
[video]
[subtab='System(e) entfernen']
[video]
[tab='Add für v1.1', 'http://cdn2.iconfinder.com/data/icons/basicset/plus_32.png']
Die folgende Funktion ins Script '_atomwork.pwn' einfügen und dannach das Script neukompillieren.
new gCallbackScore[ENUM_SCORENAMES];
forward getCallbackScore(ENUM_SCORENAMES:enum_field);
public getCallbackScore(ENUM_SCORENAMES:enum_field)
{
return (gCallbackScore[enum_field]);
}
/* Since v1.1:
To add a new Callback, open the _atomscripts.pwn and put there your callback.
*/
Anwendung:
new aufrufe_OnPlayerConnect = 0;
aufrufe_OnPlayerConnect = CallRemoteFunction("getCallbackScore", "i", _:eOnPlayerConnect);
Unglücklicherweise hab ich etwas dabei nicht beachtet. Ihr müsst das Script so anpassen, dass die #include Zeilen dann unter dem SCORE-Abschnitt liegen:
/* Since v1.1:
To add a new Callback, open the _atomscripts.pwn and put there your callback.
*/
#endif
#include "../_atomwork/_Scripts/_Check.pwn"
#include "../_atomwork/_Scripts/_Login.pwn"
#include "../_atomwork/_Scripts/_Register.pwn"
[/tabmenu]
Freundliche Grüße
Martez
Viel Spaß beim Nutzen & Entwickeln.