Ein neuer Epoch-Cherno Server
Montag, 28. May 2018|11:17UhrAutor: LINKEN
TeamSpeak3
Freitag, 17. Feb 2017|01:43UhrAutor: LINKEN
Planetside 2
Mittwoch, 15. Feb 2017|17:01UhrAutor: LINKEN
Ark Server läuft wieder
Mittwoch, 20. Jan 2016|20:10UhrAutor: Devastator
Server erreichbarkeit
Sonntag, 17. Jan 2016|06:56UhrAutor: LINKEN
Essecke
Autor: Mokoshaletzter: Mokosha
Noggis Musikladen
Autor: Noggiletzter: Noggi
Mehr Multi-Player-Games
Autor: MajorSkyletzter: Znipsel
Warhammer 40K - Major Skys Ork ...
Autor: MajorSkyletzter: MajorSky
Space Hulk: Deathwing - Termine
Autor: MajorSkyletzter: MajorSky
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
 
Menü
  News Forum Mitglieder Links Gallery Kalender Kontakt Impressum  
Clan Menü
  Squads Joinus Awards Regeln History  
Online
 
offline0 User

offlineLINKEN
offlinebhnsedcvb657
offlineKrafton
offlineWithina
offlineDevastator

online14 Gäste
 
Forum » DayZ - Chernarus Server » Support / Help » Funktion des Maintainscripts!

Funktion des Maintainscripts!
Devastator
Eroberer

User Pic

Posts: 93
# 10.09.2014 - 23:11:52
    zitieren



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

:admins:


Zuletzt modifiziert von Devastator am 10.09.2014 - 23:15:02

I do what i want because i can !

copyright on top