hallo, ich habe eine frage an den entwickler der engine 2moons 1.8git ich möchte lernen, wie man einen neuen cornjob zum hinzufügen von dark meter hinzufügt
New cornjob
This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.
-
-
You add a new cron in database. He is only executed when there is player activity or server crontab.
You can follow cron examples on includes/class/cronjob -
und könntest du ein Tutorial schreiben, wie man es hinzufügt, weil ich in diesen Dingen grün bin und so etwas haben möchte, wenn du meine Datenbank brauchst, kann ich einen Download-Link im Voraus senden, danke
-
beispiel:
erstelle diese datei
includes\classes\cronjob\DMCronjob.class.php
dort wähls du aus wann der cronjob laufen soll, das intervall
das wars, jetzt müsste er laufen -
danke für hilfe aber irgendwas muss ich falsch machen weil ich eine datei mit dem code, den du mir geschrieben hast, als dmcornjob.class.php gespeichert habe ich habe meinen server im admin panel tab cornjob eingetragen wann es gemacht werden soll und leider nicht funktioniert vielleicht könntest du schritt für schritt was schreiben Ich kann etwas falsch machen Ich habe einen Cache angelegt und es funktioniert nicht, wenn Sie schreiben könnten, was ich falsch machen kann, oder wenn Sie den Server betreten und ihn einrichten, wäre ich dankbar
-
Ich habe jetzt PMA in die Cronjab-Log-Tabellen eingetragen und ich habe nur solche Logos, die ich auf dem Bild sehen kann
-
DMCornjob.class.php have Id 12
-
in der datenbank kann es sein dass die zeit der nächsten ausfühung(nextTime) nicht aktualisiert wurde, diese kannst du in der datenbank unter uni1_cronjobs manuel aktualisieren(nimm einfach die zeit vom 2ten(statistik) cron)
ansonsten guck mal ob du was in der includes/error.log finden kannst -
In der Fehlerdatei habe ich ein paar Zeilen, die nicht nur mit der Firma zu tun haben, sondern die Sie überprüfen können, was los ist
-
du hast darkmatter in metal geändert, metal wir aber in der planetentabelle und nicht in der usertabelle gespeichert.
für metall müsstest du %%USERS%% mit %%PLANETS%% ersetzten -
okay, löscht alles aus error.log. Ich werde aus der Datei hinzufügen, in der Dark Metter festgelegt ist, wie schnell die Ausführungszeit den Cache löscht und erneut prüft. Schalte alle anderen Hühneraugen aus und ich bitte dich, mich wegen der Zwietracht zu kontaktieren, wenn du leichter zu kommunizieren hast
-
[21-Jun-2019 13:30:10 Europe/Warsaw] PHP Fatal error: Class 'DMCornjob' not found in /includes/classes/Cronjob.class.php on line 56
-
PHP Source Code: Cornjob.class.php
- <?php
- /**
- * 2Moons
- * by Jan-Otto Kröpke 2009-2016
- *
- * For the full copyright and license information, please view the LICENSE
- *
- * @package 2Moons
- * @author Jan-Otto Kröpke <slaver7@gmail.com>
- * @copyright 2009 Lucky
- * @copyright 2016 Jan-Otto Kröpke <slaver7@gmail.com>
- * @licence MIT
- * @version 1.8.0
- * @link https://github.com/jkroepke/2Moons
- */
- class Cronjob
- {
- function __construct()
- {
- }
- static function execute($cronjobID)
- {
- $lockToken = md5(TIMESTAMP);
- $db = Database::get();
- $sql = 'SELECT class FROM %%CRONJOBS%% WHERE isActive = :isActive AND cronjobID = :cronjobId AND `lock` IS NULL;';
- $cronjobClassName = $db->selectSingle($sql, array(
- ':isActive' => 1,
- ':cronjobId' => $cronjobID
- ), 'class');
- if(empty($cronjobClassName))
- {
- throw new Exception(sprintf("Unknown cronjob %s or cronjob is deactive!", $cronjobID));
- }
- $sql = 'UPDATE %%CRONJOBS%% SET `lock` = :lock WHERE cronjobID = :cronjobId;';
- $db->update($sql, array(
- ':lock' => $lockToken,
- ':cronjobId' => $cronjobID
- ));
- $cronjobPath = 'includes/classes/cronjob/'.$cronjobClassName.'.class.php';
- // die hard, if file not exists.
- require_once($cronjobPath);
- /** @var $cronjobObj CronjobTask */
- $cronjobObj = new $cronjobClassName;
- $cronjobObj->run();
- self::reCalculateCronjobs($cronjobID);
- $sql = 'UPDATE %%CRONJOBS%% SET `lock` = NULL WHERE cronjobID = :cronjobId;';
- $db->update($sql, array(
- ':cronjobId' => $cronjobID
- ));
- $sql = 'INSERT INTO %%CRONJOBS_LOG%% SET `cronjobId` = :cronjobId,
- `executionTime` = :executionTime, `lockToken` = :lockToken';
- $db->insert($sql, array(
- ':cronjobId' => $cronjobID,
- ':executionTime' => Database::formatDate(TIMESTAMP),
- ':lockToken' => $lockToken
- ));
- }
- static function getNeedTodoExecutedJobs()
- {
- $sql = 'SELECT cronjobID
- FROM %%CRONJOBS%%
- WHERE isActive = :isActive AND nextTime < :time AND `lock` IS NULL;';
- $cronjobResult = Database::get()->select($sql, array(
- ':isActive' => 1,
- ':time' => TIMESTAMP
- ));
- $cronjobList = array();
- foreach($cronjobResult as $cronjobRow)
- {
- $cronjobList[] = $cronjobRow['cronjobID'];
- }
- return $cronjobList;
- }
- static function getLastExecutionTime($cronjobName)
- {
- require_once 'includes/libs/tdcron/class.tdcron.php';
- require_once 'includes/libs/tdcron/class.tdcron.entry.php';
- $sql = 'SELECT MAX(executionTime) as executionTime FROM %%CRONJOBS_LOG%% INNER JOIN %%CRONJOBS%% USING(cronjobId) WHERE name = :cronjobName;';
- $lastTime = Database::get()->selectSingle($sql, array(
- ':cronjobName' => $cronjobName
- ), 'executionTime');
- if(empty($lastTime))
- {
- return false;
- }
- return strtotime($lastTime);
- }
- static function reCalculateCronjobs($cronjobID = NULL)
- {
- require_once 'includes/libs/tdcron/class.tdcron.php';
- require_once 'includes/libs/tdcron/class.tdcron.entry.php';
- $db = Database::get();
- if(!empty($cronjobID))
- {
- $sql = 'SELECT cronjobID, min, hours, dom, month, dow FROM %%CRONJOBS%% WHERE cronjobID = :cronjobId;';
- $cronjobResult = $db->select($sql, array(
- ':cronjobId' => $cronjobID
- ));
- }
- else
- {
- $sql = 'SELECT cronjobID, min, hours, dom, month, dow FROM %%CRONJOBS%%;';
- $cronjobResult = $db->select($sql);
- }
- $sql = 'UPDATE %%CRONJOBS%% SET nextTime = :nextTime WHERE cronjobID = :cronjobId;';
- foreach($cronjobResult as $cronjobRow)
- {
- $cronTabString = implode(' ', array($cronjobRow['min'], $cronjobRow['hours'], $cronjobRow['dom'], $cronjobRow['month'], $cronjobRow['dow']));
- $nextTime = tdCron::getNextOccurrence($cronTabString, TIMESTAMP + 60);
- $db->update($sql, array(
- ':nextTime' => $nextTime,
- ':cronjobId' => $cronjobRow['cronjobID'],
- ));
- }
- }
- }
-
[21-Jun-2019 13:30:10 Europe/Warsaw] PHP Fatal error: Class 'DMCornjob' not found in /includes/classes/Cronjob.class.php on line 56
Maybe mispelling? You have DMCornjob on database and maybe you wanted DMCronjob from the file class name, or vice-versa. -
Ich habe die Namen in X-Form geändert und immer noch hilft nichts ... Vielleicht müssen Sie etwas in Cronjob.class.php hinzufügen? Weil die ganze Zeit in error.log das gleiche Problem auftaucht
-
Vielen Dank für die Hilfe, mit der ich mich bereits befasst habe. Ich habe gerade eine andere Cronjob-Datei geschrieben, indem ich diesen Code eingefügt habe. Nochmals vielen Dank
-
-
hallo, du hast mir geholfen mit diesem cron würdest mir einen cron schreiben können, der das ranking prüft und zum beispiel top 1 wird dunkel und löscht stats am ende des monats? und ich habe noch ein und zwei Dinge insgesamt 1. Ist es möglich, ein Gebäude zu bauen, in dem es möglich ist, zB 1000 Metall zu geben, und während des Angriffs ist es nicht möglich, es vom Planeten zu nehmen? aber damit dort alles genäht werden konnte Und das zweite ist, wo ich einen Händler bearbeiten kann, um zum Beispiel Metall einen Ersatz-DM hinzuzufügen
-
Warum sollte das nicht möglich sein? Musst es halt programmieren oder jemanden bezahlen der das für dich macht.
-
Share
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0