Создание Новых Исследований

dabra

Школьник
Репутация
0 / 329
И так подробно опишу вам как добавить новые технологии в игру на примере 3 ТЕХНОЛОГИЙ
тестировалось на XGP 2.9.5
Нам понадобится следующие файлы
includes/vars.php
language/spanish/INGAME.mo
includes/functions/PlanetResourceUpdate.php
includes/pages/ShowResourcesPage.php
1. Делаем Запрос к БД:
Код:
ALTER TABLE  `xgp_users` ADD  `metal_tech` BIGINT( 11 ) NOT NULL DEFAULT  '0' AFTER  `graviton_tech`;
ALTER TABLE  `xgp_users` ADD  `crystal_tech` BIGINT( 11 ) NOT NULL DEFAULT  '0' AFTER  `metal_tech`;
ALTER TABLE  `xgp_users` ADD  `deuterium_tech` BIGINT( 11 ) NOT NULL DEFAULT  '0' AFTER  `crystal_tech`;
2.Открывает vars.php
после
Код:
124 => "expedition_tech",
добавляем
Код:
    126=>  "metal_tech",
    127=>  "crystal_tech",
    128=>  "deuterium_tech",
затем создаем требование для каждой технологии для этого после
Код:
124 => array(  31 =>   3, 108 =>   4, 117 =>   3),
добавить
Код:
    
126 => array(  1 =>   3, 31 =>   3),
127 => array(  2 =>   3, 31 =>   5),
128 => array( 3 =>   3, 31 =>   7),
далее задаем первоначальную стоимость и коэффициент('factor') умножения для этого после
Код:
124 => array ( 'metal' =>    4000, 'crystal' =>    8000, 'deuterium' =>    4000, 'energy' =>    0, 'factor' =>   2),
добавить
Код:
        126 => array ( 'metal' =>    4000, 'crystal' =>    8000, 'deuterium' =>    8000, 'energy' =>    0, 'factor' =>   2),
        127 => array ( 'metal' =>    8000, 'crystal' =>    4000, 'deuterium' =>    8000, 'energy' =>    0, 'factor' =>   2),
        128 => array ( 'metal' =>    8000, 'crystal' =>    8000, 'deuterium' =>    4000, 'energy' =>    0, 'factor' =>   2),
