function sn_imperium_view($template = null) { global $user, $lang; $planets = array(); $ques = array(); $sn_group_factories = sn_get_groups('factories'); $planet_density = sn_get_groups('planet_density'); if (sys_get_param('save_production')) { $production = sys_get_param('percent'); if (is_array($production) && !empty($production)) { // sn_db_transaction_start(); $query = array(); $planet_row_list = db_planet_list_sorted($user, false, '*'); // while($planet = db_fetch($planet_row_list)) foreach ($planet_row_list as $planet) { foreach ($sn_group_factories as $factory_unit_id) { $unit_db_name_porcent = pname_factory_production_field_name($factory_unit_id); if (get_unit_param($factory_unit_id, P_MINING_IS_MANAGED) && isset($production[$factory_unit_id][$planet['id']]) && ($actual_porcent = intval($production[$factory_unit_id][$planet['id']] / 10)) >= 0 && $actual_porcent <= 10 && $actual_porcent != $planet[$unit_db_name_porcent]) { $query[$planet['id']][] = "{$unit_db_name_porcent} = {$actual_porcent}"; } } } foreach ($query as $planet_id => $query_data) { db_planet_set_by_id($planet_id, implode(',', $query_data)); } // sn_db_transaction_commit(); } } $planet_row_list = db_planet_list_sorted($user); // while ($planet = db_fetch($planet_row_list)) foreach ($planet_row_list as $planet) { sn_db_transaction_start(); $global_data = sys_o_get_updated($user, $planet['id'], SN_TIME_NOW, false, true); $planets[$planet['id']] = $global_data['planet']; // $ques[$planet['id']] = que_get($user['id'], $planet['id'], false); $ques[$planet['id']] = $global_data['que']; sn_db_transaction_commit(); } $template = gettemplate('imperium', $template); $template->assign_var('amount', count($planets) + 2); for ($i = 100; $i >= 0; $i -= 10) { $template->assign_block_vars('percent', array('PERCENT' => $i)); } $fleet_id = 1; $fleets = array(); $total['temp_min'] = 1000; $total['temp_max'] = -999; foreach ($planets as $planet_index => &$planet) { $list_planet_que = $ques[$planet_index]; $planet_template = tpl_parse_planet($planet); $planet_fleet_id = 0; $fleet_list = $planet_template['fleet_list']; //flt_get_fleets_to_planet($planet); if ($fleet_list['own']['count']) { $planet_fleet_id = "p{$fleet_id}"; $fleets[] = tpl_parse_fleet_sn($fleet_list['own']['total'], $planet_fleet_id); $fleet_id++; } $template->assign_block_vars('planet', array_merge($planet_template, array('PLANET_FLEET_ID' => $planet_fleet_id, 'METAL_CUR' => pretty_number($planet['metal'], true, $planet['caps']['total_storage'][RES_METAL]), 'METAL_PROD' => pretty_number($planet['caps']['total'][RES_METAL]), 'CRYSTAL_CUR' => pretty_number($planet['crystal'], true, $planet['caps']['total_storage'][RES_CRYSTAL]), 'CRYSTAL_PROD' => pretty_number($planet['caps']['total'][RES_CRYSTAL]), 'DEUTERIUM_CUR' => pretty_number($planet['deuterium'], true, $planet['caps']['total_storage'][RES_DEUTERIUM]), 'DEUTERIUM_PROD' => pretty_number($planet['caps']['total'][RES_DEUTERIUM]), 'ENERGY_CUR' => pretty_number($planet['caps'][RES_ENERGY][BUILD_CREATE] - $planet['caps'][RES_ENERGY][BUILD_DESTROY], true, true), 'ENERGY_MAX' => pretty_number($planet['caps'][RES_ENERGY][BUILD_CREATE]), 'TEMP_MIN' => $planet['temp_min'], 'TEMP_MAX' => $planet['temp_max'], 'DENSITY_CLASS' => $planet['density_index'], 'DENSITY_RICHNESS' => $planet_density[$planet['density_index']][UNIT_PLANET_DENSITY_RICHNESS], 'DENSITY_CLASS_TEXT' => $lang['uni_planet_density_types'][$planet['density_index']]))); $planet['fleet_list'] = $planet_template['fleet_list']; $planet['BUILDING_ID'] = $planet_template['BUILDING_ID']; $planet['hangar_que'] = $planet_template['hangar_que']; $planet['full_que'] = $list_planet_que; $total['fields'] += $planet['field_current']; $total['metal'] += $planet['metal']; $total['crystal'] += $planet['crystal']; $total['deuterium'] += $planet['deuterium']; $total['energy'] += $planet['energy_max'] - $planet['energy_used']; $total['fields_max'] += eco_planet_fields_max($planet); $total['metal_perhour'] += $planet['caps']['total'][RES_METAL]; $total['crystal_perhour'] += $planet['caps']['total'][RES_CRYSTAL]; $total['deuterium_perhour'] += $planet['caps']['total'][RES_DEUTERIUM]; $total['energy_max'] += $planet['caps'][RES_ENERGY][BUILD_CREATE]; $total['temp_min'] = min($planet['temp_min'], $total['temp_min']); $total['temp_max'] = max($planet['temp_max'], $total['temp_max']); } tpl_assign_fleet($template, $fleets); unset($planet); $show_groups = array(UNIT_STRUCTURES => 'structures', UNIT_STRUCTURES_SPECIAL => 'structures', UNIT_SHIPS => 'fleet', UNIT_DEFENCE => 'defense'); foreach ($show_groups as $unit_group_id => $mode) { $template->assign_block_vars('prods', array('NAME' => $lang['tech'][$unit_group_id])); $unit_group = get_unit_param('techtree', $unit_group_id); foreach ($unit_group as $unit_id) { $unit_count = $unit_count_abs = 0; $block_vars = array(); $unit_is_factory = in_array($unit_id, $sn_group_factories) && get_unit_param($unit_id, P_MINING_IS_MANAGED); // $unit_db_name = pname_resource_name($unit_id); foreach ($planets as $planet) { $unit_level_plain = mrc_get_level($user, $planet, $unit_id, false, true); $level_plus['FACTORY'] = $unit_is_factory; $level_plus['LEVEL_PLUS_YELLOW'] = 0; $level_plus['LEVEL_PLUS_GREEN'] = 0; $level_plus['PERCENT'] = $unit_is_factory ? $unit_level_plain ? $planet[pname_factory_production_field_name($unit_id)] * 10 : -1 : -1; switch ($mode) { /* case 'structures': $level_plus_build = $ques[$planet['id']]['in_que'][que_get_unit_que($unit_id)][$user['id']][$planet['id']][$unit_id]; if($level_plus_build) { $level_plus['LEVEL_PLUS_GREEN'] = $level_plus_build < 0 ? $level_plus_build : "+{$level_plus_build}"; $total['units'][$unit_id]['LEVEL_PLUS_GREEN'] += $level_plus['LEVEL_PLUS_GREEN']; } break; */ /** @noinspection PhpMissingBreakStatementInspection */ case 'fleet': $level_plus['LEVEL_PLUS_YELLOW'] = $planet['fleet_list']['own']['total'][$unit_id] <= 0 ? $planet['fleet_list']['own']['total'][$unit_id] : "+{$planet['fleet_list']['own']['total'][$unit_id]}"; $total['units'][$unit_id]['LEVEL_PLUS_YELLOW'] += $level_plus['LEVEL_PLUS_YELLOW']; case 'structures': case 'defense': $level_plus_build = $ques[$planet['id']]['in_que'][que_get_unit_que($unit_id)][$user['id']][$planet['id']][$unit_id]; if ($level_plus_build) { $level_plus['LEVEL_PLUS_GREEN'] = $level_plus_build < 0 ? $level_plus_build : "+{$level_plus_build}"; // $level_plus['LEVEL_PLUS_GREEN'] = "+{$level_plus_build}"; $total['units'][$unit_id]['LEVEL_PLUS_GREEN'] += $level_plus['LEVEL_PLUS_GREEN']; } break; default: break; } $block_vars[] = array_merge($level_plus, array('ID' => $planet['id'], 'TYPE' => $planet['planet_type'], 'LEVEL' => $unit_level_plain == 0 && !$level_plus['LEVEL_PLUS_YELLOW'] && !$level_plus['LEVEL_PLUS_GREEN'] ? '-' : $unit_level_plain)); $unit_count += $unit_level_plain; $unit_count_abs += $unit_level_plain + abs($level_plus['LEVEL_PLUS_YELLOW']) + abs($level_plus['LEVEL_PLUS_GREEN']); } if ($unit_count_abs) { $template->assign_block_vars('prods', array('ID' => $unit_id, 'FIELD' => 'unit_' . $unit_id, 'NAME' => $lang['tech'][$unit_id], 'MODE' => $mode)); foreach ($block_vars as $block_var) { $template->assign_block_vars('prods.planet', $block_var); } $unit_green = $total['units'][$unit_id]['LEVEL_PLUS_GREEN']; $unit_yellow = $total['units'][$unit_id]['LEVEL_PLUS_YELLOW']; $template->assign_block_vars('prods.planet', array('ID' => 0, 'LEVEL' => $unit_count, 'LEVEL_PLUS_GREEN' => $unit_green == 0 ? '' : ($unit_green > 0 ? "+{$unit_green}" : $unit_green), 'LEVEL_PLUS_YELLOW' => $unit_yellow == 0 ? '' : ($unit_yellow > 0 ? "+{$unit_yellow}" : $unit_yellow), 'PERCENT' => $unit_is_factory ? '' : -1, 'FACTORY' => $unit_is_factory)); } } } $template->assign_block_vars('planet', array_merge(array('ID' => 0, 'NAME' => $lang['sys_total'], 'FIELDS_CUR' => $total['fields'], 'FIELDS_MAX' => $total['fields_max'], 'METAL_CUR' => pretty_number($total['metal']), 'METAL_PROD' => pretty_number($total['metal_perhour']), 'CRYSTAL_CUR' => pretty_number($total['crystal']), 'CRYSTAL_PROD' => pretty_number($total['crystal_perhour']), 'DEUTERIUM_CUR' => pretty_number($total['deuterium']), 'DEUTERIUM_PROD' => pretty_number($total['deuterium_perhour']), 'ENERGY_CUR' => pretty_number($total['energy']), 'ENERGY_MAX' => pretty_number($total['energy_max']), 'TEMP_MIN' => $total['temp_min'], 'TEMP_MAX' => $total['temp_max']))); $template->assign_vars(array('COLONIES_CURRENT' => get_player_current_colonies($user), 'COLONIES_MAX' => get_player_max_colonies($user), 'EXPEDITIONS_CURRENT' => get_player_current_expeditions($user), 'EXPEDITIONS_MAX' => get_player_max_expeditons($user), 'PLANET_DENSITY_RICHNESS_NORMAL' => PLANET_DENSITY_RICHNESS_NORMAL, 'PLANET_DENSITY_RICHNESS_AVERAGE' => PLANET_DENSITY_RICHNESS_AVERAGE, 'PLANET_DENSITY_RICHNESS_GOOD' => PLANET_DENSITY_RICHNESS_GOOD, 'PLANET_DENSITY_RICHNESS_PERFECT' => PLANET_DENSITY_RICHNESS_PERFECT)); //$template->assign_recursive($template_result); return $template; }
display($template, $lang['rename_and_abandon_planet']); break; default: sn_sys_sector_buy(); $template = gettemplate('planet_overview', true); rpg_level_up($user, RPG_STRUCTURE); rpg_level_up($user, RPG_RAID); rpg_level_up($user, RPG_TECH); rpg_level_up($user, RPG_EXPLORE); $fleet_id = 1; $fleet_list = flt_get_fleets($user['id']); $fleets = flt_parse_fleets_to_events($fleet_list); // int_get_missile_to_planet("SELECT * FROM `{{iraks}}` WHERE `fleet_owner` = '{$user['id']}'"); $planet_count = 0; sn_db_transaction_start(); $planets_query = db_planet_list_sorted($user, false, '*'); foreach ($planets_query as $an_id => $UserPlanet) { $UserPlanet = sys_o_get_updated($user, $UserPlanet['id'], SN_TIME_NOW, false, true); $list_planet_que = $UserPlanet['que']; $UserPlanet = $UserPlanet['planet']; $template_planet = tpl_parse_planet($UserPlanet); $planet_fleet_id = 0; $fleet_list = $template_planet['fleet_list']; if ($fleet_list['own']['count']) { $planet_fleet_id = "p{$UserPlanet['id']}"; $fleets_to_planet[$UserPlanet['id']] = tpl_parse_fleet_sn($fleet_list['own']['total'], $planet_fleet_id); // $fleet_id++;tpl_parse_fleet_sn } if ($UserPlanet['planet_type'] == PT_MOON) { continue; }
function sn_tpl_render_topnav(&$user, $planetrow) { if (!is_array($user)) { return ''; } global $lang, $config; $GET_mode = sys_get_param_str('mode'); $template = gettemplate('topnav', true); /* $planetrow = $planetrow ? $planetrow : $user['current_planet']; sn_db_transaction_start(); $planetrow = sys_o_get_updated($user, $planetrow, SN_TIME_NOW); sn_db_transaction_commit(); $planetrow = $planetrow['planet']; */ $ThisUsersPlanets = db_planet_list_sorted($user); // while ($CurPlanet = db_fetch($ThisUsersPlanets)) foreach ($ThisUsersPlanets as $CurPlanet) { if (!$CurPlanet['destruyed']) { $fleet_listx = flt_get_fleets_to_planet($CurPlanet); $template->assign_block_vars('topnav_planets', array('ID' => $CurPlanet['id'], 'NAME' => $CurPlanet['name'], 'PLIMAGE' => $CurPlanet['image'], 'FLEET_ENEMY' => $fleet_listx['enemy']['count'], 'COORDS' => uni_render_coordinates($CurPlanet), 'SELECTED' => $CurPlanet['id'] == $user['current_planet'] ? ' selected' : '')); } } $fleet_flying_list = tpl_get_fleets_flying($user); tpl_topnav_event_build($template, $fleet_flying_list[0]); tpl_topnav_event_build($template, $fleet_flying_list[MT_EXPLORE], 'expedition'); que_tpl_parse($template, QUE_RESEARCH, $user); $str_date_format = "%3\$02d %2\$0s %1\$04d {$lang['top_of_year']} %4\$02d:%5\$02d:%6\$02d"; $time_now_parsed = getdate(SN_TIME_NOW); $time_local_parsed = getdate(defined('SN_CLIENT_TIME_LOCAL') ? SN_CLIENT_TIME_LOCAL : SN_TIME_NOW); if ($config->game_news_overview) { nws_render($template, "WHERE UNIX_TIMESTAMP(`tsTimeStamp`) >= {$user['news_lastread']}", $config->game_news_overview); } $notes_query = doquery("SELECT * FROM {{notes}} WHERE `owner` = {$user['id']} AND `sticky` = 1 ORDER BY priority DESC, time DESC"); while ($note_row = db_fetch($notes_query)) { note_assign($template, $note_row); } $premium_lvl = mrc_get_level($user, false, UNIT_PREMIUM, true, true); $template->assign_vars(array('QUE_ID' => QUE_RESEARCH, 'QUE_HTML' => 'topnav', 'RESEARCH_ONGOING' => (bool) $user['que'], 'TIME_TEXT' => sprintf($str_date_format, $time_now_parsed['year'], $lang['months'][$time_now_parsed['mon']], $time_now_parsed['mday'], $time_now_parsed['hours'], $time_now_parsed['minutes'], $time_now_parsed['seconds']), 'TIME_TEXT_LOCAL' => sprintf($str_date_format, $time_local_parsed['year'], $lang['months'][$time_local_parsed['mon']], $time_local_parsed['mday'], $time_local_parsed['hours'], $time_local_parsed['minutes'], $time_local_parsed['seconds']), 'GAME_BLITZ_REGISTER' => $config->game_blitz_register, 'GAME_BLITZ_REGISTER_TEXT' => $lang['sys_blitz_registration_mode_list'][$config->game_blitz_register], 'BLITZ_REGISTER_OPEN' => $config->game_blitz_register == BLITZ_REGISTER_OPEN, 'BLITZ_REGISTER_CLOSED' => $config->game_blitz_register == BLITZ_REGISTER_CLOSED, 'BLITZ_REGISTER_SHOW_LOGIN' => $config->game_blitz_register == BLITZ_REGISTER_SHOW_LOGIN, 'BLITZ_REGISTER_DISCLOSURE_NAMES' => $config->game_blitz_register == BLITZ_REGISTER_DISCLOSURE_NAMES, 'GAME_BLITZ' => $config->game_mode == GAME_BLITZ, 'USERS_ONLINE' => $config->var_online_user_count, 'USERS_TOTAL' => $config->users_amount, 'USER_RANK' => $user['total_rank'], 'USER_NICK' => $user['username'], 'USER_AVATAR' => $user['avatar'], 'USER_AVATARID' => $user['id'], 'USER_PREMIUM' => $premium_lvl, 'USER_RACE' => $user['player_race'], 'TOPNAV_CURRENT_PLANET' => $user['current_planet'], 'TOPNAV_MODE' => $GET_mode, 'TOPNAV_DARK_MATTER' => mrc_get_level($user, '', RES_DARK_MATTER), 'TOPNAV_DARK_MATTER_TEXT' => pretty_number(mrc_get_level($user, '', RES_DARK_MATTER)), 'TOPNAV_METAMATTER' => mrc_get_level($user, '', RES_METAMATTER), 'TOPNAV_METAMATTER_TEXT' => pretty_number(mrc_get_level($user, '', RES_METAMATTER)), 'TOPNAV_PAYMENT' => sn_module_get_active_count('payment') && !defined('SN_GOOGLE'), 'TOPNAV_MESSAGES_ADMIN' => $user['msg_admin'], 'TOPNAV_MESSAGES_PLAYER' => $user['mnl_joueur'], 'TOPNAV_MESSAGES_ALLIANCE' => $user['mnl_alliance'], 'TOPNAV_MESSAGES_ATTACK' => $user['mnl_attaque'], 'TOPNAV_MESSAGES_ALL' => $user['new_message'], 'TOPNAV_FLEETS_FLYING' => count($fleet_flying_list[0]), 'TOPNAV_FLEETS_TOTAL' => GetMaxFleets($user), 'TOPNAV_EXPEDITIONS_FLYING' => count($fleet_flying_list[MT_EXPLORE]), 'TOPNAV_EXPEDITIONS_TOTAL' => get_player_max_expeditons($user), 'TOPNAV_QUEST_COMPLETE' => get_quest_amount_complete($user['id']), 'GAME_NEWS_OVERVIEW' => $config->game_news_overview)); if (defined('SN_RENDER_NAVBAR_PLANET') && SN_RENDER_NAVBAR_PLANET === true || $user['option_list'][OPT_INTERFACE]['opt_int_navbar_resource_force'] && SN_RENDER_NAVBAR_PLANET !== false) { tpl_set_resource_info($template, $planetrow); $template->assign_vars(array('SN_RENDER_NAVBAR_PLANET' => true, 'SN_NAVBAR_HIDE_FLEETS' => true)); } return $template; }