Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Copyright
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- Das Copyright darf unter keinen Umständen entfernt werden.
- Falls Änderungen vorgenommen werden oder sogar das Copyright
- entfernt wird, sehe ich mich gezwungen rechtliche Schritte
- einzuleiten und dies zur Anzeige zubringen.
- Jegliche Weitergabe des Scriptes ob nun Verkauf oder Download
- wird ebenfalls zur Anzeige gebracht.
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Scripter
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- [uL]cHaOsFaTz
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Aktuelle Version
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- Die aktuelle Version ist 1.0 Beta
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Bugs
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- * wenn Spieler sich selber umbringt wird 255 angezeigt ( sollte aber jeder kennen )
- * Logs werden nicht sortiert in der Datenbank ( am Besten selber sortieren nach Uhrzeit )
- * beim Dialog sagt er nicht, das es bereits aktivert wurde ( baue noch eine bessere Funktion ein )
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Aktueller Stand
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- 17.10.2011 04:16 Zeilen 354 * neue .pwn Datei erstellt
- 17.10.2011 04:32 Zeilen 380 * unwichtige public Bereiche entfernt und das Logsystem angefangen
- 17.10.2011 06:27 Zeilen 439 * alles soweit getestet und soweit für gut erklärt ;)
- 17.10.2011 06:31 Zeilen 364 * ein paar Feinheiten noch vorgenommen und ausgiebig testet
- 17.10.2011 06:50 Zeilen 369 * Abfragen verbessert und Dialog eingefügt zum aktivieren und deaktivieren der Logs
- 17.10.2011 07:11 Zeilen 330 * die Debugfunktion eingefügt, Code optimiert und alles nochmals getestet
- 17.10.2011 07:32 Zeilen 356 * noch einen Bug behoben und noch eine neue Funktion eingefügt
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Datenbankstruktur
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- Ihr benötigt KEINE Datenbankdatei von mir, da das System beim Laden prüft, ob die
- Struktur vorhanden ist. Falls die nicht da ist, erstellt das System die automatisch.
- */
- #include <a_samp> // Standard SAMP
- #include <a_mysql> // MYSQL Datenbankverbindung
- #include <ocmd> // vereinfachte Befehle
- #pragma tabsize 0 // Zeileneinrückung ignorieren
- #define MYSQL_Hostname "IPADRESSE" // IP Adresse oder Hostname
- #define MYSQL_Benutzername "BENUTZERNAME" // Benutzername der Datenbank
- #define MYSQL_Datenbank "DATENBANK" // Name der Datenbank
- #define MYSQL_Passwort "PASSWORT" // Passwort der Datenbank
- #define DIALOG_Logsystem_Hauptmenue 1 // DialogID 1 ( falls schon verwendet wird, bitte ändern
- #define DIALOG_Logsystem_Einstellungen 2 // DialogID 2 ( falls schon verwendet wird, bitte ändern
- #define FARBE_Gruen 0x9EC73DAA
- #define FARBE_Rot 0xFF0000FF
- #define Maximale_Logs 2500 // Anzahl der maximalen Logs die gespeichert werden können
- new Logsystem_String[255],Logsystem_IPAdresse[32],Logsystem_MYSQLStruktur[512];
- new Jahr,Monat,Tag,Stunde,Minute,Sekunde;
- forward Logsystem_Struktur();
- forward Warnung_Logs();
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnFilterScriptInit()
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- MYSQL_Datenbankverbindung();
- mysql_debug(0); // 0 = Debug deaktiviert 1 = Debug aktiviert ( hilfreich wenn Fehler auftreten )
- print("——————————————————————————————————————————————————————————————————————\n");
- print("Logsystem von [uL]cHaOsFaTz\nAktuelle Version : 1.0 Beta\n");
- print("——————————————————————————————————————————————————————————————————————\n");
- print("Logsystem wurde erfolgreich geladen und kann nun verwendet werden.\n");
- print("——————————————————————————————————————————————————————————————————————");
- Logsystem_Struktur(); // erstellt die Datenbankstruktur falls noch nicht vorhanden
- new playerid;
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','keiner','Server','Server wurde gestartet','keine')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnFilterScriptExit()
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnPlayerConnect(playerid)
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','Verbindung','Spieler verbindet sich','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnPlayerDisconnect(playerid, reason)
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','Verbindung','Spieler hat Server verlassen','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnPlayerDeath(playerid, killerid, reason)
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','%d','%s','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),reason,Spielername(killerid),Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnPlayerText(playerid, text[])
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','Chat','%s','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),text,Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnPlayerCommandText(playerid, cmdtext[])
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','Befehl','%s','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),cmdtext,Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnRconCommand(cmd[])
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- new playerid;
- GetPlayerIp(playerid,Logsystem_IPAdresse,sizeof(Logsystem_IPAdresse));
- gettime(Stunde, Minute, Sekunde);
- getdate(Jahr, Monat, Tag);
- mysql_query("SELECT NULL FROM logsystem");
- mysql_store_result();
- new rows = mysql_num_rows();
- mysql_free_result();
- new LogsystemID = rows++;
- if(LogsystemID < Maximale_Logs)
- {
- MYSQL_Ueberpruefung();
- format(Logsystem_String, sizeof(Logsystem_String), "INSERT INTO logsystem (ID,Datum,Uhrzeit,Spielername,Funktion,Aktion,IP) VALUES ('%d','%02d.%02d.%d','%02d:%02d:%02d','%s','RCON','%s','%s')",LogsystemID,Tag,Monat,Jahr,Stunde,Minute,Sekunde,Spielername(playerid),cmd,Logsystem_IPAdresse);
- mysql_query(Logsystem_String);
- } else { print("Es sind zu viele Logs vorhanden."); print("Bitte lösche ein paar Logs oder ändere die Anzahl der Logs im Script.");}
- return 1;
- }
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- {
- if (dialogid == DIALOG_Logsystem_Hauptmenue && response) { Logsystem_Einstellungen(playerid); }
- if (dialogid == DIALOG_Logsystem_Einstellungen && response)
- {
- if(listitem==0) // Logsystem aktivieren
- {
- if(mysql_connect(MYSQL_Hostname, MYSQL_Benutzername, MYSQL_Datenbank, MYSQL_Passwort))
- {
- mysql_connect(MYSQL_Hostname, MYSQL_Benutzername, MYSQL_Datenbank, MYSQL_Passwort);
- SendClientMessage(playerid, FARBE_Gruen, "Das Logsystem wurde erfolgreich aktiviert.");
- } else { SendClientMessage(playerid, FARBE_Rot, "Das Logsystem wurde bereits aktiviert.");}
- }
- if(listitem==1) // Logsystem deaktivieren
- {
- if(mysql_close(1))
- {
- mysql_close(1); // * mir ist aktuell keine bessere Möglichkeit eingefallen ;)
- SendClientMessage(playerid, FARBE_Gruen, "Das Logsystem wurde erfolgreich deaktiviert.");
- } else { SendClientMessage(playerid, FARBE_Rot, "Das Logsystem wurde bereits deaktivert.");}
- }
- }
- return 1;
- }
- stock MYSQL_Datenbankverbindung()
- {
- mysql_connect(MYSQL_Hostname, MYSQL_Benutzername, MYSQL_Datenbank, MYSQL_Passwort);
- if(mysql_ping() == 1)
- {
- print("Die Verbindung zur MYSQL Datenbank wurde erfolgreich hergestellt!"); return true;
- } else { print("Es konnte keine Verbindung zur MYSQL Datenbank hergestellt werden!"); print("Es wird erneut versucht eine Verbindung zur MYSQL Datenbank herzustellen!");
- mysql_connect(MYSQL_Hostname, MYSQL_Benutzername, MYSQL_Datenbank, MYSQL_Passwort);
- if(mysql_ping() == 1) { print("Es konnte im 2 Versuch eine Verbindung zur MYSQL Datenbank hergestellt werden!"); return true;
- } else { print("Es konnte keine Verbindung zur MYSQL Datenbank hergestellt werden!"); print("Der Server wird nun beendet"); SendRconCommand("exit"); return true; }
- }
- }
- MYSQL_Ueberpruefung()
- {
- if(mysql_ping() == -1)
- mysql_connect(MYSQL_Hostname, MYSQL_Benutzername, MYSQL_Datenbank, MYSQL_Passwort);
- }
- public Logsystem_Struktur()
- {
- format(Logsystem_MYSQLStruktur,sizeof(Logsystem_MYSQLStruktur),"CREATE TABLE IF NOT EXISTS `logsystem` (`ID` int(4) NOT NULL,`Datum` varchar(12) NOT NULL,`Uhrzeit` varchar(10) NOT NULL,`Spielername` varchar(32) NOT NULL,`Funktion` varchar(256) NOT NULL,`Aktion` varchar(256) NOT NULL,`IP` varchar(16) NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
- mysql_query(Logsystem_MYSQLStruktur);
- }
- stock Spielername(playerid)
- {
- new NamedesSpieler[MAX_PLAYER_NAME];
- GetPlayerName(playerid, NamedesSpieler, MAX_PLAYER_NAME);
- return NamedesSpieler;
- }
- stock Logsystem_Einstellungen(playerid)
- {
- ShowPlayerDialog(playerid, DIALOG_Logsystem_Einstellungen, DIALOG_STYLE_LIST, "{FF0000}Logsystem", "Logsystem aktivieren\nLogsystem deaktivieren", "Weiter", "Abbrechen");
- return 1;
- }
- stock Logsystem_Hauptmenue(playerid)
- {
- ShowPlayerDialog(playerid, DIALOG_Logsystem_Hauptmenue, DIALOG_STYLE_LIST, "{FF0000}Logsystem", "Einstellungen", "Weiter", "Abbrechen");
- return 1;
- }
- ocmd:logsystem(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))
- { // prüft ob der Spieler als RCON eingeloggt ist
- Logsystem_Hauptmenue(playerid);
- }
- else
- {
- SendClientMessage(playerid, FARBE_Rot, "Du hast nicht die Berechtigung diesen Befehl zu benutzen.");
- }
- return 1;
- }
- /*
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- // Copyright
- //————————————————————————————————————————————————————————————————————————————————————————————————————
- Das Copyright darf unter keinen Umständen entfernt werden.
- Falls Änderungen vorgenommen werden oder sogar das Copyright
- entfernt wird, sehe ich mich gezwungen rechtliche Schritte
- einzuleiten und dies zur Anzeige zubringen.
- Jegliche Weitergabe des Scriptes ob nun Verkauf oder Download
- wird ebenfalls zur Anzeige gebracht.
- */
Advertisement
Add Comment
Please, Sign In to add comment