и в самом конце это
Код:
$reslist['tech']     = array ( 106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124, 199);
меняем на это
Код:
$reslist['tech']     = array ( 106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124,126,127,128 199);
3. Открываем INGAME.mo добавляем описание
ищем строчку
Код:
$lang['tech'] = array(
..
124 => "Экспедиционная технология",
и добовляем
Код:
126 => "Металлургическая технология",
127 => "Кристализационная технология",
128 => "Водородная технология",
теперь добавляем описание которое будет отображать в исследованиях
ищем
Код:
$lang['res']['descriptions'] = array(
...
124 => "Теперь корабли можно оснащать исследовательским модулем, обеспечивающим обработку собранных данных в условиях длительных полётов.",
и добовляем
Код:
126 => "Металлургическая технология-это новое поколение в развитии металлургической индустрии, благодаря новейшим технологиям количество добывающегося металла будет увеличено на 2% за каждый уровень.",
127 => "Благодаря лучшим знатокам кристаллизации, кристаллизационная технология стала реальностью, кристаллизационная технология новый шаг в эпоху кристало-добычи, добыча кристала будет увеличена на 1,5% за каждый уровень.",
128 => "При помощи учёных со всех углов галактики занимающихся способами увиличения коофициента добычы дейтерия, была открыта новая технология, при помощи которой вырабатывается дейтерий с самых глубоких источников воды, добыча дейтерия при этом будет увеличена на 1% за каждый уровень.",
теперь добавим название и перевод который будет отображаться в инфо
ищем
Код:
$lang['info'][124]['name']        = "Экспедиционная технология";
$lang['info'][124]['description'] = "Экспедиционная технология охватывает различные технологии сканирования и даёт возможность оснащать корабли различных классов исследовательским модулем. Он содержит базу данных, маленькую передвижную лабораторию, а также различные биоклетки и сосуды для проб. Для безопасности корабля при исследовании опасных объектов исследовательский модуль оснащён автономным энергообеспечением и генератором энергетического поля, который в экстремальных ситуациях может окружать исследовательский модуль мощным энергетическим полем.";
и после добовляем
Код:
$lang['info'][126]['name']        = "Металлургическая технология";
$lang['info'][126]['description'] = "Металлургическая технология-это новое поколение в развитии металлургической индустрии, благодаря новейшим технологиям количество добывающегося металла будет увеличено на 2% за каждый уровень.";
$lang['info'][127]['name']        = "Кристализационная технология";
$lang['info'][127]['description'] = "Благодаря лучшим знатокам кристаллизации, кристаллизационная технология стала реальностью, кристаллизационная технология новый шаг в эпоху кристало-добычи, добыча кристала будет увеличена на 1,5% за каждый уровень.";
$lang['info'][128]['name']        = "Водородная технология";
$lang['info'][128]['description'] = "При помощи учёных со всех углов галактики занимающихся способами увиличения коофициента добычы дейтерия, была открыта новая технология, при помощи которой вырабатывается дейтерий с самых глубоких источников воды, добыча дейтерия при этом будет увеличена на 1% за каждый уровень.";

ВСЕ ТЕХНОЛОГИИ ГОТОВЫ НО ОНИ БЕЗ ЭФФЕКТА
4.ОТКРЫВАЕМ PlanetResourceUpdate.php
ГДЕ для металла
Код:
$Caps['metal_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['metal'] )  * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
меняем на
Код:
$Caps['metal_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['metal'] )  * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) * ( 1 + ( $CurrentUser['metal_tech'] * 0.02 ) ));

ГДЕ для кристалла
Код:
$Caps['crystal_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['crystal'] )  * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
меняем на
Код:
$Caps['crystal_perhour']   += floor( eval ( $ProdGrid[$ProdID]['formule']['crystal'] )   * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) * ( 1 + ( $CurrentUser['crystal_tech'] * 0.015 ) ));
ГДЕ для дейтерия в 2 местах
Код:
$Caps['deuterium_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
меняем на
Код:
$Caps['deuterium_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * (0.01 * $post_porcent) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) )* ( 1 + ( $CurrentUser['deuterium_tech'] * 0.01 ) ) );
5. открываем ShowResourcesPage.php чтоб эта небольшая добыча учитывалась в сырье
ищем
Код:
            $metal     = floor( eval ( $ProdGrid[$ProdID]['formule']['metal']     ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) );
            $crystal   = floor( eval ( $ProdGrid[$ProdID]['formule']['crystal']   ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) );
            $deuterium = floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) );
меняем на
Код:
            $metal     = floor( eval ( $ProdGrid[$ProdID]['formule']['metal']     ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) * ( 1 + ( $CurrentUser['metal_tech'] * 0.02 ) ));
            $crystal   = floor( eval ( $ProdGrid[$ProdID]['formule']['crystal']   ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) * ( 1 + ( $CurrentUser['crystal_tech'] * 0.015 ) ));
            $deuterium = floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * GEOLOGUE ) ) * ( 1 + ( $CurrentUser['deuterium_tech'] * 0.01 ) ));

ну и также не забываем добавить картинки с названиями 126 127 128 в скин
 
Интересно получается если я хочу сделать чтоб моя технология употребляла только дейтерий на постройку то время постройки стоит на нуле,
а если добавляю ещё к ней кристаллы или метал то появляется время строительства и работает нормально.
Такую проблему можно решить?
А так все супер работает нормально. :)
 
Интересно получается если я хочу сделать чтоб моя технология употребляла только дейтерий на постройку то время постройки стоит на нуле,
а если добавляю ещё к ней кристаллы или метал то появляется время строительства и работает нормально.
Такую проблему можно решить?
А так все супер работает нормально. :)
возможно ты что-то накосячил в функции где идет подсчет времени, у меня что 1 технология что 3 все прекрасно работают
 
возможно ты что-то накосячил в функции где идет подсчет времени, у меня что 1 технология что 3 все прекрасно работают
А ты попробуй только чтоб исследование требовало дейтерий.
Так время строительства будет стоять на нуле.
 
А ты попробуй только чтоб исследование требовало дейтерий.
Так время строительства будет стоять на нуле.
а ты открой GetBuildingTime.php и посмотри там даже и не пахнет дейтерием, следовательно, для расчета времени используется только метал с кристаллом.
 
а ты открой GetBuildingTime.php и посмотри там даже и не пахнет дейтерием, следовательно, для расчета времени используется только метал с кристаллом.
Значит получается если добавить в GetBuildingTime.php расчет дейтерия то будет работать?
Я же во втором посте спросил можно ли сделать такое сделать, так как мне надо сделать исследование из дейтерия?
Просто я видел такое на одном проекте.
 
Значит получается если добавить в GetBuildingTime.php расчет дейтерия то будет работать?
Я же во втором посте спросил можно ли сделать такое сделать, так как мне надо сделать исследование из дейтерия?
Просто я видел такое на одном проекте.
естественно все в твоих руках, но тогда и время будет уже побольше даже при х1
 
А можете рассказать, как заставить работать Энергетическую технологию ( чтобы она выдавала + 5% за уровень к выработке энергии) ?
 
Сорик, не заметил, лови спасибо

Если вам не сложно, можете указать мод "Задания" и / или рассказать, как воссоздать иные расы?
 

Похожие темы

Сверху