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"); }
$headline="Failed ship attack!"; $newstext=$playerinfo[character_name]." in the ship ".$shipinfo[ship_name]." attacked ".$targetinfo[character_name]."'s ship but was overcome by ".$targetinfo[character_name]."'s defenses. Escape pod was deployed."; $player_id = $playerinfo[player_id]; $newstext=addslashes($newstext); $news = $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$newstext','$player_id',NOW(), 'attack')"); } else { $headline="Failed ship attack!"; $newstext=$playerinfo[character_name]." in the ship ".$shipinfo[ship_name]." attacked ".$targetinfo[character_name]."'s ship but was overcome by ".$targetinfo[character_name]."'s defenses and was vapourized."; $player_id = $playerinfo[player_id]; $newstext=addslashes($newstext); $news = $db->Execute("INSERT INTO $dbtables[news] (headline, newstext, user_id, date, news_type) VALUES ('$headline','$newstext','$player_id',NOW(), 'attack')"); db_kill_player($playerinfo[player_id],$playerinfo[currentship],$targetinfo[player_id]); collect_bounty($targetinfo[player_id],$playerinfo[player_id]); // news player died due to no escape pod } if($targetarmour > 0) { // news opponent won when other player attacked $free_ore = floor($shipinfo[ship_ore]/2); $free_organics = floor($shipinfo[ship_organics]/2); $free_goods = floor($shipinfo[ship_goods]/2); $free_holds = NUM_HOLDS($targetshipinfo[hull]) - $targetshipinfo[ship_ore] - $targetshipinfo[ship_organics] - $targetshipinfo[ship_goods] - $targetshipinfo[ship_colonists]; if($free_holds > $free_goods) { $salv_goods=$free_goods; $free_holds=$free_holds-$free_goods; } elseif($free_holds > 0)
function shiptoship($ship_id) { global $attackerbeams, $attackerfighters, $attackershields, $attackertorps, $attackerarmor, $attackertorpdamage, $start_energy, $level_factor; global $torp_dmg_rate, $rating_combat_factor, $upgrade_factor, $upgrade_cost, $armor_lost, $fighters_lost, $playerinfo; global $db, $db_logging; 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_yousalvaged2, $l_cmb_youdidntdestroyhim, $l_cmb_shiptoshipcombatstats; $resx = $db->Execute("LOCK TABLES {$db->prefix}ships WRITE, {$db->prefix}universe WRITE, {$db->prefix}zones READ"); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); $result2 = $db->Execute("SELECT * FROM {$db->prefix}ships WHERE ship_id='{$ship_id}'"); db_op_result($db, $result2, __LINE__, __FILE__, $db_logging); $targetinfo = $result2->fields; echo "<br><br>-=-=-=-=-=-=-=--<br>\n {$l_cmb_startingstats}:<br>\n <br>\n {$l_cmb_statattackerbeams}: {$attackerbeams}<br>\n {$l_cmb_statattackerfighters}: {$attackerfighters}<br>\n {$l_cmb_statattackershields}: {$attackershields}<br>\n {$l_cmb_statattackertorps}: {$attackertorps}<br>\n {$l_cmb_statattackerarmor}: {$attackerarmor}<br>\n {$l_cmb_statattackertorpdamage}: {$attackertorpdamage}<br>"; $targetbeams = NUM_BEAMS($targetinfo['beams']); if ($targetbeams > $targetinfo['ship_energy']) { $targetbeams = $targetinfo['ship_energy']; } $targetinfo['ship_energy'] = $targetinfo['ship_energy'] - $targetbeams; $targetshields = NUM_SHIELDS($targetinfo['shields']); if ($targetshields > $targetinfo['ship_energy']) { $targetshields = $targetinfo['ship_energy']; } $targetinfo['ship_energy'] = $targetinfo['ship_energy'] - $targetshields; $targettorpnum = round(pow($level_factor, $targetinfo['torp_launchers'])) * 2; if ($targettorpnum > $targetinfo['torps']) { $targettorpnum = $targetinfo['torps']; } $targettorpdmg = $torp_dmg_rate * $targettorpnum; $targetarmor = $targetinfo['armor_pts']; $targetfighters = $targetinfo['ship_fighters']; $targetdestroyed = 0; $playerdestroyed = 0; echo "-->{$targetinfo['ship_name']} {$l_cmb_isattackingyou}<br><br>"; echo "{$l_cmb_beamexchange}<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 "{$l_cmb_nobeamsareleft}<br>"; } else { echo "{$l_cmb_beamshavenotarget}<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]", $targetinfo['ship_name'], $l_cmb_fighterdestroyedbybeams); $l_cmb_fighterdestroyedbybeams = str_replace("[cmb_lost]", $lost, $l_cmb_fighterdestroyedbybeams); echo "--> {$l_cmb_fighterdestroyedbybeams}<br>"; } else { $attackerfighters = $attackerfighters - $targetbeams; $l_cmb_beamsdestroystillhave = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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 "{$l_cmb_fighterunhindered}<br>"; } else { echo "{$l_cmb_youhavenofightersleft}<br>"; } if ($attackerbeams > 0) { if ($attackerbeams > $targetshields) { $attackerbeams = $attackerbeams - $targetshields; $targetshields = 0; $l_cmb_breachedsomeshields = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_breachedsomeshields); echo "<-- {$l_cmb_breachedsomeshields}<br>"; } else { $l_cmb_shieldsarehitbybeams = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_nobeamslefttoattack); echo "{$l_cmb_nobeamslefttoattack}<br>"; } if ($targetbeams > 0) { if ($targetbeams > $attackershields) { $targetbeams = $targetbeams - $attackershields; $attackershields = 0; $l_cmb_yourshieldsbreachedby = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_yourshieldsbreachedby); echo "--> {$l_cmb_yourshieldsbreachedby}<br>"; } else { $l_cmb_yourshieldsarehit = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_hehasnobeamslefttoattack); echo "{$l_cmb_hehasnobeamslefttoattack}<br>"; } if ($attackerbeams > 0) { if ($attackerbeams > $targetarmor) { $targetarmor = 0; $l_cmb_yourbeamsbreachedhim = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_yourbeamshavedonedamage); echo "{$l_cmb_yourbeamshavedonedamage}<br>"; } } else { $l_cmb_nobeamstoattackarmor = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_nobeamstoattackarmor); echo "{$l_cmb_nobeamstoattackarmor}<br>"; } if ($targetbeams > 0) { if ($targetbeams > $attackerarmor) { $attackerarmor = 0; $l_cmb_yourarmorbreachedbybeams = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_yourarmorbreachedbybeams); echo "--> {$l_cmb_yourarmorbreachedbybeams}<br>"; } else { $attackerarmor = $attackerarmor - $targetbeams; $l_cmb_yourarmorhitdamaged = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_hehasnobeamslefttoattackyou); echo "{$l_cmb_hehasnobeamslefttoattackyou}<br>"; } echo "<br>{$l_cmb_torpedoexchange}<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]", $targetinfo['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]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_youhavenotorpsleft); echo "{$l_cmb_youhavenotorpsleft}<br>"; } else { $l_cmb_hehasnofighterleft = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_hehasnofighterleft); echo "{$l_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]", $targetinfo['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]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_hehasnotorpsleftforyou); echo "{$l_cmb_hehasnotorpsleftforyou}<br>"; } else { $l_cmb_youhavenofightersanymore = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_youbreachedwithtorps); echo "--> {$l_cmb_youbreachedwithtorps}<br>"; } else { $targetarmor = $targetarmor - $attackertorpdamage; $l_cmb_hisarmorishitbytorps = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['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]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_yourarmorhitdmgtorps); echo "<-- {$l_cmb_yourarmorhitdmgtorps}<br>"; } } else { $l_cmb_hehasnotorpsforyourarmor = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_hehasnotorpsforyourarmor); echo "{$l_cmb_hehasnotorpsforyourarmor}<br>"; } echo "<br>{$l_cmb_fightersattackexchange}<br>"; if ($attackerfighters > 0 && $targetfighters > 0) { if ($attackerfighters > $targetfighters) { $l_cmb_enemylostallfighters = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_enemylostallfighters); echo "--> {$l_cmb_enemylostallfighters}<br>"; $temptargfighters = 0; } else { $l_cmb_helostsomefighters = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_hehasnofightersleftattack); echo "{$l_cmb_hehasnofightersleftattack}<br>"; } else { $l_cmb_younofightersattackleft = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_youbreachedarmorwithfighters); echo "--> {$l_cmb_youbreachedarmorwithfighters}<br>"; } else { $targetarmor = $targetarmor - $attackerfighters; $l_cmb_youhitarmordmgfighters = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['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]", $targetinfo['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]", $targetinfo['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]", $targetinfo['ship_name'], $l_cmb_yourarmorishitfordmgby); echo "--> {$l_cmb_yourarmorishitfordmgby}<br>"; } } else { $l_cmb_nofightersleftheforyourarmor = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_nofightersleftheforyourarmor); echo "{$l_cmb_nofightersleftheforyourarmor}<br>"; } if ($targetarmor < 1) { $l_cmb_hehasbeendestroyed = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_hehasbeendestroyed); echo "<br>{$l_cmb_hehasbeendestroyed}<br>"; if ($attackerarmor > 0) { $rating_change = round($targetinfo['rating'] * $rating_combat_factor); $free_ore = round($targetinfo['ship_ore'] / 2); $free_organics = round($targetinfo['ship_organics'] / 2); $free_goods = round($targetinfo['ship_goods'] / 2); $free_holds = NUM_HOLDS($playerinfo['hull']) - $playerinfo['ship_ore'] - $playerinfo['ship_organics'] - $playerinfo['ship_goods'] - $playerinfo['ship_colonists']; if ($free_holds > $free_goods) { $salv_goods = $free_goods; $free_holds = $free_holds - $free_goods; } elseif ($free_holds > 0) { $salv_goods = $free_holds; $free_holds = 0; } else { $salv_goods = 0; } 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(pow($upgrade_factor, $targetinfo['hull'])) + round(pow($upgrade_factor, $targetinfo['engines'])) + round(pow($upgrade_factor, $targetinfo['power'])) + round(pow($upgrade_factor, $targetinfo['computer'])) + round(pow($upgrade_factor, $targetinfo['sensors'])) + round(pow($upgrade_factor, $targetinfo['beams'])) + round(pow($upgrade_factor, $targetinfo['torp_launchers'])) + round(pow($upgrade_factor, $targetinfo['shields'])) + round(pow($upgrade_factor, $targetinfo['armor'])) + round(pow($upgrade_factor, $targetinfo['cloak']))); $ship_salvage_rate = mt_rand(10, 20); $ship_salvage = $ship_value * $ship_salvage_rate / 100; $l_cmb_yousalvaged = str_replace("[cmb_salv_ore]", $salv_ore, $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salv_organics]", $salv_organics, $l_cmb_yousalvaged); $l_cmb_yousalvaged = str_replace("[cmb_salv_goods]", $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]", $ship_salvage, $l_cmb_yousalvaged); $l_cmb_yousalvaged2 = str_replace("[cmb_number_rating_change]", NUMBER(abs($rating_change)), $l_cmb_yousalvaged2); echo $l_cmb_yousalvaged . "<br>" . $l_cmb_yousalvaged2; $update3 = $db->Execute("UPDATE {$db->prefix}ships SET ship_ore=ship_ore+{$salv_ore}, ship_organics=ship_organics+{$salv_organics}, ship_goods=ship_goods+{$salv_goods}, credits=credits+{$ship_salvage} WHERE ship_id={$playerinfo['ship_id']}"); db_op_result($db, $update3, __LINE__, __FILE__, $db_logging); } if ($targetinfo[dev_escapepod] == "Y") { $rating = round($targetinfo['rating'] / 2); echo "{$l_cmb_escapepodlaunched}<br><br>"; echo "<br><br>ship_id={$targetinfo['ship_id']}<br><br>"; $test = $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}',dev_lssd='N' WHERE ship_id={$targetinfo['ship_id']}"); db_op_result($db, $test, __LINE__, __FILE__, $db_logging); playerlog($db, $targetinfo['ship_id'], LOG_ATTACK_LOSE, "{$playerinfo['character_name']}|Y"); collect_bounty($playerinfo['ship_id'], $targetinfo['ship_id']); } else { playerlog($db, $targetinfo['ship_id'], LOG_ATTACK_LOSE, "{$playerinfo['character_name']}|N"); db_kill_player($targetinfo['ship_id']); collect_bounty($playerinfo['ship_id'], $targetinfo['ship_id']); } } else { $l_cmb_youdidntdestroyhim = str_replace("[cmb_targetinfo_ship_name]", $targetinfo['ship_name'], $l_cmb_youdidntdestroyhim); echo "{$l_cmb_youdidntdestroyhim}<br>"; $target_rating_change = round($targetinfo['rating'] * 0.1); $target_armor_lost = $targetinfo['armor_pts'] - $targetarmor; $target_fighters_lost = $targetinfo['ship_fighters'] - $targetfighters; $target_energy = $targetinfo['ship_energy']; playerlog($db, $targetinfo['ship_id'], LOG_ATTACKED_WIN, "{$playerinfo['character_name']} {$armor_lost} {$fighters_lost}"); $update4 = $db->Execute("UPDATE {$db->prefix}ships SET ship_energy={$target_energy},ship_fighters=ship_fighters-{$target_fighters_lost}, armor_pts=armor_pts-{$target_armor_lost}, torps=torps-{$targettorpnum} WHERE ship_id={$targetinfo['ship_id']}"); db_op_result($db, $update4, __LINE__, __FILE__, $db_logging); } echo "<br>_+_+_+_+_+_+_<br>"; echo "{$l_cmb_shiptoshipcombatstats}<br>"; echo "{$l_cmb_statattackerbeams}: {$attackerbeams}<br>"; echo "{$l_cmb_statattackerfighters}: {$attackerfighters}<br>"; echo "{$l_cmb_statattackershields}: {$attackershields}<br>"; echo "{$l_cmb_statattackertorps}: {$attackertorps}<br>"; echo "{$l_cmb_statattackerarmor}: {$attackerarmor}<br>"; echo "{$l_cmb_statattackertorpdamage}: {$attackertorpdamage}<br>"; echo "_+_+_+_+_+_+<br>"; $resx = $db->Execute("UNLOCK TABLES"); db_op_result($db, $resx, __LINE__, __FILE__, $db_logging); }