Итак, друзья, сначала дисклеймер:
сделано сие творения для меня и моих нужд, сделано потому что мне захотелось.Сделано на движке 1,7 версии, на 1,8 не делал и не буду за бесплатно. Выкладываю для ознакомления и с надеждой что кому то пригодится. Если Вам это не нужно, то просто пройдите мимо. Сделано все на русском и на другие языки переводите самостоятельно.
Приступим
Итак, что делает сей легкий мод - отправляет колонизатор по координатам по одному клику
собственно скрин, больше просто скринить там нечего)
Создаем файл class.ShowColoAjaxPage.php в директории /includes/pages/game
Display All
сохраняем, и открываем файл galaxy.js из директории scripts/game/ и вставляем в любом месте функцию:
Display All
сохраняем, открываем page.galaxy.default.tpl из директории styles/templates/game/
и ищем нумерацию планет к примеру, ну или где Вам удобней и вставляем и оформляем как Вам нужно ссылку подобного вида
открываем class.ShowGalaxyPage.php по пути /includes/pages/game/
ищем строку $this->tplObj->assign_vars(array( и после нее добавляем 'coloShips'=> array(208 => "1"),
забираем и пользуемся
сделано сие творения для меня и моих нужд, сделано потому что мне захотелось.Сделано на движке 1,7 версии, на 1,8 не делал и не буду за бесплатно. Выкладываю для ознакомления и с надеждой что кому то пригодится. Если Вам это не нужно, то просто пройдите мимо. Сделано все на русском и на другие языки переводите самостоятельно.
Приступим
Итак, что делает сей легкий мод - отправляет колонизатор по координатам по одному клику
собственно скрин, больше просто скринить там нечего)
Создаем файл class.ShowColoAjaxPage.php в директории /includes/pages/game
PHP Source Code
- <?php
- require_once(ROOT_PATH . 'includes/classes/class.FleetFunctions.php');
- class ShowColoAjaxPage extends AbstractPage
- {
- public $returnData = array();
- public static $requireModule = 0;
- function __construct()
- {
- parent::__construct();
- $this->setWindow('ajax');
- }
- private function sendData($Code, $Message) {
- $this->returnData['code'] = $Code;
- $this->returnData['mess'] = $Message;
- $this->sendJSON($this->returnData);
- }
- public function show()
- {
- global $USER, $PLANET, $resource, $LNG, $CONF;
- $Usercolonizer = $PLANET[$resource[208]];
- $UserDeuterium = $PLANET['deuterium'];
- $galaxy = HTTP::_GP('galaxy', 0);
- $system = HTTP::_GP('system', 0);
- $planet = HTTP::_GP('planet', 0);
- $targetMission = HTTP::_GP('mission', 0);
- $activeSlots = FleetFunctions::GetCurrentFleets($USER['id']);
- $maxSlots = FleetFunctions::GetMaxFleetSlots($USER);
- $this->returnData['slots'] = $activeSlots;
- $this->returnData['ship'][208] = $Usercolonizer;
- if (IsVacationMode($USER)) {
- $this->sendData(620, $LNG['fa_vacation_mode_current']);
- }
- if ($maxSlots <= $activeSlots) {
- $this->sendData(612, $LNG['fa_no_more_slots']);
- }
- switch($targetMission)
- {
- case 7:
- $colonizer = (int) $_REQUEST['ship'][208];
- $colonizer = min($colonizer, $Usercolonizer);
- if(empty($colonizer)) {
- $this->sendData(611, "нет свободных колонизаторов");
- }
- $fleetArray = array(208 => $colonizer);
- break;
- }
- $fleetArray = array_filter($fleetArray);
- $FleetRoom = FleetFunctions::GetFleetRoom($fleetArray) * (1 + $USER['factor']['ShipStorage']); // размер трюма
- $SpeedFactor = FleetFunctions::GetGameSpeedFactor();
- $Distance = FleetFunctions::GetTargetDistance(array($PLANET['galaxy'], $PLANET['system'], $PLANET['planet']), array($galaxy, $system , $planet));
- $SpeedAllMin = FleetFunctions::GetFleetMaxSpeed($fleetArray, $USER);
- for($i = 10; $i > 0; $i--)
- {
- $Duration = FleetFunctions::GetMissionDuration(max(1, $i), $SpeedAllMin, $Distance, $SpeedFactor, $USER);
- $consumption = FleetFunctions::GetFleetConsumption($fleetArray, $Duration, $Distance, $SpeedAllMin, $USER, $SpeedFactor);
- if($consumption < $FleetRoom)
- break;
- }
- $Duration = $Duration * (1 - $USER['factor']['FlyTime']);
- $UserDeuterium -= $consumption;
- if($UserDeuterium < 0) {
- $this->sendData(613, $LNG['fa_not_enough_fuel']);
- }
- if($consumption > $FleetRoom) {
- $this->sendData(613, $LNG['fa_no_fleetroom']);
- }
- if(connection_aborted())
- exit();
- $this->returnData['slots']++;
- $fleetRessource = array(
- 901 => 0,
- 902 => 0,
- 903 => 0,
- );
- $fleetStartTime = $Duration + TIMESTAMP;
- $fleetStayTime = $fleetStartTime;
- $fleetEndTime = $fleetStayTime + $Duration;
- $shipID = array_keys($fleetArray);
- FleetFunctions::sendFleet($fleetArray, 7, $USER['id'], $PLANET['id'], $PLANET['galaxy'], $PLANET['system'], $PLANET['planet'], $PLANET['planet_type'],
- 0, 0, $galaxy , $system, $planet, 1, $fleetRessource, $fleetStartTime, $fleetStayTime, $fleetEndTime,
- 0, 0, $USER['ally_id']);
- $this->sendData(600, $LNG['fa_sending']." ".array_sum($fleetArray)." ". $LNG['tech'][$shipID[0]] ." ".$LNG['gl_to']." ".$galaxy .":".$system.":".$planet." ...");
- }
- }
- ?>
сохраняем, и открываем файл galaxy.js из директории scripts/game/ и вставляем в любом месте функцию:
JavaScript Source Code: galaxy.js
- function colo(missionID, galaxy, system, planet, shipData) {
- var shipDetail = decodeURIComponent($.param({"ship": shipData}));
- $.getJSON("game.php?page=coloAjax&ajax=1&mission="+missionID+"&galaxy="+galaxy+"&system="+system+"&planet="+planet+"&"+shipDetail, function(data){
- $('#slots').text(data.slots);
- $('#colonizer').text(number_format(data.ship[208]));
- var statustable = $('#fleetstatusrow');
- var messages = statustable.find("~tr");
- if(messages.length == MaxFleetSetting) {
- console.log(messages.get(MaxFleetSetting - 1));
- messages.filter(':last').remove();
- }
- var element = $('<td />').attr('colspan', 8).attr('class', data.code == 600 ? "success" : "error").text(data.mess).wrap('<tr />').parent();
- statustable.removeAttr('style').after(element);
- });
- }
и ищем нумерацию планет к примеру, ну или где Вам удобней и вставляем и оформляем как Вам нужно ссылку подобного вида
ищем строку $this->tplObj->assign_vars(array( и после нее добавляем 'coloShips'=> array(208 => "1"),
забираем и пользуемся
Кто к нам с чем зачем, тот от того и того!
The post was edited 2 times, last by aurum79 ().