示例#1
0
$targetship = $playerinfo;
$num_defences = 0;
$total_sector_mines = 0;
$owner = true;
while (!$result3->EOF) {
    $row = $result3->fields;
    $defences[$num_defences] = $row;
    $total_sector_mines += $defences[$num_defences]['quantity'];
    if ($defences[$num_defences]['ship_id'] != $playerinfo['ship_id']) {
        $owner = false;
    }
    $num_defences++;
    $result3->MoveNext();
}
// Compute the ship average...if its too low then the ship will not hit mines...
$shipavg = get_avg_tech($targetship, "ship");
// The mines will attack if 4 conditions are met
//    1) There is at least 1 group of mines in the sector
//    2) There is at least 1 mine in the sector
//    3) You are not the owner or on the team of the owner - team 0 dosent count
//    4) You ship is at least $mine_hullsize (setable in config.php) big
if ($num_defences > 0 && $total_sector_mines > 0 && !$owner && $shipavg > $mine_hullsize) {
    // Find out if the mine owner and player are on the same team
    $fm_owner = $defences[0]['ship_id'];
    $result2 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_id=?;", array($fm_owner));
    db_op_result($db, $result2, __LINE__, __FILE__, $db_logging);
    $mine_owner = $result2->fields;
    if ($mine_owner['team'] != $playerinfo['team'] || $playerinfo['team'] == 0) {
        // You hit mines
        bigtitle();
        $ok = 0;
示例#2
0
 db_op_result($db, $result4, __LINE__, __FILE__, $db_logging);
 if ($result4 != false) {
     $ships_detected = 0;
     $ship_detected = null;
     while (!$result4->EOF) {
         $row = $result4->fields;
         $success = SCAN_SUCCESS($playerinfo['sensors'], $row['cloak']);
         if ($success < 5) {
             $success = 5;
         }
         if ($success > 95) {
             $success = 95;
         }
         $roll = mt_rand(1, 100);
         if ($roll < $success) {
             $shipavg = get_avg_tech($row, "ship");
             if ($shipavg < 10) {
                 $ship_image = 0;
             } elseif ($shipavg < 15) {
                 $ship_image = 1;
             } elseif ($shipavg < 20) {
                 $ship_image = 2;
             } elseif ($shipavg < 25) {
                 $ship_image = 3;
             } elseif ($shipavg < 30) {
                 $ship_image = 4;
             } elseif ($shipavg < 35) {
                 $ship_image = 5;
             } elseif ($shipavg < 40) {
                 $ship_image = 6;
             } elseif ($shipavg < 45) {
示例#3
0
function planetcombat()
{
    global $playerinfo, $ownerinfo, $sectorinfo, $planetinfo, $torpedo_price, $colonist_price, $ore_price, $organics_price, $goods_price, $energy_price;
    global $planetbeams, $planetfighters, $planetshields, $planettorps, $attackerbeams, $attackerfighters, $attackershields, $upgrade_factor, $upgrade_cost;
    global $attackertorps, $attackerarmor, $torp_dmg_rate, $level_factor, $attackertorpdamage, $start_energy, $min_value_capture, $l_cmb_atleastoneturn;
    global $l_cmb_atleastoneturn, $l_cmb_shipenergybb, $l_cmb_shipenergyab, $l_cmb_shipenergyas, $l_cmb_shiptorpsbtl, $l_cmb_shiptorpsatl;
    global $l_cmb_planettorpdamage, $l_cmb_beams, $l_cmb_fighters, $l_cmb_shields, $l_cmb_torps;
    global $l_cmb_torpdamage, $l_cmb_armor, $l_cmb_you, $l_cmb_planet, $l_cmb_combatflow, $l_cmb_defender, $l_cmb_attackingplanet;
    global $l_cmb_youfireyourbeams, $l_cmb_defenselost, $l_cmb_defenselost2, $l_cmb_planetarybeams, $l_cmb_planetarybeams2;
    global $l_cmb_youdestroyedplanetshields, $l_cmb_beamsexhausted, $l_cmb_breachedyourshields, $l_cmb_destroyedyourshields;
    global $l_cmb_breachedyourarmor, $l_cmb_destroyedyourarmor, $l_cmb_torpedoexchangephase, $l_cmb_nofightersleft;
    global $l_cmb_youdestroyfighters, $l_cmb_planettorpsdestroy, $l_cmb_planettorpsdestroy2, $l_cmb_torpsbreachedyourarmor;
    global $l_cmb_planettorpsdestroy3, $l_cmb_youdestroyedallfighters, $l_cmb_youdestroyplanetfighters, $l_cmb_fightercombatphase;
    global $l_cmb_youdestroyedallfighters2, $l_cmb_youdestroyplanetfighters2, $l_cmb_allyourfightersdestroyed, $l_cmb_fightertofighterlost;
    global $l_cmb_youbreachedplanetshields, $l_cmb_shieldsremainup, $l_cmb_fighterswarm, $l_cmb_swarmandrepel, $l_cmb_engshiptoshipcombat;
    global $l_cmb_shipdock, $l_cmb_approachattackvector, $l_cmb_noshipsdocked, $l_cmb_yourshipdestroyed, $l_cmb_escapepod;
    global $l_cmb_finalcombatstats, $l_cmb_youlostfighters, $l_cmb_youlostarmorpoints, $l_cmb_energyused, $l_cmb_planetdefeated;
    global $l_cmb_citizenswanttodie, $l_cmb_youmaycapture, $l_cmb_planetnotdefeated, $l_cmb_planetstatistics;
    global $l_cmb_fighterloststat, $l_cmb_energyleft;
    global $db, $db_logging;
    if ($playerinfo['turns'] < 1) {
        echo $l_cmb_atleastoneturn . "<br><br>";
        TEXT_GOTOMAIN();
        ?>
</div></div>
<?php 
        include "footer.php";
        die;
    }
    // Planetary defense system calculation
    $planetbeams = calcplanetbeams();
    $planetfighters = $planetinfo['fighters'];
    $planetshields = calcplanetshields();
    $planettorps = calcplanettorps();
    // Attacking ship calculations
    $attackerbeams = NUM_BEAMS($playerinfo['beams']);
    $attackerfighters = $playerinfo['ship_fighters'];
    $attackershields = NUM_SHIELDS($playerinfo['shields']);
    $attackertorps = round(pow($level_factor, $playerinfo['torp_launchers'])) * 2;
    $attackerarmor = $playerinfo['armor_pts'];
    // Now modify player beams, shields and torpedos on available materiel
    $start_energy = $playerinfo['ship_energy'];
    // Beams
    if ($attackerbeams > $playerinfo['ship_energy']) {
        $attackerbeams = $playerinfo['ship_energy'];
    }
    $playerinfo['ship_energy'] = $playerinfo['ship_energy'] - $attackerbeams;
    // Shields
    if ($attackershields > $playerinfo['ship_energy']) {
        $attackershields = $playerinfo['ship_energy'];
    }
    $playerinfo['ship_energy'] = $playerinfo['ship_energy'] - $attackershields;
    // Torpedos
    if ($attackertorps > $playerinfo['torps']) {
        $attackertorps = $playerinfo['torps'];
    }
    $playerinfo['torps'] = $playerinfo['torps'] - $attackertorps;
    // Setup torp damage rate for both Planet and Ship
    $planettorpdamage = $torp_dmg_rate * $planettorps;
    $attackertorpdamage = $torp_dmg_rate * $attackertorps;
    /*
    Build table
    */
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>\n\t<td>STATS</td>\n    <td>Beams</td>\n    <td>Fighters</td>\n    <td>Shields</td>\n    <td>Torpedoes Warhead Strength</td>\n    <td>Armour</td>\n    </tr><tr>\n    <td><span class=\"table_word_blue\">Your Ship</span></td>\n    <td>{$attackerbeams}</td>\n    <td>{$attackerfighters}</td>\n    <td>{$attackershields}</td>\n    <td>{$attackertorpdamage}</td>\n    <td>{$attackerarmor}</td>\n    </tr><tr>\n    <td><span class=\"table_word_orange\">The Planet</span></td>\n    <td>{$planetbeams}</td>\n    <td>{$planetfighters}</td>\n    <td>{$planetshields}</td>\n    <td>{$planettorpdamage}</td>\n    <td>N/A</td>\n    </tr>";
    echo "</tbody></table></div>";
    // Begin actual combat calculations
    $planetdestroyed = 0;
    $attackerdestroyed = 0;
    echo "<br/>You are now engaging the planet in sector " . $playerinfo[sector] . "!<br/><br/>";
    /*
    Build table
    */
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>";
    echo "<td width=\"50%\">You</td>";
    echo "<td width=\"50%\">Planet</td>";
    echo "</tr>";
    echo "<tr><td colspan=\"2\"><span class=\"table_word_yellow\">Firing Your Beams</span></td></tr>";
    if ($planetfighters > 0 && $attackerbeams > 0) {
        if ($attackerbeams > $planetfighters) {
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary defense lost " . $planetfighters . " fighters to your beams</span></td></tr>";
            $attackerbeams = $attackerbeams - $planetfighters;
            $planetfighters = 0;
        } else {
            $planetfighters = $planetfighters - $attackerbeams;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary defense lost " . $planetfighters . " fighters, but there are more coming!</span></td></tr>";
            $attackerbeams = 0;
        }
    }
    if ($attackerfighters > 0 && $planetbeams > 0) {
        // If there are more beams on the planet than attacker has fighters
        if ($planetbeams > round($attackerfighters / 2)) {
            // Half the attacker fighters
            $temp = round($attackerfighters / 2);
            // Attacker loses half his fighters
            $lost = $attackerfighters - $temp;
            // Set attacker fighters to 1/2 it's original value
            $attackerfighters = $temp;
            // Subtract half the attacker fighters from available planetary beams
            $planetbeams = $planetbeams - $lost;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary beams destroy " . $temp . " of your fighters</span></td></tr>";
        } else {
            $attackerfighters = $attackerfighters - $planetbeams;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary beams destroy " . $planetbeams . " of your fighters</span></td></tr>";
            $planetbeams = 0;
        }
    }
    if ($attackerbeams > 0) {
        if ($attackerbeams > $planetshields) {
            $attackerbeams = $attackerbeams - $planetshields;
            $planetshields = 0;
            echo "<tr><td><span class=\"table_word_green\">Your beams have destroyed the planetary shields</span></td><td></td></tr>";
        } else {
            echo "<tr><td><span class=\"table_word_orange\">You destroy " . $attackerbeams . " planetary shields before your beams are exhausted</span></td><td></td></tr>";
            $planetshields = $planetshields - $attackerbeams;
            $attackerbeams = 0;
        }
    }
    if ($planetbeams > 0) {
        if ($planetbeams > $attackershields) {
            $planetbeams = $planetbeams - $attackershields;
            $attackershields = 0;
            echo "<tr><td></td><td><span class=\"table_word_red\">Planetary beams have breached your shields</span></td></tr>";
        } else {
            $attackershields = $attackershields - $planetbeams;
            echo "<tr><td></td><td><span class=\"table_word_red\">Planetary beams have destroyed " . $planetbeams . " of your shields</span></td></tr>";
            $planetbeams = 0;
        }
    }
    if ($planetbeams > 0) {
        if ($planetbeams > $attackerarmor) {
            $attackerarmor = 0;
            echo "<tr><td></td><td><span class=\"table_word_red\">Planetary beams have breached your armor</span></td></tr>";
        } else {
            $attackerarmor = $attackerarmor - $planetbeams;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary beams have destroyed " . $planetbeams . " points of armor</span></td></tr>";
        }
    }
    if ($planetshields > 0) {
    } else {
        echo "<tr><td></td><td><span class=\"table_word_green\">Planets shields have been breached!</span></td></tr>";
    }
    echo "</tbody></table></div>";
    /*
    Build table
    */
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>\n\t<td>UPDATE</td>\n    <td>Beams</td>\n    <td>Fighters</td>\n    <td>Shields</td>\n    <td>Torpedoes Warhead Strength</td>\n    <td>Armour</td>\n    </tr><tr>\n    <td><span class=\"table_word_blue\">Your Ship</span></td>\n    <td>{$attackerbeams}</td>\n    <td>{$attackerfighters}</td>\n    <td>{$attackershields}</td>\n    <td>{$attackertorpdamage}</td>\n    <td>{$attackerarmor}</td>\n    </tr><tr>\n    <td><span class=\"table_word_orange\">The Planet</span></td>\n    <td>{$planetbeams}</td>\n    <td>{$planetfighters}</td>\n    <td>{$planetshields}</td>\n    <td>{$planettorpdamage}</td>\n    <td>N/A</td>\n    </tr>";
    echo "</tbody></table></div>";
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>";
    echo "<td width=\"50%\">You</td>";
    echo "<td width=\"50%\">Planet</td>";
    echo "</tr>";
    echo "<tr><td colspan=\"2\"><span class=\"table_word_yellow\">Torpedo Exchange Phase</span></td></tr>";
    if ($planetfighters > 0 && $attackertorpdamage > 0) {
        if ($attackertorpdamage > $planetfighters) {
            echo "<tr><td>Your torpedos destroy " . $planetfighters . " planetary fighters, no fighters are left</td><td></td></tr>";
            $attackertorpdamage = $attackertorpdamage - $planetfighters;
            $planetfighters = 0;
        } else {
            $planetfighters = $planetfighters - $attackertorpdamage;
            echo "<tr><td><span class=\"table_word_orange\">Your torpedos destroy " . $attackertorpdamage . " planetary fighters</span></td><td></td></tr>";
            $attackertorpdamage = 0;
        }
    }
    if ($attackerfighters > 0 && $planettorpdamage > 0) {
        if ($planettorpdamage > round($attackerfighters / 2)) {
            $temp = round($attackerfighters / 2);
            $lost = $attackerfighters - $temp;
            $attackerfighters = $temp;
            $planettorpdamage = $planettorpdamage - $lost;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary torpedos destroy " . $temp . " of your fighters</span></td></tr>";
        } else {
            $attackerfighters = $attackerfighters - $planettorpdamage;
            echo "<tr><td></td><td><span class=\"table_word_orange\">Planetary torpedos destroy " . $planettorpdamage . " of your fighters</span></td></tr>";
            $planettorpdamage = 0;
        }
    }
    if ($planettorpdamage > 0) {
        if ($planettorpdamage > $attackerarmor) {
            $attackerarmor = 0;
            echo "<tr><td><span class=\"table_word_red\">Planetary torpedos have breached your armor</span></td><td></td></tr>";
        } else {
            $attackerarmor = $attackerarmor - $planettorpdamage;
            echo "<tr><td><span class=\"table_word_orange\">Planetary torpedos have destroyed " . $planettorpdamage . " points of armor</span></td><td></td></tr>";
        }
    }
    if ($attackertorpdamage > 0 && $planetfighters > 0) {
        $planetfighters = $planetfighters - $attackertorpdamage;
        if ($planetfighters < 0) {
            $planetfighters = 0;
            echo "<tr><td><span class=\"table_word_green\">Your torpedos have destroyed all the planetary fighters</span></td><td></td></tr>";
        } else {
            echo "<tr><td><span class=\"table_word_orange\">Your torpedos destroy " . $attackertorpdamage . " planetary fighters</span></td><td></td></tr>";
        }
    } else {
        echo "<tr><td></td><td><span class=\"table_word_green\">Planet has no torpedoes</span></td></tr>";
    }
    echo "</tbody></table></div>";
    /*
    Build table
    */
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>\n\t<td>UPDATE</td>\n    <td>Beams</td>\n    <td>Fighters</td>\n    <td>Shields</td>\n    <td>Torpedoes Warhead Strength</td>\n    <td>Armour</td>\n    </tr><tr>\n    <td><span class=\"table_word_blue\">Your Ship</span></td>\n    <td>{$attackerbeams}</td>\n    <td>{$attackerfighters}</td>\n    <td>{$attackershields}</td>\n    <td>{$attackertorpdamage}</td>\n    <td>{$attackerarmor}</td>\n    </tr><tr>\n    <td><span class=\"table_word_orange\">The Planet</span></td>\n    <td>{$planetbeams}</td>\n    <td>{$planetfighters}</td>\n    <td>{$planetshields}</td>\n    <td>{$planettorpdamage}</td>\n    <td>N/A</td>\n    </tr>";
    echo "</tbody></table></div>";
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>";
    echo "<td width=\"50%\">You</td>";
    echo "<td width=\"50%\">Planet</td>";
    echo "</tr>";
    echo "<tr><td colspan=\"2\"><span class=\"table_word_yellow\">Fighter Combat Phase</span></td></tr>";
    if ($attackerfighters > 0 && $planetfighters > 0) {
        if ($attackerfighters > $planetfighters) {
            echo "<tr><td><span class=\"table_word_green\">Your fighters have destroyed all the planetary fighters</span></td><td></td></tr>";
            $tempplanetfighters = 0;
        } else {
            echo "<tr><td><span class=\"table_word_orange\">Your fighters have destroyed " . $attackerfighters . " planetary fighters</span></td><td></td></tr>";
            $tempplanetfighters = $planetfighters - $attackerfighters;
        }
        if ($planetfighters > $attackerfighters) {
            echo "<tr><td><span class=\"table_word_red\">All your fighters were destroyed</span></td><td></td></tr>";
            $tempplayfighters = 0;
        } else {
            $tempplayfighters = $attackerfighters - $planetfighters;
            echo "<tr><td><span class=\"table_word_orange\">You lost " . $planetfighters . " fighters in fighter to fighter combat</span></td><td></td></tr>";
        }
        $attackerfighters = $tempplayfighters;
        $planetfighters = $tempplanetfighters;
    }
    if ($attackerfighters > 0 && $planetshields > 0) {
        if ($attackerfighters > $planetshields) {
            $attackerfighters = $attackerfighters - round($planetshields / 2);
            echo "<tr><td><span class=\"table_word_green\">Your fighters have breached the planetary shields</span></td><td></td></tr>";
            $planetshields = 0;
        } else {
            echo "<tr><td></td><td><span class=\"table_word_orange\">Your fighters destroyed " . $attackerfighters . " planetary shields, but they remain up</span></td></tr>";
            $planetshields = $planetshields - $attackerfighters;
        }
    }
    if ($planetfighters > 0) {
        if ($planetfighters > $attackerarmor) {
            $attackerarmor = 0;
            echo "<tr><td><span class=\"table_word_red\">Planetary fighters swarm your ship, your armor has been breached</span></td><td></td></tr>";
        } else {
            $attackerarmor = $attackerarmor - $planetfighters;
            echo "<tr><td><span class=\"table_word_orange\">Planetary fighters swarm your ship, but your armor repels them</span></td><td></td></tr>";
        }
    } else {
        echo "<tr><td></td><td><span class=\"table_word_green\">Planet has no fighters</span></td></tr>";
    }
    echo "</tbody></table></div>";
    /*
    Build table
    */
    ?>
	<div class="general-table-container">
	<?php 
    echo "<table><tbody>";
    echo "<tr>\n\t<td>UPDATE</td>\n    <td>Beams</td>\n    <td>Fighters</td>\n    <td>Shields</td>\n    <td>Torpedoes Warhead Strength</td>\n    <td>Armour</td>\n    </tr><tr>\n    <td><span class=\"table_word_blue\">Your Ship</span></td>\n    <td>{$attackerbeams}</td>\n    <td>{$attackerfighters}</td>\n    <td>{$attackershields}</td>\n    <td>{$attackertorpdamage}</td>\n    <td>{$attackerarmor}</td>\n    </tr><tr>\n    <td><span class=\"table_word_orange\">The Planet</span></td>\n    <td>{$planetbeams}</td>\n    <td>{$planetfighters}</td>\n    <td>{$planetshields}</td>\n    <td>{$planettorpdamage}</td>\n    <td>N/A</td>\n    </tr>";
    echo "</tbody></table></div>";
    // Send each docked ship in sequence to attack agressor
    $result4 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE planet_id={$planetinfo['planet_id']} AND on_planet='Y'");
    db_op_result($db, $result4, __LINE__, __FILE__, $db_logging);
    $shipsonplanet = $result4->RecordCount();
    if ($shipsonplanet > 0) {
        echo "<br/>There are " . $shipsonplanet . " ships docked at Spacedock!<br>Engaging in Ship to Ship combat.<br/><br/>";
        while (!$result4->EOF) {
            $onplanet = $result4->fields;
            if ($attackerfighters < 0) {
                $attackerfighters = 0;
            }
            if ($attackertorps < 0) {
                $attackertorps = 0;
            }
            if ($attackershields < 0) {
                $attackershields = 0;
            }
            if ($attackerbeams < 0) {
                $attackerbeams = 0;
            }
            if ($attackerarmor < 1) {
                break;
            }
            echo "<br/>" . $onplanet[ship_name] . " is approaching on an attack vector<br/>";
            /*ENGAGE EACH SHIP ONE BY ONE!!!*/
            shiptoship($onplanet['ship_id']);
            $result4->MoveNext();
        }
    } else {
        /*no SHIPS on the planet, noting to worry about*/
    }
    if ($attackerarmor < 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(0, 10);
        $ship_salvage = $ship_value * $ship_salvage_rate / 100;
        echo "<br><center><font size='+2' COLOR='red'>{$l_cmb_yourshipdestroyed}</font></center><br>";
        if ($playerinfo['dev_escapepod'] == "Y") {
            echo "<center><font color='white'>{$l_cmb_escapepod}</font></center><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',dev_lssd='N' WHERE ship_id={$playerinfo['ship_id']}");
            db_op_result($db, $resx, __LINE__, __FILE__, $db_logging);
            collect_bounty($planetinfo['owner'], $playerinfo['ship_id']);
        } else {
            db_kill_player($playerinfo['ship_id']);
            collect_bounty($planetinfo['owner'], $playerinfo['ship_id']);
        }
    } else {
        $free_ore = 0;
        $free_goods = 0;
        $free_organics = 0;
        $ship_salvage_rate = 0;
        $ship_salvage = 0;
        $planetrating = $ownerinfo['hull'] + $ownerinfo['engines'] + $ownerinfo['computer'] + $ownerinfo['beams'] + $ownerinfo['torp_launchers'] + $ownerinfo['shields'] + $ownerinfo['armor'];
        if ($ownerinfo['rating'] != 0) {
            $rating_change = $ownerinfo['rating'] / abs($ownerinfo['rating']) * $planetrating * 10;
        } else {
            $rating_change = -100;
        }
        echo "<br/>Final Combat Stats<br/><br/>";
        $fighters_lost = $playerinfo['ship_fighters'] - $attackerfighters;
        echo "You lost " . $fighters_lost . " out of " . $playerinfo['ship_fighters'] . " total fighters.<br/>";
        $armor_lost = $playerinfo['armor_pts'] - $attackerarmor;
        echo "You lost " . $armor_lost . " out of " . $playerinfo['armor_pts'] . " total armor points, you have " . $attackerarmor . " points remaining.<br/>";
        $energy = $playerinfo['ship_energy'];
        $energy_lost = $start_energy - $playerinfo['ship_energy'];
        echo "You used " . $energy_lost . " energy, from a total of " . $start_energy . " energy.<br/>";
        $resx = $db->Execute("UPDATE {$db->prefix}ships SET ship_energy={$energy},ship_fighters=ship_fighters-{$fighters_lost}, torps=torps-{$attackertorps},armor_pts=armor_pts-{$armor_lost}, rating=rating-{$rating_change} WHERE ship_id={$playerinfo['ship_id']}");
        db_op_result($db, $resx, __LINE__, __FILE__, $db_logging);
    }
    $result4 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE planet_id={$planetinfo['planet_id']} AND on_planet='Y'");
    db_op_result($db, $result4, __LINE__, __FILE__, $db_logging);
    $shipsonplanet = $result4->RecordCount();
    #################
    ### LOG AND UPDATE THE STATS
    ##################
    if ($planetshields < 1 && $planetfighters < 1 && $attackerarmor > 0 && $shipsonplanet == 0) {
        echo "<br/><br/><span class=\"table_word_green\">Planet defeated</span><br/><br/>";
        // Patch to stop players dumping credits for other players.
        $self_tech = get_avg_tech($playerinfo);
        $target_tech = round(get_avg_tech($ownerinfo));
        $roll = mt_rand(0, (int) $target_tech);
        if ($roll > $self_tech) {
            // Reset Planet Assets.
            $sql = "UPDATE {$db->prefix}planets ";
            $sql .= "SET organics = '0', ore = '0', goods = '0', energy = '0', colonists = '2', credits = '0', fighters = '0', torps = '0', corp = '0', base = 'N', sells = 'N', prod_organics = '20', prod_ore = '20', prod_goods = '20', prod_energy = '20', prod_fighters = '10', prod_torp = '10' ";
            $sql .= "WHERE `dev_planets`.`planet_id` ={$planetinfo['planet_id']} LIMIT 1;";
            $resx = $db->Execute($sql);
            db_op_result($db, $resx, __LINE__, __FILE__, $db_logging);
            echo "<div style='text-align:center; font-size:18px; color:#f00;'>The planet become unstable due to not being looked after, and all life and assets have been destroyed.</div>\n";
        }
        if ($min_value_capture != 0) {
            $playerscore = gen_score($playerinfo['ship_id']);
            $playerscore *= $playerscore;
            $planetscore = $planetinfo['organics'] * $organics_price + $planetinfo['ore'] * $ore_price + $planetinfo['goods'] * $goods_price + $planetinfo['energy'] * $energy_price + $planetinfo['fighters'] * $fighter_price + $planetinfo['torps'] * $torpedo_price + $planetinfo['colonists'] * $colonist_price + $planetinfo['credits'];
            $planetscore = $planetscore * $min_value_capture / 100;
            if ($playerscore < $planetscore) {
                echo "The citizens of this planet have decided they'd rather die than serve a pathetic ruler like you. They use a laser drill to dig a hole to the planet's core. You barely have time to escape into orbit before the whole planet is reduced to a ball of molten lava.<br/><br/>";
                $resx = $db->Execute("DELETE FROM {$db->prefix}planets WHERE planet_id={$planetinfo['planet_id']}");
                db_op_result($db, $resx, __LINE__, __FILE__, $db_logging);
                playerlog($db, $ownerinfo['ship_id'], LOG_PLANET_DEFEATED_D, "{$planetinfo['name']}|{$playerinfo['sector']}|{$playerinfo['character_name']}");
                adminlog($db, LOG_ADMIN_PLANETDEL, "{$playerinfo['character_name']}|{$ownerinfo['character_name']}|{$playerinfo['sector']}");
                gen_score($ownerinfo['ship_id']);
            } else {
                echo "You may <a href='planet.php?planet_id=", $planetinfo['planet_id'] . "&amp;command=capture'>capture</a> the planet or just leave it undefended.<br><br>";
                playerlog($db, $ownerinfo['ship_id'], LOG_PLANET_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|{$playerinfo['character_name']}");
                gen_score($ownerinfo['ship_id']);
                $update7a = $db->Execute("UPDATE {$db->prefix}planets SET owner=0, fighters=0, torps=torps-{$planettorps}, base='N', defeated='Y' WHERE planet_id={$planetinfo['planet_id']}");
                db_op_result($db, $update7a, __LINE__, __FILE__, $db_logging);
            }
        } else {
            echo "You may <a href='planet.php?planet_id=", $planetinfo['planet_id'] . "&amp;command=capture'>capture</a> the planet or just leave it undefended.<br><br>";
            playerlog($db, $ownerinfo['ship_id'], LOG_PLANET_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|{$playerinfo['character_name']}");
            gen_score($ownerinfo['ship_id']);
            $update7a = $db->Execute("UPDATE {$db->prefix}planets SET owner=0,fighters=0, torps=torps-{$planettorps}, base='N', defeated='Y' WHERE planet_id={$planetinfo['planet_id']}");
            db_op_result($db, $update7a, __LINE__, __FILE__, $db_logging);
        }
        calc_ownership($planetinfo['sector_id']);
    } else {
        echo "<br><br><span class=\"table_word_red\">Planet Not Defeated</span><br><br>";
        $fighters_lost = $planetinfo['fighters'] - $planetfighters;
        $l_cmb_fighterloststat = str_replace("[cmb_fighters_lost]", $fighters_lost, $l_cmb_fighterloststat);
        $l_cmb_fighterloststat = str_replace("[cmb_planetinfo_fighters]", $planetinfo['fighters'], $l_cmb_fighterloststat);
        $l_cmb_fighterloststat = str_replace("[cmb_planetfighters]", $planetfighters, $l_cmb_fighterloststat);
        $energy = $planetinfo['energy'];
        playerlog($db, $ownerinfo['ship_id'], LOG_PLANET_NOT_DEFEATED, "{$planetinfo['name']}|{$playerinfo['sector']}|{$playerinfo['character_name']}|{$free_ore}|{$free_organics}|{$free_goods}|{$ship_salvage_rate}|{$ship_salvage}");
        gen_score($ownerinfo['ship_id']);
        $update7b = $db->Execute("UPDATE {$db->prefix}planets SET energy={$energy},fighters=fighters-{$fighters_lost}, torps=torps-{$planettorps}, ore=ore+{$free_ore}, goods=goods+{$free_goods}, organics=organics+{$free_organics}, credits=credits+{$ship_salvage} WHERE planet_id={$planetinfo['planet_id']}");
        db_op_result($db, $update7b, __LINE__, __FILE__, $db_logging);
    }
    $update = $db->Execute("UPDATE {$db->prefix}ships SET turns=turns-1, turns_used=turns_used+1 WHERE ship_id={$playerinfo['ship_id']}");
    db_op_result($db, $update, __LINE__, __FILE__, $db_logging);
}
示例#4
0
<?php 
if (checklogin()) {
    die;
}
$result = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_id='{$user_ship_id}'");
db_op_result($db, $result, __LINE__, __FILE__, $db_logging);
$playerinfo = $result->fields;
$shiptypes[0] = "ship-1.gif";
$shiptypes[1] = "ship-2.gif";
$shiptypes[2] = "ship-3.gif";
$shiptypes[3] = "ship-4.gif";
$shiptypes[4] = "ship-5.gif";
$shiptypes[5] = "ship-6.gif";
$shiptypes[6] = "ship-7.gif";
$shiptypes[7] = "ship-8.gif";
$shipavg = get_avg_tech($playerinfo, "ship");
if ($shipavg < 10) {
    $ship_image = 0;
} elseif ($shipavg < 15) {
    $ship_image = 1;
} elseif ($shipavg < 20) {
    $ship_image = 2;
} elseif ($shipavg < 25) {
    $ship_image = 3;
} elseif ($shipavg < 30) {
    $ship_image = 4;
} elseif ($shipavg < 35) {
    $ship_image = 5;
} elseif ($shipavg < 40) {
    $ship_image = 6;
} elseif ($shipavg < 45) {