Hjælp til bot kode
Jeg har en bot som er interaktiv med spillet Anarchy Onlinen.Det er en actions bot Skal sige hvorlang tid der er tilbage af en auction, og så siger den hvem der har vundet tilsidst.
Code her er en function som bliver udført hver 5 sek.
----------------------------
lang.php <- er included
----------------------------
$_lng[fsek][0] = "<font color=\"#007aff\">Auction for %1, will start in 1 min.\n/tell %2 bid [AMOUNT] to bid.</font>";
$_lng[fsek][1] = "<font color=\"#007aff\">Auction for %1 has started</font>";
$_lng[fsek][2] = "<font color=\"#007aff\">WARNING: 4 min remaning of auction for %1</font>";
$_lng[fsek][3] = "<font color=\"#007aff\">WARNING: 3 min remaning of auction for %1</font>";
$_lng[fsek][4] = "<font color=\"#007aff\">WARNING: 2 min remaning of auction for %1</font>";
$_lng[fsek][5] = "<font color=\"#007aff\">WARNING: 1 min remaning of auction for %1</font>";
$_lng[fsek][6] = "<font color=\"#007aff\">WARNING: 30 sek remaning of auction for %1</font>";
$_lng[fsek][7] = "<font color=\"#007aff\"><font color=\"#007aff\">WARNING: 10 sek remaning of auction for %1</font>";
$_lng[fsek][8] = "<font color=\"#007aff\">The auction for %1 has ended, %2 was the winner, with a bid on %3</font>";
$_lng[fsek][9] = "<font color=\"#007aff\">The auction for %1 has ended by buy out, %2 was the out buyer <font color=\"#ff0000\">(BO was: %3)</font>.</font>";
$_lng[fsek][10] = "<font color=\"#007aff\">The auction for %1 has ended without a buyer.</font>";
-------------------------------
-------------------------------
The 5sek function
-------------------------------
global $_lng,$botname,$aoc,$running,$logon,$_a;
// AUTOJOIN INVITES GO HERE AND ALL THE CHANEL TELLs
if($_a['start']=="1"&&time()>=$_a['time']){
//unset($running); echo "Unsetting\n"; sleep(10);
$running = array();
$doruns = "0";
$sql = "SELECT *
FROM `auctions`
WHERE active = '1'
AND rk = '". $logon[dimension] ."'
ORDER BY time
LIMIT 0,1";
$foresp = mysql_query($sql) or die (mysql_error());
$yes = mysql_num_rows($foresp);
IF ($yes){
while($data = mysql_fetch_array($foresp)){
$running[state] = "0";
$running[id] = $data[id];
$tmp = explode("|", $data[item]);
$running[lowql] = $tmp[0];
$running[higql] = $tmp[1];
$running[ql] = $data[ql];
$running[iname] = $data[iname];
$running[total] = $data[total];
$running[itemref] = $running[total]." x ".make_item($running[lowql], $running[higql], $running[ql], $running[iname]);
$running[user] = $data[user];
$running[active] = "0"; // SO USERS CAN NOT BID WHILE NO AUCTION RUNNING
$running[bid] = $data[minbid];
$running[bo] = $data[bo];
$running[isbo] = 0; // IF THIS IS 1 HAS THE ITEM BEEN BUY OUT
// SETS IT TO NOT RUNNIGN
$_a['start'] = "0";
}
}
}
if($running[state] == "0"){
col_log("AUCTION","START","auction for ".$running[iname]." has anounced");
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][0]));
$running[next] = time()+60;
$running[state] = "1";
$running[active] = "1";
}
if($running[state] == "1" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][1]));
$running[next] = time()+60;
$running[state] = "2";
}
if($running[state] == "2" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][2]));
$running[next] = time()+60;
$running[state] = "3";
}
if($running[state] == "3" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][3]));
$running[next] = time()+60;
$running[state] = "4";
}
if($running[state] == "4" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][4]));
$running[next] = time()+60;
$running[state] = "5";
}
if($running[state] == "5" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][5]));
$running[next] = time()+30;
$running[state] = "6";
}
if($running[state] == "6" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][6]));
$running[next] = time()+20;
$running[state] = "7";
}
if($running[state] == "7" && time() >= $running[next]){
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][7]));
$running[next] = time()+10;
$running[state] = "8";
}
if($running[state] == "8" && time() >= $running[next]){
echo $running[state]." == \"8\" && ".time()." >= ".$running[next]."\n";
$sql = "SELECT *
FROM `bids`
WHERE rk = '". $logon[dimension] ."'
AND aid = '".$running[id]."'
ORDER BY time DESC
LIMIT 0,1";
$foresp = mysql_query($sql) or die (mysql_error());
$yes = mysql_num_rows($foresp);
IF ($yes){
while($data = mysql_fetch_array($foresp)){
if($running[isbo] == 0){
// IF TIME OUT
$tmp = str_replace("%1", $running[itemref], $_lng[fsek][8]);
$tmp = str_replace("%2", $data[user], $tmp);
$tmp = str_replace("%3", $data[bid], $tmp);
$aoc->send_privgroup($botname, $tmp);
$aoc -> send_tell($running[user], $tmp);
$aoc -> send_tell($data[user], $tmp);
}else{
// IF BOY OUT
$tmp = str_replace("%1", $running[itemref], $_lng[fsek][9]);
$tmp = str_replace("%2", $data[user], $tmp);
$tmp = str_replace("%3", $data[bid], $tmp);
$aoc->send_privgroup($botname, $tmp);
$aoc -> send_tell($running[user], $tmp);
$aoc -> send_tell($data[user], $tmp);
}
//FOR THE DATABASE
unset($dbupdate);
$dbupdate[sold] = $data[bid];
$dbupdate[soldto] = $data[user];
}
}else{
$aoc->send_privgroup($botname, str_replace("%1", $running[itemref], $_lng[fsek][10]));
$aoc -> send_tell($running[user], str_replace("%1", $running[itemref], $_lng[fsek][10]));
}
// SETTING THE ITEM TO INACTIVE
$dbupdate[active] = 0;
db_update("auctions","id",$running[id],$dbupdate,0);
unset($dbupdate);
unset($running); echo "Unsetting\n"; sleep(10);
$_a['start'] = "1";
$_a['time'] = time()+30;
$running[state] = "-1";
}
echo "Stats ->\n";
print_r($_a);
print_r($running);
----------------------------------------
Jeg har flere fejl, nogle gange bliver den ved med at loope state 8, andre gange bliver den ved med at loope 0->1->0->1->0->1 det er lidt underligt og jeg kan bare ikke se hvad der er galt...
