Shoutbox |
|
Opa Vodnik: nö, habs gelesen. kein effekt | Noggi: wer das liest ist doof! | Opa Vodnik: hat der sommer euch auch so an den hammelbein
en? fett wetter!! schönen urlaub!! | Opa Vodnik: ich lachs mich fisch^^ wb!!!!
| Mokosha: Salmon! wie schön :) | Archiv |
|
|
|
|
|
Funktion des Maintainscripts!
|
Devastator Eroberer
Posts: 93
|
Hallo Pirates,
Hier die Erklärung des Maintain-Scriptes:
Maintain läuft bei uns über Sql Abfragen. Sql-Abfragen suchen und bearbeiten Einträge in der Gameserver
Datenbank. Es wird täglich ein Befehl ausgegeben der verschiedene Sachen macht.
Hier der gesamte Code mit Erklärung:
-- ----------------------------
-- Event structure for removeDamagedVehicles
-- ----------------------------
DROP EVENT IF EXISTS `removeDamagedVehicles`;
DELIMITER ;;
CREATE EVENT `removeDamagedVehicles` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes damaged vehicles' DO DELETE FROM `Object_DATA` WHERE Damage = 1
;;
DELIMITER ;
Es wird nach allen Fahrzeugen gesucht die Zerstört ( Explodiert ) sind und löscht diese.
Alle andere Autos, beschädigt oder nicht, bleiben bestehen
-- ----------------------------
-- Event structure for removeObjectEmpty
-- ----------------------------
DROP EVENT IF EXISTS `removeObjectEmpty`;
DELIMITER ;;
CREATE EVENT `removeObjectEmpty` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes abandoned storage objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 14 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') OR (`Inventory` = '[[[],[]],[[],[]],[[],[]]]') )
;;
DELIMITER ;
Dies bezieht sich auf alle Objekte. Fahrzeuge, Safes, Sheds und alles andere.
Es wird zuerst auf das "Last Updated" geschaut.
Dies bedeutet wann zuletzt irgendetwas an dem Objekt verändert wurde.
Ein auf/abschließen oder ein beschädigen reicht vollkommen aus um dieses Datum zu aktualisieren.
Danach wird auf das " Datestamp " geachtet.
Dies ist das Datum an dem das Objekt erstellt wurde.
Anschließend wird darauf geachtet ob das Objekt "leer" ist.
Erst wenn alle 3 Zustände zutreffen, also mehr als 14 Tage nicht benutzt & älter als 24 Tage ist & leer ist, wird das Objekt gelöscht.
-- ----------------------------
-- Event structure for removeObjectOld
-- ----------------------------
DROP EVENT IF EXISTS `removeObjectOld`;
DELIMITER ;;
CREATE EVENT `removeObjectOld` ON SCHEDULE EVERY 1 DAY COMMENT 'Removes old objects and vehicles' DO DELETE FROM `Object_DATA` WHERE `LastUpdated` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 DAY) AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 42 DAY)
;;
DELIMITER ;
Dies löscht wie das vorherige Objekte aus der Datenbank.
Einziger unterschied das Objekt muss 24 Tage nicht benutzt worden sein und älter als 42 Tage sein.
Sind beide Zustände erfüllt wird das Objekt gelöscht ohne auf das Inventar zu achten.
-- ----------------------------
-- Event structure for setDamageOnAge
-- ----------------------------
DROP EVENT IF EXISTS `setDamageOnAge`;
DELIMITER ;;
CREATE EVENT `setDamageOnAge` ON SCHEDULE EVERY 1 DAY COMMENT 'This sets damage on a wall so that it can be maintained' DO UPDATE `Object_DATA` SET `Damage`=0.1 WHERE `ObjectUID` <> 0 AND `CharacterID` <> 0 AND `Datestamp` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 3 DAY) AND ( (`Inventory` IS NULL) OR (`Inventory` = '[]') )
;;
DELIMITER ;
Dies setzt den Wert "Damage" aller Objekte dessen Inventar leer ist auf 0.1.
Dies ist notwendig das gebautes gemaintained werden kann.
Solltet ihr also eine Wand oder ähnliches bauen müsst ihr einen Tag waren bis es im Maintainprozzes mit inbegriffen ist.
-- ----------------------------
-- Event structure for updateStockDaily
-- ----------------------------
DROP EVENT IF EXISTS `updateStockDaily`;
DELIMITER ;;
CREATE EVENT `updateStockDaily` ON SCHEDULE EVERY 1 DAY COMMENT 'Updates out of stock vendors' DO UPDATE `Traders_DATA` SET qty=10 WHERE qty=0 AND afile<>'trade_any_vehicle' AND afile<>'trade_any_boat'
;;
DELIMITER ;
Diese Zeile füllt jeden Tag alle Trader auf so das es immer genug Waren gibt.
Fazit:
Objekte aller Art, ob Fahrzeuge, Helikopter, Safes oder alles weitere, sollten alle 12-13 Tage verändert bzw benutzt werden.
Gebaute Sachen müssen alle 12-13 Tage gemaintained werden.
Dies läuft über die Plotpole, die zum bauen benötigt wird.
Fahrzeuge müssen alle 12-13 Tage bewegt werden.
Safes und andere Einlagerungsobjekte sollten alle 12-13 Tage genutzt werde.
Ich hoffe dies wird euch helfen das Script zu verstehen und in Zukunft weiteren Fehlern aus dem Weg zu gehen.
MFG euer German-Pirates Adminteam
Zuletzt modifiziert von Devastator am 10.09.2014 - 23:15:02
I do what i want because i can !
|
|
|
|