diff --git a/cronjob/viertelstunde.php b/cronjob/viertelstunde.php
index 07eb2e6..87ea86c 100644
--- a/cronjob/viertelstunde.php
+++ b/cronjob/viertelstunde.php
@@ -9,6 +9,8 @@
ignore_user_abort(true);
include "db.php";
+include_once("path.inc.php");
+include_once(ROOT_PATH. "/include/defines.inc.php");
// Da es wichtig ist, dass die Querys korrekt abgehandelt werden wurde folgender Code eingefuehrt
@@ -99,8 +101,22 @@ function bearbeiteAlleAbgelaufenenAuktionen(){
function insertAuktionen(){
if(Date("D") == 'Sun'){
- $anzahl_auktionen = mt_rand(1,2); // anzahl der auktionen die gleichzeitig starten (ein oder zwei)
- $startgebot = 1000000;
+ defineIfNotDefined('GEHEIM_START_GEBOT', 1000000);
+
+ // Definiert wieviele Auktion insgesamt minimal geplant werden
+ defineIfNotDefined('GEHEIM_ANZAHL_AUKTIONEN_MIN', 1);
+ // Definiert wieviele Auktion insgesamt maximal geplant werden
+ defineIfNotDefined('GEHEIM_ANZAHL_AUKTIONEN_MAX', 2);
+ // Definiert wieviele Items gleichzeitig pro Auktion auslaufen
+ defineIfNotDefined('GEHEIM_ANZAHL_AUKTIONS_ITEMS', 4);
+ // Definiert wie hoch die Chance ist eine Niete zu bekommen. 0.5 = 50%
+ defineIfNotDefined('GEHEIM_CHANCE_NIETE', 0.5);
+
+ $anzahl_auktionen = mt_rand(GEHEIM_ANZAHL_AUKTIONEN_MIN,GEHEIM_ANZAHL_AUKTIONEN_MAX); // anzahl der auktionen die gleichzeitig starten (ein oder zwei)
+ $anzahl_auktions_items = GEHEIM_ANZAHL_AUKTIONS_ITEMS;
+ $chance_niete = GEHEIM_CHANCE_NIETE * 100;
+ $startgebot = GEHEIM_START_GEBOT;
+
// Jeden Sonntag wird dieser Skript ausgefuehrt!
// erstmal checken obs schon Auktionen für kommende Woche gibt
$number = mysql_num_rows(database_query('SELECT * FROM auktion WHERE anbieter = 1 and TIMESTAMPDIFF(Second,startdate,now()) < 0'));
@@ -115,31 +131,38 @@ function insertAuktionen(){
while($result = mysql_fetch_assoc($qry)){
$frucht[$fruchtcount++] = $result[id];
}
- for($i = 0; $i<$anzahl_auktionen;$i++){
- $id1[$i] = mt_rand(0,$fruchtcount-1);
- $id2[$i] = mt_rand(0,$fruchtcount-1);
- }
- // Termine festlegen
- // Start Sonntag->0,Montag->1,Dienstag->2, Mittwoch->3, Donnerstag->4
- $off1 = mt_rand(0,4);
- $off2 = mt_rand(0,4);
- $start1 = 'TIMESTAMPADD(Day,'.$off1.',\''.$date[date].' 20:00:00\')';
- $deadline1 = 'TIMESTAMPADD(Day,'.($off1+3).',\''.$date[date].' 20:00:00\')';
- $start2 = 'TIMESTAMPADD(Day,'.$off2.',\''.$date[date].' 20:00:00\')';
- $deadline2 = 'TIMESTAMPADD(Day,'.($off2+3).',\''.$date[date].' 20:00:00\')';
+ // Ermittle die "Niete" (das wertloseste Item auf der Schatzsuche)
+ $qry = database_query('Select id from `sp_item` where wert = (Select min(wert) from `sp_item`)');
+ $nieten_id = mysql_fetch_assoc($qry);
+ $nieten_id = $nieten_id['id'];
-
- // Auktinoen der ersten Auktionswelle einfuegen
- for($i=0;$i<$anzahl_auktionen;$i++){
- $test1 = 'INSERT INTO auktion (itemid, itemname, tablename, anbieter, anzahl, deadline, startgebot, startdate) VALUES('.$frucht[$id1[$i]].',\'Geheim!\',\'wochen_ware\',1,1,'.$deadline1.','.$startgebot.','.$start1.')';
- $test2 = 'INSERT INTO auktion (itemid, itemname, tablename, anbieter, anzahl, deadline, startgebot, startdate) VALUES('.$frucht[$id2[$i]].',\'Geheim!\',\'wochen_ware\',1,1,'.$deadline2.','.$startgebot.','.$start2.')';
- database_query($test1);
- database_query($test2);
-// echo $test1.'
'.$test2.'
';
+ for($i = 0; $i<$anzahl_auktionen; $i++) {
+ // Termin festlegen
+ // Start Sonntag->0,Montag->1,Dienstag->2, Mittwoch->3, Donnerstag->4
+ $off = mt_rand(0,4);
+ $start = 'TIMESTAMPADD(Day,'.$off.',\''.$date[date].' 20:00:00\')';
+ $deadline = 'TIMESTAMPADD(Day,'.($off+3).',\''.$date[date].' 20:00:00\')';
+
+ for($t = 0; $t<$anzahl_auktions_items; $t++) {
+ if(mt_rand(1,100) <= $chance_niete) {
+ $item_table = 'sp_item';
+ $item_id = $nieten_id;
+ } else {
+ $item_table = 'wochen_markt';
+ $item_id = $frucht[mt_rand(0,$fruchtcount-1)];
+ }
+ $test = 'INSERT INTO auktion (itemid, itemname, tablename, anbieter, anzahl, deadline, startgebot, startdate) VALUES('.$item_id.',\'Geheim!\',\''.$item_table.'\',1,1,'.$deadline.','.$startgebot.','.$start.')';
+ echo $test."
\n";
+ database_query($test);
+ }
}
- } else if($number > 6){
- database_query('DELETE FROM auktion WHERE anbieter = 1 LIMIT '.($number-6));
+ } else if($number > GEHEIM_ANZAHL_AUKTIONEN_MAX * GEHEIM_ANZAHL_AUKTIONS_ITEMS){
+ echo 'Es gab zuviele Geheimauktionen ('.$number.') entferne die überschüssigen!';
+ database_query('DELETE FROM auktion WHERE anbieter = 1 LIMIT '.($number-GEHEIM_ANZAHL_AUKTIONEN_MAX * GEHEIM_ANZAHL_AUKTIONS_ITEMS));
+ } else {
+ echo 'Else '.$number;
+ database_query('DELETE FROM auktion WHERE anbieter = 1');
}
}
}
@@ -162,20 +185,25 @@ function getAveragePrice($itemid, $tablename, $anzahl){
return round($row['average']*$anzahl);
}
-
+$array = array();
+
+if(!isset($argv)) {
+ // invocation by server
+ $arrayCpy = array();
+} else {
+ // invocation by cronjob
+ exec('pgrep '.$argv[0], $array);
+
+ $arrayCpy = array();
+ foreach($array as $tmp) {
+ if($tmp != getmypid()) {
+ $arrayCpy[] = $tmp;
+ }
+ }
+}
// check if this cronjob is already busy!!
-$array = array();
-exec('pgrep '.$argv[0], $array);
-
-$arrayCpy = array();
-foreach($array as $tmp) {
- if($tmp != getmypid()) {
- $arrayCpy[] = $tmp;
- }
-}
-
-if(count($arrayCpy)<=1) {
+if(count($arrayCpy)<=1) {
// Starten der Auktionsverteilung
$i = bearbeiteAlleAbgelaufenenAuktionen();
//$sql = 'INSERT INTO nachricht(von, besitzer, betreff, text) VALUES (\'GM-INFO\', 3735, \'Cronjob lief!\', \' Der Vierteilstunde-Cronjob wurde ausgefuehrt! Es wurden '.$i.' Anfragen bearbeitet!\')';