function get_fleet_items($id, $sql_foreign_key) { global $uid; global $map_info; $sth = mysql_query("SELECT * FROM fleet_info WHERE " . $sql_foreign_key . "=" . $id . " order by uid"); if (!$sth || !mysql_num_rows($sth)) { return false; } $i = 0; $ships = array(); while ($fleets = mysql_fetch_assoc($sth)) { $ships[$i] = array(); $its_fleet = new fleet($fleets["fid"]); $its_fid = $fleets["fid"]; // get fleets userdata // ALLIANZ $sth2 = mysql_query("select u.name, u.imperium, a.name as alliance_name, a.color, a.symbol, a.milminister from users u left outer join alliance a on a.id=u.alliance where u.id=" . $fleets["uid"]); if (!$sth2 || !mysql_num_rows($sth2)) { return 0; } $fleets_user_info = mysql_fetch_array($sth2); if ($fleets_user_info["alliance_name"]) { $return_array[$i]["allianceName"] = htmlspecialchars($fleets_user_info["alliance_name"]); $return_array[$i]["allianceColor"] = $fleets_user_info["color"]; if ($fleets_user_info["symbol"]) { $return_array[$i]["allianceSymbol"] = $fleets_user_info["symbol"]; } else { $return_array[$i]["allianceSymbol"] = 0; } } else { $return_array[$i]["allianceName"] = 0; $return_array[$i]["allianceColor"] = 0; $return_array[$i]["allianceSymbol"] = 0; } // all items same data $return_array[$i]["picture"] = get_fleet_pic($its_fid); $return_array[$i]["topic"] = htmlspecialchars($fleets["name"]); $return_array[$i]["description"] = htmlspecialchars($fleets["name"]); $return_array[$i]["oid"] = $fleets["fid"]; $return_array[$i]["sid"] = $fleets["sid"]; $return_array[$i]["pid"] = $fleets["pid"]; $return_array[$i]["tsid"] = $fleets["tsid"]; $return_array[$i]["tpid"] = $fleets["tpid"]; $return_array[$i]["relationClass"] = get_uids_relation($uid, $fleets["uid"], 1); $return_array[$i]["footer"] = false; $is_commanded_by_mod = $its_fleet->milminister == 1 && $fleets_user_info["milminister"] == $uid; if ($uid == $its_fleet->uid || $is_commanded_by_mod) { $its_mission = get_mission_by_mission_id($fleets["mission"]); $its_target = get_fleets_target($its_fid); // full fleet item, own or borrowed units $return_array[$i]["itemType"] = "FULL_FLEET_ITEM"; $return_array[$i]["type"] = "fleet"; // sounds // okay, suboptimal weil gleiche funkiion schon bei get_fleet_pic aufgerufen wird :S, bin jetzt aba faul $strongest_ship = get_strongest_ship_by_fid($its_fid); // ggf noch sounds von admirälen einfügen $sound_array = get_sound_by_prod_id($strongest_ship); $return_array[$i]["soundReport"] = $sound_array["report"]; $return_array[$i]["soundConfirm"] = $sound_array["confirm"]; // Target if ($its_target["planet"]["tid"] || $its_target["system"]["tid"]) { // ETA berechnen $return_array[$i]["eta"] = get_true_ETA_by_fid($its_fid); if ($its_target["planet"]["tid"]) { $return_array[$i]["target"] = get_planetname($its_target["planet"]["tid"]); } else { $return_array[$i]["target"] = get_systemname($its_target["system"]["tid"]); } } // Mission $return_array[$i]["missionSymbol"] = $its_mission[2]; $return_array[$i]["missionName"] = $its_mission[0]; $return_array[$i]["mission"] = $fleets["mission"]; // Tactics $return_array[$i]["tactic"] = $fleets["tactic"]; $return_array[$i]["tacticSymbol"] = 0; $return_array[$i]["tacticName"] = get_tactic_by_tacticflag($fleets["tactic"]); // Reloading? $return_array[$i]["reloadSymbol"] = get_reload($its_fid); // Infantry aboard? $return_array[$i]["infantrySymbol"] = get_infantrycount_by_fid($its_fid); // Minister of Defence $return_array[$i]["modSymbol"] = $fleets["milminister"]; // FLEET CONTROL //manage fleet if (!$is_commanded_by_mod) { $return_array[$i]["fleet_control"] .= "<SR_FLEET_CONTROL type=\"SR_SIMPLE_ACTION\" face=\"control_button_manage_fleet.svgz\" controlName=\"manage fleet\" description=\"manage fleet\"/>"; } $planet_uid = get_uid_by_pid($its_fleet->pid); // transfer infantry if ($its_fleet->get_total_transporter_capacity() > 0 && ($planet_uid == $its_fleet->uid || is_allied($planet_uid, $its_fleet->uid)) || has_infantry_on_planet($its_fleet->pid, $its_fleet->uid)) { $return_array[$i]["fleet_control"] .= "<SR_FLEET_CONTROL type=\"SR_SIMPLE_ACTION\" face=\"control_button_inf_transfer.svgz\" controlName=\"transfer infantry\" description=\"transfer infantry\"/>"; } } else { // bäh, mir fällt kein anständiges query ein $light = 0; $medium = 0; $heavy = 0; $sth3 = mysql_query("select sum(count), typ as shipcount from fleet join production using(prod_id) where fid='" . $its_fid . "' group by typ"); if (!$sth3 || !mysql_num_rows($sth3)) { return 0; } while (list($shipcount, $typ) = mysql_fetch_row($sth3)) { switch ($typ) { case "L": $light = $shipcount; break; case "M": $medium = $shipcount; break; case "H": $heavy = $shipcount; break; } } $return_array[$i]["footer"] = $heavy . " " . $medium . " " . $light; $return_array[$i]["type"] = "fleet"; $return_array[$i]["text1"] = htmlspecialchars($fleets_user_info["name"]); $return_array[$i]["text2"] = htmlspecialchars($fleets_user_info["imperium"]); if ($return_array[$i]["relationClass"] == "colorAllied") { $return_array[$i]["itemType"] = "ADVANCED_FLEET_ITEM"; $return_array[$i]["fleet_control"] .= "<SR_FLEET_CONTROL type=\"SR_SIMPLE_ACTION\" face=\"control_button_examine_fleet.svgz\" controlName=\"examine fleet\" description=\"view fleet details\"/>"; } else { $return_array[$i]["itemType"] = "FLEET_ITEM"; // fleet control buttons, keine Attribute sondern childs, nur nach den Attributen im $return_array auflisten! // special actions $special_actions = get_special_fleet_actions($its_fid, "fleet"); if (is_array($special_actions)) { for ($j = 0; $j < sizeof($special_actions); $j++) { $return_array[$i]["fleet_control"] .= "<SR_FLEET_CONTROL type=\"SR_SPECIAL_ACTION\" face=\"" . $special_actions[$j]["picture"] . "\" controlName=\"" . $special_actions[$j]["name"] . "\" description=\"" . $special_actions[$j]["description"] . "\" controlId=\"" . $special_actions[$j]["action_id"] . "\""; $return_array[$i]["fleet_control"] .= " metal=\"" . $special_actions[$j]["metal"] . "\" energy=\"" . $special_actions[$j]["energy"] . "\" mopgas=\"" . $special_actions[$j]["mopgas"] . "\" erkunum=\"" . $special_actions[$j]["erkunum"] . "\" gortium=\"" . $special_actions[$j]["gortium"] . "\" susebloom=\"" . $special_actions[$j]["susebloom"] . "\"/>"; } } // fleet control EXAMINE FLEET falls die flotte sich in unmittelbarer Nähe zu dem user und seinen alliierten befindet if (fleet_is_examinable($its_fid, $its_fleet->sid) == "true") { $return_array[$i]["fleet_control"] .= "<SR_FLEET_CONTROL type=\"SR_SIMPLE_ACTION\" face=\"control_button_examine_fleet.svgz\" controlName=\"examine fleet\" description=\"view fleet details\"/>"; if (has_noscan_ships_and_constructions($its_fid)) { $return_array[$i]["picture"] = "animationRauschen"; $return_array[$i]["footer"] = "0 0 0"; } } else { // wenn in scanrange, aber nicht wirklih sichbar, picture zu p_unknown.jpg ändern $return_array[$i]["picture"] = PIC_ROOT . "p_unknown.png"; if (has_noscan_ships_and_constructions($its_fid)) { $return_array[$i]["footer"] = "0 0 0"; } } } } if ($uid == $its_fleet->uid || $map_info->is_allied($its_fleet->uid) || fleet_is_examinable($its_fid)) { // mop: alle schiffsnamen $prod_ids = array_keys($its_fleet->ships); $sth2 = mysql_query("select prod_id,name,typ from production where prod_id in (" . implode(",", $prod_ids) . ")"); while (list($prod_id, $name, $typ) = mysql_fetch_row($sth2)) { $ship_data = $its_fleet->ships[$prod_id]; $ship_data[] = $name; $ship_data[] = $typ; $ships[$i][$prod_id] = $ship_data; // mop: enthält dann array aus count und reload } } $i++; } return array($return_array, $ships); }
function show_totalfleets() { global $uid; $sth = mysql_query("select fid from fleet_info where uid={$uid} order by sid, pid, name"); if (!$sth) { show_message("DB Error"); return 0; } if (mysql_num_rows($sth) == 0) { show_message("You don't have any fleets :("); } while ($its_fleets = mysql_fetch_array($sth)) { $fleets[] = new fleet($its_fleets["fid"]); } // Farbendefinition für verschiedene Flotten Befehle $mission[0] = "defend.jpg"; $mission[1] = "attack.jpg"; $mission[2] = "intercept.jpg"; $mission[3] = "bomb.jpg"; $mission[4] = "colonize.jpg"; $mission[5] = "invade.jpg"; $prev_sid = 0; table_start("center", "500"); for ($i = 0; $i < sizeof($fleets); $i++) { if ($fleets[$i]->sid != $prev_sid) { $system_name = get_systemname($fleets[$i]->sid); table_head_text(array("System: " . $system_name), "6"); $prev_sid = $fleets[$i]->sid; } // Flotten-Bild $fleet_pic = get_fleet_pic($fleets[$i]->fid); $fleet_pic = "<img src=\"" . $fleet_pic . "\" border=\"0\" alt=\"" . $fleets[$i]->name . "\" width=\"16\" height=\"16\" />"; // Mission $mission_pic_alt = $fleets[$i]->get_mission(); $mission_pic = "<img src=\"" . (PIC_ROOT . "fleet_mission_" . $mission[$fleets[$i]->mission]) . "\" border=\"0\" alt=\"" . $mission_pic_alt[0] . "\" height=\"15\" />"; // Position if ($fleets[$i]->tpid || $fleets[$i]->tsid) { $position = "<img src=\"" . PIC_ROOT . "fleet_icon_move.jpg\" alt=\"moving\" height=\"15\" /> " . $system_name . "<br>"; } else { $position = $system_name; } // Ziel if ($fleets[$i]->tpid) { $target = get_planetname($fleets[$i]->tpid); } elseif ($fleets[$i]->tsid) { $target = get_systemname($fleets[$i]->tsid); } else { $target = ""; } $misc = ""; // misc if ($infantry_count = $fleets[$i]->get_infantry_count_aboard()) { $misc = "<img src=\"" . PIC_ROOT . "fleet_icon_infantry.jpg\" height=\"15\" border=\"0\" alt=\"Infantry aboard (" . $infantry_count . ")\" />"; } $sth = mysql_query("select 1 from fleet f, production p where f.prod_id = p.prod_id and f.fid = " . $fleets[$i]->fid . " and (p.special='O' or p.special='C')"); if (!$sth) { return 0; } if (list($has_colonists) = mysql_fetch_row($sth)) { $misc .= " <img src=\"" . PIC_ROOT . "fleet_icon_colonists.jpg\" height=\"15\" border=\"0\" alt=\"Colonists aboard\" />"; } // tonnage $tonnage = $fleets[$i]->get_total_tonnage(); // erst die Flotten die in keinem Orbit sind if (!$fleets[$i]->pid) { table_text_open(); table_text_design($fleet_pic, "15", "", "", "smallhead"); table_text_design($fleets[$i]->name, "135", "", "2", "smallhead"); table_text_design($position . " " . $mission_pic . " " . $target, "200", "", "", "smallhead"); table_text_design($misc, "100", "", "", "smallhead"); table_text_close(); list_fleet_ships($fleets[$i]->ships); table_text(array(" ", " ", " ", "Total: " . $fleets[$i]->get_total_shipcount(), $tonnage . " t"), "", "", "", "smallhead"); } else { $planetname = get_planetname($fleets[$i]->pid); $planet_pic = "<img src=\"" . (PIC_ROOT . get_planets_type($fleets[$i]->pid) . "_small.gif\" height=\"12\" width=\"12\" border=\"0\" alt=\"" . $planetname . "\"/>"); table_text_open(); table_text_design($planet_pic, "15", "", "", "head"); table_text_design("Planet: " . $planetname, "485", "", "5", "head"); table_text_close(); table_text_open(); table_text_design($fleet_pic, "15", "", "", "smallhead"); table_text_design($fleets[$i]->name, "135", "", "2", "smallhead"); table_text_design($position . " " . $mission_pic . " " . $target, "200", "", "", "smallhead"); table_text_design($misc, "100", "", "", "smallhead"); table_text_close(); list_fleet_ships($fleets[$i]->ships); table_text(array(" ", " ", " ", "Total: " . $fleets[$i]->get_total_shipcount(), $tonnage . " t"), "", "", "", "smallhead"); } table_text(array(" ")); } table_end(); }