function TargetEvent() { global $resource, $reslist; $SQL = ""; $elementIDs = array_merge($reslist['defense'], $reslist['missile']); foreach ($elementIDs as $elementID) { $SQL .= PLANETS . "." . $resource[$elementID] . ", "; } $QryTarget = "SELECT " . USERS . ".lang, " . USERS . ".shield_tech, " . PLANETS . ".id, " . PLANETS . ".name, " . PLANETS . ".id_owner, " . substr($SQL, 0, -2) . "\n\t\t\t\t\t\t\t FROM " . PLANETS . ", " . USERS . "\n\t\t\t\t\t\t\t WHERE " . PLANETS . ".id = '" . $this->_fleet['fleet_end_id'] . "' AND \n\t\t\t\t\t\t\t " . PLANETS . ".id_owner = " . USERS . ".id;"; $targetData = $GLOBALS['DATABASE']->getFirstRow($QryTarget); if ($this->_fleet['fleet_end_type'] == 3) { $targetData[$resource[502]] = $GLOBALS['DATABASE']->getFirstCell("SELECT " . $resource[502] . " FROM " . PLANETS . " WHERE id_luna = " . $this->_fleet['fleet_end_id'] . ";"); } $OwnerInfo = $GLOBALS['DATABASE']->getFirstRow("SELECT lang, military_tech FROM " . USERS . " WHERE id = '" . $this->_fleet['fleet_owner'] . "';"); $Target = !in_array($this->_fleet['fleet_target_obj'], $reslist['defense']) || $this->_fleet['fleet_target_obj'] == 502 || $this->_fleet['fleet_target_obj'] == 0 ? 401 : $this->_fleet['fleet_target_obj']; $targetDefensive = array(); foreach ($elementIDs as $elementID) { $targetDefensive[$elementID] = $targetData[$resource[$elementID]]; } unset($targetDefensive[502]); $SQL = ""; $LNG = $this->getLanguage($GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['lang'], array('L18N', 'FLEET', 'TECH')); if ($targetData[$resource[502]] >= $this->_fleet['fleet_amount']) { $message = $LNG['sys_irak_no_att']; $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id'; $SQL .= "UPDATE " . PLANETS . " SET " . $resource[502] . " = " . $resource[502] . " - " . $this->_fleet['fleet_amount'] . " WHERE " . $where . " = " . $targetData['id'] . ";"; } else { if ($targetData[$resource[502]] > 0) { $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id'; $GLOBALS['DATABASE']->query("UPDATE " . PLANETS . " SET " . $resource[502] . " = 0 WHERE " . $where . " = " . $targetData['id'] . ";"); } $targetDefensive = array_filter($targetDefensive); if (!empty($targetDefensive)) { require_once 'calculateMIPAttack.php'; $irak = calculateMIPAttack($targetData["shield_tech"], $OwnerInfo["military_tech"], $this->_fleet['fleet_amount'], $targetDefensive, $Target, $targetData[$resource[502]]); $irak = array_filter($irak); $message = sprintf($LNG['sys_irak_def'], $targetData[$resource[502]]) . '<br><br>'; ksort($irak, SORT_NUMERIC); foreach ($irak as $Element => $destroy) { $message .= $LNG['tech'][$Element] . ' (- ' . $destroy . ')<br>'; if (in_array($Element, $reslist['one'])) { $SQL .= "UPDATE " . PLANETS . " SET " . $resource[$Element] . " = '0' WHERE id = " . $targetData['id'] . ";"; } else { $SQL .= "UPDATE " . PLANETS . " SET " . $resource[$Element] . " = " . $resource[$Element] . " - " . $destroy . " WHERE id = " . $targetData['id'] . ";"; } } } else { $message = $LNG['sys_irak_no_def']; } } $UserPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT name FROM " . PLANETS . " WHERE id = " . $this->_fleet['fleet_start_id'] . ";"); $OwnerLink = $UserPlanet['name'] . " [" . $this->_fleet['fleet_start_galaxy'] . ":" . $this->_fleet['fleet_start_system'] . ":" . $this->_fleet['fleet_start_planet'] . "]"; $TargetLink = $targetData['name'] . " [" . $this->_fleet['fleet_end_galaxy'] . ":" . $this->_fleet['fleet_end_system'] . ":" . $this->_fleet['fleet_end_planet'] . "]"; $Message = sprintf($LNG['sys_irak_mess'], $this->_fleet['fleet_amount'], $OwnerLink, $TargetLink) . $message; SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_irak_subject'], $Message); SendSimpleMessage($this->_fleet['fleet_target_owner'], 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_irak_subject'], $Message); $SQL .= "DELETE FROM " . FLEETS . " WHERE fleet_id = '" . $this->_fleet['fleet_id'] . "';"; $GLOBALS['DATABASE']->multi_query($SQL); }
function TargetEvent() { global $db, $resource, $reslist; $SQL = ""; foreach ($reslist['defense'] as $Element) { $SQL .= PLANETS . "." . $resource[$Element] . ", "; } $QryTarget = "SELECT " . USERS . ".defence_tech, " . PLANETS . ".id, " . PLANETS . ".id_owner, " . substr($SQL, 0, -2) . "\r\n\t\t\t\t\t\t\t FROM " . PLANETS . ", " . USERS . "\r\n\t\t\t\t\t\t\t WHERE " . PLANETS . ".`galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND \r\n\t\t\t\t\t\t\t " . PLANETS . ".`system` = '" . $this->_fleet['fleet_end_system'] . "' AND \r\n\t\t\t\t\t\t\t " . PLANETS . ".`planet` = '" . $this->_fleet['fleet_end_planet'] . "' AND \r\n\t\t\t\t\t\t\t " . PLANETS . ".`planet_type` = '1' AND \r\n\t\t\t\t\t\t\t " . PLANETS . ".id_owner = " . USERS . ".id;"; $TargetInfo = $db->uniquequery($QryTarget); $OwnerInfo = $db->uniquequery("SELECT `military_tech` FROM " . USERS . " WHERE `id` = '" . $this->_fleet['fleet_owner'] . "';"); $Target = !in_array($this->_fleet['fleet_target_obj'], $reslist['defense']) || $this->_fleet['fleet_target_obj'] == 502 || $this->_fleet['fleet_target_obj'] == 0 ? 401 : $this->_fleet['fleet_target_obj']; foreach ($reslist['defense'] as $Element) { $TargetDefensive[$Element] = $TargetInfo[$resource[$Element]]; } $message = ""; $SQL = ""; $LNG = $this->GetUserLang(0); $LNG += $this->GetUserLang(0, 'TECH'); require_once 'calculateMIPAttack.' . PHP_EXT; if ($TargetInfo[$resource[502]] >= $this->_fleet['fleet_amount']) { $message = $LNG['sys_irak_no_att']; $x = $resource[502]; $SQL .= "UPDATE " . PLANETS . " SET " . $x . " = " . $x . "-" . $this->_fleet['fleet_amount'] . " WHERE id = " . $TargetInfo['id'] . ";"; } else { if ($TargetInfo[$resource[502]] > 0) { $db->query("UPDATE " . PLANETS . " SET " . $resource[502] . " = '0' WHERE id = " . $TargetInfo['id'] . ";"); $message .= sprintf($LNG['sys_irak_def'], $TargetInfo[$resource[502]]); } $irak = calculateMIPAttack($TargetInfo["defence_tech"], $OwnerInfo["military_tech"], $this->_fleet['fleet_amount'], $TargetDefensive, $Target, $TargetInfo[$resource[502]]); ksort($irak, SORT_NUMERIC); $Count = 0; foreach ($irak as $Element => $destroy) { if (empty($Element)) { continue; } if ($id != 502) { $message .= $LNG['tech'][$Element] . " (- " . $destroy . ")<br>"; } if ($destroy == 0) { continue; } if (in_array($Element, $reslist['one'])) { $SQL .= "UPDATE " . PLANETS . " SET `" . $resource[$Element] . "` = '0' WHERE id = " . $TargetInfo['id'] . ";"; } else { $SQL .= "UPDATE " . PLANETS . " SET `" . $resource[$Element] . "` = `" . $resource[$Element] . "` - '" . $destroy . "' WHERE id = " . $TargetInfo['id'] . ";"; } } } $UserPlanet = $db->fetch_array($db->query("SELECT name FROM " . PLANETS . " WHERE id = '" . $this->_fleet['fleet_owner'] . "';")); $OwnerLink = $UserPlanet['name'] . "[" . $this->_fleet['fleet_start_galaxy'] . ":" . $this->_fleet['fleet_start_system'] . ":" . $this->_fleet['fleet_start_planet'] . "]"; $TargetLink = $TargetInfo['name'] . "[" . $this->_fleet['fleet_end_galaxy'] . ":" . $this->_fleet['fleet_end_system'] . ":" . $this->_fleet['fleet_end_planet'] . "]"; $Message = sprintf($LNG['sys_irak_mess'], $this->_fleet['fleet_amount'], $OwnerLink, $TargetLink) . (empty($message) ? $LNG['sys_irak_no_def'] : $message); SendSimpleMessage($this->_fleet['fleet_owner'], '', $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_irak_subject'], $Message); SendSimpleMessage($TargetInfo['id_owner'], '', $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_irak_subject'], $Message); $SQL .= "DELETE FROM " . FLEETS . " WHERE fleet_id = '" . $this->_fleet['fleet_id'] . "';"; $db->multi_query($SQL); }
function TargetEvent() { global $resource, $reslist; $db = Database::get(); $sqlFields = array(); $elementIDs = array_merge($reslist['defense'], $reslist['missile']); foreach ($elementIDs as $elementID) { $sqlFields[] = '%%PLANETS%%.`' . $resource[$elementID] . '`'; } $sql = 'SELECT lang, shield_tech, %%PLANETS%%.id, name, id_owner, ' . implode(', ', $sqlFields) . ' FROM %%PLANETS%% INNER JOIN %%USERS%% ON id_owner = %%USERS%%.id WHERE %%PLANETS%%.id = :planetId;'; $targetData = $db->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_end_id'])); if ($this->_fleet['fleet_end_type'] == 3) { $sql = 'SELECT ' . $resource[502] . ' FROM %%PLANETS%% WHERE id_luna = :moonId;'; $targetData[$resource[502]] = $db->selectSingle($sql, array(':moonId' => $this->_fleet['fleet_end_id']), $resource[502]); } $sql = 'SELECT lang, military_tech FROM %%USERS%% WHERE id = :userId;'; $senderData = $db->selectSingle($sql, array(':userId' => $this->_fleet['fleet_owner'])); if (!in_array($this->_fleet['fleet_target_obj'], $reslist['defense']) || !in_array($this->_fleet['fleet_target_obj'], $reslist['missile']) || $this->_fleet['fleet_target_obj'] == 502 || $this->_fleet['fleet_target_obj'] == 0) { $primaryTarget = 401; } else { $primaryTarget = $this->_fleet['fleet_target_obj']; } $targetDefensive = array(); foreach ($elementIDs as $elementID) { $targetDefensive[$elementID] = $targetData[$resource[$elementID]]; } unset($targetDefensive[502]); $LNG = $this->getLanguage(Config::get($this->_fleet['fleet_universe'])->lang, array('L18N', 'FLEET', 'TECH')); if ($targetData[$resource[502]] >= $this->_fleet['fleet_amount']) { $message = $LNG['sys_irak_no_att']; $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id'; $sql = 'UPDATE %%PLANETS%% SET ' . $resource[502] . ' = ' . $resource[502] . ' - :amount WHERE ' . $where . ' = :planetId;'; $db->update($sql, array(':amount' => $this->_fleet['fleet_amount'], ':planetId' => $targetData['id'])); } else { if ($targetData[$resource[502]] > 0) { $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id'; $sql = 'UPDATE %%PLANETS%% SET ' . $resource[502] . ' = :amount WHERE ' . $where . ' = :planetId;'; $db->update($sql, array(':amount' => 0, ':planetId' => $targetData['id'])); } $targetDefensive = array_filter($targetDefensive); if (!empty($targetDefensive)) { require_once 'includes/classes/missions/functions/calculateMIPAttack.php'; $result = calculateMIPAttack($targetData["shield_tech"], $senderData["military_tech"], $this->_fleet['fleet_amount'], $targetDefensive, $primaryTarget, $targetData[$resource[502]]); $result = array_filter($result); $message = sprintf($LNG['sys_irak_def'], $targetData[$resource[502]]) . '<br><br>'; ksort($result, SORT_NUMERIC); foreach ($result as $Element => $destroy) { $message .= sprintf('%s (- %d)<br>', $LNG['tech'][$Element], $destroy); $sql = 'UPDATE %%PLANETS%% SET ' . $resource[$Element] . ' = ' . $resource[$Element] . ' - :amount WHERE id = :planetId;'; $db->update($sql, array(':planetId' => $targetData['id'], ':amount' => $destroy)); } } else { $message = $LNG['sys_irak_no_def']; } } $sql = 'SELECT name FROM %%PLANETS%% WHERE id = :planetId;'; $planetName = Database::get()->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_start_id']), 'name'); $ownerLink = $planetName . " " . GetStartAddressLink($this->_fleet); $targetLink = $targetData['name'] . " " . GetTargetAddressLink($this->_fleet); $message = sprintf($LNG['sys_irak_mess'], $this->_fleet['fleet_amount'], $ownerLink, $targetLink) . $message; PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_mess_tower'], 3, $LNG['sys_irak_subject'], $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']); PlayerUtil::sendMessage($this->_fleet['fleet_target_owner'], 0, $LNG['sys_mess_tower'], 3, $LNG['sys_irak_subject'], $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']); $this->KillFleet(); }