function getPlotDistanceOld(SmrSector &$sector, SmrSector &$target) { $plotter = new Course_Plotter(); $plotter->set_course($sector->getSectorID(), $target->getSectorID(), $sector->getGameID()); $plotter->plot(); $return = $plotter->plotted_course[0]; $plotter->Course_Plotter_Destructor(); unset($plotter); return $return; }
<?php // include helper funtions include "course_plot.inc"; if (isset($var["from"])) { $start = $var["from"]; } else { $start = $_POST["from"]; } if (isset($var["to"])) { $target = $var["to"]; } else { $target = $_POST["to"]; } $plotter = new Course_Plotter(); $plotter->set_course($start, $target, $player->game_id); $plotter->plot(); $account->log(5, "Player plots to {$target}.", $player->sector_id); $container = array(); $container["url"] = "skeleton.php"; $container["body"] = "course_plot_result.php"; $container["plotted_course"] = serialize($plotter->plotted_course[1]); $container["distance"] = $plotter->plotted_course[0]; $plotter->Course_Plotter_Destructor(); unset($plotter); forward($container);
$allowed = true; } if ($warp_sector1->galaxy_id == $sector->galaxy_id && $warp_sector2->galaxy_id == $target_sector->galaxy_id) { $allowed = true; } } } else { $allowed = true; } if (!$allowed) { create_error("You can not jump that many galaxies away"); } // for ingal jumps we use different algorithm if ($sector->galaxy_id == $target_sector->galaxy_id) { //FIXME: We should use the distance plotter here, but the course plotter is better tested $plotter = new Course_Plotter(); $plotter->set_course($from, $to, $player->game_id); $plotter->plot(); $distance = $plotter->plotted_course[0]; // calculate the number of free sectors per jump $free_sector = 15 + floor($player->level_id / 10); // the rest gets a 10% failure per sector if ($distance > $free_sector) { $failure_chance = 10 * ($distance - $free_sector); } else { $failure_chance = 0; } $failure_distance = round($failure_chance / 10); } else { $failure_chance = 75; $failure_distance = round(0.1 * mt_rand(10, 30 + (50 - $player->level_id)));