Hallo,
heute stelle ich euch mein erstes veröffentlichtes Filterscript vor. Es ist ein Reportsystem, mit dem man Spieler aufgrund verschiedener Gründe mit einer Kurzbeschreibung den Admins melden kann.
Diese Beschwerde wird als Datei (oder in einer MySQL) gespeichert und falls gewünscht einem Admin gesendet.
Das Script ist sozusagen dynamisch/flexibel aufgebaut, was heißt, dass ihr selbst ohne Scriptkenntnisse ganz einfach Einstellungen treffen könnt.
Daher rührt auch der Name des Scripts (und meiner zukünftigen): dynamic Report
Außerdem sind 3 Speicherungsmethoden zulässig.
- MySQL (Plugin von Strickenkid, ist im Download inbegriffen)
- Dini (Include von DracoBlue, ist im Download inbegriffen)
- fwrite-Funktionen (benötigt keine Includes, SA:MP native Funktionen)
Wie verwendet man das Reportsystem?
- /report oder /melden - Danach den Dialogen folgen
- TAB-Menü, Spieler anklicken - Danach den Dialogen folgen (kann falls nicht gewollt deaktiviert werden)
- /showtickets, /tickets, /checkreports - Als RCON-Admin (oder im Gamemode per pVar gespeichert, s. Changelog) um alle erstellten Tickets einzusehen (erst ab v1.12 am 24.02.)
Was muss vor dem Nutzen des Scripts erledigt werden?
- Im Script muss eingestellt werden, welche Dateispeicherungsmethode verwendet wird. Dazu bitte den Anweisungen im Script folgen und die entsprechenden Zeilen ausklammern.
- Soll dini/fwrite zum Speichern verwendet werden, so muss der Pfad im Scriptfiles-Ordner angegeben und der entsprechende Ordner manuell erstellt werden.
- Wird MySQL verwendet, so muss man die Nutzerdaten angeben. Dazu ebenfalls den Anweisungen folgen.
-
Code
CREATE TABLE `reports` ( `id` INT NOT NULL AUTO_INCREMENT , `reporter` VARCHAR( 24 ) NOT NULL , `reported` VARCHAR( 24 ) NOT NULL , `reason` VARCHAR( 24 ) NOT NULL , `description` VARCHAR( 68 ) NOT NULL , `read` INT( 2 ) , `time` VARCHAR( 24 ) NOT NULL , PRIMARY KEY ( `id` ) )
Warum Padarom's Script?
Weil ich bereits seit knapp 3 1/2 Jahren im deutschen SA:MP Forum registriert bin, seitdem knapp 900 Beiträge sammeln konnte und mir daher einen recht ansehlichen Ruf erarbeitet habe, ohne wirklich negativ aufzufallen.
Außerdem habe ich das teils erfolgreiche Projekt "Cleared to Land" geleitet und dafür gescriptet (das Script gibt es in meiner Signatur zu finden). Ebenfalls geleitet und gescriptet habe ich (für) das Projekt "xReallifex" (später Dynamic Reallife, wird ggf. bald fortgesetzt).
Wie ihr also sehen könnt, habe ich einiges an Erfahrung gesammelt. Diese Erfahrung, gemischt mit dem Inhalt meines Filterscripts ergibt nur eins: Download- und Nutzpflicht!
Irren ist menschlich...
Deshalb wusste ich auch nicht bei jeder Scriptpassage genau, welchen Code ich benötige. Da ich die File-Funktionen bisher noch nie in der Praxis verwendet habe, wusste ich auch erstaunlich wenig über diese bescheid - Zumal die Dokumentation in der englischen Wiki dafür recht dürftig ausfällt. Aus diesem Grund habe ich das ein oder andere Mal nach Hilfe gefragt, und bedanke mich hierbei bei ein paar Leuten, die mir mehr oder weniger geholfen haben.
Goldkiller, BloodyEric, Y_Less (Hilfe im englischen Forum)
Changelog
dynamicReport v1.12 - 24.02.2012-19:45
+ Falls gewünscht, kann nun auch zwischen Gamemode und Filterscript kommuniziert werden, und das Adminlevel aus einer frei definierbaren PVar gelesen werden.
Damit kann eine Nachricht auch an Nicht-RCON-Admins gesendet werden.
+ Command /showtickets, /tickets, /checkreports hinzugefügt, mit dem alle Tickets ingame eingesehen werden können (und auch ingame löschbar sind).
+ Adminchat zwischen Beschwerdeschreiber und Admin eingefügt.
+ Bei der Ticketanzeige wird nun ebenfalls farbig hinterlegt, ob das Ticket bereits von einem Admin eingesehen wurde (dafür die neue MySQL-Anweisung beachten, Feld "read" hinzugefügt.)
# fwrite-Funktionen werden dynamischer erstellt. Keine Abhängigkeit von der Datei num.txt mehr.
dynamicReport v1.03 - 20.02.2012-11:45
+ MySQL-Tabelle wird (sofern MySQL ausgewählt ist) automatisch erstellt, wenn sie noch nicht existiert.
# Auswahl der Dateispeicherungsmethode geschieht jetzt über die Änderung einer Zahl (anstatt Ausklammern mehrerer #defines).
# Dialoge werden nun über ID's aufgerufen, anstatt über eine stellvertretende Bezeichnung.
- MySQL/dini-Include werden nicht mehr benötigt, wenn die fwrite-Funktion verwendet wird (aktuell nur Pastebin-Version).
VERWENDETE DIALOG-IDS: 100 bis einschließlich 107
Alles anzeigen
Download
Pastebin
Mediafire
Virustotal Scan
Lizenz:
Screenshots
Mit freundl. Grüßen
Padarom