Also habe nun die Möglichkeit hinzugefügt, dass Nieten ausgeschüttet werden. Dabei handelt es sich um das Item was am häufigsten in der Schatzsuche dropped. Also die Bohne.

Habe auch ein paar defines erstellt mit denen die GMs nun arbeiten können. Unter anderem können sie einstellen wieviele Geheimauktionen es gibt und wieviel Items sie umfassen.
main
hecht 10 years ago
parent 4fd6301886
commit bced25a860

@ -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.'<br>'.$test2.'<br>';
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."<br>\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!\')';

Loading…
Cancel
Save