function xenoberegen() { global $playerinfo, $xen_unemployment, $xenobeisdead, $db; // Xenobe Unempoyment Check $playerinfo['credits'] = $playerinfo['credits'] + $xen_unemployment; $maxenergy = NUM_ENERGY($playerinfo['power']); // Regenerate energy if ($playerinfo['ship_energy'] <= $maxenergy - 50) { $playerinfo['ship_energy'] = $playerinfo['ship_energy'] + round(($maxenergy - $playerinfo['ship_energy']) / 2); // Regen half of remaining energy $gene = "regenerated Energy to {$playerinfo['ship_energy']} units,"; } $maxarmor = NUM_ARMOR($playerinfo['armor']); // Regenerate armor if ($playerinfo['armor_pts'] <= $maxarmor - 50) { $playerinfo['armor_pts'] = $playerinfo['armor_pts'] + round(($maxarmor - $playerinfo['armor_pts']) / 2); // Regen half of remaining armor $gena = "regenerated Armor to {$playerinfo['armor_pts']} points,"; } // Buy fighters & torpedos at 6 credits per fighter $available_fighters = NUM_FIGHTERS($playerinfo['computer']) - $playerinfo['ship_fighters']; if ($playerinfo['credits'] > 5 && $available_fighters > 0) { if (round($playerinfo['credits'] / 6) > $available_fighters) { $purchase = $available_fighters * 6; $playerinfo['credits'] = $playerinfo['credits'] - $purchase; $playerinfo['ship_fighters'] = $playerinfo['ship_fighters'] + $available_fighters; $genf = "purchased {$available_fighters} fighters for {$purchase} credits,"; } if (round($playerinfo['credits'] / 6) <= $available_fighters) { $purchase = round($playerinfo['credits'] / 6); $playerinfo['ship_fighters'] = $playerinfo['ship_fighters'] + $purchase; $genf = "purchased {$purchase} fighters for {$playerinfo['credits']} credits,"; $playerinfo['credits'] = 0; } } // Xenobe pay 3 credits per torpedo $available_torpedoes = NUM_TORPEDOES($playerinfo['torp_launchers']) - $playerinfo['torps']; if ($playerinfo['credits'] > 2 && $available_torpedoes > 0) { if (round($playerinfo['credits'] / 3) > $available_torpedoes) { $purchase = $available_torpedoes * 3; $playerinfo['credits'] = $playerinfo['credits'] - $purchase; $playerinfo['torps'] = $playerinfo['torps'] + $available_torpedoes; $gent = "purchased {$available_torpedoes} torpedoes for {$purchase} credits,"; } if (round($playerinfo['credits'] / 3) <= $available_torpedoes) { $purchase = round($playerinfo['credits'] / 3); $playerinfo['torps'] = $playerinfo['torps'] + $purchase; $gent = "purchased {$purchase} torpedoes for {$playerinfo['credits']} credits,"; $playerinfo['credits'] = 0; } } // Update Xenobe record $resg = $db->Execute("UPDATE {$db->prefix}ships SET ship_energy=?, armor_pts=?, ship_fighters=?, torps=?, credits=? WHERE ship_id=?", array($playerinfo['ship_energy'], $playerinfo['armor_pts'], $playerinfo['ship_fighters'], $playerinfo['torps'], $playerinfo['credits'], $playerinfo['ship_id'])); db_op_result($db, $resg, __LINE__, __FILE__); if (!$gene == '' || !$gena == '' || !$genf == '' || !$gent == '') { playerlog($db, $playerinfo[ship_id], LOG_RAW, "Xenobe {$gene} {$gena} {$genf} {$gent} and has been updated."); } }
function message_defence_owner($db, $sector, $message) { $result3 = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE sector_id=?", array($sector)); db_op_result($db, $result3, __LINE__, __FILE__); if ($result3 instanceof ADORecordSet) { while (!$result3->EOF) { playerlog($db, $result3->fields['ship_id'], LOG_RAW, $message); $result3->MoveNext(); } } }
function distribute_toll($db, $sector, $toll, $total_fighters) { $result3 = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE sector_id=? AND defence_type ='F'", array($sector)); db_op_result($db, $result3, __LINE__, __FILE__); // Put the defence information into the array "defenceinfo" if ($result3 > 0) { while (!$result3->EOF) { $row = $result3->fields; $toll_amount = ROUND($row['quantity'] / $total_fighters * $toll); $resa = $db->Execute("UPDATE {$db->prefix}ships SET credits=credits + ? WHERE ship_id = ?", array($toll_amount, $row['ship_id'])); db_op_result($db, $resa, __LINE__, __FILE__); playerlog($db, $row['ship_id'], LOG_TOLL_RECV, "{$toll_amount}|{$sector}"); $result3->MoveNext(); } } }
function cancel_bounty($db, $bounty_on) { $res = $db->Execute("SELECT * FROM {$db->prefix}bounty,{$db->prefix}ships WHERE bounty_on = ? AND bounty_on = ship_id", array($bounty_on)); db_op_result($db, $res, __LINE__, __FILE__); if ($res) { while (!$res->EOF) { $bountydetails = $res->fields; if ($bountydetails['placed_by'] != 0) { $update = $db->Execute("UPDATE {$db->prefix}ships SET credits = credits + ? WHERE ship_id = ?", array($bountydetails['amount'], $bountydetails['placed_by'])); db_op_result($db, $update, __LINE__, __FILE__); playerlog($db, $bountydetails['placed_by'], LOG_BOUNTY_CANCELLED, "{$bountydetails['amount']}|{$bountydetails['character_name']}"); } $delete = $db->Execute("DELETE FROM {$db->prefix}bounty WHERE bounty_id = ?", array($bountydetails['bounty_id'])); db_op_result($db, $delete, __LINE__, __FILE__); $res->MoveNext(); } } }
function defence_vs_defence($db, $ship_id) { global $l; $result1 = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE ship_id = ?;", array($ship_id)); db_op_result($db, $result1, __LINE__, __FILE__); if ($result1 instanceof ADORecordSet) { while (!$result1->EOF) { $row = $result1->fields; $deftype = $row['defence_type'] == 'F' ? 'Fighters' : 'Mines'; $qty = $row['quantity']; $result2 = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE sector_id = ? AND ship_id <> ? ORDER BY quantity DESC", array($row['sector_id'], $ship_id)); db_op_result($db, $result2, __LINE__, __FILE__); if ($result2 instanceof ADORecordSet) { while (!$result2->EOF && $qty > 0) { $cur = $result2->fields; $targetdeftype = $cur['defence_type'] == 'F' ? $l->get('l_fighters') : $l->get('l_mines'); if ($qty > $cur['quantity']) { $resa = $db->Execute("DELETE FROM {$db->prefix}sector_defence WHERE defence_id = ?", array($cur['defence_id'])); db_op_result($db, $resa, __LINE__, __FILE__); $qty -= $cur['quantity']; $resb = $db->Execute("UPDATE {$db->prefix}sector_defence SET quantity = ? WHERE defence_id = ?", array($qty, $row['defence_id'])); db_op_result($db, $resb, __LINE__, __FILE__); playerlog($db, $cur['ship_id'], LOG_DEFS_DESTROYED, $cur['quantity'] . "|" . $targetdeftype . "|" . $row['sector_id']); playerlog($db, $row['ship_id'], LOG_DEFS_DESTROYED, $cur['quantity'] . "|" . $deftype . "|" . $row['sector_id']); } else { $resc = $db->Execute("DELETE FROM {$db->prefix}sector_defence WHERE defence_id = ?", array($row['defence_id'])); db_op_result($db, $resc, __LINE__, __FILE__); $resd = $db->Execute("UPDATE {$db->prefix}sector_defence SET quantity=quantity - ? WHERE defence_id = ?", array($qty, $cur['defence_id'])); db_op_result($db, $resd, __LINE__, __FILE__); playerlog($db, $cur['ship_id'], LOG_DEFS_DESTROYED, $qty . "|" . $targetdeftype . "|" . $row['sector_id']); playerlog($db, $row['ship_id'], LOG_DEFS_DESTROYED, $qty . "|" . $deftype . "|" . $row['sector_id']); $qty = 0; } $result2->MoveNext(); } } $result1->MoveNext(); } $rese = $db->Execute("DELETE FROM {$db->prefix}sector_defence WHERE quantity <= 0"); db_op_result($db, $rese, __LINE__, __FILE__); } }
function kick_off_planet($db, $ship_id, $whichteam) { $result1 = $db->Execute("SELECT * FROM {$db->prefix}planets WHERE owner = ?", array($ship_id)); db_op_result($db, $result1, __LINE__, __FILE__); if ($result1 instanceof ADORecordSet) { while (!$result1->EOF) { $row = $result1->fields; $result2 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE on_planet = 'Y' AND planet_id = ? AND ship_id <> ?", array($row['planet_id'], $ship_id)); db_op_result($db, $result2, __LINE__, __FILE__); if ($result2 instanceof ADORecordSet) { while (!$result2->EOF) { $cur = $result2->fields; $resa = $db->Execute("UPDATE {$db->prefix}ships SET on_planet = 'N',planet_id = '0' WHERE ship_id=?", array($cur['ship_id'])); db_op_result($db, $resa, __LINE__, __FILE__); playerlog($db, $cur['ship_id'], LOG_PLANET_EJECT, $cur['sector'] . "|" . $row['character_name']); $result2->MoveNext(); } } $result1->MoveNext(); } } }
$logentry = $logentry."The booming voice speaks again: 'Excellent! We see that you have enough credits to repay the loan. Now why did you make us come all this way?'\n"; $newsentry = $newsentry.". Thankfully, $playerinfo[character_name] was able to pay them off - phew!"; } } //$newsentry = $newsentry."."; } else { $logentry = $logentry." The huge ship then vanishes!"; } } else { $logentry = "The IGB automatically paid off your loan with your IGB balance."; } //echo "<hr>LOG ENTRY = $logentry<br>News Entry = $newsentry<br><hr>"; if ($logentry != "") { //echo "Entering log for $playerinfo[player_id] name $playerinfo[character_name]<br>"; $logentry = addslashes($logentry); playerlog($playerinfo[player_id],LOG_RAW,$logentry); } if ($newsentry != "") { $headline = addslashes("IGB takes action on deadbeat ".$playerinfo[character_name]); $player_id = $playerinfo[player_id]; $newstext=addslashes($newsentry); $news = $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$newstext','$player_id',NOW(), 'IGB')"); } //echo "Loan is now ".NUMBER($account[loan])."<br>"; $account[balance] = -$account[loan]; // Put back the difference $account[loan] = 0; if ($account[balance]<0) { $account[balance] = 0; } //echo "Balance is now ".NUMBER($account[balance])."<br>"; //echo "Setting bank account. Balance =".NUMBER($account[balance])." Loan=".NUMBER($account[loan])."....";
<? include("config.php"); include("languages/$lang"); $title = "Logout"; setcookie("username","",0); setcookie("password","",0); include("header.php"); connectdb(); $result = $db->Execute("SELECT * FROM $dbtables[players] WHERE email='$username'"); $playerinfo = $result->fields; $current_score = gen_score($playerinfo[player_id]); playerlog($playerinfo[player_id], LOG_LOGOUT, $ip); bigtitle(); echo "$l_logout_score ".NUMBER($current_score).".<BR>"; $l_logout_text=str_replace("[name]",$username,$l_logout_text); echo $l_logout_text; include("footer.php"); ?>
case "sectorwmd": { if ($shipinfo[dev_sectorwmd] == 'Y' && $shipinfo[dev_genesis] > 0) { $db->Execute("UPDATE $dbtables[players] SET cleared_defences = ' ' WHERE player_id = $playerinfo[player_id]"); $ok = 1; $db->Execute("UPDATE $dbtables[ships] SET dev_genesis=dev_genesis-1 WHERE player_id = $playerinfo[player_id] AND ship_id = $playerinfo[currentship]"); // Destroy fighters $fighterslost = $total_sector_fighters; $l_sf_sendlog = str_replace("[player]", $playerinfo[character_name], $l_sf_sendlog); $l_sf_sendlog = str_replace("[lost]", NUMBER($fighterslost), $l_sf_sendlog); $l_sf_sendlog = str_replace("[sector]", $sector, $l_sf_sendlog); echo "<h1>Sector WMD Attack</h1>"; echo "You obliterate ".NUMBER($fighterslost)." sector defense fighters!<br>"; destroy_fighters($sector,$fighterslost); message_defence_owner($sector,$l_sf_sendlog); playerlog($playerinfo[player_id], LOG_DEFS_DESTROYED_F, NUMBER($fighterslost)."|$sector"); } else { $ok = 0; } } break; default: $interface_string = $calledfrom . '?sector='.$sector.'&destination='.$destination.'&engage='.$engage; $db->Execute("UPDATE $dbtables[players] SET cleared_defences = '$interface_string' WHERE player_id = $playerinfo[player_id]"); $fighterstoll = $total_sector_fighters * $fighter_price * 0.6; bigtitle(); $ok=0; echo "<!-- DEBUG2: OK=$ok-->"; echo "<FORM ACTION=$calledfrom METHOD=POST>"; $l_chf_therearetotalfightersindest = str_replace("[chf_total_sector_fighters]", NUMBER($total_sector_fighters), $l_chf_therearetotalfightersindest); echo "$l_chf_therearetotalfightersindest<br>";
echo "$l_chm_youlostallyourshields<BR>"; $mines_left = $mines_left - $playershields; if($shipinfo[armour_pts] >= $mines_left) { $l_chm_yourarmorhitforminesdmg = str_replace("[chm_mines_left]", $mines_left, $l_chm_yourarmorhitforminesdmg); echo "$l_chm_yourarmorhitforminesdmg<BR>"; $result2 = $db->Execute("UPDATE $dbtables[ships] set armour_pts=armour_pts-$mines_left,ship_energy=0,dev_minedeflector=0 where player_id=$playerinfo[player_id] AND ship_id=$playerinfo[currentship]"); if($shipinfo[armour_pts] == $mines_left) echo "$l_chm_yourhullisbreached<BR>"; } else { // BOOM $pod = $shipinfo[dev_escapepod]; playerlog($playerinfo[player_id], LOG_SHIP_DESTROYED_MINES, "$sector|$pod"); $l_chm_hewasdestroyedbyyourmines = str_replace("[chm_playerinfo_character_name]", $playerinfo[character_name], $l_chm_hewasdestroyedbyyourmines); $l_chm_hewasdestroyedbyyourmines = str_replace("[chm_sector]", $sector, $l_chm_hewasdestroyedbyyourmines); $killer_id = message_defence_owner($sector,"$l_chm_hewasdestroyedbyyourmines"); echo "$l_chm_yourshiphasbeendestroyed<BR><BR>"; // Live... if($shipinfo[dev_escapepod] == "Y") { $rating=round($playerinfo[rating]/2); echo "$l_chm_luckescapepod<BR><BR>"; $db->Execute("UPDATE $dbtables[players] SET on_planet='N',rating='$rating',cleared_defences=' ' WHERE player_id=$playerinfo[player_id] ");
echo "<td>{$sc_dev_emerwarp}</td></tr>"; } else { echo "<td>???</td></tr>"; } echo "<tr><td>{$l_escape_pod}:</td>"; $roll = mt_rand(1, 100); if ($roll < $success) { echo "<td>{$targetinfo['dev_escapepod']}</td></tr>"; } else { echo "<td>???</td></tr>"; } echo "<tr><td>{$l_fuel_scoop}:</td>"; $roll = mt_rand(1, 100); if ($roll < $success) { echo "<td>{$targetinfo['dev_fuelscoop']}</td></tr>"; } else { echo "<td>???</td></tr>"; } echo "</table><br>"; playerlog($db, $targetinfo['ship_id'], LOG_SHIP_SCAN, "{$playerinfo['character_name']}"); } $resx = $db->Execute("UPDATE {$db->prefix}ships SET turns=turns-1,turns_used=turns_used+1 WHERE ship_id=?", array($playerinfo['ship_id'])); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); } } echo "<br><br>"; TEXT_GOTOMAIN(); ?> </div></div> <?php include "footer.php";
if (isset($_GET['sure'])) { $sure = $_GET['sure']; } if (!isset($sure)) { echo "<font color=red><strong>{$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'>{$l_die_nonono}</a> {$l_die_what}<br><br>"; echo "<a href=self_destruct.php?sure=1>{$l_yes}!</a> {$l_die_goodbye}<br><br>"; } elseif ($sure == 1) { echo "<font color=red><strong>{$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'>{$l_die_nonono}</a> {$l_die_what}<br><br>"; echo "<a href=self_destruct.php?sure=2>{$l_yes}!</a> {$l_die_goodbye}<br><br>"; } elseif ($sure == 2) { echo "{$l_die_count}<br>"; echo "{$l_die_vapor}<br><br>"; $l_die_please = str_replace("[logout]", "<a href='logout.php'>" . $l_logout . "</a>", $l_die_please); echo $l_die_please . "<br>"; db_kill_player($playerinfo['ship_id'], true); cancel_bounty($db, $playerinfo['ship_id']); adminlog($db, LOG_ADMIN_HARAKIRI, "{$playerinfo['character_name']}|{$ip}"); playerlog($db, $playerinfo['ship_id'], LOG_HARAKIRI, "{$ip}"); 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 $l_die_exploit . "<br><br>"; } TEXT_GOTOMAIN(); ?> </div></div> <?php include "footer.php";
$res = $db->Execute("SELECT $dbtables[players].player_id,character_name,hull,$dbtables[ships].sector,$dbtables[universe].zone_id,max_hull,tow,ship_id FROM $dbtables[players],$dbtables[universe],$dbtables[zones],$dbtables[ships] WHERE $dbtables[ships].sector=sector_id AND $dbtables[universe].zone_id=$dbtables[zones].zone_id AND max_hull<>0 AND (($dbtables[ships].hull + $dbtables[ships].engines + $dbtables[ships].power + $dbtables[ships].computer + $dbtables[ships].sensors + $dbtables[ships].beams + $dbtables[ships].torp_launchers + $dbtables[ships].shields + $dbtables[ships].armour + $dbtables[ships].cloak)/10) >max_hull AND ship_destroyed='N' AND ship_id=currentship"); $num_to_tow = $res->RecordCount(); echo "<BR>$num_to_tow players to tow:<BR>"; while(!$res->EOF) { $row = $res->fields; if ($row[player_id] > 1) { echo "...towing $row[character_name] out of $row[sector] ..."; $newsector = rand(0, $sector_max); echo " to sector $newsector.<BR>"; echo "Moving player<br>"; //echo "UPDATE $dbtables[players] SET sector=$newsector,cleared_defences=' ' where player_id=$row[player_id]<br>"; $query = $db->Execute("UPDATE $dbtables[players] SET sector=$newsector,cleared_defences=' ' where player_id=$row[player_id]"); echo "Moving ship<br>"; //echo "UPDATE $dbtables[ships] SET sector=$newsector where ship_id=$row[ship_id]<br>"; $query = $db->Execute("UPDATE $dbtables[ships] SET sector=$newsector where ship_id=$row[ship_id]"); if ($row[tow] > 0) { echo "Moving towed ship<br>"; //echo "UPDATE $dbtables[ships] SET sector=$newsector where ship_id=$row[tow]"; $query = $db->Execute("UPDATE $dbtables[ships] SET sector=$newsector where ship_id=$row[tow]"); } playerlog($row[player_id], LOG_TOW, "$row[sector]|$newsector|$row[max_hull]"); log_move($row[player_id],$newsector); } $res->MoveNext(); } echo "<BR>"; $multiplier = 0; //no use to run this again ?>
echo "<INPUT TYPE=SUBMIT VALUE=$l_submit><INPUT TYPE=RESET VALUE=$l_reset>"; echo "</FORM>"; echo "<BR><BR>"; } else { $teamname = htmlspecialchars($teamname); $teamdesc = htmlspecialchars($teamdesc); $res = $db->Execute("UPDATE $dbtables[teams] SET team_name='$teamname', description='$teamdesc' WHERE id=$whichteam") or die("<font color=red>error: " . $db->ErrorMSG() . "</font>"); echo "$l_team_alliance <B>$teamname</B> $l_team_hasbeenr<BR><BR>"; /* Adding a log entry to all members of the renamed alliance */ $result_team_name = $db->Execute("SELECT player_id FROM $dbtables[players] WHERE team=$whichteam AND player_id<>$playerinfo[player_id]") or die("<font color=red>error: " . $db->ErrorMsg() . "</font>"); playerlog($playerinfo[player_id], LOG_TEAM_RENAME, decodeHTML($teamname)); while(!$result_team_name->EOF) { $teamname_array = $result_team_name->fields; playerlog($teamname_array[player_id], LOG_TEAM_M_RENAME, decodeHTML($teamname)); $result_team_name->MoveNext(); } } LINK_BACK(); break; } else { echo $l_team_error; LINK_BACK(); break; } case 10: // Retract Invite if ($playerinfo[team] == $team[id]) {
elseif($sure == 1) { echo "<FONT COLOR=RED><B>$l_die_check</B></FONT><BR><BR>"; echo "<A HREF=$interface>$l_die_nonono</A> $l_die_what<BR><BR>"; echo "<H1>Self-destructing has a 1500 turn penalty!</H1>"; echo "<A HREF=self-destruct.php?sure=2>$l_yes!</A> $l_die_goodbye AND LOOSE 1500 TURNS!!!!!<BR><BR>"; } elseif($sure == 2) { echo "$l_die_count<BR>"; echo "$l_die_vapor<BR><BR>"; echo "$l_die_please.<BR>"; db_kill_player($playerinfo[player_id],$playerinfo[currentship],-2); cancel_bounty($playerinfo[player_id]); playerlog(1, LOG_ADMIN_HARAKIRI, "$playerinfo[character_name]|$ip"); playerlog($playerinfo[player_id], LOG_HARAKIRI, "$ip"); } else { echo "$l_die_exploit<BR><BR>"; } if($sure != 2) { TEXT_GOTOMAIN(); } include("footer.php"); ?>
function xenobehunter() { // Setup general Variables global $playerinfo, $targetlink, $xenobeisdead, $db; $rescount = $db->Execute("SELECT COUNT(*) AS num_players FROM {$db->prefix}ships WHERE ship_destroyed='N' AND email NOT LIKE '%@xenobe' AND ship_id > 1"); db_op_result($db, $rescount, __LINE__, __FILE__); $rowcount = $rescount->fields; $topnum = min(10, $rowcount['num_players']); // If we have killed all the players in the game then stop here. if ($topnum < 1) { return; } $res = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_destroyed='N' AND email NOT LIKE '%@xenobe' AND ship_id > 1 ORDER BY score DESC LIMIT ?", array($topnum)); db_op_result($db, $res, __LINE__, __FILE__); // Choose a target from the top player list $i = 1; $targetnum = mt_rand(1, $topnum); while (!$res->EOF) { if ($i == $targetnum) { $targetinfo = $res->fields; } $i++; $res->MoveNext(); } // Make sure we have a target if (!$targetinfo) { playerlog($db, $playerinfo[ship_id], LOG_RAW, "Hunt Failed: No Target "); return; } // Jump to target sector $sectres = $db->Execute("SELECT sector_id, zone_id FROM {$db->prefix}universe WHERE sector_id=?", array($targetinfo['sector'])); db_op_result($db, $sectres, __LINE__, __FILE__); $sectrow = $sectres->fields; $zoneres = $db->Execute("SELECT zone_id,allow_attack FROM {$db->prefix}zones WHERE zone_id=?", array($sectrow['zone_id'])); db_op_result($db, $zoneres, __LINE__, __FILE__); $zonerow = $zoneres->fields; // Only travel there if we can attack in the target sector if ($zonerow['allow_attack'] == "Y") { $stamp = date("Y-m-d H-i-s"); $move_result = $db->Execute("UPDATE {$db->prefix}ships SET last_login=?, turns_used=turns_used+1, sector=? WHERE ship_id=?", array($stamp, $targetinfo['sector'], $playerinfo['ship_id'])); db_op_result($db, $move_result, __LINE__, __FILE__); playerlog($db, $playerinfo[ship_id], LOG_RAW, "Xenobe used a wormhole to warp to sector {$targetinfo['sector']} where he is hunting player {$targetinfo['character_name']}."); if (!$move_result) { $error = $db->ErrorMsg(); playerlog($db, $playerinfo[ship_id], LOG_RAW, "Move failed with error: {$error} "); return; } // Check for sector defences $resultf = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE sector_id=? AND defence_type ='F' ORDER BY quantity DESC", array($targetinfo['sector'])); db_op_result($db, $resultf, __LINE__, __FILE__); $i = 0; $total_sector_fighters = 0; if ($resultf > 0) { while (!$resultf->EOF) { $defences[$i] = $resultf->fields; $total_sector_fighters += $defences[$i]['quantity']; $i++; $resultf->MoveNext(); } } $resultm = $db->Execute("SELECT * FROM {$db->prefix}sector_defence WHERE sector_id=? AND defence_type ='M'", array($targetinfo['sector'])); db_op_result($db, $resultm, __LINE__, __FILE__); $i = 0; $total_sector_mines = 0; if ($resultm > 0) { while (!$resultm->EOF) { $defences[$i] = $resultm->fields; $total_sector_mines += $defences[$i]['quantity']; $i++; $resultm->MoveNext(); } } if ($total_sector_fighters > 0 || $total_sector_mines > 0 || $total_sector_fighters > 0 && $total_sector_mines > 0) { // Attack sector defences $targetlink = $targetinfo['sector']; xenobetosecdef(); } if ($xenobeisdead > 0) { return; // Sector defenses killed the Xenobe } playerlog($db, $playerinfo[ship_id], LOG_RAW, "Xenobe launching an attack on {$targetinfo['character_name']}."); // Attack the target if ($targetinfo['planet_id'] > 0) { xenobetoplanet($targetinfo['planet_id']); // Yes, so move to that planet } else { xenobetoship($targetinfo['ship_id']); // Not on a planet, so move to the ship } } else { playerlog($db, $playerinfo[ship_id], LOG_RAW, "Xenobe hunt failed, target {$targetinfo['character_name']} was in a no attack zone (sector {$targetinfo['sector']})."); } }
// Furangee's only compare number of fighters when determining if they have an attack advantage if ($playerinfo[ship_fighters] > $rowo3[ship_fighters] && $rowo3[planet_id] == 0) { $furcount3a++; playerlog($playerinfo[player_id], LOG_FURANGEE_ATTACK, "$rowo3[character_name]"); furangeetoship($rowo3[player_id]); if ($furangeeisdead>0) { $res->MoveNext(); continue; } } } elseif ($playerinfo[aggression] == 2) // ****** O = 3 & AGRESSION = 2 ATTACK ALLWAYS ****** { $furcount3a++; playerlog($playerinfo[player_id], LOG_FURANGEE_ATTACK, "$rowo3[character_name]"); if (!$rowo3[planet_id] == 0) { // *** IS ON PLANET *** furangeetoplanet($rowo3[planet_id]); } else { furangeetoship($rowo3[player_id]); } if ($furangeeisdead>0) { $res->MoveNext(); continue; } } } } } // ********************************* // *** ORDERS = 4 SPECIAL TRADER ***
if ($result>0) { while (!$result->EOF && $flag==0) { $row = $result->fields; if (strtolower($row[email])==strtolower($username)) { echo "$l_new_inuse $l_new_4gotpw1 <a href=mail.php?mail=$username>$l_clickme</a> $l_new_4gotpw2<BR>"; $flag=1;} if (strtolower($row[character_name])==strtolower($character)) { echo "$l_new_inusechar<BR>"; $flag=1;} if (strtolower($row[ship_name])==strtolower($shipname)) { echo "$l_new_inuseship<BR>"; $flag=1;} if ($row[ip_address]==$ip) { // Check to see if this person is playing on a device $browser="hiptop"; if ($browser != "hiptop" && $browser !="treo") { $flag=1; echo "In order to prevent multiple account play we restrict account creation under certain circumstances.<br>This is one of them.<br>If you are not trying to create multiple accounts then we are sorry, but game slots for your network are full. Please try another time.<br>"; echo "<b>Suspected multiple account creation attempt logged. Forum posting pending...</b><br>"; playerlog(1,LOG_RAW,"Suspected multiple account creation attempt logged from $ip. Offender is $row[character_name] email $row[email]. They tried to register $character with email address $username."); } } $result->MoveNext(); } } if ($flag==0) { /* insert code to add player to database */ $makepass=""; $syllables="er,in,tia,wol,fe,pre,vet,jo,nes,al,len,son,cha,ir,ler,bo,ok,tio,nar,sim,ple,bla,ten,toe,cho,co,lat,spe,ak,er,po,co,lor,pen,cil,li,ght,wh,at,the,he,ck,is,mam,bo,no,fi,ve,any,way,pol,iti,cs,ra,dio,sou,rce,sea,rch,pa,per,com,bo,sp,eak,st,fi,rst,gr,oup,boy,ea,gle,tr,ail,bi,ble,brb,pri,dee,kay,en,be,se"; $syllable_array=explode(",", $syllables); srand((double)microtime()*1000000); for ($count=1;$count<=2;$count++) { if (rand()%10 == 1) {
echo "<tr><td>$l_ewd:</td>"; $roll=rand(1,100); if ($roll<$success) { $sc_dev_emerwarp=round($targetinfo[dev_emerwarp] * $sc_error / 100); echo "<td>$sc_dev_emerwarp</td></tr>"; } else {echo"<td>???</td></tr>";} echo "<tr><td>$l_escape_pod:</td>"; $roll=rand(1,100); if ($roll<$success) {echo "<td>$targetinfo[dev_escapepod]</td></tr>";} else {echo"<td>???</td></tr>";} echo "<tr><td>$l_fuel_scoop:</td>"; $roll=rand(1,100); if ($roll<$success) {echo "<td>$targetinfo[dev_fuelscoop]</td></tr>";} else {echo"<td>???</td></tr>";} echo "</table><BR>"; playerlog($targetinfo[player_id], LOG_SHIP_SCAN, "$playerinfo[character_name]"); } $db->Execute("UPDATE $dbtables[players] SET turns=turns-1,turns_used=turns_used+1 WHERE player_id=$playerinfo[player_id]"); } } echo "<BR><BR>"; TEXT_GOTOMAIN(); include("footer.php"); ?>
db_op_result($sessvars, __LINE__, __FILE__); $vars = $sessvars->fields; if ($playerinfo['password'] == $md5password & $playerinfo['admin'] > 1) { $_SESSION['clanid'] = $vars['clanid']; $_SESSION['chiefname'] = $vars['chiefname']; $_SESSION['current_unit'] = $vars['current_unit']; $_SESSION['tooltip'] = $vars['tooltip']; echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=main.php?id=" . $vars['current_unit'] . "\">"; $stamp = date("Y-m-d H:i:s"); $gmtime = array(); $gmtime = get_game_time($gmtime); $month = $gmtime['month']; $year = $gmtime['year']; $day = $gmtime['day']; $data = "server closed Login of {$vars['chiefname']} at {$stamp}"; playerlog($vars['current_unit'], $vars['clanid'], 'LOGIN', $month['count'], $year['count'], $data, $dbtables); } else { page_header("Login Pass On"); $title = "Server Closed"; bigtitle(); echo "Please stand by. We're doing something just now. Shouldn't be a moment.<BR>"; echo "If you want, you can hang out and chat <A HREF={$link_forums}>here</A>.<BR>"; TEXT_GOTOLOGIN(); } } else { page_header("Login Pass On"); $title = "Login Failed"; bigtitle(); echo "Username or Password incorrect. Click <a href=index.php>here</a> to try again.<br>Or click <a href=new.php>here</a> if you are a new chief <p><br>"; } page_footer();
$i++; $doomsday->MoveNext(); } if($affliction == 1) // Space Plague { echo "The horsmen release the Space Plague!<BR>."; $db->Execute("UPDATE $dbtables[planets] SET colonists = ROUND(colonists-colonists*$space_plague_kills) WHERE planet_id = $targetinfo[planet_id]"); $logpercent = ROUND($space_plague_kills * 100); playerlog($targetinfo[owner],LOG_SPACE_PLAGUE,"$targetinfo[name]|$targetinfo[sector_id]|$logpercent"); $name = get_player_name($targetinfo[owner]); $headline="Travel Advisory"; $news = addslashes("The Universe Health Organization warned visitors to refrain from visiting $targetinfo[name] due to an outbreak of Space Plague. Millions are reported dead. The plague was blamed on colonist overcrowding by $name. Shame!"); $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$news','$targetinfo[owner]',NOW(), 'plague')"); } else { echo "The horsemen release a Plasma Storm!<BR>."; $db->Execute("UPDATE $dbtables[planets] SET energy = 0 WHERE planet_id = $targetinfo[planet_id]"); playerlog($targetinfo[owner],LOG_PLASMA_STORM,"$targetinfo[name]|$targetinfo[sector_id]"); $name = get_player_name($targetinfo[owner]); $headline="Weather Report"; $news = addslashes("A plasma storm struck $name's sector today. No casualties were reported."); $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$news','$targetinfo[owner]',NOW(), 'plasma')"); } } echo "<BR>"; $temp_runtime= time() - $temp_time; echo "<p>The apocolypse took $temp_runtime seconds to execute.<p>"; ?>
$teamdesc = trim(htmlspecialchars($teamdesc)); if (validate_team($teamname, $teamdesc, $playerinfo['ship_id']) == false) { echo "<span style='color:#f00;'>Team Edit Failed</span><br>Sorry you have either entered an invalid Team name or Team Description.<br>\n"; LINK_BACK(); break; } $res = $db->Execute("UPDATE {$db->prefix}teams SET team_name=?, description=? WHERE id=?;", array($teamname, $teamdesc, $whichteam)) or die("<font color=red>error: " . $db->ErrorMSG() . "</font>"); db_op_result($db, $res, __LINE__, __FILE__, $db_logging); echo "{$l_team_team} <strong>{$teamname}</strong> {$l_team_hasbeenr}<br><br>"; // Adding a log entry to all members of the renamed team $result_team_name = $db->Execute("SELECT ship_id FROM {$db->prefix}ships WHERE team=? AND ship_id<>?;", array($whichteam, $playerinfo['ship_id'])) or die("<font color=red>error: " . $db->ErrorMsg() . "</font>"); db_op_result($db, $result_team_name, __LINE__, __FILE__, $db_logging); playerlog($db, $playerinfo['ship_id'], LOG_TEAM_RENAME, $teamname); while (!$result_team_name->EOF) { $teamname_array = $result_team_name->fields; playerlog($db, $teamname_array['ship_id'], LOG_TEAM_M_RENAME, $teamname); $result_team_name->MoveNext(); } } LINK_BACK(); break; default: if ($playerinfo['team'] == 0) { echo $l_team_notmember; DISPLAY_INVITE_INFO(); } else { if ($playerinfo['team'] < 0) { $playerinfo['team'] = -$playerinfo['team']; $result = $db->Execute("SELECT * FROM {$db->prefix}teams WHERE id=?;", array($playerinfo['team'])); db_op_result($db, $result, __LINE__, __FILE__, $db_logging); $whichteam = $result->fields;
$energy=$shipinfo[ship_energy]; $update3 = $db->Execute ("UPDATE $dbtables[players] SET credits=credits+$ship_salvage,turns=turns-1, turns_used=turns_used+1, rating=rating-$rating_change WHERE player_id=$playerinfo[player_id]"); $update3 = $db->Execute ("UPDATE $dbtables[ships] SET ship_ore=ship_ore+$salv_ore, ship_organics=ship_organics+$salv_organics, ship_goods=ship_goods+$salv_goods,ship_energy=$energy,ship_fighters=ship_fighters-$fighters_lost, armour_pts=armour_pts-$armour_lost, torps=torps-$playertorpnum WHERE player_id=$playerinfo[player_id] AND ship_id=$playerinfo[currentship]"); echo "$l_att_ylost ".NUMBER($armour_lost)." $l_armourpts, ".NUMBER($fighters_lost)." Fighters, $l_att_andused ".NUMBER($playertorpnum)." $l_torps in this battle.<BR><BR>"; } } else { // ************ Target survived attack ********* $l_att_stilship=str_replace("[name]",$targetinfo[character_name],$l_att_stilship); echo "<br><h2>$l_att_stilship</h2>"; $rating_change=floor($targetinfo[rating]*.1); $armour_lost=$targetshipinfo[armour_pts]-$targetarmour; $fighters_lost=$targetshipinfo[ship_fighters]-$targetfighters; $energy=$targetshipinfo[ship_energy]; playerlog($targetinfo[player_id], LOG_ATTACKED_WIN, "$playerinfo[character_name]|$armour_lost|$fighters_lost"); $update4 = $db->Execute ("UPDATE $dbtables[ships] SET ship_energy=$energy,ship_fighters=ship_fighters-$fighters_lost, armour_pts=armour_pts-$armour_lost, torps=torps-$targettorpnum WHERE player_id=$targetinfo[player_id] and ship_id=$targetinfo[currentship]"); // ******* Update attacker ******************** $armour_lost=$shipinfo[armour_pts]-$playerarmour; $fighters_lost=$shipinfo[ship_fighters]-$playerfighters; $energy=$shipinfo[ship_energy]; $update4b = $db->Execute ("UPDATE $dbtables[players] SET turns=turns-1, turns_used=turns_used+1, rating=rating-$rating_change WHERE player_id=$playerinfo[player_id]"); $update4b = $db->Execute ("UPDATE $dbtables[ships] SET ship_energy=$energy,ship_fighters=ship_fighters-$fighters_lost, armour_pts=armour_pts-$armour_lost, torps=torps-$playertorpnum WHERE player_id=$playerinfo[player_id] and ship_id=$playerinfo[currentship]"); echo "<b>$l_att_ylost ".NUMBER($armour_lost)." $l_armourpts, ".NUMBER($fighters_lost)." Fighters, $l_att_andused ".NUMBER($playertorpnum)." $l_torps in this battle.</b><BR><BR>"; if ($playerarmour > 0) { // news - this was a skirmish that ended in a loss of fighters and armor // news $headline="Space Attack!"; $newstext=$playerinfo[character_name]." and ".$targetinfo[character_name]." clashed today in an indecisive ship attack.";
function shiptoship($target_id) { global $upgrade_cost, $upgrade_factor; global $attackerbeams; global $attackerfighters; global $attackershields; global $attackertorps; global $attackerarmor; global $attackertorpdamage; global $start_energy; global $playerinfo; global $l_cmb_attackershields, $l_cmb_attackertorps, $l_cmb_attackerarmor, $l_cmb_attackertorpdamage; global $l_cmb_startingstats, $l_cmb_statattackerbeams, $l_cmb_statattackerfighters, $l_cmb_statattackershields, $l_cmb_statattackertorps; global $l_cmb_statattackerarmor, $l_cmb_statattackertorpdamage, $l_cmb_isattackingyou, $l_cmb_beamexchange, $l_cmb_beamsdestroy; global $l_cmb_beamsdestroy2, $l_cmb_nobeamsareleft, $l_cmb_beamshavenotarget, $l_cmb_fighterdestroyedbybeams, $l_cmb_beamsdestroystillhave; global $l_cmb_fighterunhindered, $l_cmb_youhavenofightersleft, $l_cmb_breachedsomeshields, $l_cmb_shieldsarehitbybeams, $l_cmb_nobeamslefttoattack; global $l_cmb_yourshieldsbreachedby, $l_cmb_yourshieldsarehit, $l_cmb_hehasnobeamslefttoattack, $l_cmb_yourbeamsbreachedhim; global $l_cmb_yourbeamshavedonedamage, $l_cmb_nobeamstoattackarmor, $l_cmb_yourarmorbreachedbybeams, $l_cmb_yourarmorhitdamaged; global $l_cmb_torpedoexchange, $l_cmb_hehasnobeamslefttoattackyou, $l_cmb_yourtorpsdestroy, $l_cmb_yourtorpsdestroy2; global $l_cmb_youhavenotorpsleft, $l_cmb_hehasnofighterleft, $l_cmb_torpsdestroyyou, $l_cmb_someonedestroyedfighters, $l_cmb_hehasnotorpsleftforyou; global $l_cmb_youhavenofightersanymore, $l_cmb_youbreachedwithtorps, $l_cmb_hisarmorishitbytorps, $l_cmb_notorpslefttoattackarmor; global $l_cmb_yourarmorbreachedbytorps, $l_cmb_yourarmorhitdmgtorps, $l_cmb_hehasnotorpsforyourarmor, $l_cmb_fightersattackexchange; global $l_cmb_enemylostallfighters, $l_cmb_helostsomefighters, $l_cmb_youlostallfighters, $l_cmb_youalsolostsomefighters, $l_cmb_hehasnofightersleftattack; global $l_cmb_younofightersattackleft, $l_cmb_youbreachedarmorwithfighters, $l_cmb_youhitarmordmgfighters, $l_cmb_youhavenofighterstoarmor; global $l_cmb_hasbreachedarmorfighters, $l_cmb_yourarmorishitfordmgby, $l_cmb_nofightersleftheforyourarmor, $l_cmb_hehasbeendestroyed; global $l_cmb_escapepodlaunched, $l_cmb_yousalvaged, $l_cmb_youdidntdestroyhim, $l_cmb_shiptoshipcombatstats; global $db, $dbtables; //$db->Execute("LOCK TABLES $dbtables[players] WRITE, $dbtables[ships] WRITE, $dbtables[universe] WRITE, $dbtables[zones] READ"); $result2 = $db->Execute ("SELECT * FROM $dbtables[ships] WHERE ship_id=$target_id"); $targetshipinfo=$result2->fields; $result2 = $db->Execute ("SELECT * FROM $dbtables[players] WHERE player_id=$targetshipinfo[player_id]"); $targetinfo=$result2->fields; $targetbeams = NUM_BEAMS($targetshipinfo[beams]); if($targetbeams>$targetshipinfo[ship_energy]) { $targetbeams=$targetshipinfo[ship_energy]; } $targetshipinfo[ship_energy]=$targetshipinfo[ship_energy]-$targetbeams; $targetshields = NUM_SHIELDS($targetshipinfo[shields]); if($targetshields>$targetshipinfo[ship_energy]) { $targetshields=$targetshipinfo[ship_energy]; } $targetshipinfo[ship_energy]=$targetshipinfo[ship_energy]-$targetshields; $targettorpnum = round(mypw($level_factor,$targetshipinfo[torp_launchers]))*2; if($targettorpnum > $targetshipinfo[torps]) { $targettorpnum = $targetshipinfo[torps]; } $targettorpdmg = $torp_dmg_rate*$targettorpnum; $targetarmor = $targetshipinfo[armour_pts]; $targetfighters = $targetshipinfo[ship_fighters]; $targetdestroyed = 0; $playerdestroyed = 0; echo "-->$targetshipinfo[ship_name] $l_cmb_isattackingyou<BR><BR>"; // ***************** BEAM EXCHANGE ************************* echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_beamexchange</font><BR>"; if($targetfighters > 0 && $attackerbeams > 0) { if($attackerbeams > round($targetfighters / 2)) { $temp = round($targetfighters/2); $lost = $targetfighters-$temp; $targetfighters = $temp; $attackerbeams = $attackerbeams-$lost; $l_cmb_beamsdestroy = str_replace("[cmb_lost]", $lost, $l_cmb_beamsdestroy); echo "<-- $l_cmb_beamsdestroy<BR>"; } else { $targetfighters = $targetfighters-$attackerbeams; $l_cmb_beamsdestroy2 = str_replace("[cmb_attackerbeams]", $attackerbeams, $l_cmb_beamsdestroy2); echo "--> $l_cmb_beamsdestroy2<BR>"; $attackerbeams = 0; } } elseif ($targetfighters > 0 && $attackerbeams < 1) echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_nobeamsareleft</font><BR>"; else echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_beamshavenotarget</font><BR>"; if($attackerfighters > 0 && $targetbeams > 0) { if($targetbeams > round($attackerfighters / 2)) { $temp=round($attackerfighters/2); $lost=$attackerfighters-$temp; $attackerfighters=$temp; $targetbeams=$targetbeams-$lost; $l_cmb_fighterdestroyedbybeams = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_fighterdestroyedbybeams); $l_cmb_fighterdestroyedbybeams = str_replace("[cmb_lost]", $lost, $l_cmb_fighterdestroyedbybeams); echo "--> $l_cmb_fighterdestroyedbybeams"; } else { $attackerfighters=$attackerfighters-$targetbeams; $l_cmb_beamsdestroystillhave = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_beamsdestroystillhave); $l_cmb_beamsdestroystillhave = str_replace("[cmb_targetbeams]", $targetbeams, $l_cmb_beamsdestroystillhave); $l_cmb_beamsdestroystillhave = str_replace("[cmb_attackerfighters]", $attackerfighters, $l_cmb_beamsdestroystillhave); echo "<-- $l_cmb_beamsdestroystillhave<BR>"; $targetbeams=0; } } elseif ($attackerfighters > 0 && $targetbeams < 1) echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_fighterunhindered</font><BR>"; else echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_youhavenofightersleft</font><BR>"; if($attackerbeams > 0) { if($attackerbeams > $targetshields) { $attackerbeams=$attackerbeams-$targetshields; $targetshields=0; $l_cmb_breachedsomeshields = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_breachedsomeshields); echo "<-- $l_cmb_breachedsomeshields<BR>"; } else { $l_cmb_shieldsarehitbybeams = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_shieldsarehitbybeams); $l_cmb_shieldsarehitbybeams = str_replace("[cmb_attackerbeams]", $attackerbeams, $l_cmb_shieldsarehitbybeams); echo "$l_cmb_shieldsarehitbybeams<BR>"; $targetshields=$targetshields-$attackerbeams; $attackerbeams=0; } } else { $l_cmb_nobeamslefttoattack = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_nobeamslefttoattack); echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_nobeamslefttoattack</font><BR>"; } if($targetbeams > 0) { if($targetbeams > $attackershields) { $targetbeams=$targetbeams-$attackershields; $attackershields=0; $l_cmb_yourshieldsbreachedby = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourshieldsbreachedby); echo "--> $l_cmb_yourshieldsbreachedby<BR>"; } else { $l_cmb_yourshieldsarehit = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourshieldsarehit); $l_cmb_yourshieldsarehit = str_replace("[cmb_targetbeams]", $targetbeams, $l_cmb_yourshieldsarehit); echo "<-- $l_cmb_yourshieldsarehit<BR>"; $attackershields=$attackershields-$targetbeams; $targetbeams=0; } } else { $l_cmb_hehasnobeamslefttoattack = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnobeamslefttoattack); echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_hehasnobeamslefttoattack</font><BR>"; } if($attackerbeams > 0) { if($attackerbeams > $targetarmor) { $targetarmor=0; $l_cmb_yourbeamsbreachedhim = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourbeamsbreachedhim); echo "--> $l_cmb_yourbeamsbreachedhim<BR>"; } else { $targetarmor=$targetarmor-$attackerbeams; $l_cmb_yourbeamshavedonedamage = str_replace("[cmb_attackerbeams]", $attackerbeams, $l_cmb_yourbeamshavedonedamage); $l_cmb_yourbeamshavedonedamage = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourbeamshavedonedamage); echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_yourbeamshavedonedamage</font><BR>"; } } else { $l_cmb_nobeamstoattackarmor = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_nobeamstoattackarmor); echo "<FONT SIZE='+2' COLOR='RED'>$l_cmb_nobeamstoattackarmor</font><BR>"; } if($targetbeams > 0) { if($targetbeams > $attackerarmor) { $attackerarmor=0; $l_cmb_yourarmorbreachedbybeams = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourarmorbreachedbybeams); echo "--> $l_cmb_yourarmorbreachedbybeams<BR>"; } else { $attackerarmor=$attackerarmor-$targetbeams; $l_cmb_yourarmorhitdamaged = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourarmorhitdamaged); $l_cmb_yourarmorhitdamaged = str_replace("[cmb_targetbeams]", $targetbeams, $l_cmb_yourarmorhitdamaged); echo "<-- $l_cmb_yourarmorhitdamaged<BR>"; } } else { $l_cmb_hehasnobeamslefttoattackyou = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnobeamslefttoattackyou); echo "$l_cmb_hehasnobeamslefttoattackyou<BR>"; } // ****************** TORPEDO EXCHANGE *********************** echo "<BR><FONT SIZE='+2' COLOR='RED'>$l_cmb_torpedoexchange</font><BR>"; if($targetfighters > 0 && $attackertorpdamage > 0) { if($attackertorpdamage > round($targetfighters / 2)) { $temp=round($targetfighters/2); $lost=$targetfighters-$temp; $targetfighters=$temp; $attackertorpdamage=$attackertorpdamage-$lost; $l_cmb_yourtorpsdestroy = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourtorpsdestroy); $l_cmb_yourtorpsdestroy = str_replace("[cmb_lost]", $lost, $l_cmb_yourtorpsdestroy); echo "--> $l_cmb_yourtorpsdestroy<BR>"; } else { $targetfighters=$targetfighters-$attackertorpdamage; $l_cmb_yourtorpsdestroy2 = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourtorpsdestroy2); $l_cmb_yourtorpsdestroy2 = str_replace("[cmb_attackertorpdamage]", $attackertorpdamage, $l_cmb_yourtorpsdestroy2); echo "<-- $l_cmb_yourtorpsdestroy2<BR>"; $attackertorpdamage=0; } } elseif ($targetfighters > 0 && $attackertorpdamage < 1) { $l_cmb_youhavenotorpsleft = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youhavenotorpsleft); echo "$l_cmb_youhavenotorpsleft<BR>"; } else { $l_cmb_hehasnofighterleft = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnofighterleft); echo "$_cmb_hehasnofighterleft<BR>"; } if($attackerfighters > 0 && $targettorpdmg > 0) { if($targettorpdmg > round($attackerfighters / 2)) { $temp=round($attackerfighters/2); $lost=$attackerfighters-$temp; $attackerfighters=$temp; $targettorpdmg=$targettorpdmg-$lost; $l_cmb_torpsdestroyyou = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_torpsdestroyyou); $l_cmb_torpsdestroyyou = str_replace("[cmb_lost]", $lost, $l_cmb_torpsdestroyyou); echo "--> $l_cmb_torpsdestroyyou<BR>"; } else { $attackerfighters=$attackerfighters-$targettorpdmg; $l_cmb_someonedestroyedfighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_someonedestroyedfighters); $l_cmb_someonedestroyedfighters = str_replace("[cmb_targettorpdmg]", $targettorpdmg, $l_cmb_someonedestroyedfighters); echo "<-- $l_cmb_someonedestroyedfighters<BR>"; $targettorpdmg=0; } } elseif ($attackerfighters > 0 && $targettorpdmg < 1) { $l_cmb_hehasnotorpsleftforyou = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnotorpsleftforyou); echo "$l_cmb_hehasnotorpsleftforyou<BR>"; } else { $l_cmb_youhavenofightersanymore = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youhavenofightersanymore); echo "$l_cmb_youhavenofightersanymore<BR>"; } if($attackertorpdamage > 0) { if($attackertorpdamage > $targetarmor) { $targetarmor=0; $l_cmb_youbreachedwithtorps = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youbreachedwithtorps); echo "--> $l_cmb_youbreachedwithtorps<BR>"; } else { $targetarmor=$targetarmor-$attackertorpdamage; $l_cmb_hisarmorishitbytorps = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hisarmorishitbytorps); $l_cmb_hisarmorishitbytorps = str_replace("[cmb_attackertorpdamage]", $attackertorpdamage, $l_cmb_hisarmorishitbytorps); echo "<-- $l_cmb_hisarmorishitbytorps<BR>"; } } else { $l_cmb_notorpslefttoattackarmor = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_notorpslefttoattackarmor); echo "$l_cmb_notorpslefttoattackarmor<BR>"; } if($targettorpdmg > 0) { if($targettorpdmg > $attackerarmor) { $attackerarmor=0; $l_cmb_yourarmorbreachedbytorps = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourarmorbreachedbytorps); echo "<-- $l_cmb_yourarmorbreachedbytorps<BR>"; } else { $attackerarmor=$attackerarmor-$targettorpdmg; $l_cmb_yourarmorhitdmgtorps = str_replace("[cmb_targettorpdmg]", $targettorpdmg, $l_cmb_yourarmorhitdmgtorps); $l_cmb_yourarmorhitdmgtorps = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourarmorhitdmgtorps); echo "<-- $l_cmb_yourarmorhitdmgtorps<BR>"; } } else { $l_cmb_hehasnotorpsforyourarmor = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnotorpsforyourarmor); echo "$l_cmb_hehasnotorpsforyourarmor<BR>"; } // *******************8 FIGHTERS EXCHANGE ****************** echo "<BR><FONT SIZE='+2' COLOR='RED'>$l_cmb_fightersattackexchange</FONT><BR>"; if($attackerfighters > 0 && $targetfighters > 0) { if($attackerfighters > $targetfighters) { $l_cmb_enemylostallfighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_enemylostallfighters); echo "--> $l_cmb_enemylostallfighters<BR>"; $temptargfighters=0; } else { $l_cmb_helostsomefighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_helostsomefighters); $l_cmb_helostsomefighters = str_replace("[cmb_attackerfighters]", $attackerfighters, $l_cmb_helostsomefighters); echo "$l_cmb_helostsomefighters<BR>"; $temptargfighters=$targetfighters-$attackerfighters; } if($targetfighters > $attackerfighters) { echo "<-- $l_cmb_youlostallfighters<BR>"; $tempplayfighters=0; } else { $l_cmb_youalsolostsomefighters = str_replace("[cmb_targetfighters]", $targetfighters, $l_cmb_youalsolostsomefighters); echo "<-- $l_cmb_youalsolostsomefighters<BR>"; $tempplayfighters=$attackerfighters-$targetfighters; } $attackerfighters=$tempplayfighters; $targetfighters=$temptargfighters; } elseif ($attackerfighters > 0 && $targetfighters < 1) { $l_cmb_hehasnofightersleftattack = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasnofightersleftattack); echo "$l_cmb_hehasnofightersleftattack<BR>"; } else { $l_cmb_younofightersattackleft = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_younofightersattackleft); echo "$l_cmb_younofightersattackleft<BR>"; } if($attackerfighters > 0) { if($attackerfighters > $targetarmor) { $targetarmor=0; $l_cmb_youbreachedarmorwithfighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youbreachedarmorwithfighters); echo "--> $l_cmb_youbreachedarmorwithfighters<BR>"; } else { $targetarmor=$targetarmor-$attackerfighters; $l_cmb_youhitarmordmgfighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youhitarmordmgfighters); $l_cmb_youhitarmordmgfighters = str_replace("[cmb_attackerfighters]", $attackerfighters, $l_cmb_youhitarmordmgfighters); echo "<-- $l_cmb_youhitarmordmgfighters<BR>"; } } else { $l_cmb_youhavenofighterstoarmor = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youhavenofighterstoarmor); echo "$l_cmb_youhavenofighterstoarmor<BR>"; } if($targetfighters > 0) { if($targetfighters > $attackerarmor) { $attackerarmor=0; $l_cmb_hasbreachedarmorfighters = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hasbreachedarmorfighters); echo "<-- $l_cmb_hasbreachedarmorfighters<BR>"; } else { $attackerarmor=$attackerarmor-$targetfighters; $l_cmb_yourarmorishitfordmgby = str_replace("[cmb_targetfighters]", $targetfighters, $l_cmb_yourarmorishitfordmgby); $l_cmb_yourarmorishitfordmgby = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_yourarmorishitfordmgby); echo "--> $l_cmb_yourarmorishitfordmgby<BR>"; } } else { $l_cmb_nofightersleftheforyourarmor = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_nofightersleftheforyourarmor); echo "$l_cmb_nofightersleftheforyourarmor<BR>"; } if($targetarmor < 1) { $l_cmb_hehasbeendestroyed = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_hehasbeendestroyed); echo "<BR>$l_cmb_hehasbeendestroyed<BR>"; // news $headline="Ship blown up on planet!"; $newstext="The ship ".$targetshipinfo[ship_name]." was destroyed today by ".$playerinfo[character_name]." during a planet attack. "; if($targetshipinfo[dev_escapepod] == "Y") { $rating=round($targetinfo[rating]/2); echo "$l_cmb_escapepodlaunched<BR><BR>"; echo "<BR><BR>player_id=$targetinfo[player_id]<BR><BR>"; $test = $db->Execute("UPDATE $dbtables[players] SET on_planet='N',rating='$rating',sector=0 WHERE player_id=$targetinfo[player_id]"); // Immediately release any ships being towed if ($targetshipinfo[tow] > 0) { $db->Execute("UPDATE $dbtables[ships] SET player_id=0,on_planet='N',sector=$targetshipinfo[sector] WHERE ship_id=$targetshipinfo[tow]"); } $db->Execute("UPDATE $dbtables[ships] SET ship_destroyed ='Y', sector=0, tow=0 WHERE player_id=$targetinfo[player_id] AND ship_id=$targetinfo[currentship]"); playerlog($targetinfo[player_id],LOG_ATTACK_LOSE, "$playerinfo[character_name]|Y"); collect_bounty($playerinfo[player_id],$targetinfo[player_id]); $newstext = $newstext.$targetinfo[character_name]." survived and podded off to Sector 0."; } else { playerlog($targetinfo[player_id], LOG_ATTACK_LOSE, "$playerinfo[character_name]|N"); db_kill_player($targetinfo[player_id],$targetinfo[currentship],$playerinfo[player_id]); collect_bounty($playerinfo[player_id],$targetinfo[player_id]); $newstext .= $targetinfo[character_name]." did not survive the attack."; } $newstext = addslashes($newstext); $player_id = $playerinfo[player_id]; $news = $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$newstext','$player_id',NOW(), 'attack')"); if($attackerarmor > 0) { $rating_change=round($targetinfo[rating]*$rating_combat_factor); $free_ore = round($targetshipinfo[ship_ore]/2); $free_organics = round($targetshipinfo[ship_organics]/2); $free_goods = round($targetshipinfo[ship_goods]/2); $free_holds = NUM_HOLDS($shipinfo[hull]) - $shipinfo[ship_ore] - $shipinfo[ship_organics] - $shipinfo[ship_goods] - $shipinfo[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; } if($free_holds > $free_ore) { $salv_ore=$free_ore; $free_holds=$free_holds-$free_ore; } elseif($free_holds > 0) { $salv_ore=$free_holds; $free_holds=0; } else { $salv_ore=0; } if($free_holds > $free_organics) { $salv_organics=$free_organics; $free_holds=$free_holds-$free_organics; } elseif($free_holds > 0) { $salv_organics=$free_holds; $free_holds=0; } else { $salv_organics=0; } $ship_value=$upgrade_cost*(round(mypw($upgrade_factor, $targetshipinfo[hull]))+round(mypw($upgrade_factor, $targetshipinfo[engines]))+round(mypw($upgrade_factor, $targetshipinfo[power]))+round(mypw($upgrade_factor, $targetshipinfo[computer]))+round(mypw($upgrade_factor, $targetshipinfo[sensors]))+round(mypw($upgrade_factor, $targetshipinfo[beams]))+round(mypw($upgrade_factor, $targetshipinfo[torp_launchers]))+round(mypw($upgrade_factor, $targetshipinfo[shields]))+round(mypw($upgrade_factor, $targetshipinfo[armor]))+round(mypw($upgrade_factor, $targetshipinfo[cloak]))); $ship_salvage_rate=rand(10,20); $ship_salvage=$ship_value*$ship_salvage_rate/100; // Triple salvage if this is an outlaw $result3 = $db->Execute ("SELECT amount FROM $dbtables[bounty] WHERE placed_by=0 AND bounty_on=$targetinfo[player_id]"); if (!$result3->EOF) { $ship_salvage *=3; echo "You destroyed a Federation fugitive! Triple hull salvage!<br>"; } $l_cmb_yousalvaged = str_replace("[cmb_salv_ore]", NUMBER($salv_ore), $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salv_organics]", NUMBER($salv_organics), $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salv_goods]", NUMBER($salv_goods), $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salvage_rate]", $ship_salvage_rate, $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salvage]", NUMBER($ship_salvage), $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_number_rating_change]", NUMBER(abs($rating_change)), $l_cmb_yousalvaged); echo "$l_cmb_yousalvaged"; $update3 = $db->Execute ("UPDATE $dbtables[players] SET credits=credits+$ship_salvage WHERE player_id=$playerinfo[player_id]"); $update3 = $db->Execute ("UPDATE $dbtables[ships] SET ship_ore=ship_ore+$salv_ore, ship_organics=ship_organics+$salv_organics, ship_goods=ship_goods+$salv_goods WHERE player_id=$playerinfo[player_id] AND ship_id=$playerinfo[currentship]"); } } else { $l_cmb_youdidntdestroyhim = str_replace("[cmb_targetinfo_ship_name]", $targetshipinfo[ship_name], $l_cmb_youdidntdestroyhim); echo "$l_cmb_youdidntdestroyhim<BR>"; $target_rating_change=round($targetinfo[rating]*.1); $target_armor_lost=$targetshipinfo[armour_pts]-$targetarmor; $target_fighters_lost=$targetshipinfo[ship_fighters]-$targetfighters; $target_energy=$targetshipinfo[ship_energy]; playerlog($targetinfo[player_id], LOG_ATTACKED_WIN, "$playerinfo[character_name]|$target_armor_lost|$target_fighters_lost"); $update4 = $db->Execute ("UPDATE $dbtables[ships] SET ship_energy=$target_energy,ship_fighters=ship_fighters-$target_fighters_lost, armour_pts=armour_pts-$target_armor_lost, torps=torps-$targettorpnum WHERE player_id=$targetinfo[player_id] AND ship_id=$targetinfo[currentship]"); } $db->Execute("UNLOCK TABLES"); }
function xenobetoplanet($planet_id) { // Xenobe planet attack code global $playerinfo, $planetinfo, $torp_dmg_rate, $level_factor; global $rating_combat_factor, $upgrade_cost, $upgrade_factor, $sector_max, $xenobeisdead, $db; $resh = $db->Execute("LOCK TABLES {$db->prefix}ships WRITE, {$db->prefix}universe WRITE, {$db->prefix}planets WRITE, {$db->prefix}news WRITE, {$db->prefix}logs WRITE"); db_op_result($db, $resh, __LINE__, __FILE__); $resultp = $db->Execute("SELECT * FROM {$db->prefix}planets WHERE planet_id=?", array($planet_id)); // Get target planet information db_op_result($db, $resultp, __LINE__, __FILE__); $planetinfo = $resultp->fields; $resulto = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_id=?", array($planetinfo['owner'])); // Get target player information db_op_result($db, $resulto, __LINE__, __FILE__); $ownerinfo = $resulto->fields; $base_factor = $planetinfo['base'] == 'Y' ? $basedefense : 0; // Planet beams $targetbeams = NUM_BEAMS($ownerinfo['beams'] + $base_factor); if ($targetbeams > $planetinfo['energy']) { $targetbeams = $planetinfo['energy']; } $planetinfo['energy'] -= $targetbeams; // Planet shields $targetshields = NUM_SHIELDS($ownerinfo['shields'] + $base_factor); if ($targetshields > $planetinfo['energy']) { $targetshields = $planetinfo['energy']; } $planetinfo['energy'] -= $targetshields; // Planet torps $torp_launchers = round(pow($level_factor, $ownerinfo['torp_launchers'] + $base_factor)) * 10; $torps = $planetinfo['torps']; $targettorps = $torp_launchers; if ($torp_launchers > $torps) { $targettorps = $torps; } $planetinfo['torps'] -= $targettorps; $targettorpdmg = $torp_dmg_rate * $targettorps; // Planet fighters $targetfighters = $planetinfo['fighters']; // Attacker beams $attackerbeams = NUM_BEAMS($playerinfo['beams']); if ($attackerbeams > $playerinfo['ship_energy']) { $attackerbeams = $playerinfo['ship_energy']; } $playerinfo['ship_energy'] -= $attackerbeams; // Attacker shields $attackershields = NUM_SHIELDS($playerinfo['shields']); if ($attackershields > $playerinfo['ship_energy']) { $attackershields = $playerinfo['ship_energy']; } $playerinfo['ship_energy'] -= $attackershields; // Attacker torps $attackertorps = round(pow($level_factor, $playerinfo['torp_launchers'])) * 2; if ($attackertorps > $playerinfo['torps']) { $attackertorps = $playerinfo['torps']; } $playerinfo['torps'] -= $attackertorps; $attackertorpdamage = $torp_dmg_rate * $attackertorps; // Attacker fighters $attackerfighters = $playerinfo['ship_fighters']; // Attacker armor $attackerarmor = $playerinfo['armor_pts']; // Begin combat if ($attackerbeams > 0 && $targetfighters > 0) { if ($attackerbeams > $targetfighters) { $lost = $targetfighters; $targetfighters = 0; // Target loses all fighters $attackerbeams = $attackerbeams - $lost; // Attacker loses beams equal to Target fighters } else { $targetfighters = $targetfighters - $attackerbeams; // Target loses fighters equal to attacker beams $attackerbeams = 0; // Attacker loses all beams } } if ($attackerfighters > 0 && $targetbeams > 0) { if ($targetbeams > round($attackerfighters / 2)) { $lost = $attackerfighters - round($attackerfighters / 2); // Attacker loses half of all fighters $attackerfighters = $attackerfighters - $lost; $targetbeams = $targetbeams - $lost; // Target loses beams equal to half of attackers fighters } else { // Target beams are less than half of attackers fighters $attackerfighters = $attackerfighters - $targetbeams; // Attacker loses fighters equal to target beams $targetbeams = 0; // Target loses all beams } } if ($attackerbeams > 0) { if ($attackerbeams > $targetshields) { $attackerbeams = $attackerbeams - $targetshields; // Attacker loses beams equal to target shields $targetshields = 0; // Target loses all shields } else { $targetshields = $targetshields - $attackerbeams; // Target loses shields equal to attacker beams $attackerbeams = 0; // Attacker loses all beams } } if ($targetbeams > 0) { if ($targetbeams > $attackershields) { $targetbeams = $targetbeams - $attackershields; // Target loses beams equal to attacker shields $attackershields = 0; // Attacker loses all shields } else { $attackershields = $attackershields - $targetbeams; // Attacker loses sheilds equal to target beams $targetbeams = 0; // Target loses all beams } } if ($targetbeams > 0) { if ($targetbeams > $attackerarmor) { $targetbeams = $targetbeams - $attackerarmor; // Target loses beams equal to attacker armor $attackerarmor = 0; // Attacker loses all armor (attacker destroyed) } else { $attackerarmor = $attackerarmor - $targetbeams; // Attacker loses armor equal to target beams $targetbeams = 0; // Target loses all beams } } if ($targetfighters > 0 && $attackertorpdamage > 0) { if ($attackertorpdamage > $targetfighters) { $lost = $targetfighters; $targetfighters = 0; // Target loses all fighters $attackertorpdamage = $attackertorpdamage - $lost; // Attacker loses fired torpedoes equal to target fighters } else { $targetfighters = $targetfighters - $attackertorpdamage; // Target loses fighters equal to attacker torpedoes fired $attackertorpdamage = 0; // Attacker loses all torpedoes fired } } if ($attackerfighters > 0 && $targettorpdmg > 0) { if ($targettorpdmg > round($attackerfighters / 2)) { $lost = $attackerfighters - round($attackerfighters / 2); $attackerfighters = $attackerfighters - $lost; // Attacker loses half of all fighters $targettorpdmg = $targettorpdmg - $lost; // Target loses fired torpedoes equal to half of attacker fighters } else { // Target fired torpedoes less than or equal to half of attacker fighters $attackerfighters = $attackerfighters - $targettorpdmg; // Attacker loses fighters equal to target torpedoes fired $targettorpdmg = 0; // Tartget loses all torpedoes fired } } if ($targettorpdmg > 0) { if ($targettorpdmg > $attackerarmor) { $targettorpdmg = $targettorpdmg - $attackerarmor; // Target loses fired torpedoes equal to attacker armor $attackerarmor = 0; // Attacker loses all armor (Attacker destroyed) } else { // Target fired torpedoes less than or equal to half attacker armor $attackerarmor = $attackerarmor - $targettorpdmg; // Attacker loses armor equal to the target torpedoes fired $targettorpdmg = 0; // Target loses all torpedoes fired } } if ($attackerfighters > 0 && $targetfighters > 0) { if ($attackerfighters > $targetfighters) { $temptargfighters = 0; // Target will lose all fighters } else { // Attackers fighters less than or equal to target fighters $temptargfighters = $targetfighters - $attackerfighters; // Target will loose fighters equal to attacker fighters } if ($targetfighters > $attackerfighters) { // Target fighters greater than attackers fighters $tempplayfighters = 0; // Attackerwill loose ALL fighters } else { // Target fighters less than or equal to attackers fighters $tempplayfighters = $attackerfighters - $targetfighters; // Attacker will loose fighters equal to target fighters } $attackerfighters = $tempplayfighters; $targetfighters = $temptargfighters; } if ($targetfighters > 0) { if ($targetfighters > $attackerarmor) { // Target fighters greater than attackers armor $attackerarmor = 0; // attacker loses all armor (attacker destroyed) } else { // Target fighters less than or equal to attackers armor $attackerarmor = $attackerarmor - $targetfighters; // attacker loses armor equal to target fighters } } // Fix negative values if ($attackerfighters < 0) { $attackerfighters = 0; } if ($attackertorps < 0) { $attackertorps = 0; } if ($attackershields < 0) { $attackershields = 0; } if ($attackerbeams < 0) { $attackerbeams = 0; } if ($attackerarmor < 0) { $attackerarmor = 0; } if ($targetfighters < 0) { $targetfighters = 0; } if ($targettorps < 0) { $targettorps = 0; } if ($targetshields < 0) { $targetshields = 0; } if ($targetbeams < 0) { $targetbeams = 0; } if (!$attackerarmor > 0) { playerlog($db, $playerinfo['ship_id'], LOG_RAW, "Ship destroyed by planetary defenses on planet {$planetinfo['name']}"); db_kill_player($playerinfo['ship_id']); $xenobeisdead = 1; $free_ore = round($playerinfo['ship_ore'] / 2); $free_organics = round($playerinfo['ship_organics'] / 2); $free_goods = round($playerinfo['ship_goods'] / 2); $ship_value = $upgrade_cost * (round(pow($upgrade_factor, $playerinfo['hull'])) + round(pow($upgrade_factor, $playerinfo['engines'])) + round(pow($upgrade_factor, $playerinfo['power'])) + round(pow($upgrade_factor, $playerinfo['computer'])) + round(pow($upgrade_factor, $playerinfo['sensors'])) + round(pow($upgrade_factor, $playerinfo['beams'])) + round(pow($upgrade_factor, $playerinfo['torp_launchers'])) + round(pow($upgrade_factor, $playerinfo['shields'])) + round(pow($upgrade_factor, $playerinfo['armor'])) + round(pow($upgrade_factor, $playerinfo['cloak']))); $ship_salvage_rate = mt_rand(10, 20); $ship_salvage = $ship_value * $ship_salvage_rate / 100; $fighters_lost = $planetinfo['fighters'] - $targetfighters; // Log attack to planet owner playerlog($db, $planetinfo['owner'], LOG_PLANET_NOT_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|Xenobe {$playerinfo['character_name']}|{$free_ore}|{$free_organics}|{$free_goods}|{$ship_salvage_rate}|{$ship_salvage}"); // Update planet $resi = $db->Execute("UPDATE {$db->prefix}planets SET energy=?, fighters=fighters-?, torps=torps-?, ore=ore+?, goods=goods+?, organics=organics+?, credits=credits+? WHERE planet_id=?", array($planetinfo['energy'], $fighters_lost, $targettorps, $free_ore, $free_goods, $free_organics, $ship_salvage, $planetinfo['planet_id'])); db_op_result($db, $resi, __LINE__, __FILE__); } else { $armor_lost = $playerinfo['armor_pts'] - $attackerarmor; $fighters_lost = $playerinfo['ship_fighters'] - $attackerfighters; $target_fighters_lost = $planetinfo['ship_fighters'] - $targetfighters; playerlog($db, $playerinfo['ship_id'], LOG_RAW, "Made it past defenses on planet {$planetinfo['name']}"); // Update attackers $resj = $db->Execute("UPDATE {$db->prefix}ships SET ship_energy=?, ship_fighters=ship_fighters-?, torps=torps-?, armor_pts=armor_pts-? WHERE ship_id=?", array($playerinfo['ship_energy'], $fighters_lost, $attackertorps, $armor_lost, $playerinfo['ship_id'])); db_op_result($db, $resj, __LINE__, __FILE__); $playerinfo['ship_fighters'] = $attackerfighters; $playerinfo['torps'] = $attackertorps; $playerinfo['armor_pts'] = $attackerarmor; // Update planet $resk = $db->Execute("UPDATE {$db->prefix}planets SET energy=?, fighters=?, torps=torps-? WHERE planet_id=?", array($planetinfo['energy'], $targetfighters, $targettorps, $planetinfo['planet_id'])); db_op_result($db, $resk, __LINE__, __FILE__); $planetinfo['fighters'] = $targetfighters; $planetinfo['torps'] = $targettorps; // Now we must attack all ships on the planet one by one $resultps = $db->Execute("SELECT ship_id,ship_name FROM {$db->prefix}ships WHERE planet_id=? AND on_planet='Y'", array($planetinfo['planet_id'])); db_op_result($db, $resultps, __LINE__, __FILE__); $shipsonplanet = $resultps->RecordCount(); if ($shipsonplanet > 0) { while (!$resultps->EOF && $xenobeisdead < 1) { $onplanet = $resultps->fields; xenobetoship($onplanet['ship_id']); $resultps->MoveNext(); } } $resultps = $db->Execute("SELECT ship_id,ship_name FROM {$db->prefix}ships WHERE planet_id=? AND on_planet='Y'", array($planetinfo['planet_id'])); db_op_result($db, $resultps, __LINE__, __FILE__); $shipsonplanet = $resultps->RecordCount(); if ($shipsonplanet == 0 && $xenobeisdead < 1) { // Must have killed all ships on the planet playerlog($db, $playerinfo['ship_id'], LOG_RAW, "Defeated all ships on planet {$planetinfo['name']}"); // Log attack to planet owner playerlog($db, $planetinfo['owner'], LOG_PLANET_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|{$playerinfo['character_name']}"); // Update planet $resl = $db->Execute("UPDATE {$db->prefix}planets SET fighters=0, torps=0, base='N', owner=0, corp=0 WHERE planet_id=?", array($planetinfo['planet_id'])); db_op_result($db, $resl, __LINE__, __FILE__); calc_ownership($planetinfo['sector_id']); } else { // Must have died trying playerlog($db, $playerinfo['ship_id'], LOG_RAW, "We were KILLED by ships defending planet {$planetinfo['name']}"); // Log attack to planet owner playerlog($db, $planetinfo['owner'], LOG_PLANET_NOT_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|Xenobe {$playerinfo['character_name']}|0|0|0|0|0"); // No salvage for planet because it went to the ship that won } } $resx = $db->Execute("UNLOCK TABLES"); db_op_result($db, $resx, __LINE__, __FILE__); }
function cancel_bounty($bounty_on) { global $db,$dbtables; $res = $db->Execute("SELECT * FROM $dbtables[bounty],$dbtables[players] WHERE bounty_on = $bounty_on AND bounty_on = player_id"); if($res) { while(!$res->EOF) { $bountydetails = $res->fields; if($bountydetails[placed_by] <> 0) { $update = $db->Execute("UPDATE $dbtables[players] SET credits = credits + $bountydetails[amount] WHERE player_id = $bountydetails[placed_by]"); playerlog($bountydetails[placed_by],LOG_BOUNTY_CANCELLED,"$bountydetails[amount]|$bountydetails[character_name]"); } $delete = $db->Execute("DELETE FROM $dbtables[bounty] WHERE bounty_id = $bountydetails[bounty_id]"); $res->MoveNext(); } } }
$l_sf_sendlog = str_replace("[lost]", $fighterslost, $l_sf_sendlog); $l_sf_sendlog = str_replace("[sector]", $sector, $l_sf_sendlog); message_defence_owner($db, $sector, $l_sf_sendlog); playerlog($db, $playerinfo['ship_id'], LOG_DEFS_DESTROYED_F, "{$fighterslost}|{$sector}"); $armor_lost = $playerinfo['armor_pts'] - $playerarmor; $fighters_lost = $playerinfo['ship_fighters'] - $playerfighters; $energy = $playerinfo['ship_energy']; $update4b = $db->Execute("UPDATE {$db->prefix}ships SET ship_energy={$energy},ship_fighters=ship_fighters-{$fighters_lost}, armor_pts=armor_pts-{$armor_lost}, torps=torps-{$playertorpnum} WHERE ship_id={$playerinfo['ship_id']}"); db_op_result($db, $update4b, __LINE__, __FILE__, $db_logging); $l_sf_lreport = str_replace("[armor]", $armor_lost, $l_sf_lreport); $l_sf_lreport = str_replace("[fighters]", $fighters_lost, $l_sf_lreport); $l_sf_lreport = str_replace("[torps]", $playertorpnum, $l_sf_lreport); echo $l_sf_lreport . "<br><br>"; if ($playerarmor < 1) { echo $l_sf_shipdestroyed . "<br><br>"; playerlog($db, $playerinfo['ship_id'], LOG_DEFS_KABOOM, "{$sector}|{$playerinfo['dev_escapepod']}"); $l_sf_sendlog2 = str_replace("[player]", $playerinfo['character_name'], $l_sf_sendlog2); $l_sf_sendlog2 = str_replace("[sector]", $sector, $l_sf_sendlog2); message_defence_owner($db, $sector, $l_sf_sendlog2); if ($playerinfo['dev_escapepod'] == 'Y') { $rating = round($playerinfo['rating'] / 2); echo $l_sf_escape . "<br><br>"; $resx = $db->Execute("UPDATE {$db->prefix}ships SET hull=0,engines=0,power=0,sensors=0,computer=0,beams=0,torp_launchers=0,torps=0,armor=0,armor_pts=100,cloak=0,shields=0,sector=0,ship_organics=0,ship_ore=0,ship_goods=0,ship_energy={$start_energy},ship_colonists=0,ship_fighters=100,dev_warpedit=0,dev_genesis=0,dev_beacon=0,dev_emerwarp=0,dev_escapepod='N',dev_fuelscoop='N',dev_minedeflector=0,on_planet='N',rating='{$rating}',cleared_defences=' ',dev_lssd='N' WHERE ship_id={$playerinfo['ship_id']}"); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); cancel_bounty($db, $playerinfo['ship_id']); $ok = 0; TEXT_GOTOMAIN(); die; } else { cancel_bounty($db, $playerinfo['ship_id']); db_kill_player($playerinfo['ship_id']);
$ownership = calc_ownership($playerinfo['sector']); if (!empty($ownership)) { echo "{$ownership}<p>"; } if ($planetinfo['owner'] != 0) { gen_score($planetinfo['owner']); } if ($planetinfo['owner'] != 0) { $res = $db->Execute("SELECT character_name FROM {$db->prefix}ships WHERE ship_id={$planetinfo['owner']}"); db_op_result($db, $res, __LINE__, __FILE__, $db_logging); $query = $res->fields; $planetowner = $query['character_name']; } else { $planetowner = "nobody"; } playerlog($db, $playerinfo['ship_id'], LOG_PLANET_CAPTURED, "{$planetinfo['colonists']}|{$planetinfo['credits']}|{$planetowner}"); } elseif ($command == "capture" && ($planetinfo['owner'] == 0 || $planetinfo['defeated'] == 'Y')) { echo "Planet not defeated!<br/>"; $resx = $db->Execute("UPDATE {$db->prefix}planets SET defeated='N' WHERE planet_id={$planetinfo['planet_id']}"); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); } else { echo "Command not available.<br/>"; } } } else { echo "You are not in the same sector as this planet, so you can't interact with it."; } if ($command != "") { echo "<br/><a href=planet.php?planet_id={$planet_id}>Click Here</a> to go to the planet menu.<br/><br/>"; } if ($allow_ibank) {
} else { // Direct hit echo $l_chm_youlostallyourshields . "<br>"; $mines_left = $mines_left - $playershields; if ($playerinfo['armor_pts'] >= $mines_left) { $l_chm_yourarmorhitforminesdmg = str_replace("[chm_mines_left]", $mines_left, $l_chm_yourarmorhitforminesdmg); echo $l_chm_yourarmorhitforminesdmg . "<br>"; $result2 = $db->Execute("UPDATE {$db->prefix}ships SET armor_pts=armor_pts-?, ship_energy=0, dev_minedeflector=0 WHERE ship_id=?;", array($mines_left, $playerinfo['ship_id'])); db_op_result($db, $result2, __LINE__, __FILE__, $db_logging); if ($playerinfo['armor_pts'] == $mines_left) { echo $l_chm_yourhullisbreached . "<br>"; } } else { // BOOM $pod = $playerinfo['dev_escapepod']; playerlog($db, $playerinfo['ship_id'], LOG_SHIP_DESTROYED_MINES, "{$sector}|{$pod}"); $l_chm_hewasdestroyedbyyourmines = str_replace("[chm_playerinfo_character_name]", $playerinfo['character_name'], $l_chm_hewasdestroyedbyyourmines); $l_chm_hewasdestroyedbyyourmines = str_replace("[chm_sector]", $sector, $l_chm_hewasdestroyedbyyourmines); message_defence_owner($db, $sector, $l_chm_hewasdestroyedbyyourmines); echo $l_chm_yourshiphasbeendestroyed . "<br><br>"; // Survival if ($playerinfo['dev_escapepod'] == "Y") { $rating = round($playerinfo['rating'] / 2); echo $l_chm_luckescapepod . "<br><br>"; $resx = $db->Execute("UPDATE {$db->prefix}ships SET hull=0, engines=0, power=0, sensors=0, computer=0, beams=0, torp_launchers=0, torps=0, armor=0, armor_pts=100, cloak=0, shields=0, sector=0, ship_organics=0, ship_ore=0, ship_goods=0, ship_energy=?, ship_colonists=0, ship_fighters=100, dev_warpedit=0, dev_genesis=0, dev_beacon=0, dev_emerwarp=0, dev_escapepod='N', dev_fuelscoop='N', dev_minedeflector=0, on_planet='N', rating=?, cleared_defences=' ', dev_lssd='N' WHERE ship_id=?;", array($start_energy, $rating, $playerinfo['ship_id'])); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); cancel_bounty($db, $playerinfo['ship_id']); } else { // Or die! cancel_bounty($db, $playerinfo['ship_id']); db_kill_player($playerinfo['ship_id']);
$timedt = array(); $timedata = get_game_time($timedt); page_header("Logging Out"); $result = $db->Execute("SELECT * FROM {$dbtables['chiefs']} WHERE clanid ='{$_SESSION['clanid']}'"); $playerinfo = $result->fields; if ($_SESSION['delete'] == '1') { $title = "Clan Deleted"; bigtitle(); echo "Clan {$playerinfo['clanid']} successfully deleted.<BR>"; $month = $timedata['month']; $year = $timedata['year']; $data = "Chief Committed Suicide {$_SESSION['clanid']} FROM {$ip}"; playerlog($_SESSION['current_unit'], $_SESSION['clanid'], 'SUICIDE', $month['count'], $year['count'], $data, $dbtables); adminlog('SUICIDE', $data); //var_dump($timedata); $_SESSION = array(); session_destroy(); TEXT_GOTOLOGIN(); } else { //playerlog($playerinfo[clanid], LOG_LOGOUT, $ip); $month = $timedata['month']; $year = $timedata['year']; $data = "Logged out at " . date("Y-m-d H:i:s") . " from IP {$ip}"; playerlog($_SESSION['current_unit'], $_SESSION['clanid'], 'LOGOUT', $month['count'], $year['count'], $data, $dbtables); //var_dump($timedata); $_SESSION = array(); session_destroy(); bigtitle(); echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=index.php\">"; } page_footer();