$stmt->bindParam(':email', $_SESSION['username']); $stmt->execute(); $playerinfo = $stmt->fetch(PDO::FETCH_ASSOC); if (array_key_exists('sure', $_GET)) { $sure = $_GET['sure']; } if (!isset($sure)) { echo "<font color=red><strong>" . $langvars['l_die_rusure'] . "</strong></font><br><br>"; echo "Please Note: You will loose all your Planets if you Self-Destruct!.<br>\n"; echo "<a href='main.php'>" . $langvars['l_die_nonono'] . "</a> " . $langvars['l_die_what'] . "<br><br>"; echo "<a href=self_destruct.php?sure=1>" . $langvars['l_yes'] . "!</a> " . $langvars['l_die_goodbye'] . "<br><br>"; } elseif ($sure == 1) { echo "<font color=red><strong>" . $langvars['l_die_check'] . "</strong></font><br><br>"; echo "Please Note: You will loose all your Planets if you Self-Destruct!.<br>\n"; echo "<a href='main.php'>" . $langvars['l_die_nonono'] . "</a> " . $langvars['l_die_what'] . "<br><br>"; echo "<a href=self_destruct.php?sure=2>" . $langvars['l_yes'] . "!</a> " . $langvars['l_die_goodbye'] . "<br><br>"; } elseif ($sure == 2) { echo $langvars['l_die_count'] . "<br>"; echo $langvars['l_die_vapor'] . "<br><br>"; $langvars['l_die_please'] = str_replace("[logout]", "<a href='logout.php'>" . $langvars['l_logout'] . "</a>", $langvars['l_die_please']); echo $langvars['l_die_please'] . "<br>"; Tki\Character::kill($pdo_db, $playerinfo['ship_id'], $langvars, $tkireg, true); Tki\Bounty::cancel($pdo_db, $playerinfo['ship_id']); Tki\AdminLog::writeLog($pdo_db, LOG_ADMIN_HARAKIRI, "{$playerinfo['character_name']}|" . $request->server->get('REMOTE_ADDR') . ""); Tki\PlayerLog::WriteLog($pdo_db, $playerinfo['ship_id'], LOG_HARAKIRI, $request->server->get('REMOTE_ADDR')); echo "Due to nobody looking after your Planets, all your Planets have reduced into dust and ruble. Your Planets are no more.<br>\n"; } else { echo $langvars['l_die_exploit'] . "<br><br>"; } Tki\Text::gotomain($pdo_db, $lang); Tki\Footer::display($pdo_db, $lang, $tkireg, $template);
// Updating to always get a positive rating increase for // xenobe and the credits they are carrying $salv_credits = 0; // Double death attack bug fix - Returns 0 for real // players, 1 for Xenobe players // He is a Xenobe if (preg_match("/(\\@xenobe)\$/", $targetinfo['email']) !== 0) { $resx = $db->Execute("UPDATE {$db->prefix}xenobe SET active= N WHERE xenobe_id = ?;", array($targetinfo['email'])); Tki\Db::LogDbErrors($pdo_db, $resx, __LINE__, __FILE__); Tki\AdminLog::writeLog($pdo_db, LOG_ATTACK_DEBUG, "*|{$playerinfo['ship_id']}|{$targetinfo['ship_id']}|Detected as AI."); if ($rating_change > 0) { $rating_change = 0 - $rating_change; Tki\PlayerLog::WriteLog($pdo_db, $targetinfo['ship_id'], LOG_ATTACK_LOSE, "{$playerinfo['character_name']}|N"); Tki\Bounty::collect($pdo_db, $langvars, $playerinfo['ship_id'], $targetinfo['ship_id']); Tki\Character::kill($pdo_db, $targetinfo['ship_id'], $langvars, $tkireg, false); Tki\AdminLog::writeLog($pdo_db, LOG_ATTACK_DEBUG, "*|{$playerinfo['ship_id']}|{$targetinfo['ship_id']}|Hope fully we only killed off the AI."); } $salv_credits = $targetinfo['credits']; } $free_ore = round($targetinfo['ship_ore'] / 2); $free_organics = round($targetinfo['ship_organics'] / 2); $free_goods = round($targetinfo['ship_goods'] / 2); $free_holds = Tki\CalcLevels::holds($playerinfo['hull'], $tkireg) - $playerinfo['ship_ore'] - $playerinfo['ship_organics'] - $playerinfo['ship_goods'] - $playerinfo['ship_colonists']; if ($free_holds > $free_goods) { $salv_goods = $free_goods; $free_holds = $free_holds - $free_goods; } elseif ($free_holds > 0) { $salv_goods = $free_holds; $free_holds = 0; } else { $salv_goods = 0;
Tki\Db::LogDbErrors($pdo_db, $resy, __LINE__, __FILE__); } } else { $resz = $db->Execute("UPDATE {$db->prefix}scheduler SET ticks_left = ? WHERE sched_id = ?", array($ticks_left, $event['sched_id'])); Tki\Db::LogDbErrors($pdo_db, $resz, __LINE__, __FILE__); } $sched_var_id = $event['sched_id']; $sched_var_extrainfo = $event['extra_info']; $sched_i = 0; while ($sched_i < $multiplier) { include_once './scheduler/' . $event['sched_file']; $sched_i++; } $sched_res->MoveNext(); } $lastRun /= $schedCount; } // Calculate the difference in time when the last good update happened. $schedDiff = $lastRun - (time() - $tkireg->sched_ticks * 60); if (abs($schedDiff) > $tkireg->sched_ticks * 60) { // Hmmm, seems that we have missed at least 1 update, so log it to the admin. Tki\AdminLog::writeLog($pdo_db, 2468, "Detected Scheduler Issue|{$lastRun}|" . time() . "|" . (time() - $tkireg->sched_ticks * 60) . "|{$schedDiff}|" . serialize($lastrunList)); } $runtime = time() - $starttime; echo "<p>The scheduler took {$runtime} seconds to execute.<p>"; $res = $db->Execute("UPDATE {$db->prefix}scheduler SET last_run = " . time()); Tki\Db::LogDbErrors($pdo_db, $res, __LINE__, __FILE__); } echo "<br>"; Tki\Text::gotomain($pdo_db, $lang); Tki\Footer::display($pdo_db, $lang, $tkireg, $template);
} else { echo $langvars['l_planet_not_selling'] . "<br>"; } $langvars['l_planet_att_link'] = "<a href=planet.php?planet_id={$planet_id}&command=attac>" . $langvars['l_planet_att_link'] . "</a>"; $langvars['l_planet_att'] = str_replace("[attack]", $langvars['l_planet_att_link'], $langvars['l_planet_att']); $langvars['l_planet_scn_link'] = "<a href=planet.php?planet_id={$planet_id}&command=scan>" . $langvars['l_planet_scn_link'] . "</a>"; $langvars['l_planet_scn'] = str_replace("[scan]", $langvars['l_planet_scn_link'], $langvars['l_planet_scn']); echo $langvars['l_planet_att'] . "<br>"; echo $langvars['l_planet_scn'] . "<br>"; echo "<a href=planet.php?planet_id={$planet_id}&command=bomb>" . $langvars['l_sofa'] . "</a><strong>" . $langvars['l_planet_att_sure'] . "</strong><br>"; } elseif ($command == "bomb" && $tkireg->allow_sofa) { Planet::planetBombing($pdo_db, $lang, $langvars, $tkireg, $playerinfo, $ownerinfo, $planetinfo, $template); } elseif ($command == "scan") { // Kami Multi Browser Window Attack Fix if (array_key_exists('planet_selected', $_SESSION) === false || $_SESSION['planet_selected'] != $planet_id) { Tki\AdminLog::writeLog($pdo_db, LOG_MULTI_BROWSER, "{$request->server->get('REMOTE_ADDR')}|{$playerinfo['ship_id']}|Tried to Scan without clicking on the Planet."); echo "You need to Click on the planet first.<br><br>"; Tki\Text::gotomain($pdo_db, $lang); Tki\Footer::display($pdo_db, $lang, $tkireg, $template); die; } unset($_SESSION['planet_selected']); // Scan menu if ($playerinfo['turns'] < 1) { echo $langvars['l_plant_scn_turn'] . "<br><br>"; Tki\Text::gotomain($pdo_db, $lang); Tki\Footer::display($pdo_db, $lang, $tkireg, $template); die; } // Determine per cent chance of success in scanning target ship - based on player's sensors and opponent's cloak $success = (10 - $ownerinfo['cloak'] / 2 + $playerinfo['sensors']) * 5;
} } else { echo "<div style='font-size:18px; color:#FF0000;'>\n"; if (array_key_exists('ban_type', $ban_result) && $ban_result['ban_type'] == ID_LOCKED) { echo "Your account has been Locked"; } else { echo "Your account has been Banned"; } if (array_key_exists('public_info', $ban_result) && mb_strlen(trim($ban_result['public_info'])) > 0) { echo " for the following:<br>\n"; echo "<br>\n"; echo "<div style='font-size:16px; color:#FFFF00;'>{$ban_result['public_info']}</div>\n"; } echo "</div>\n"; echo "<br>\n"; echo "<div style='color:#FF0000;'>Maybe you will behave yourself next time.</div>\n"; echo "<br>\n"; echo str_replace("[here]", "<a href='index.php'>" . $langvars['l_here'] . "</a>", $langvars['l_global_mlogin']); } } else { // password is incorrect echo $langvars['l_login_4gotpw1a'] . "<br><br>" . $langvars['l_login_4gotpw1b'] . " <a href='mail.php?mail=" . $email . "'>" . $langvars['l_clickme'] . "</a> " . $langvars['l_login_4gotpw2a'] . "<br><br>" . $langvars['l_login_4gotpw2b'] . " <a href='index.php'>" . $langvars['l_clickme'] . "</a> " . $langvars['l_login_4gotpw3'] . " " . $request->server->get('REMOTE_ADDR') . "..."; Tki\PlayerLog::WriteLog($pdo_db, $playerinfo['ship_id'], LOG_BADLOGIN, $request->server->get('REMOTE_ADDR')); Tki\AdminLog::writeLog($pdo_db, 1000 + LOG_BADLOGIN, "{$request->server->get('REMOTE_ADDR')}|{$email}|{$filtered_post_password}"); } } else { // FUTURE: Add handling to pass the email address to the new signup. $langvars['l_login_noone'] = str_replace("[here]", "<a href='new.php" . $link . "'>" . $langvars['l_here'] . "</a>", $langvars['l_login_noone']); echo "<strong>" . $langvars['l_login_noone'] . "</strong><br>"; } Tki\Footer::display($pdo_db, $lang, $tkireg, $template);
if ($db->ErrorNo() > 0) { echo "error: " . $db->ErrorMsg() . "<br>\n"; } $detected = (bool) true; // Tki\AdminLog::writeLog ($pdo_db, 960, "20|{$bankinfo['ship_id']}|{$bankinfo['balance']}"); } // Checking IBANK Loan Credits if ($bankinfo['loan'] < 0) { echo "'-> <span style='color:#f00;'>Detected Loan Credits Flip on IBANK Account: {$bankinfo['ship_id']}.</span> <span style='color:#0f0;'>*** FIXED ***</span><br>\n"; $resk = $db->Execute("UPDATE {$db->prefix}ibank_accounts SET loan = ? WHERE ship_id = ? LIMIT 1;", array(0, $bankinfo['ship_id'])); Tki\Db::LogDbErrors($pdo_db, $resk, __LINE__, __FILE__); if ($db->ErrorNo() > 0) { echo "error: " . $db->ErrorMsg() . "<br>\n"; } $detected = (bool) true; Tki\AdminLog::writeLog($pdo_db, 960, "21|{$bankinfo['ship_id']}|{$bankinfo['balance']}"); } $tdres->MoveNext(); } echo "Validating IBANK Transfer Amount Credits...<br>\n"; $tdres = $db->Execute("SELECT transfer_id, source_id, dest_id, amount FROM {$db->prefix}ibank_transfers"); Tki\Db::LogDbErrors($pdo_db, $tdres, __LINE__, __FILE__); /* while (!$tdres->EOF) { $transferinfo = $tdres->fields; // Checking IBANK Transfer Amount Credits if ($transferinfo['amount'] < 0) { echo "'-> <span style='color:#f00;'>Detected Transfer Amount Credits Flip on IBANK Transfer: {$transferinfo['ship_id']}.</span> <span style='color:#0f0;'>*** FIXED ***</span><br>\n";
$playerinfo['ship_colonists'] = 0; } if ($playerinfo['ship_ore'] < 0 || $playerinfo['ship_ore'] > $maxholds) { Tki\AdminLog::writeLog($pdo_db, LOG_ADMIN_ILLEGVALUE, "{$playerinfo['ship_name']}|{$playerinfo['ship_ore']}|ore|{$maxholds}"); $playerinfo['ship_ore'] = 0; } if ($playerinfo['ship_organics'] < 0 || $playerinfo['ship_organics'] > $maxholds) { Tki\AdminLog::writeLog($pdo_db, LOG_ADMIN_ILLEGVALUE, "{$playerinfo['ship_name']}|{$playerinfo['ship_organics']}|organics|{$maxholds}"); $playerinfo['ship_organics'] = 0; } if ($playerinfo['ship_goods'] < 0 || $playerinfo['ship_goods'] > $maxholds) { Tki\AdminLog::writeLog($pdo_db, LOG_ADMIN_ILLEGVALUE, "{$playerinfo['ship_name']}|{$playerinfo['ship_goods']}|goods|{$maxholds}"); $playerinfo['ship_goods'] = 0; } if ($playerinfo['ship_energy'] < 0 || $playerinfo['ship_energy'] > $maxenergy) { Tki\AdminLog::writeLog($pdo_db, LOG_ADMIN_ILLEGVALUE, "{$playerinfo['ship_name']}|{$playerinfo['ship_energy']}|energy|{$maxenergy}"); $playerinfo['ship_energy'] = 0; } if ($freeholds < 0) { $freeholds = 0; } $update1 = $db->Execute("UPDATE {$db->prefix}ships SET ship_ore=?, ship_organics=?, ship_goods=?, ship_energy=?, ship_colonists=? WHERE ship_id=?;", array($playerinfo['ship_ore'], $playerinfo['ship_organics'], $playerinfo['ship_goods'], $playerinfo['ship_energy'], $playerinfo['ship_colonists'], $playerinfo['ship_id'])); Tki\Db::LogDbErrors($pdo_db, $update1, __LINE__, __FILE__); } // Default to 1 run if we don't get a valid repeat value. $tr_repeat = 1; // Detect if this variable exists, and filter it. Returns false if anything wasn't right. $tr_repeat = null; $tr_repeat = (int) filter_input(INPUT_POST, 'tr_repeat', FILTER_SANITIZE_NUMBER_INT); if (mb_strlen(trim($tr_repeat)) === 0) { $tr_repeat = 0;
$query = $query . ", dev_lssd='Y'"; Tki\Ports::buildOneCol($langvars['l_lssd'] . " " . $langvars['l_trade_installed']); } $query = $query . ", turns = turns - 1, turns_used = turns_used + 1 WHERE ship_id = " . $playerinfo['ship_id']; $purchase = $db->Execute("{$query}"); Tki\Db::LogDbErrors($pdo_db, $purchase, __LINE__, __FILE__); $hull_upgrade = 0; echo "</table>"; echo "<div style='font-size:16px; color:#fff;'><br>[<span style='color:#0f0;'>Border Patrol</span>]<br>\n"; echo "Halt, while we scan your cargo...<br>\n"; if (Tki\CalcLevels::holds($playerinfo['hull'], $tkireg) - $playerinfo['ship_ore'] - $playerinfo['ship_organics'] - $playerinfo['ship_goods'] - $playerinfo['ship_colonists'] < 0) { // Tki\Ports::buildTwoCol("<span style='color:#f00;'>Detected Illegal Cargo</span>", "<span style='color:#0f0;'>Fixed</span>", "left", "right"); echo "<span style='color:#f00; font-weight:bold;'>Detected illegal cargo, as a penalty, we are confiscating all of your cargo, you may now continue.</span>\n"; $resx = $db->Execute("UPDATE {$db->prefix}ships SET ship_ore=0, ship_organics=0, ship_goods=0, ship_energy=0, ship_colonists =0 WHERE ship_id = ? LIMIT 1;", array($playerinfo['ship_id'])); Tki\Db::LogDbErrors($pdo_db, $resx, __LINE__, __FILE__); Tki\AdminLog::writeLog($pdo_db, 5001, "Detected illegal cargo on shipID: {$playerinfo['ship_id']}"); } else { echo "<span style='color:#0f0;'>Detected no illegal cargo, you may continue.</span>\n"; } echo "</div>\n"; } } elseif ($sectorinfo['port_type'] != "none") { $price_array = array(); // Detect if this variable exists, and filter it. Returns false if anything wasn't right. $trade_ore = null; $trade_ore = (int) filter_input(INPUT_POST, 'trade_ore', FILTER_SANITIZE_NUMBER_INT); if (mb_strlen(trim($trade_ore)) === 0) { $trade_ore = false; } // Detect if this variable exists, and filter it. Returns false if anything wasn't right. $trade_organics = null;