Ejemplo n.º 1
0
 /**
  * method missile_mission
  * param $fleet_row
  * return the missile result
  */
 public function missile_mission($fleet_row)
 {
     if ($fleet_row['fleet_start_time'] <= time()) {
         if ($fleet_row['fleet_mess'] == 0) {
             $attacker_data = parent::$db->query_fetch("SELECT p.`planet_name`, r.`research_weapons_technology`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = " . $fleet_row['fleet_start_galaxy'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_system` = " . $fleet_row['fleet_start_system'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = " . $fleet_row['fleet_start_planet'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_type` = " . $fleet_row['fleet_start_type'] . ";");
             $target_data = parent::$db->query_fetch("SELECT p.`planet_id`, p.`planet_name`, p.`planet_user_id`, d.*, r.`research_shielding_technology`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = " . $fleet_row['fleet_end_galaxy'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_system` = " . $fleet_row['fleet_end_system'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = " . $fleet_row['fleet_end_planet'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_type` = " . $fleet_row['fleet_end_type'] . ";");
             if ($target_data['defense_anti-ballistic_missile'] >= $fleet_row['fleet_amount']) {
                 $message = $this->_lang['ma_all_destroyed'] . '<br>';
                 $amount = $fleet_row['fleet_amount'];
             } else {
                 $amount = 0;
                 if ($target_data['defense_anti-ballistic_missile'] > 0) {
                     $message = $target_data['defense_anti-ballistic_missile'] . $this->_lang['ma_some_destroyed'] . " <br>";
                 }
                 $attack = floor(($fleet_row['fleet_amount'] - $target_data['defense_anti-ballistic_missile']) * ($this->_combat_caps[503]['attack'] * (1 + $attacker_data['research_weapons_technology'] / 10)));
                 $attack_order = $this->set_attack_order($fleet_row['fleet_target_obj']);
                 $destroyed_query = '';
                 // PROCESS THE MISSILE ATTACK
                 for ($t = 0; $t < count($attack_order); $t++) {
                     $n = $attack_order[$t];
                     if ($target_data[$this->_resource[$n]]) {
                         $defense = ($this->_pricelist[$n]['metal'] + parent::$_pricelist[$n]['crystal']) / 10 * (1 + $target_data['research_shielding_technology'] / 10);
                         if ($attack >= $defense * $target_data[$this->_resource[$n]]) {
                             $destroyed = $target_data[$this->_resource[$n]];
                         } else {
                             $destroyed = floor($attack / $defense);
                         }
                         $attack -= $destroyed * $defense;
                         if ($destroyed != 0) {
                             $message .= $this->_lang['tech'][$n] . " (-" . $destroyed . ")<br>";
                             $destroyed_query .= "`" . $this->_resource[$n] . "` = `" . $this->_resource[$n] . "` - " . $destroyed . ",";
                         }
                     }
                 }
                 if ($destroyed_query != '') {
                     parent::$db->query("UPDATE " . DEFENSES . " SET\n\t\t\t\t\t\t\t\t\t\t\t\t{$destroyed_query}\n\t\t\t\t\t\t\t\t\t\t\t\t`defense_anti-ballistic_missile` = '" . $amount . "'\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE defense_planet_id = " . $target_data['id']);
                 }
             }
             $search = array('%1%', '%2%', '%3%');
             $replace = array($fleet_row['fleet_amount'], $attacker_data['planet_name'] . ' [' . $fleet_row['fleet_start_galaxy'] . ':' . $fleet_row['fleet_start_system'] . ':' . $fleet_row['fleet_start_planet'] . '] ', $target_data['name'] . ' [' . $fleet_row['fleet_end_galaxy'] . ':' . $fleet_row['fleet_end_system'] . ':' . $fleet_row['fleet_end_planet'] . '] ');
             $message_vorlage = str_replace($search, $replace, $this->_lang['ma_missile_string']);
             if (empty($message) or $message == '') {
                 $message = $this->_lang['ma_planet_without_defens'];
             }
             Functions_Lib::send_message($target_data['planet_user_id'], '', $fleet_row['fleet_end_time'], 5, $this->_lang['sys_mess_tower'], $this->_lang['gl_missile_attack'], $message_vorlage . $message);
             parent::remove_fleet($fleet_row['fleet_id']);
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * method build_page
  * param
  * return main method, loads everything
  */
 private function build_page()
 {
     $parse = $this->_lang;
     $parse['js_path'] = XGP_ROOT . JS_PATH;
     if (isset($_POST) && $_POST && $_GET['mode'] == "change") {
         $info = array(1 => array('color' => 'yellow'), 2 => array('color' => 'skyblue'), 3 => array('color' => 'red'));
         $color = $info[$this->_current_user['user_authlevel']]['color'];
         $level = $this->_lang['user_level'][$this->_current_user['user_authlevel']];
         if (isset($_POST['tresc']) && $_POST['tresc'] != '' && (isset($_POST['temat']) && $_POST['temat'] != '') && (isset($_POST['message']) or isset($_POST['mail']))) {
             $sq = parent::$db->query("SELECT `user_id` , `user_name`, `user_email`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "");
             if (isset($_POST['message'])) {
                 $time = time();
                 $from = '<font color="' . $color . '">' . $level . ' ' . $this->_current_user['user_name'] . '</font>';
                 $subject = '<font color="' . $color . '">' . $_POST['temat'] . '</font>';
                 $message = '<font color="' . $color . '"><b>' . Functions_Lib::format_text($_POST['tresc']) . '</b></font>';
                 while ($u = parent::$db->fetch_array($sq)) {
                     Functions_Lib::send_message($u['user_id'], $this->_current_user['user_id'], $time, 5, $from, $subject, $message);
                     $_POST['tresc'] = str_replace(":name:", $u['user_name'], $_POST['tresc']);
                 }
             }
             if (isset($_POST['mail'])) {
                 $i = 0;
                 while ($u = parent::$db->fetch_array($sq)) {
                     mail($u['user_email'], $_POST['temat'], $_POST['tresc']);
                     // 20 per row
                     if ($i % 20 == 0) {
                         sleep(1);
                         // wait, prevent flooding
                     }
                     $i++;
                 }
             }
             $parse['alert'] = Administration_Lib::save_message('ok', $this->_lang['ma_message_sended']);
         } else {
             $parse['alert'] = Administration_Lib::save_message('warning', $this->_lang['ma_subject_needed']);
         }
     }
     parent::$page->display(parent::$page->parse_template(parent::$page->get_template('adm/global_message_view'), $parse));
 }
Ejemplo n.º 3
0
 /**
  * method deploy_mission
  * param $fleet_row
  * return the deploy result
  */
 public function deploy_mission($fleet_row)
 {
     if ($fleet_row['fleet_mess'] == 0) {
         if ($fleet_row['fleet_start_time'] <= time()) {
             $target_coords = sprintf($this->_lang['sys_adress_planet'], $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']);
             $target_resources = sprintf($this->_lang['sys_stay_mess_goods'], $this->_lang['Metal'], Format_Lib::pretty_number($fleet_row['fleet_resource_metal']), $this->_lang['Crystal'], Format_Lib::pretty_number($fleet_row['fleet_resource_crystal']), $this->_lang['Deuterium'], Format_Lib::pretty_number($fleet_row['fleet_resource_deuterium']));
             $target_message = $this->_lang['sys_stay_mess_start'] . "<a href=\"game.php?page=galaxy&mode=3&galaxy=" . $fleet_row['fleet_end_galaxy'] . "&system=" . $fleet_row['fleet_end_system'] . "\">";
             $target_message .= $target_coords . "</a>" . $this->_lang['sys_stay_mess_end'] . "<br />" . $target_resources;
             Functions_Lib::send_message($fleet_row['fleet_target_owner'], '', $fleet_row['fleet_start_time'], 5, $this->_lang['sys_mess_qg'], $this->_lang['sys_stay_mess_stay'], $target_message);
             parent::restore_fleet($fleet_row, FALSE);
             parent::remove_fleet($fleet_row['fleet_id']);
         }
     } else {
         if ($fleet_row['fleet_end_time'] <= time()) {
             $target_coords = sprintf($this->_lang['sys_adress_planet'], $fleet_row['fleet_start_galaxy'], $fleet_row['fleet_start_system'], $fleet_row['fleet_start_planet']);
             $target_resources = sprintf($this->_lang['sys_stay_mess_goods'], $this->_lang['Metal'], Format_Lib::pretty_number($fleet_row['fleet_resource_metal']), $this->_lang['Crystal'], Format_Lib::pretty_number($fleet_row['fleet_resource_crystal']), $this->_lang['Deuterium'], Format_Lib::pretty_number($fleet_row['fleet_resource_deuterium']));
             $target_message = $this->_lang['sys_stay_mess_back'] . "<a href=\"game.php?page=galaxy&mode=3&galaxy=" . $fleet_row['fleet_start_galaxy'] . "&system=" . $fleet_row['fleet_start_system'] . "\">";
             $target_message .= $target_coords . "</a>" . $this->_lang['sys_stay_mess_bend'] . "<br />" . $target_resources;
             Functions_Lib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_end_time'], 5, $this->_lang['sys_mess_qg'], $this->_lang['sys_mess_fleetback'], $target_message);
             parent::restore_fleet($fleet_row, TRUE);
             parent::remove_fleet($fleet_row['fleet_id']);
         }
     }
 }
Ejemplo n.º 4
0
    /**
     * method attack_mission
     * param $fleet_row
     * return the attack result
     */
    public function attack_mission($fleet_row)
    {
        $targetPlanet = parent::$db->query_fetch("SELECT *\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . BUILDINGS . " AS b ON b.building_planet_id = p.`planet_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . SHIPS . " AS s ON s.ship_planet_id = p.`planet_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = " . (int) $fleet_row['fleet_end_galaxy'] . " AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_system` = " . (int) $fleet_row['fleet_end_system'] . " AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_type` = " . (int) $fleet_row['fleet_end_type'] . " AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = " . (int) $fleet_row['fleet_end_planet'] . ";");
        if ($fleet_row['fleet_mess'] == 0 && $fleet_row['fleet_start_time'] <= time()) {
            if ($fleet_row['fleet_group'] > 0) {
                parent::$db->query("DELETE FROM " . ACS_FLEETS . "\r\n\t\t\t\t\t\t\t\t\t\tWHERE acs_fleet_id =" . intval($fleet_row['fleet_group']));
                parent::$db->query("UPDATE `" . FLEETS . "` SET\r\n\t\t\t\t\t\t\t\t\t\t`fleet_mess` = '1'\r\n\t\t\t\t\t\t\t\t\t\tWHERE `fleet_group` = " . $fleet_row['fleet_group']);
            } else {
                parent::return_fleet($fleet_row['fleet_id']);
            }
            $targetUser = parent::$db->query_fetch('SELECT u.*,
																r.research_energy_technology,
																pr.premium_officier_geologist,
																pr.premium_officier_engineer
															FROM ' . USERS . ' AS u
															INNER JOIN ' . RESEARCH . ' AS r ON r.research_user_id = u.user_id
															INNER JOIN ' . PREMIUM . ' AS pr ON pr.premium_user_id = u.user_id
															WHERE u.user_id = ' . intval($targetPlanet['planet_user_id']));
            UpdateResources_Lib::update_resource($targetUser, $targetPlanet, time());
            $targetGalaxy = parent::$db->query_fetch('SELECT `planet_id`
														FROM ' . PLANETS . '
														WHERE `planet_galaxy` = ' . intval($fleet_row['fleet_end_galaxy']) . ' AND
																`planet_system` = ' . intval($fleet_row['fleet_end_system']) . ' AND
																`planet_planet` = ' . intval($fleet_row['fleet_end_planet']) . ' AND
																`planet_type` = 3;');
            $targetUser = parent::$db->query_fetch('SELECT 	u.*,
																r.research_weapons_technology,
																r.research_shielding_technology,
																r.research_armour_technology,
																pr.premium_officier_technocrat
														FROM ' . USERS . ' AS u
														INNER JOIN ' . RESEARCH . ' AS r ON r.research_user_id = u.user_id
														INNER JOIN ' . PREMIUM . ' AS pr ON pr.premium_user_id = u.user_id
														WHERE u.user_id = ' . intval($targetPlanet['planet_user_id']));
            $TargetUserID = $targetUser['user_id'];
            $attackFleets = array();
            if ($fleet_row['fleet_group'] != 0) {
                $fleets = parent::$db->query('SELECT *
												FROM ' . FLEETS . '
												WHERE fleet_group=' . $fleet_row['fleet_group']);
                if ($fleets != NULL) {
                    while ($fleet = parent::$db->fetch_assoc($fleets)) {
                        $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet;
                        $attackFleets[$fleet['fleet_id']]['user'] = parent::$db->query_fetch('SELECT 	u.*,
																									r.research_weapons_technology,
																									r.research_shielding_technology,
																									r.research_armour_technology
																							FROM ' . USERS . ' AS u
																							INNER JOIN ' . RESEARCH . ' AS r ON r.research_user_id = u.user_id
																							WHERE user_id=' . intval($fleet_row['fleet_owner']));
                        $attackFleets[$fleet['fleet_id']]['detail'] = array();
                        $temp = explode(';', $fleet['fleet_array']);
                        foreach ($temp as $temp2) {
                            $temp2 = explode(',', $temp2);
                            if ($temp2[0] < 100) {
                                continue;
                            }
                            if (!isset($attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]])) {
                                $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] = 0;
                            }
                            $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1];
                        }
                    }
                }
            } else {
                $attackFleets[$fleet_row['fleet_id']]['fleet'] = $fleet_row;
                $attackFleets[$fleet_row['fleet_id']]['user'] = parent::$db->query_fetch('SELECT 	u.*,
																									r.research_weapons_technology,
																									r.research_shielding_technology,
																									r.research_armour_technology
																							FROM ' . USERS . ' AS u
																							INNER JOIN ' . RESEARCH . ' AS r ON r.research_user_id = u.user_id
																							WHERE user_id=' . intval($fleet_row['fleet_owner']));
                $attackFleets[$fleet_row['fleet_id']]['detail'] = array();
                $temp = explode(';', $fleet_row['fleet_array']);
                foreach ($temp as $temp2) {
                    $temp2 = explode(',', $temp2);
                    if ($temp2[0] < 100) {
                        continue;
                    }
                    if (!isset($attackFleets[$fleet_row['fleet_id']]['detail'][$temp2[0]])) {
                        $attackFleets[$fleet_row['fleet_id']]['detail'][$temp2[0]] = 0;
                    }
                    $attackFleets[$fleet_row['fleet_id']]['detail'][$temp2[0]] += $temp2[1];
                }
            }
            $defense = array();
            $def = parent::$db->query_fetch('SELECT *
												FROM ' . FLEETS . '
												WHERE `fleet_end_galaxy` = ' . intval($fleet_row['fleet_end_galaxy']) . ' AND
														`fleet_end_system` = ' . intval($fleet_row['fleet_end_system']) . ' AND
														`fleet_end_type` = ' . intval($fleet_row['fleet_end_type']) . ' AND
														`fleet_end_planet` = ' . intval($fleet_row['fleet_end_planet']) . ' AND
														fleet_start_time<' . time() . ' AND
														fleet_end_stay>=' . time());
            if ($def != NULL) {
                while ($defRow = parent::$db->fetch_assoc($def)) {
                    $defRowDef = explode(';', $defRow['fleet_array']);
                    foreach ($defRowDef as $Element) {
                        $Element = explode(',', $Element);
                        if ($Element[0] < 100) {
                            continue;
                        }
                        if (!isset($defense[$defRow['fleet_id']]['def'][$Element[0]])) {
                            $defense[$defRow['fleet_id']][$Element[0]] = 0;
                        }
                        $defense[$defRow['fleet_id']]['def'][$Element[0]] += $Element[1];
                        $defense[$defRow['fleet_id']]['user'] = parent::$db->query_fetch('SELECT *
																								FROM ' . USERS . '
																								WHERE user_id = ' . intval($defRow['fleet_owner']));
                    }
                }
            }
            $defense[0]['def'] = array();
            $defense[0]['user'] = $targetUser;
            for ($i = 200; $i < 500; $i++) {
                if (isset($this->_resource[$i]) && isset($targetPlanet[$this->_resource[$i]])) {
                    $defense[0]['def'][$i] = $targetPlanet[$this->_resource[$i]];
                }
            }
            $start = microtime(TRUE);
            $result = $this->acs_attack($attackFleets, $defense);
            $totaltime = microtime(TRUE) - $start;
            parent::$db->query("UPDATE " . PLANETS . " SET\r\n\t\t\t\t\t\t\t\t\t`planet_invisible_start_time` = '" . time() . "',\r\n\t\t\t\t\t\t\t\t\t`planet_debris_metal` = `planet_debris_metal` +'" . ($result['debree']['att'][0] + $result['debree']['def'][0]) . "',\r\n\t\t\t\t\t\t\t\t\t`planet_debris_crystal` = `planet_debris_crystal` + '" . ($result['debree']['att'][1] + $result['debree']['def'][1]) . "'\r\n\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_type` = 1\r\n\t\t\t\t\t\t\t\t\tLIMIT 1;");
            $totalDebree = $result['debree']['def'][0] + $result['debree']['def'][1] + $result['debree']['att'][0] + $result['debree']['att'][1];
            $steal = array('metal' => 0, 'crystal' => 0, 'deuterium' => 0);
            if ($result['won'] == "a") {
                $steal = $this->acs_steal($attackFleets, $targetPlanet);
            }
            foreach ($attackFleets as $fleetID => $attacker) {
                $fleetArray = '';
                $totalCount = 0;
                foreach ($attacker['detail'] as $element => $amount) {
                    if ($amount) {
                        $fleetArray .= $element . ',' . $amount . ';';
                    }
                    $totalCount += $amount;
                }
                if ($totalCount <= 0) {
                    parent::remove_fleet($fleetID);
                } else {
                    parent::$db->query('UPDATE ' . FLEETS . ' SET
											fleet_array="' . substr($fleetArray, 0, -1) . '",
											fleet_amount=' . $totalCount . ',
											fleet_mess=1
											WHERE fleet_id=' . intval($fleetID));
                }
            }
            foreach ($defense as $fleetID => $defender) {
                if ($fleetID != 0) {
                    $fleetArray = '';
                    $totalCount = 0;
                    foreach ($defender['def'] as $element => $amount) {
                        if ($amount) {
                            $fleetArray .= $element . ',' . $amount . ';';
                        }
                        $totalCount += $amount;
                    }
                    if ($totalCount <= 0) {
                        parent::remove_fleet($fleetID);
                    } else {
                        parent::$db->query("UPDATE " . FLEETS . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\tfleet_array='{$fleetArray}',\r\n\t\t\t\t\t\t\t\t\t\t\t\tfleet_amount='{$totalCount}'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE fleet_id='{$fleetID}'");
                    }
                } else {
                    $fleetArray = '';
                    $totalCount = 0;
                    foreach ($defender['def'] as $element => $amount) {
                        $fleetArray .= '`' . $this->_resource[$element] . '`=' . $amount . ', ';
                    }
                    parent::$db->query("UPDATE " . PLANETS . " AS p\r\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . SHIPS . " AS s ON s.ship_planet_id = p.`planet_id`\r\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id` SET\r\n\t\t\t\t\t\t\t\t\t\t\t{$fleetArray}\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_metal` = `planet_metal` - '" . $steal['metal'] . "',\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_crystal` = `planet_crystal` - '" . $steal['crystal'] . "',\r\n\t\t\t\t\t\t\t\t\t\t\t`planet_deuterium` = `planet_deuterium` - '" . $steal['deuterium'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_type` = '" . $fleet_row['fleet_end_type'] . "';");
                }
            }
            $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1];
            $StrAttackerUnits = sprintf($this->_lang['sys_attacker_lostunits'], $result['lost']['att']);
            $StrDefenderUnits = sprintf($this->_lang['sys_defender_lostunits'], $result['lost']['def']);
            $StrRuins = sprintf($this->_lang['sys_gcdrunits'], $result['debree']['def'][0] + $result['debree']['att'][0], $this->_lang['Metal'], $result['debree']['def'][1] + $result['debree']['att'][1], $this->_lang['Crystal']);
            $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
            $MoonChance = $FleetDebris / 100000;
            if ($FleetDebris > 2000000) {
                $MoonChance = 20;
                $UserChance = mt_rand(1, 100);
                $ChanceMoon = sprintf($this->_lang['sys_moonproba'], $MoonChance);
            } elseif ($FleetDebris < 100000) {
                $UserChance = 0;
                $ChanceMoon = sprintf($this->_lang['sys_moonproba'], $MoonChance);
            } elseif ($FleetDebris >= 100000) {
                $UserChance = mt_rand(1, 100);
                $ChanceMoon = sprintf($this->_lang['sys_moonproba'], $MoonChance);
            }
            if ($UserChance > 0 && $UserChance <= $MoonChance && $targetGalaxy['id'] == 0) {
                include_once XGP_ROOT . 'application/libraries/Creator_Lib.php';
                $creator = new Creator_Lib();
                $TargetPlanetName = $creator->create_moon($fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $TargetUserID, $fleet_row['fleet_start_time'], '', $MoonChance);
                $GottenMoon = sprintf($this->_lang['sys_moonbuilt'], $TargetPlanetName, $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']);
                $GottenMoon .= "<br />";
            } elseif ($UserChance = 0 or $UserChance > $MoonChance) {
                $GottenMoon = "";
            }
            $formatted_cr = $this->build_report($result, $steal, $MoonChance, $GottenMoon, $totaltime);
            $raport = $formatted_cr['html'];
            $rid = md5($raport);
            $QryInsertRapport = 'INSERT INTO ' . REPORTS . ' SET ';
            $QryInsertRapport .= '`report_time` = UNIX_TIMESTAMP(), ';
            foreach ($attackFleets as $fleetID => $attacker) {
                $users2[$attacker['user']['user_id']] = $attacker['user']['user_id'];
            }
            foreach ($defense as $fleetID => $defender) {
                $users2[$defender['user']['user_id']] = $defender['user']['user_id'];
            }
            $QryInsertRapport .= '`report_owners` = "' . implode(',', $users2) . '", ';
            $QryInsertRapport .= '`report_rid` = "' . $rid . '", ';
            $QryInsertRapport .= '`report_destroyed` = "' . $formatted_cr['destroyed'] . '", ';
            $QryInsertRapport .= '`report_content` = "' . parent::$db->escape_value($raport) . '"';
            parent::$db->query($QryInsertRapport);
            if ($result['won'] == "a") {
                $style = "green";
            } elseif ($result['won'] == "w") {
                $style = "orange";
            } elseif ($result['won'] == "r") {
                $style = "red";
            }
            $raport = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"game.php?page=CombatReport&report=" . $rid . "\", \"\");\\' >" . $this->_lang['sys_mess_attack_report'] . " [" . $fleet_row['fleet_end_galaxy'] . ":" . $fleet_row['fleet_end_system'] . ":" . $fleet_row['fleet_end_planet'] . "]</a>";
            Functions_Lib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport, '');
            if ($result['won'] == "a") {
                $style = "red";
            } elseif ($result['won'] == "w") {
                $style = "orange";
            } elseif ($result['won'] == "r") {
                $style = "lime";
            }
            $raport2 = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"game.php?page=CombatReport&report=" . $rid . "\", \"\");\\' >" . $this->_lang['sys_mess_attack_report'] . " [" . $fleet_row['fleet_end_galaxy'] . ":" . $fleet_row['fleet_end_system'] . ":" . $fleet_row['fleet_end_planet'] . "]</a>";
            foreach ($users2 as $id) {
                if ($id != $fleet_row['fleet_owner'] && $id != 0) {
                    Functions_Lib::send_message($id, '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport2, '');
                }
            }
        } elseif ($fleet_row['fleet_end_time'] <= time()) {
            $Message = sprintf($this->_lang['sys_fleet_won'], $targetPlanet['planet_name'], Fleets_Lib::target_link($fleet_row, ''), Format_Lib::pretty_number($fleet_row['fleet_resource_metal']), $this->_lang['Metal'], Format_Lib::pretty_number($fleet_row['fleet_resource_crystal']), $this->_lang['Crystal'], Format_Lib::pretty_number($fleet_row['fleet_resource_deuterium']), $this->_lang['Deuterium']);
            Functions_Lib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_end_time'], 1, $this->_lang['sys_mess_tower'], $this->_lang['sys_mess_fleetback'], $Message);
            parent::restore_fleet($fleet_row);
            parent::remove_fleet($fleet_row['fleet_id']);
        }
    }
Ejemplo n.º 5
0
 /**
  * method stay_message
  * param $owner
  * param $message
  * param $time
  * param $status_message
  * return send a message with the stay details
  */
 private function stay_message($owner, $message, $time, $status_message)
 {
     Functions_Lib::send_message($owner, '', $time, 5, $this->_lang['sys_mess_tower'], $status_message, $message);
 }
Ejemplo n.º 6
0
 /**
  * method build_page
  * param
  * return main method, loads everything
  */
 private function build_page()
 {
     $mode = isset($_GET['mode']) ? intval($_GET['mode']) : NULL;
     $bid = isset($_GET['bid']) ? intval($_GET['bid']) : NULL;
     $sm = isset($_GET['sm']) ? intval($_GET['sm']) : NULL;
     $user = isset($_GET['u']) ? intval($_GET['u']) : NULL;
     $this->_lang['js_path'] = XGP_ROOT . JS_PATH;
     $parse = $this->_lang;
     $requestsSended = '';
     $requestsReceived = '';
     $budys = '';
     switch ($mode) {
         case 1:
             switch ($sm) {
                 // REJECT / CANCEL
                 case 1:
                     $senderID = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `buddy_id`='" . intval($bid) . "'");
                     if ($senderID['buddy_status'] == 0) {
                         if ($senderID['buddy_sender'] != $this->_current_user['user_id']) {
                             Functions_Lib::send_message($senderID['buddy_sender'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_rejected_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_rejected_text']));
                         } elseif ($senderID['buddy_sender'] == $this->_current_user['user_id']) {
                             Functions_Lib::send_message($senderID['buddy_receiver'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_rejected_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_rejected_title']));
                         }
                     } else {
                         if ($senderID['buddy_sender'] != $this->_current_user['user_id']) {
                             Functions_Lib::send_message($senderID['buddy_sender'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_deleted_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_deleted_text']));
                         } elseif ($senderID['buddy_sender'] == $this->_current_user['user_id']) {
                             Functions_Lib::send_message($senderID['buddy_receiver'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_deleted_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_deleted_text']));
                         }
                     }
                     parent::$db->query("DELETE FROM " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `buddy_id`='" . intval($bid) . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`buddy_receiver`='" . $this->_current_user['user_id'] . "' OR `buddy_sender`='" . $this->_current_user['user_id'] . "') ");
                     Functions_Lib::redirect('game.php?page=buddy');
                     break;
                     // ACCEPT
                 // ACCEPT
                 case 2:
                     $senderID = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `buddy_id`='" . intval($bid) . "'");
                     Functions_Lib::send_message($senderID['buddy_sender'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_accepted_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_accepted_text']));
                     parent::$db->query("UPDATE " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\tSET `buddy_status` = '1'\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `buddy_id` ='" . intval($bid) . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_receiver`='" . $this->_current_user['user_id'] . "'");
                     Functions_Lib::redirect('game.php?page=buddy');
                     break;
                     // SEND REQUEST
                 // SEND REQUEST
                 case 3:
                     $query = parent::$db->query_fetch("SELECT `buddy_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE (`buddy_receiver`='" . intval($this->_current_user['user_id']) . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_sender`='" . intval($_POST['user']) . "') OR\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(`buddy_receiver`='" . intval($_POST['user']) . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_sender`='" . intval($this->_current_user['user_id']) . "')");
                     if (!$query) {
                         $text = parent::$db->escape_value(strip_tags($_POST['text']));
                         Functions_Lib::send_message(intval($_POST['user']), $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['bu_to_accept_title'], str_replace('%u', $this->_current_user['user_name'], $this->_lang['bu_to_accept_text']));
                         parent::$db->query("INSERT INTO " . BUDDY . " SET\n\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_sender`='" . intval($this->_current_user['user_id']) . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_receiver`='" . intval($_POST['user']) . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_status`='0',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_request_text`='" . $text . "'");
                         Functions_Lib::redirect('game.php?page=buddy');
                     } else {
                         Functions_Lib::message($this->_lang['bu_request_exists'], 'game.php?page=buddy', 2, FALSE, FALSE, FALSE);
                     }
                     break;
                     // ANY OTHER OPTION EXIT
                 // ANY OTHER OPTION EXIT
                 default:
                     Functions_Lib::redirect('game.php?page=buddy');
                     break;
             }
             break;
             // FRIENDSHIP REQUEST
         // FRIENDSHIP REQUEST
         case 2:
             // IF USER = REQUESTED USER, SHOW ERROR.
             if ($user == $this->_current_user['user_id']) {
                 Functions_Lib::message($this->_lang['bu_cannot_request_yourself'], 'game.php?page=buddy', 2, FALSE, FALSE, FALSE);
             } else {
                 // SEARCH THE PLAYER
                 $player = parent::$db->query_fetch("SELECT `user_name`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . intval($user) . "'");
                 // IF PLAYER EXISTS, PROCEED
                 if ($player) {
                     $parse['user'] = $user;
                     $parse['player'] = $player['user_name'];
                     parent::$page->display(parent::$page->parse_template(parent::$page->get_template('buddy/buddy_request'), $parse), FALSE, '', FALSE);
                 } else {
                     Functions_Lib::redirect('game.php?page=buddy');
                 }
             }
             break;
             // NOTHING SELECTED
         // NOTHING SELECTED
         default:
             $getBuddys = parent::$db->query("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . BUDDY . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `buddy_sender`='" . intval($this->_current_user['user_id']) . "' OR\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`buddy_receiver`='" . intval($this->_current_user['user_id']) . "'");
             $subTemplate = parent::$page->get_template('buddy/buddy_row');
             while ($buddy = parent::$db->fetch_assoc($getBuddys)) {
                 if ($buddy['buddy_status'] == 0) {
                     if ($buddy['buddy_sender'] == $this->_current_user['user_id']) {
                         $buddy_receiver = parent::$db->query_fetch("SELECT u.`user_id`, u.`user_name`, u.`user_galaxy`, u.`user_system`, u.`user_planet`, u.`user_ally_id`, a.`alliance_name`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . " AS u\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN `" . ALLIANCE . "` AS a ON a.`alliance_id` = u.`user_ally_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE u.`user_id`='" . intval($buddy['buddy_receiver']) . "'");
                         $parse['id'] = $buddy_receiver['user_id'];
                         $parse['username'] = $buddy_receiver['user_name'];
                         $parse['ally_id'] = $buddy_receiver['user_ally_id'];
                         $parse['alliance_name'] = $buddy_receiver['alliance_name'];
                         $parse['galaxy'] = $buddy_receiver['user_galaxy'];
                         $parse['system'] = $buddy_receiver['user_system'];
                         $parse['planet'] = $buddy_receiver['user_planet'];
                         $parse['text'] = $buddy['buddy_request_text'];
                         $parse['action'] = '<a href="game.php?page=buddy&mode=1&sm=1&bid=' . $buddy['buddy_id'] . '">' . $this->_lang['bu_cancel_request'] . '</a>';
                         $requestsSended .= parent::$page->parse_template($subTemplate, $parse);
                     } else {
                         $buddy_sender = parent::$db->query_fetch("SELECT `user_id`, `user_name`, `user_galaxy`, `user_system`, `user_planet`,`user_ally_id`, `alliance_name`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . intval($buddy['buddy_sender']) . "'");
                         $parse['id'] = $buddy_sender['user_id'];
                         $parse['username'] = $buddy_sender['user_name'];
                         $parse['ally_id'] = $buddy_sender['user_ally_id'];
                         $parse['alliance_name'] = $buddy_sender['alliance_name'];
                         $parse['galaxy'] = $buddy_sender['user_galaxy'];
                         $parse['system'] = $buddy_sender['user_system'];
                         $parse['planet'] = $buddy_sender['user_planet'];
                         $parse['text'] = $buddy['buddy_request_text'];
                         $parse['action'] = '<a href="game.php?page=buddy&mode=1&sm=2&bid=' . $buddy['buddy_id'] . '">' . $this->_lang['bu_accept'] . '</a><br /><a href="game.php?page=buddy&mode=1&sm=1&bid=' . $buddy['buddy_id'] . '">' . $this->_lang['bu_decline'] . '</a>';
                         $requestsReceived .= parent::$page->parse_template($subTemplate, $parse);
                     }
                 } else {
                     if ($buddy['buddy_sender'] == $this->_current_user['user_id']) {
                         $buddy_receiver = parent::$db->query_fetch("SELECT `user_id`, `user_name`, `user_onlinetime`, `user_galaxy`, `user_system`, `user_planet`,`user_ally_id`, `alliance_name`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . intval($buddy['buddy_receiver']) . "'");
                     } else {
                         $buddy_receiver = parent::$db->query_fetch("SELECT `user_id`, `user_name`, `user_onlinetime`, `user_galaxy`, `user_system`, `user_planet`,`user_ally_id`, `alliance_name`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . intval($buddy['buddy_sender']) . "'");
                     }
                     $parse['id'] = $buddy_receiver['user_id'];
                     $parse['username'] = $buddy_receiver['user_name'];
                     $parse['ally_id'] = $buddy_receiver['user_ally_id'];
                     $parse['alliance_name'] = $buddy_receiver['alliance_name'];
                     $parse['galaxy'] = $buddy_receiver['user_galaxy'];
                     $parse['system'] = $buddy_receiver['user_system'];
                     $parse['planet'] = $buddy_receiver['user_planet'];
                     $parse['text'] = '<font color="' . ($buddy_receiver['user_onlinetime'] + 60 * 10 >= time() ? 'lime">' . $this->_lang['bu_connected'] . '' : ($buddy_receiver['user_onlinetime'] + 60 * 15 >= time() ? 'yellow">' . $this->_lang['bu_fifteen_minutes'] : 'red">' . $this->_lang['bu_disconnected'])) . '</font>';
                     $parse['action'] = '<a href="game.php?page=buddy&mode=1&sm=1&bid=' . $buddy['buddy_id'] . '">' . $this->_lang['bu_delete'] . '</a>';
                     $budys .= parent::$page->parse_template($subTemplate, $parse);
                 }
             }
             $parse['request_received'] = $requestsSended;
             $parse['request_sended'] = $requestsReceived;
             $parse['buddys'] = $budys;
             parent::$page->display(parent::$page->parse_template(parent::$page->get_template('buddy/buddy_body'), $parse), FALSE, '', FALSE);
             break;
     }
 }
Ejemplo n.º 7
0
 /**
  * method send_message
  * param $fleet_row
  * param $report
  * return the attack result
  */
 private function send_message($fleet_row, $report)
 {
     $idAtts = $report->getAttackersId();
     $idDefs = $report->getDefendersId();
     $idAll = array_merge($idAtts, $idDefs);
     $owners = implode(',', $idAll);
     $rid = md5($report) . time();
     parent::$db->query("INSERT INTO `" . REPORTS . "` SET\n\t\t\t\t\t\t\t\t`report_owners` = '" . ($fleet_row['fleet_owner'] . ',' . $fleet_row['fleet_target_owner']) . "',\n\t\t\t\t\t\t\t\t`report_rid` = '" . $rid . "',\n\t\t\t\t\t\t\t\t`report_content` = '" . addslashes($report) . "',\n\t\t\t\t\t\t\t\t`report_destroyed` = '0',\n\t\t\t\t\t\t\t\t`report_destroyed` = '" . time() . "'");
     foreach ($idAtts as $id) {
         if ($report->attackerHasWin()) {
             $style = 'green';
         } elseif ($report->isAdraw()) {
             $style = 'orange';
         } else {
             $style = 'red';
         }
         $raport = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"game.php?page=CombatReport&report=" . $rid . "\", \"\");\\' >" . $this->_lang['sys_mess_attack_report'] . " [" . $fleet_row['fleet_end_galaxy'] . ":" . $fleet_row['fleet_end_system'] . ":" . $fleet_row['fleet_end_planet'] . "]</a>";
         Functions_Lib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport, '');
     }
     foreach ($idDefs as $id) {
         if ($report->attackerHasWin()) {
             $style = 'red';
         } elseif ($report->isAdraw()) {
             $style = 'orange';
         } else {
             $style = 'green';
         }
         $raport = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"game.php?page=CombatReport&report=" . $rid . "\", \"\");\\' >" . $this->_lang['sys_mess_attack_report'] . " [" . $fleet_row['fleet_end_galaxy'] . ":" . $fleet_row['fleet_end_system'] . ":" . $fleet_row['fleet_end_planet'] . "]</a>";
         Functions_Lib::send_message($id, '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport, '');
     }
 }
Ejemplo n.º 8
0
 /**
  * method add_user
  * param
  * return search and add the user
  */
 private function remove_user($member_name = '')
 {
     $remove_user_id = 0;
     $member_qry = parent::$db->query_fetch("SELECT `user_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_name` ='" . parent::$db->escape_value($member_name) . "';");
     if ($member_qry['user_id'] != NULL && $this->members_count($_POST['federation_invited']) >= 1 && $member_qry['user_id'] != $this->_current_user['user_id']) {
         $members = explode(',', $_POST['federation_invited']);
         foreach ($members as $member_id) {
             if ($member_qry['user_id'] != $member_id) {
                 $new_member_string .= $member_id . ',';
             }
         }
         $new_member_string = substr_replace($new_member_string, '', -1);
         parent::$db->query("UPDATE " . ACS_FLEETS . " SET\n\t\t\t\t\t\t\t\t\t`acs_fleet_invited` = '" . $new_member_string . "'\n\t\t\t\t\t\t\t\t\tWHERE `acs_fleet_fleets` = '" . $this->_fleet_id . "';");
         $invite_message = $this->_lang['fl_player'] . $this->_current_user['user_name'] . $this->_lang['fl_acs_invitation_message'];
         Functions_Lib::send_message($member_qry['user_id'], $this->_current_user['user_id'], '', 5, $this->_current_user['user_name'], $this->_lang['fl_acs_invitation_title'], $invite_message);
         return TRUE;
     } else {
         return FALSE;
     }
 }
Ejemplo n.º 9
0
 /**
  * method colonize_message
  * param $owner
  * param $message
  * param $time
  * return send a message with the colonization details
  */
 private function colonize_message($owner, $message, $time)
 {
     Functions_Lib::send_message($owner, '', $time, 5, $this->_lang['sys_colo_mess_from'], $this->_lang['sys_colo_mess_report'], $message);
 }
Ejemplo n.º 10
0
 /**
  * method build_page
  * param
  * return main method, loads everything
  */
 private function build_page()
 {
     if ($_POST) {
         if (!$this->run_validations()) {
             Functions_Lib::redirect('index.php');
         } else {
             $user_password = $_POST['password'];
             $user_name = $_POST['character'];
             $user_email = $_POST['email'];
             $hashed_password = sha1($user_password);
             parent::$db->query("INSERT INTO " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t`user_name` = '" . parent::$db->escape_value(strip_tags($user_name)) . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_email` = '" . parent::$db->escape_value($user_email) . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_email_permanent` = '" . parent::$db->escape_value($user_email) . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_ip_at_reg` = '" . $_SERVER['REMOTE_ADDR'] . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_agent` = '" . $_SERVER['HTTP_USER_AGENT'] . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_home_planet_id` = '0',\r\n\t\t\t\t\t\t\t\t\t\t`user_register_time` = '" . time() . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_password`='" . $hashed_password . "';");
             $user_id = parent::$db->insert_id();
             parent::$db->query("INSERT INTO " . RESEARCH . " SET\r\n\t\t\t\t\t\t\t\t\t\t`research_user_id` = '" . $user_id . "';");
             parent::$db->query("INSERT INTO " . USERS_STATISTICS . " SET\r\n\t\t\t\t\t\t\t\t\t\t`user_statistic_user_id` = '" . $user_id . "';");
             parent::$db->query("INSERT INTO " . PREMIUM . " SET\r\n\t\t\t\t\t\t\t\t\t\t`premium_user_id` = '" . $user_id . "';");
             parent::$db->query("INSERT INTO " . SETTINGS . " SET\r\n\t\t\t\t\t\t\t\t\t\t`setting_user_id` = '" . $user_id . "';");
             $last_galaxy = Functions_Lib::read_config('lastsettedgalaxypos');
             $last_system = Functions_Lib::read_config('lastsettedsystempos');
             $last_planet = Functions_Lib::read_config('lastsettedplanetpos');
             while (!isset($newpos_checked)) {
                 for ($galaxy = $last_galaxy; $galaxy <= MAX_GALAXY_IN_WORLD; $galaxy++) {
                     for ($system = $last_system; $system <= MAX_SYSTEM_IN_GALAXY; $system++) {
                         for ($pos = $last_planet; $pos <= 4; $pos++) {
                             $planet = round(mt_rand(4, 12));
                             switch ($last_planet) {
                                 case 1:
                                     $last_planet += 1;
                                     break;
                                 case 2:
                                     $last_planet += 1;
                                     break;
                                 case 3:
                                     if ($last_system == MAX_SYSTEM_IN_GALAXY) {
                                         $last_galaxy += 1;
                                         $last_system = 1;
                                         $last_planet = 1;
                                         break;
                                     } else {
                                         $last_planet = 1;
                                     }
                                     $last_system += 1;
                                     break;
                             }
                             break;
                         }
                         break;
                     }
                     break;
                 }
                 $planet_row = parent::$db->query_fetch("SELECT *\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_galaxy` = '" . $galaxy . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_system` = '" . $system . "' AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_planet` = '" . $planet . "' LIMIT 1;");
                 if ($planet_row['id'] == '0') {
                     $newpos_checked = TRUE;
                 }
                 if (!$planet_row) {
                     $this->_creator->create_planet($galaxy, $system, $planet, $user_id, '', TRUE);
                     $newpos_checked = TRUE;
                 }
                 if ($newpos_checked) {
                     Functions_Lib::update_config('lastsettedgalaxypos', $last_galaxy);
                     Functions_Lib::update_config('lastsettedsystempos', $last_system);
                     Functions_Lib::update_config('lastsettedplanetpos', $last_planet);
                 }
             }
             parent::$db->query("UPDATE " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t`user_home_planet_id` = (SELECT `planet_id` FROM " . PLANETS . " WHERE `planet_user_id` = '" . $user_id . "' LIMIT 1),\r\n\t\t\t\t\t\t\t\t\t\t`user_current_planet` = (SELECT `planet_id` FROM " . PLANETS . " WHERE `planet_user_id` = '" . $user_id . "' LIMIT 1),\r\n\t\t\t\t\t\t\t\t\t\t`user_galaxy` = '" . $galaxy . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_system` = '" . $system . "',\r\n\t\t\t\t\t\t\t\t\t\t`user_planet` = '" . $planet . "'\r\n\t\t\t\t\t\t\t\t\t\t WHERE `user_id` = '" . $user_id . "' LIMIT 1;");
             $from = $this->_lang['re_welcome_message_from'];
             $subject = $this->_lang['re_welcome_message_subject'];
             $message = str_replace('%s', $user_name, $this->_lang['re_welcome_message_content']);
             // Send Welcome Message to the user if the feature is enabled
             if (Functions_Lib::read_config('reg_welcome_message')) {
                 Functions_Lib::send_message($user_id, 0, '', 5, $from, $subject, $message);
             }
             // Send Welcome Email to the user if the feature is enabled
             if (Functions_Lib::read_config('reg_welcome_email')) {
                 $this->send_pass_email($user_email, $user_name, $user_password);
             }
             // User login
             if (parent::$users->user_login($user_id, $user_name, $hashed_password)) {
                 // Redirect to game
                 Functions_Lib::redirect('game.php?page=overview');
             }
         }
     }
     // If login fails
     Functions_Lib::redirect('index.php');
 }
 /**
  * method set_first_element
  * param $current_planet
  * param $current_user
  * return set the next element in the buildings queue to the top
  */
 public static function set_first_element(&$current_planet, $current_user)
 {
     $lang = parent::$lang;
     $resource = parent::$objects->get_objects();
     if ($current_planet['planet_b_building'] == 0) {
         $current_queue = $current_planet['planet_b_building_id'];
         if ($current_queue != 0) {
             $queue_array = explode(";", $current_queue);
             $loop = TRUE;
             while ($loop == TRUE) {
                 $list_id_array = explode(",", $queue_array[0]);
                 $element = $list_id_array[0];
                 $level = $list_id_array[1];
                 $build_time = $list_id_array[2];
                 $build_end_time = $list_id_array[3];
                 $build_mode = $list_id_array[4];
                 $no_more_level = FALSE;
                 if ($build_mode == 'destroy') {
                     $for_destroy = TRUE;
                 } else {
                     $for_destroy = FALSE;
                 }
                 $is_payable = self::is_development_payable($current_user, $current_planet, $element, TRUE, $for_destroy);
                 if ($for_destroy) {
                     if ($current_planet[$resource[$element]] == 0) {
                         $is_payable = FALSE;
                         $no_more_level = TRUE;
                     }
                 }
                 if ($is_payable == TRUE) {
                     $price = self::development_price($current_user, $current_planet, $element, TRUE, $for_destroy);
                     $current_planet['planet_metal'] -= $price['metal'];
                     $current_planet['planet_crystal'] -= $price['crystal'];
                     $current_planet['planet_deuterium'] -= $price['deuterium'];
                     $current_time = time();
                     $build_end_time = $build_end_time;
                     $new_queue = implode(";", $queue_array);
                     if ($new_queue == '') {
                         $new_queue = '0';
                     }
                     $loop = FALSE;
                 } else {
                     $element_name = $lang['tech'][$element];
                     if ($no_more_level == TRUE) {
                         $message = sprintf($lang['sys_nomore_level'], $element_name);
                     } else {
                         $price = self::development_price($current_user, $current_planet, $element, TRUE, $for_destroy);
                         $message = sprintf($lang['sys_notenough_money'], $element_name, Format_Lib::pretty_number($current_planet['planet_metal']), $lang['Metal'], Format_Lib::pretty_number($current_planet['planet_crystal']), $lang['Crystal'], Format_Lib::pretty_number($current_planet['planet_deuterium']), $lang['Deuterium'], Format_Lib::pretty_number($price['metal']), $lang['Metal'], Format_Lib::pretty_number($price['crystal']), $lang['Crystal'], Format_Lib::pretty_number($price['deuterium']), $lang['Deuterium']);
                     }
                     Functions_Lib::send_message($current_user['user_id'], '', '', 5, $lang['sys_buildlist'], $lang['sys_buildlist_fail'], $message);
                     array_shift($queue_array);
                     foreach ($queue_array as $num => $info) {
                         $fix_ele = explode(",", $info);
                         $fix_ele[3] = $fix_ele[3] - $build_time;
                         $queue_array[$num] = implode(",", $fix_ele);
                     }
                     $actual_count = count($queue_array);
                     if ($actual_count == 0) {
                         $build_end_time = '0';
                         $new_queue = '0';
                         $loop = FALSE;
                     }
                 }
             }
         } else {
             $build_end_time = '0';
             $new_queue = '0';
         }
         $current_planet['planet_b_building'] = $build_end_time;
         $current_planet['planet_b_building_id'] = $new_queue;
         parent::$db->query("UPDATE " . PLANETS . " SET\n\t\t\t\t\t\t\t\t\t`planet_metal` = '" . $current_planet['planet_metal'] . "',\n\t\t\t\t\t\t\t\t\t`planet_crystal` = '" . $current_planet['planet_crystal'] . "',\n\t\t\t\t\t\t\t\t\t`planet_deuterium` = '" . $current_planet['planet_deuterium'] . "',\n\t\t\t\t\t\t\t\t\t`planet_b_building` = '" . $current_planet['planet_b_building'] . "',\n\t\t\t\t\t\t\t\t\t`planet_b_building_id` = '" . $current_planet['planet_b_building_id'] . "'\n\t\t\t\t\t\t\t\t\tWHERE `planet_id` = '" . $current_planet['planet_id'] . "';");
     }
     return;
 }
Ejemplo n.º 12
0
 /**
  * method ally_admin
  * param
  * return the admin page for someone with an alliance
  */
 private function ally_admin()
 {
     $parse = $this->_lang;
     if ($this->_current_user['user_ally_id'] != 0 && $this->_current_user['user_ally_request'] == 0) {
         $edit = isset($_GET['edit']) ? $_GET['edit'] : NULL;
         switch ($edit) {
             case $edit == 'rights' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['right_hand']) === TRUE:
                 $d = isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d'] >= 0 ? $_GET['d'] : NULL;
                 $alliance_ranks = unserialize($this->_ally['alliance_ranks']);
                 if (!empty($_POST['newrangname'])) {
                     $name = parent::$db->escape_value(strip_tags($_POST['newrangname']));
                     $alliance_ranks[] = array('name' => $name, 'mails' => 0, 'delete' => 0, 'kick' => 0, 'bewerbungen' => 0, 'administrieren' => 0, 'bewerbungenbearbeiten' => 0, 'memberlist' => 0, 'onlinestatus' => 0, 'rechtehand' => 0);
                     $ranks = serialize($alliance_ranks);
                     parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_ranks`='" . $ranks . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = " . (int) $this->_ally['alliance_id']);
                     $goto = $_SERVER['PHP_SELF'] . "?" . str_replace('&amp;', '&', $_SERVER['QUERY_STRING']);
                     Functions_Lib::redirect($goto);
                 } elseif (isset($_POST['id']) && $_POST['id'] != '' && is_array($_POST['id'])) {
                     $ally_ranks_new = array();
                     foreach ($_POST['id'] as $id) {
                         $name = $alliance_ranks[$id]['name'];
                         $ally_ranks_new[$id]['name'] = $name;
                         $ally_ranks_new[$id]['delete'] = isset($_POST['u' . $id . 'r0']) ? 1 : 0;
                         $ally_ranks_new[$id]['kick'] = isset($_POST['u' . $id . 'r1']) && $this->_ally['alliance_owner'] == $this->_current_user['user_id'] ? 1 : 0;
                         $ally_ranks_new[$id]['bewerbungen'] = isset($_POST['u' . $id . 'r2']) ? 1 : 0;
                         $ally_ranks_new[$id]['memberlist'] = isset($_POST['u' . $id . 'r3']) ? 1 : 0;
                         $ally_ranks_new[$id]['bewerbungenbearbeiten'] = isset($_POST['u' . $id . 'r4']) ? 1 : 0;
                         $ally_ranks_new[$id]['administrieren'] = isset($_POST['u' . $id . 'r5']) ? 1 : 0;
                         $ally_ranks_new[$id]['onlinestatus'] = isset($_POST['u' . $id . 'r6']) ? 1 : 0;
                         $ally_ranks_new[$id]['mails'] = isset($_POST['u' . $id . 'r7']) ? 1 : 0;
                         $ally_ranks_new[$id]['rechtehand'] = isset($_POST['u' . $id . 'r8']) ? 1 : 0;
                     }
                     $ranks = serialize($ally_ranks_new);
                     parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_ranks`='" . $ranks . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id`= " . $this->_ally['alliance_id']);
                     $goto = $_SERVER['PHP_SELF'] . "?" . str_replace('&amp;', '&', $_SERVER['QUERY_STRING']);
                     Functions_Lib::redirect($goto);
                 } elseif (isset($d) && isset($alliance_ranks[$d])) {
                     unset($alliance_ranks[$d]);
                     $this->_ally['ally_rank'] = serialize($alliance_ranks);
                     parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_ranks`='" . $this->_ally['ally_rank'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = " . $this->_ally['alliance_id'] . "");
                 }
                 $i = 0;
                 $list = '';
                 if (count($alliance_ranks) != 0 && $alliance_ranks != '') {
                     foreach ($alliance_ranks as $a => $b) {
                         if ($this->_ally['alliance_owner'] == $this->_current_user['user_id']) {
                             $r1 = "<input type=checkbox name=\"u{$a}r0\"" . ($b['delete'] == 1 ? ' checked="checked"' : '') . ">";
                         } else {
                             $r1 = "<b>-</b>";
                         }
                         $this->_lang['id'] = $a;
                         $this->_lang['r0'] = $b['name'];
                         $this->_lang['delete'] = "<a href=\"game.php?page=alliance&mode=admin&edit=rights&d={$a}\"><img src=\"" . DPATH . "alliance/abort.gif\" border=0></a>";
                         $this->_lang['a'] = $a;
                         $this->_lang['r1'] = $r1;
                         $this->_lang['r2'] = "<input type=checkbox name=\"u{$a}r1\"" . ($b['kick'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r3'] = "<input type=checkbox name=\"u{$a}r2\"" . ($b['bewerbungen'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r4'] = "<input type=checkbox name=\"u{$a}r3\"" . ($b['memberlist'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r5'] = "<input type=checkbox name=\"u{$a}r4\"" . ($b['bewerbungenbearbeiten'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r6'] = "<input type=checkbox name=\"u{$a}r5\"" . ($b['administrieren'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r7'] = "<input type=checkbox name=\"u{$a}r6\"" . ($b['onlinestatus'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r8'] = "<input type=checkbox name=\"u{$a}r7\"" . ($b['mails'] == 1 ? ' checked="checked"' : '') . ">";
                         $this->_lang['r9'] = "<input type=checkbox name=\"u{$a}r8\"" . ($b['rechtehand'] == 1 ? ' checked="checked"' : '') . ">";
                         $list .= parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_laws_row'), $this->_lang);
                     }
                 }
                 $this->_lang['list'] = $list;
                 $this->_lang['dpath'] = DPATH;
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_laws'), $this->_lang);
                 break;
             case '':
             case 'ally':
             default:
                 $t = isset($_GET['t']) ? (int) $_GET['t'] : NULL;
                 if ($t != 1 && $t != 2 && $t != 3) {
                     $t = 1;
                 }
                 if ($_POST) {
                     $_POST['owner_range'] = isset($_POST['owner_range']) ? stripslashes($_POST['owner_range']) : '';
                     $_POST['web'] = isset($_POST['web']) ? stripslashes($_POST['web']) : '';
                     $_POST['image'] = isset($_POST['image']) ? stripslashes($_POST['image']) : '';
                     $_POST['text'] = isset($_POST['text']) ? Functions_Lib::format_text($_POST['text']) : '';
                 }
                 if (isset($_POST['options'])) {
                     $this->_ally['alliance_owner_range'] = parent::$db->escape_value(htmlspecialchars(strip_tags($_POST['owner_range'])));
                     $this->_ally['alliance_web'] = parent::$db->escape_value(htmlspecialchars(strip_tags($_POST['web'])));
                     $this->_ally['alliance_image'] = parent::$db->escape_value(htmlspecialchars(strip_tags($_POST['image'])));
                     $this->_ally['alliance_request_notallow'] = (int) $_POST['request_notallow'];
                     if ($this->_ally['alliance_request_notallow'] != 0 && $this->_ally['alliance_request_notallow'] != 1) {
                         Functions_Lib::redirect('game.php?page=alliance?mode=admin&edit=ally');
                     }
                     parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_owner_range`='" . $this->_ally['alliance_owner_range'] . "',\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_image`='" . $this->_ally['alliance_image'] . "',\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_web`='" . $this->_ally['alliance_web'] . "',\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_request_notallow`='" . $this->_ally['alliance_request_notallow'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_ally['alliance_id'] . "'");
                 } elseif (isset($_POST['t'])) {
                     if ($t == 3) {
                         $this->_ally['alliance_request'] = $_POST['text'];
                         parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`alliance_request`='" . $this->_ally['alliance_request'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_ally['alliance_id'] . "'");
                         Functions_Lib::redirect('game.php?page=alliance&mode=admin&edit=ally&t=3');
                     } elseif ($t == 2) {
                         $this->_ally['alliance_text'] = $_POST['text'];
                         parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`alliance_text`='" . $this->_ally['alliance_text'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_ally['alliance_id'] . "'");
                         Functions_Lib::redirect('game.php?page=alliance&mode=admin&edit=ally&t=2');
                     } else {
                         $this->_ally['alliance_description'] = $_POST['text'];
                         parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`alliance_description`='" . $this->_ally['alliance_description'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_ally['alliance_id'] . "'");
                         Functions_Lib::redirect('game.php?page=alliance&mode=admin&edit=ally&t=1');
                     }
                 }
                 $this->_lang['dpath'] = DPATH;
                 if ($t == 3) {
                     $this->_lang['request_type'] = $this->_lang['al_request_text'];
                 } elseif ($t == 2) {
                     $this->_lang['request_type'] = $this->_lang['al_inside_text'];
                 } else {
                     $this->_lang['request_type'] = $this->_lang['al_outside_text'];
                 }
                 if ($t == 2) {
                     $this->_lang['text'] = $this->_ally['alliance_text'];
                 } else {
                     $this->_lang['text'] = $this->_ally['alliance_description'];
                 }
                 if ($t == 3) {
                     $this->_lang['text'] = $this->_ally['alliance_request'];
                 }
                 $this->_lang['t'] = $t;
                 $this->_lang['alliance_web'] = $this->_ally['alliance_web'];
                 $this->_lang['alliance_image'] = $this->_ally['alliance_image'];
                 $this->_lang['alliance_request_notallow_0'] = $this->_ally['alliance_request_notallow'] == 1 ? ' SELECTED' : '';
                 $this->_lang['alliance_request_notallow_1'] = $this->_ally['alliance_request_notallow'] == 0 ? ' SELECTED' : '';
                 $this->_lang['alliance_owner_range'] = $this->_ally['alliance_owner_range'];
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin'), $this->_lang);
                 break;
             case $edit == 'members' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['admin_alliance']) === TRUE:
                 $rank = isset($_GET['rank']) ? (int) $_GET['rank'] : NULL;
                 $kick = isset($_GET['kick']) ? (int) $_GET['kick'] : NULL;
                 $id = isset($_GET['id']) ? (int) $_GET['id'] : NULL;
                 $sort1 = isset($_GET['sort1']) ? (int) $_GET['sort1'] : NULL;
                 $sort2 = isset($_GET['sort2']) ? (int) $_GET['sort2'] : NULL;
                 if (isset($kick)) {
                     $this->have_access($this->_ally['alliance_owner'], $this->permissions['kick_users']);
                     $u = parent::$db->query_fetch("SELECT `user_ally_id`, `user_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . USERS . "`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id` = '" . (int) $kick . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 1");
                     if ($u['user_ally_id'] == $this->_ally['alliance_id'] && $u['user_id'] != $this->_ally['alliance_owner']) {
                         parent::$db->query("UPDATE " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`user_ally_id`='0',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`user_ally_rank_id` = 0\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . (int) $u['id'] . "' LIMIT 1;");
                     }
                 } elseif (isset($_POST['newrang'])) {
                     $u = isset($id) ? $id : '';
                     $q = parent::$db->query_fetch("SELECT `user_id`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id` = '" . (int) $u . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 1");
                     if ((isset($alliance_ranks[$_POST['newrang'] - 1]) or $_POST['newrang'] == 0) && $q['user_id'] != $this->_ally['alliance_owner']) {
                         parent::$db->query("UPDATE " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t`user_ally_rank_id` = '" . parent::$db->escape_value($_POST['newrang']) . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `user_id`='" . $q['user_id'] . "'");
                     }
                 }
                 if ($sort2) {
                     $sort = $this->return_sort($sort1, $sort2);
                 } else {
                     $sort = '';
                 }
                 $listuser = parent::$db->query("SELECT u.user_id, u.user_onlinetime, u.user_name, u.user_galaxy, u.user_system, u.user_planet, u.user_ally_register_time, u.user_ally_rank_id, s.user_statistic_total_points\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . USERS . "` AS u\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN `" . USERS_STATISTICS . "`AS s ON u.user_id = s.user_statistic_user_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE u.user_ally_id='" . $this->_current_user['user_ally_id'] . "'" . $sort);
                 $i = 0;
                 $r = $this->_lang;
                 $s = $this->_lang;
                 $this->_lang['i'] = parent::$db->num_rows($listuser);
                 $page_list = '';
                 $r['options'] = '';
                 while ($u = parent::$db->fetch_array($listuser)) {
                     $u['i'] = ++$i;
                     $u['points'] = Format_Lib::pretty_number($u['user_statistic_total_points']);
                     $days = floor((time() - $u['user_onlinetime']) / (3600 * 24));
                     $u['user_onlinetime'] = str_replace("%s", $days, "%s d");
                     if ($this->_ally['alliance_owner'] == $u['user_id']) {
                         $ally_range = $this->_ally['alliance_owner_range'] == '' ? $this->_lang['al_founder_rank_text'] : $this->_ally['alliance_owner_range'];
                     } elseif ($u['user_ally_rank_id'] == 0 or !isset($alliance_ranks[$u['user_ally_rank_id'] - 1]['name'])) {
                         $ally_range = $this->_lang['al_new_member_rank_text'];
                     } else {
                         $ally_range = $alliance_ranks[$u['user_ally_rank_id'] - 1]['name'];
                     }
                     if ($this->_ally['alliance_owner'] == $u['user_id'] or $rank == $u['user_id']) {
                         $u['acciones'] = '-';
                     } elseif ($alliance_ranks[$this->_current_user['user_ally_rank_id'] - 1]['kick'] == 1 && $alliance_ranks[$this->_current_user['user_ally_rank_id'] - 1]['administrieren'] == 1 or $this->_ally['alliance_owner'] == $this->_current_user['user_id']) {
                         $u['acciones'] = "<a href=\"game.php?page=alliance&mode=admin&edit=members&kick=" . $u['user_id'] . "\" onclick=\"javascript:return confirm('" . str_replace('%s', $u['user_name'], $this->_lang['al_confirm_remove_member']) . "');\"><img src=\"" . DPATH . "alliance/abort.gif\" border=\"0\"></a> <a href=\"game.php?page=alliance&mode=admin&edit=members&rank=" . $u['user_id'] . "\"><img src=\"" . DPATH . "alliance/key.gif\" border=\"0\"></a>";
                     } elseif ($alliance_ranks[$this->_current_user['user_ally_rank_id'] - 1]['administrieren'] == 1) {
                         $u['acciones'] = "<a href=\"game.php?page=alliance&mode=admin&edit=members&kick=" . $u['user_id'] . "\" onclick=\"javascript:return confirm('" . str_replace('%s', $u['user_name'], $this->_lang['al_confirm_remove_member']) . "');\"><img src=\"" . DPATH . "alliance/abort.gif\" border=\"0\"></a> <a href=\"game.php?page=alliance&mode=admin&edit=members&rank=" . $u['user_id'] . "\"><img src=\"" . DPATH . "alliance/key.gif\" border=\"0\"></a>";
                     } else {
                         $u['acciones'] = '-';
                     }
                     $u['dpath'] = DPATH;
                     $u['alliance_register_time'] = date(Functions_Lib::read_config('date_format_extended'), $u['user_ally_register_time']);
                     if ($rank == $u['user_id']) {
                         $r['options'] .= "<option onclick=\"document.editar_usu_rango.submit();\" value=\"0\">" . $this->_lang['al_new_member_rank_text'] . "</option>";
                         if ($alliance_ranks != NULL) {
                             foreach ($alliance_ranks as $a => $b) {
                                 $r['options'] .= "<option onclick=\"document.editar_usu_rango.submit();\" value=\"" . ($a + 1) . "\"";
                                 if ($u['user_ally_rank_id'] - 1 == $a) {
                                     $r['options'] .= ' selected=selected';
                                 }
                                 $r['options'] .= ">{$b['name']}</option>";
                             }
                         }
                         $r['id'] = $u['user_id'];
                         $editar_miembros = parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_members_row_edit'), $r);
                     }
                     if ($rank != $u['user_id']) {
                         $u['ally_range'] = $ally_range;
                     } else {
                         $u['ally_range'] = $editar_miembros;
                     }
                     $page_list .= parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_members_row'), $u);
                 }
                 if ($sort2 == 1) {
                     $s = 2;
                 } elseif ($sort2 == 2) {
                     $s = 1;
                 } else {
                     $s = 1;
                 }
                 $this->_lang['memberslist'] = $page_list;
                 $this->_lang['s'] = $s;
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_members_table'), $this->_lang);
                 break;
             case $edit == 'requests' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['check_requests']) === TRUE:
                 $show = isset($_GET['show']) ? (int) $_GET['show'] : NULL;
                 if (isset($_POST['action']) && $_POST['action'] == $this->_lang['al_acept_request']) {
                     $_POST['text'] = trim(nl2br(strip_tags($_POST['text'], '<br>')));
                     $_POST['text'] = str_replace('rn', '\\r\\n', $_POST['text']);
                     parent::$db->query("UPDATE " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_request_text = '',\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_request = '0',\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_id = '" . $this->_ally['alliance_id'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE user_id = '" . $show . "'");
                     Functions_Lib::send_message($show, $this->_current_user['user_id'], '', 3, $this->_ally['alliance_tag'], $this->_lang['al_you_was_acceted'] . $this->_ally['alliance_name'], $this->_lang['al_hi_the_alliance'] . $this->_ally['alliance_name'] . $this->_lang['al_has_accepted'] . $_POST['text']);
                     Functions_Lib::redirect('game.php?page=alliance&mode=admin&edit=ally');
                 } elseif (isset($_POST['action']) && $_POST['action'] == $this->_lang['al_decline_request'] && $_POST['action'] != '') {
                     $_POST['text'] = trim(nl2br(strip_tags($_POST['text'], '<br>')));
                     $_POST['text'] = str_replace('rn', '\\r\\n', $_POST['text']);
                     parent::$db->query("UPDATE " . USERS . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_request_text='',\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_request='0',\r\n\t\t\t\t\t\t\t\t\t\t\t\tuser_ally_id='0'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE user_id = '" . (int) $show . "'");
                     Functions_Lib::send_message($show, $this->_current_user['user_id'], '', 3, $this->_ally['alliance_tag'], $this->_lang['al_you_was_declined'] . $this->_ally['alliance_name'], $this->_lang['al_hi_the_alliance'] . $this->_ally['alliance_name'] . $this->_lang['al_has_declined'] . $_POST['text']);
                     Functions_Lib::redirect('game.php?page=alliance&mode=admin&edit=ally');
                 }
                 $i = 0;
                 $query = parent::$db->query("SELECT user_id, user_name, user_ally_request_text, user_ally_register_time\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE user_ally_request = '" . $this->_ally['alliance_id'] . "'");
                 /***start fix by jstar***/
                 $s = array();
                 $parse['list'] = '';
                 while ($r = parent::$db->fetch_array($query)) {
                     if (isset($show) && $r['user_id'] == $show) {
                         $s[$show]['username'] = $r['user_name'];
                         $s[$show]['ally_request_text'] = nl2br($r['user_ally_request_text']);
                         $s[$show]['id'] = $r['user_id'];
                     }
                     $r['time'] = date(Functions_Lib::read_config('date_format_extended'), $r['alliance_register_time']);
                     $parse['list'] .= parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_request_row'), $r);
                     $i++;
                 }
                 if ($parse['list'] == '') {
                     $parse['list'] = "<tr><th colspan=2>" . $this->_lang['al_no_requests'] . "</th></tr>";
                 }
                 if (isset($show) && $show != 0 && $parse['list'] != '') {
                     $s[$show]['Request_from'] = str_replace('%s', $s[$show]['username'], $this->_lang['al_request_from']);
                     $parse['request'] = parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_request_form'), array_merge($s[$show], $this->_lang));
                 } else {
                     $parse['request'] = '';
                 }
                 $parse['ally_tag'] = $this->_ally['alliance_tag'];
                 $parse['There_is_hanging_request'] = str_replace('%n', $i, $this->_lang['al_no_request_pending']);
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_request_table'), $parse);
                 break;
             case $edit == 'name' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['admin_alliance']) === TRUE:
                 $alliance_name = '';
                 if ($_POST) {
                     $alliance_name = $this->check_name($_POST['nametag']);
                     parent::$db->query("UPDATE " . ALLIANCE . " AS a SET\r\n\t\t\t\t\t\t\t\t\t\t\t\ta.`alliance_name` = '" . $alliance_name . "',\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE a.`alliance_id` = '" . $this->_ally['alliance_id'] . "';");
                 }
                 $parse['caso'] = $alliance_name == '' ? str_replace('%s', $this->_ally['alliance_name'], $this->_lang['al_change_title']) : str_replace('%s', $alliance_name, $this->_lang['al_change_title']);
                 $parse['caso_titulo'] = $this->_lang['al_new_name'];
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_rename'), $parse);
                 break;
             case $edit == 'tag' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['admin_alliance']) === TRUE:
                 $alliance_tag = '';
                 if ($_POST) {
                     $alliance_tag = $this->check_tag($_POST['nametag']);
                     parent::$db->query("UPDATE " . ALLIANCE . " SET\r\n\t\t\t\t\t\t\t\t\t\t\t\t`alliance_tag` = '" . $alliance_tag . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_current_user['user_ally_id'] . "';");
                 }
                 $parse['caso'] = $alliance_tag == '' ? str_replace('%s', $this->_ally['alliance_tag'], $this->_lang['al_change_title']) : str_replace('%s', $alliance_tag, $this->_lang['al_change_title']);
                 $parse['caso_titulo'] = $this->_lang['al_new_tag'];
                 return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_rename'), $parse);
                 break;
             case $edit == 'exit' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['disolve_alliance']) === TRUE:
                 parent::$db->query("UPDATE `" . USERS . "` SET\r\n\t\t\t\t\t\t\t\t\t\t\t`user_ally_id` = '0'\r\n\t\t\t\t\t\t\t\t\t\t\tWHERE `user_ally_id` = '" . $this->_ally['alliance_id'] . "'");
                 parent::$db->query("DELETE FROM " . ALLIANCE . "\r\n\t\t\t\t\t\t\t\t\t\t\tWHERE `alliance_id` = '" . $this->_ally['alliance_id'] . "'\r\n\t\t\t\t\t\t\t\t\t\t\tLIMIT 1");
                 Functions_Lib::redirect('game.php?page=alliance');
                 break;
             case $edit == 'transfer' && $this->have_access($this->_ally['alliance_owner'], $this->permissions['admin_alliance']) === TRUE:
                 if (isset($_POST['newleader'])) {
                     parent::$db->query("UPDATE " . USERS . " AS u1, " . ALLIANCE . " AS a, " . USERS . " AS u2 SET\r\n\t\t\t\t\t\t\t\t\t\t\t\tu1.`user_ally_rank_id` = '0',\r\n\t\t\t\t\t\t\t\t\t\t\t\ta.`alliance_owner` = '" . parent::$db->escape_value(strip_tags($_POST['newleader'])) . "',\r\n\t\t\t\t\t\t\t\t\t\t\t\tu2.`user_ally_rank_id` = '0'\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE u1.`user_id`=" . $this->_current_user['user_id'] . " AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ta.`alliance_id`=" . $this->_current_user['user_ally_id'] . " AND\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tu2.user_id`='" . parent::$db->escape_value(strip_tags($_POST['newleader'])) . "'");
                     Functions_Lib::redirect('game.php?page=alliance');
                 }
                 $page_list = '';
                 if ($this->_ally['alliance_owner'] != $this->_current_user['user_id']) {
                     Functions_Lib::redirect('game.php?page=alliance');
                 } else {
                     $listuser = parent::$db->query("SELECT *\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . USERS . "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE user_ally_id = '" . $this->_current_user['user_ally_id'] . "'");
                     $righthand = $this->_lang;
                     while ($u = parent::$db->fetch_array($listuser)) {
                         if ($this->_ally['alliance_owner'] != $u['user_id']) {
                             if ($u['ally_rank_id'] != 0) {
                                 if ($alliance_ranks[$u['user_ally_rank_id'] - 1]['rechtehand'] == 1) {
                                     $righthand['righthand'] .= "\n<option value=\"" . $u['user_id'] . "\"";
                                     $righthand['righthand'] .= ">";
                                     $righthand['righthand'] .= "" . $u['user_name'];
                                     $righthand['righthand'] .= "&nbsp;[" . $alliance_ranks[$u['user_ally_rank_id'] - 1]['name'];
                                     $righthand['righthand'] .= "]&nbsp;&nbsp;</option>";
                                 }
                             }
                         }
                         $righthand['dpath'] = DPATH;
                     }
                     $page_list .= parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_transfer_row'), $righthand);
                     $parse['list'] = $page_list;
                     return parent::$page->parse_template(parent::$page->get_template('alliance/alliance_admin_transfer'), $parse);
                 }
                 break;
         }
     }
 }
Ejemplo n.º 13
0
 /**
  * sendMessage
  *
  * @param array  $fleet_row Fleet Row
  * @param Report $report    Report
  *
  * @return void
  */
 private function sendMessage($fleet_row, $report)
 {
     $idAtts = $report->getAttackersId();
     $idDefs = $report->getDefendersId();
     $idAll = array_merge($idAtts, $idDefs);
     $owners = implode(',', $idAll);
     $rid = md5($report) . time();
     parent::$db->query("INSERT INTO `" . REPORTS . "` SET\n            `report_owners` = '" . $owners . "',\n            `report_rid` = '" . $rid . "',\n            `report_content` = '" . addslashes($report) . "',\n            `report_destroyed` = '" . time() . "'");
     foreach ($idAtts as $id) {
         if ($report->attackerHasWin()) {
             $style = 'green';
         } elseif ($report->isAdraw()) {
             $style = 'orange';
         } else {
             $style = 'red';
         }
         $raport = $this->buildReportLink($style, $rid, $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']);
         Functions_Lib::send_message($id, '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport, '');
     }
     foreach ($idDefs as $id) {
         if ($report->attackerHasWin()) {
             $style = 'red';
         } elseif ($report->isAdraw()) {
             $style = 'orange';
         } else {
             $style = 'green';
         }
         $raport = $this->buildReportLink($style, $rid, $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']);
         Functions_Lib::send_message($id, '', $fleet_row['fleet_start_time'], 1, $this->_lang['sys_mess_tower'], $raport, '');
     }
 }
Ejemplo n.º 14
0
 /**
  * method spy_mission
  * param $fleet_row
  * return the spy result
  */
 public function spy_mission($fleet_row)
 {
     if ($fleet_row['fleet_mess'] == 0 && $fleet_row['fleet_start_time'] <= time()) {
         $current_data = parent::$db->query_fetch("SELECT p.planet_name, p.planet_galaxy, p.planet_system, p.planet_planet, u.user_name, r.research_espionage_technology, pr.premium_officier_technocrat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " AS u ON u.user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . PREMIUM . " AS pr ON pr.premium_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_galaxy` = " . $fleet_row['fleet_start_galaxy'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_system` = " . $fleet_row['fleet_start_system'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_planet` = " . $fleet_row['fleet_start_planet'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_type` = " . $fleet_row['fleet_start_type'] . ";");
         $target_data = parent::$db->query_fetch("SELECT p.`planet_id`, p.planet_user_id, p.planet_name, p.planet_galaxy, p.planet_system, p.planet_planet, p.planet_metal, p.planet_crystal, p.planet_deuterium, p.planet_energy_max, s.*, d.*, b.*, r.*, pr.premium_officier_technocrat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . SHIPS . " AS s ON s.ship_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . BUILDINGS . " AS b ON b.building_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " AS u ON u.user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . PREMIUM . " AS pr ON pr.premium_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_type` = '" . $fleet_row['fleet_end_type'] . "';");
         $CurrentSpyLvl = Officiers_Lib::get_max_espionage($current_data['research_espionage_technology'], $current_data['premium_officier_technocrat']);
         $TargetSpyLvl = Officiers_Lib::get_max_espionage($target_data['research_espionage_technology'], $target_data['premium_officier_technocrat']);
         $fleet = explode(';', $fleet_row['fleet_array']);
         $fquery = '';
         parent::make_update($fleet_row, $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $fleet_row['fleet_end_type']);
         foreach ($fleet as $a => $b) {
             if ($b != '') {
                 $a = explode(",", $b);
                 if ($a[0] == "210") {
                     $LS = $a[1];
                     $SpyToolDebris = $LS * 300;
                     $MaterialsInfo = $this->spy_target($target_data, 0, $this->_lang['sys_spy_maretials']);
                     $Materials = $MaterialsInfo['String'];
                     $PlanetFleetInfo = $this->spy_target($target_data, 1, $this->_lang['sys_spy_fleet']);
                     $PlanetFleet = $Materials;
                     $PlanetFleet .= $PlanetFleetInfo['String'];
                     $PlanetDefenInfo = $this->spy_target($target_data, 2, $this->_lang['sys_spy_defenses']);
                     $PlanetDefense = $PlanetFleet;
                     $PlanetDefense .= $PlanetDefenInfo['String'];
                     $PlanetBuildInfo = $this->spy_target($target_data, 3, $this->_lang['tech'][0]);
                     $PlanetBuildings = $PlanetDefense;
                     $PlanetBuildings .= $PlanetBuildInfo['String'];
                     $TargetTechnInfo = $this->spy_target($target_data, 4, $this->_lang['tech'][100]);
                     $TargetTechnos = $PlanetBuildings;
                     $TargetTechnos .= $TargetTechnInfo['String'];
                     $TargetForce = $PlanetFleetInfo['Count'] * $LS / 4;
                     if ($TargetForce > 100) {
                         $TargetForce = 100;
                     }
                     $TargetChances = mt_rand(0, $TargetForce);
                     $SpyerChances = mt_rand(0, 100);
                     if ($TargetChances >= $SpyerChances) {
                         $DestProba = "<font color=\"red\">" . $this->_lang['sys_mess_spy_destroyed'] . "</font>";
                     } elseif ($TargetChances < $SpyerChances) {
                         $DestProba = sprintf($this->_lang['sys_mess_spy_lostproba'], $TargetChances);
                     }
                     $AttackLink = "<center>";
                     $AttackLink .= "<a href=\"game.php?page=fleet1&galaxy=" . $fleet_row['fleet_end_galaxy'] . "&system=" . $fleet_row['fleet_end_system'] . "";
                     $AttackLink .= "&planet=" . $fleet_row['fleet_end_planet'] . "&planettype=" . $fleet_row['fleet_end_type'] . "";
                     $AttackLink .= "&target_mission=1";
                     $AttackLink .= " \">" . $this->_lang['type_mission'][1] . "";
                     $AttackLink .= "</a></center>";
                     $MessageEnd = "<center>" . $DestProba . "</center>";
                     $spionage_difference = abs($CurrentSpyLvl - $TargetSpyLvl);
                     if ($TargetSpyLvl >= $CurrentSpyLvl) {
                         $ST = pow($spionage_difference, 2);
                         $resources = 1;
                         $fleet = $ST + 2;
                         $defense = $ST + 3;
                         $buildings = $ST + 5;
                         $tech = $ST + 7;
                     }
                     if ($CurrentSpyLvl > $TargetSpyLvl) {
                         $ST = pow($spionage_difference, 2) * -1;
                         $resources = 1;
                         $fleet = $ST + 2;
                         $defense = $ST + 3;
                         $buildings = $ST + 5;
                         $tech = $ST + 7;
                     }
                     if ($resources <= $LS) {
                         $SpyMessage = $Materials . "<br />" . $AttackLink . $MessageEnd;
                     }
                     if ($fleet <= $LS) {
                         $SpyMessage = $PlanetFleet . "<br />" . $AttackLink . $MessageEnd;
                     }
                     if ($defense <= $LS) {
                         $SpyMessage = $PlanetDefense . "<br />" . $AttackLink . $MessageEnd;
                     }
                     if ($buildings <= $LS) {
                         $SpyMessage = $PlanetBuildings . "<br />" . $AttackLink . $MessageEnd;
                     }
                     if ($tech <= $LS) {
                         $SpyMessage = $TargetTechnos . "<br />" . $AttackLink . $MessageEnd;
                     }
                     Functions_Lib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], 0, $this->_lang['sys_mess_qg'], $this->_lang['sys_mess_spy_report'], $SpyMessage);
                     $TargetMessage = $this->_lang['sys_mess_spy_ennemyfleet'] . " " . $current_data['planet_name'];
                     $TargetMessage .= " <a href=\"game.php?page=galaxy&mode=3&galaxy=" . $current_data['planet_galaxy'] . "&system=" . $current_data['planet_system'] . "\">";
                     $TargetMessage .= "[" . $current_data['planet_galaxy'] . ":" . $current_data['planet_system'] . ":" . $current_data['planet_planet'] . "]</a> (" . $current_data['user_name'] . ") ";
                     $TargetMessage .= $this->_lang['sys_mess_spy_seen_at'] . " " . $target_data['planet_name'];
                     $TargetMessage .= " <a href=\"game.php?page=galaxy&mode=3&galaxy=" . $target_data['planet_galaxy'] . "&system=" . $target_data['planet_system'] . "\">";
                     $TargetMessage .= "[" . $target_data['planet_galaxy'] . ":" . $target_data['planet_system'] . ":" . $target_data['planet_planet'] . "]</a>.";
                     Functions_Lib::send_message($target_data['planet_user_id'], '', $fleet_row['fleet_start_time'], 0, $this->_lang['sys_mess_spy_control'], $this->_lang['sys_mess_spy_activity'], $TargetMessage . ' ' . sprintf($this->_lang['sys_mess_spy_lostproba'], $TargetChances));
                     if ($TargetChances >= $SpyerChances) {
                         parent::$db->query("UPDATE " . PLANETS . " SET\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_invisible_start_time` = '" . time() . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_debris_crystal` = `planet_debris_crystal` + '" . (0 + $SpyToolDebris) . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_id` = '" . $target_data['id'] . "';");
                         parent::remove_fleet($fleet_row['fleet_id']);
                     } else {
                         parent::return_fleet($fleet_row['fleet_id']);
                     }
                 }
             }
         }
     } elseif ($fleet_row['fleet_mess'] == 1 && $fleet_row['fleet_end_time'] <= time()) {
         parent::restore_fleet($fleet_row, TRUE);
         parent::remove_fleet($fleet_row['fleet_id']);
     }
 }
Ejemplo n.º 15
0
 /**
  * method expedition_message
  * param $owner
  * param $message
  * param $time
  * return send a message with the expedition details
  */
 private function expedition_message($owner, $message, $time)
 {
     Functions_Lib::send_message($owner, '', $time, 5, $this->_lang['sys_mess_qg'], $this->_lang['sys_expe_report'], $message);
 }
Ejemplo n.º 16
0
 /**
  * method destroy_message
  * param $owner
  * param $message
  * param $time
  * return send a message with the destroy details
  */
 private function destroy_message($owner, $message, $time)
 {
     Functions_Lib::send_message($owner, '', $time, 1, $this->_lang['sys_mess_tower'], $this->_lang['sys_mess_destruc_report'], $message);
 }
Ejemplo n.º 17
0
 /**
  * method recycle_message
  * param $owner
  * param $message
  * param $time
  * param $status_message
  * return send a message with the recycle details
  */
 private function recycle_message($owner, $message, $time, $status_message)
 {
     Functions_Lib::send_message($owner, '', $time, 5, $this->_lang['sys_mess_spy_control'], $status_message, $message);
 }
Ejemplo n.º 18
0
 /**
  * method build_page
  * param
  * return main method, loads everything
  */
 private function build_page()
 {
     // some values by default
     $parse = $this->_lang;
     $parse['js_path'] = XGP_ROOT . JS_PATH;
     // display an specific category of items
     if (isset($_GET['dsp']) && $_GET['dsp'] == 1 && $this->_have_premium) {
         $mode = '';
         $get_messages = '';
         foreach ($_GET as $field => $value) {
             if (Functions_Lib::in_multiarray($field, $this->_message_type)) {
                 $type_id = Functions_lib::recursive_array_search($field, $this->_message_type);
                 $get_messages .= $type_id . ',';
                 $active[$type_id] = 1;
             }
         }
         // get list of messages
         $message_list = parent::$db->query("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND `message_type` IN (" . rtrim($get_messages, ',') . ");");
         // set messages as read
         parent::$db->query("UPDATE `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\tSET `message_read` = '1'\n\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . "\n\t\t\t\t\t\t\t\t\t\tAND `message_type` IN (" . rtrim($get_messages, ',') . ");");
     } else {
         $mode = isset($_GET['mode']) ? $_GET['mode'] : NULL;
     }
     // to delete something
     $to_delete = isset($_POST['deletemessages']) ? $_POST['deletemessages'] : NULL;
     if (isset($to_delete)) {
         $mode = "delete";
     }
     $write_to = isset($_GET['id']) ? (int) $_GET['id'] : NULL;
     switch ($mode) {
         case 'write':
             $text = '';
             $error_page = '';
             if (!is_numeric($write_to)) {
                 Functions_Lib::redirect('game.php?page=messages');
             } else {
                 $OwnerHome = parent::$db->query_fetch("SELECT u.`user_name`, p.`planet_galaxy`, p.`planet_system`, p.`planet_planet`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " as u ON p.planet_user_id = u.user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_user_id` = '" . (int) $write_to . "';");
                 if (!$OwnerHome) {
                     Functions_Lib::redirect('game.php?page=messages');
                 }
             }
             if ($_POST) {
                 $error = 0;
                 if (!$_POST['subject']) {
                     $error++;
                     $parse['error_text'] = $this->_lang['mg_no_subject'];
                     $parse['error_color'] = '#FF0000';
                     $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse);
                 }
                 if (!$_POST['text']) {
                     $error++;
                     $parse['error_text'] = $this->_lang['mg_no_text'];
                     $parse['error_color'] = '#FF0000';
                     $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse);
                 }
                 if ($error == 0) {
                     $parse['error_text'] = $this->_lang['mg_msg_sended'];
                     $parse['error_color'] = '#00FF00';
                     $error_page = parent::$page->parse_template(parent::$page->get_template('messages/messages_error_table'), $parse);
                     $Owner = $write_to;
                     $Sender = $this->_current_user['user_id'];
                     $From = $this->_current_user['user_name'] . ' [' . $this->_current_user['user_galaxy'] . ':' . $this->_current_user['user_system'] . ':' . $this->_current_user['user_planet'] . ']';
                     $Subject = $_POST['subject'];
                     $Message = Functions_Lib::format_text($_POST['text']);
                     Functions_Lib::send_message($Owner, $Sender, '', 4, $From, $Subject, $Message);
                     $subject = '';
                     $text = '';
                 }
             }
             $parse['id'] = $write_to;
             $parse['to'] = $OwnerHome['user_name'] . ' [' . $OwnerHome['planet_galaxy'] . ':' . $OwnerHome['planet_system'] . ':' . $OwnerHome['planet_planet'] . ']';
             $parse['subject'] = !isset($subject) ? $this->_lang['mg_no_subject'] : $subject;
             $parse['text'] = $text;
             $parse['status_message'] = $error_page;
             parent::$page->display(parent::$page->parse_template(parent::$page->get_template('messages/messages_pm_form_view'), $parse));
             break;
         case 'delete':
             if ($to_delete == 'deleteall') {
                 parent::$db->query("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = '" . $this->_current_user['user_id'] . "';");
             } elseif ($to_delete == 'deletemarked') {
                 foreach ($_POST as $Message => $Answer) {
                     if (preg_match("/delmes/i", $Message) && $Answer == 'on') {
                         $MessId = str_replace("delmes", "", $Message);
                         $MessHere = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`message_receiver` = '" . $this->_current_user['user_id'] . "';");
                         if ($MessHere) {
                             parent::$db->query("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "';");
                         }
                     }
                 }
             } elseif ($to_delete == 'deleteunmarked') {
                 foreach ($_POST as $Message => $Answer) {
                     $CurMess = preg_match("/showmes/i", $Message);
                     $MessId = str_replace("showmes", "", $Message);
                     $Selected = "delmes" . $MessId;
                     $IsSelected = $_POST[$Selected];
                     if (preg_match("/showmes/i", $Message) && !isset($IsSelected)) {
                         $MessHere = parent::$db->query_fetch("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t`message_receiver` = '" . $this->_current_user['user_id'] . "';");
                         if ($MessHere) {
                             parent::$db->query_fetch("DELETE FROM " . MESSAGES . "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_id` = '" . (int) $MessId . "';");
                         }
                     }
                 }
             }
             Functions_Lib::redirect('game.php?page=messages');
             break;
         default:
             if ($this->_have_premium) {
                 $type_row_template = parent::$page->get_template('messages/messages_body_premium_row_view');
                 $rows = '';
                 $this->make_counts();
                 while ($messages_list = parent::$db->fetch_assoc($this->_messages_count)) {
                     $this->_message_type[$messages_list['message_type']]['count'] = $messages_list['message_type_count'];
                     $this->_message_type[$messages_list['message_type']]['unread'] = $messages_list['unread_count'];
                 }
                 foreach ($this->_message_type as $id => $data) {
                     $parse['message_type'] = $data['type_name'];
                     $parse['message_type_name'] = $this->_lang['mg_type'][$id];
                     $parse['message_amount'] = isset($data['count']) ? $data['count'] : 0;
                     $parse['message_unread'] = isset($data['unread']) ? $data['unread'] : 0;
                     $parse['checked'] = isset($active[$id]) ? 'checked' : '';
                     $parse['checked_status'] = isset($active[$id]) ? 1 : 0;
                     $rows .= parent::$page->parse_template($type_row_template, $parse);
                 }
                 $parse['message_type_rows'] = $rows;
                 $parse['buddys_count'] = $this->_extra_count['buddys_count'];
                 $parse['alliance_count'] = $this->_extra_count['alliance_count'];
                 $parse['operators_count'] = $this->_extra_count['operators_count'];
                 $parse['notes_count'] = $this->_extra_count['notes_count'];
                 $parse['message_list'] = isset($message_list) ? $this->load_messages($message_list) : '';
                 $parse['delete_options'] = isset($_GET['dsp']) ? $this->load_delete_box() : '';
             } else {
                 // get list of messages
                 $message_list = parent::$db->query("SELECT *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . ";");
                 // set messages as read
                 parent::$db->query("UPDATE `" . MESSAGES . "`\n\t\t\t\t\t\t\t\t\t\t\tSET `message_read` = '1'\n\t\t\t\t\t\t\t\t\t\t\tWHERE `message_receiver` = " . $this->_current_user['user_id'] . ";");
                 $single_message_template = parent::$page->get_template('messages/messages_list_row_view');
                 $list_of_messages = '';
                 while ($message = parent::$db->fetch_array($message_list)) {
                     $message['message_text'] = nl2br($message['message_text']);
                     $list_of_messages .= parent::$page->parse_template($single_message_template, $message);
                 }
                 $parse['message_list'] = $list_of_messages;
             }
             parent::$page->display(parent::$page->parse_template($this->set_default_template(), $parse));
             break;
     }
 }