Текущее время: Ср 19 фев 2020 17:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Сообщение Вс 9 фев 2020 2:57
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
Попробуйте себя в роли Наутилуса, что летает по сектору ядовитых болот в неудачных попытках поздороваться с механоидами

Скачать мод симулятор наутилуса: https://drive.google.com/drive/folders/1U4ZEnIhih_eyE3vpn-fOlfx75jrQO9bD

Зарезервировано
Дневники разрабоки ниже в теме
Копия доступна здесь

Установка мода
Скопировать все файлы в директорию игры Механоиды 2. Подтвердить замену файлов. Начать новую игру.
Актуально для версии 004 от 2020 02 09
Удаление мода
Удалить файл AIMBIN4871785.pak
Восстановить оригинальный objects.ini с директории резервной копии 2006 года
Актуально для версии 004 от 2020 02 09

Факт
Можете отследить когда зародилась идея мода в истории телеграм-чата механоиды 3, посмотрите там за несколько часов до создание этой темы
Во время работы я прослушал loc7.ogg порядка нескольких десятков раз

_________________
Земля Механоидов


Последний раз редактировалось Leon Вс 9 фев 2020 16:08, всего редактировалось 6 раз(а).

 Сообщение Вс 9 фев 2020 3:01
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
001
Наутилус — механоид 8 поколения. Вздор? Сейчас я выверну наизнанку лайфхаки от разрабочиков и расскажу, что он еще и летает на грузовой платформе.

Есть скрипт \Механоиды II\Data\Scripts\Locations\L11\loc11.src
Там, внутри функции «вход на локацию» прописано появление двух групп механоидов, DERCINT — механоид 4 поколения и TS_GRP_NAUTILUS, механоид 8 поколения.

оригинал loc11.src с моими комментариями
Код:
#include "include\AIM.src"

void proc OnEnterLocation(char item) // Вызывается, Когда игрок входит на локацию
{
   //SetPelengPoint("B_L11_ARLINGLAB"); // установить пеленг на лабараторию Арлингов (тест)
   
   if (!GetVar("AIM.NAU.CREATED")) // Если значение переменной "AIM.NAU.CREATED" не положительное (отрицательное или отсутствует или ровно нулю), то
   {
      CreateGroup("TS_GRP_NAUTILUS");; // Создать группу "TS_GRP_NAUTILUS" - Наутилуса
      SetMechGeneration("TS_GRP_NAUTILUS", 8); // Присвоить группе "TS_GRP_NAUTILUS" поколения 8
      SetVar("AIM.NAU.CREATED"); // Установить переменной "AIM.NAU.CREATED" положительное значение (скорее всего 1)
      //SetPelengPoint("TS_GRP_NAUTILUS"); // установить пеленг на Наутилуса (тест)

      CreateGroup("DERCINT"); // Создать группу "DERCINT"
      SetMechGeneration("DERCINT", 4); // Присвоить группе "DERCINT" поколения 4
   }
}

void proc OnHour(char locID) // Вызывается Каждый внутриигровой час
{
   ThrowGoodsOnRoad("TOV_FUNGUS", 10); // Раскидать 10 единиц товара "грибы" возле дорог NPC
}


Вот так новость. Дальше — интереснее.

В редакторе конфигураций можно найти запись Наутилус CFG_NAUTILUS
Грузовая платформа, Сотовая броня, простые щиты 1 уровня, мощнейший коллапс-реактор и самый простой ионный двигатель для низкой скорости. Вооружение нет, оборудования нет.

Вложение:
CFG_NAUTILUS.PNG
CFG_NAUTILUS.PNG [ 22.75 КБ | Просмотров: 113 ]


Скрипт \Механоиды II\Data\Scripts\Locations\L11\Nautilus.src

Содержит OnTalk - «общение механоидов между глайдерами». Вот так внутри этой функции нам Наутилус шлет пламенный привет.

Оригинальный Nautilus.src с моими комментариями
Код:
#include "include\AIM.cpp"

void proc OnTalk(char gliderID) // "Общение" механоидов на глайдерах - когда один отправляет другому привет или любое другое сообщение
{
   if (!GetItem("TS_ITEM3")) // Если у игрока нету Квазиментального диффузора
      DamageGlider("PLAYER", 10000000); // Наносим гладйеру игрока 10 млн урона, что призведет до уничтожения глайдера и, следовательно, конца игры

   // * если это первое общение, то *  (комментарий разработчика от 2005)
   if (GetVar("AIM.NET.NAU.2") && !GetVar("AIM.NET.NAU.3"))
   {
      Dialog("TS_L11_TEXT2_3"); // Диалогое окно "<color=orange>Ментальный диффузор активирован. Поглощены аномальные импульсы.<color>"
      SetQuestPart("TS_L11_J_Q1_1", "TS_L11_J_TEXT2_3"); // Переход на следующий этап квеста
      SetVar("AIM.NET.NAU.3"); // Установить значение переменной (второй аргумент не указан, исходя из include/AIM.cpp он будет равен единице = 1)
   }      

   // * Второе общение с Наутилусом после синигр * (комментарий разработчика от 2005)
   if (GetVar("AIM.NET.SIN.3") && !GetVar("AIM.NET.SIN.4"))
   {
      Dialog("TS_L11_TEXT3_2"); // Показать диалогое окно с текстом "<color=orange>Ментальный диффузор активирован. Поглощаются аномальные импульсы.<p>Коммуникатор активирован. Сообщение передано.<color>"
      SetVar("AIM.NET.SIN.4"); // Установить значение переменной "AIM.NET.SIN.4" (равной 1)
      SetQuestPart("TS_L11_J_Q1_6", "TS_L11_J_TEXT3_1"); // Установить часть квеста (переход на следующую часть квеста)
      SetTimer("OnDestroyEffector", 24); // Задать таймер чтобы через 24 внутриигровых часа вызвать функцию OnDestroyEffector
      SetTimer("OnHour", 1); // Задать таймер чтобы через 1 внутриигровой час вызвать функцию OnHour
      SetVar("AIM.NAU.HOUR", 24); // Установить значение переменной "AIM.NAU.HOUR" равной 24
      GliderInvis(gliderID, 1); // Сделать глайдер неивидимым
   }
}

void proc OnDestroyEffector() // По логике эта функция вызовется лишь один раз, спустя 24 внутриигровых часа после второго общения с Наутилусом
{
   SetVar("AIM.NAU.DESTROY"); // Установить положительное значение переменной "AIM.NAU.DESTROY" = 1 - (за кадром) она обозначает что Наутилус пробил контурное поле в секторе Болот для Синигр
}

void proc OnHour()
{
   int iHour; // целое число iHour
   iHour = GetVar("AIM.NAU.HOUR")-1; // установить значение iHour как значение переменной "AIM.NAU.HOUR" минус один
   if (iHour<0) iHour = 0; // если iHour меньше нуля, то установить значение iHour равным 0
   SetVar("AIM.NAU.HOUR", iHour); // Установить значение "AIM.NAU.HOUR" равнім числу iHour
   if (iHour) // Если iHour (если значение iHour положительное)
      SetTimer("OnHour", 1); // Установить таймер, чтобы вызвать функцию "OnHour" через один внутриигровой час
}


А теперь объяснение этому странному явлению и что за бред сейчас вы прочитали. Давайте поставим себя на место разработчика в то время, когда технически реализовывали Наутилуса в игре. У нас уже есть готовая механика «механоидов и глайдеров». Наша задача: добавить какое-то существо, которое умеет медленно передвигаться по одному сектору, оно должно выделяться особым цветом на сенсоре, при приближении к игроку если у игрока нету особого квестового предмета — уничтожить глайдер игрока, если предмет есть — то пообщаться с этим существом следуя логики квестов. Существо невозможно увидить в игре.
Приблизительно так выглядит техническо-логическая часть реализации Наутилуса. И тут же возникает вопрос, а зачем нам, как разработчику создавать новый тип сущности, разрабатывать другие модели поведения и т. п. если можно сделать намного проще: делаем механоида на медленном глайдере и сверхпрочной броней без оружия и, главное, делаем его невидимым. Механики поведения и внедрения в игру уже готовы. Осталось добавить новый цвет на сенсоре… ммм, мы там сделали так для 5 поколения фиолетовый, а для условно 8 поколения думаю сойдет бирюзового цвета. И еще с радаров его убрать не забудьте, с миникарты.

Вот в целом и всё, я не могу претендовать на истинность, но думаю что приблизительно таким лайфхаком была решена техническая задача разработки Наутилуса в игре. А игроки, кстати, встречали в игре очень редко такое явление, что могли подобрать механоида по имени Наутилус. В этой ситуации как никогда подходит фраза: «Не баг, а ФИЧА!».
Да, и еще самые хитрые, как я, после того как узнав об этом со скриптов — установил пеленг на Наутилуса и пытался подорвать глайдер Наутилуса минами. (Пеленг установил отредактировав скрипты).

Я узнал об этом очень давно, но решил рассказать это здесь и сейчас, потому-что возникла идея создать мод, в котором мы примем на себя роль Наутилуса. Как и что с этого выйдет, читайте дальше.

Да, и главное не задумываться о мысли и допускать что Наутилус это механоид 8 поколения, что он существовал до 5 поколения и разрушил базу в секторе Болот, что Супер что-то знает о Наутилусе и скрывает или что его создали Арлинги. Или что 8 поколение — это секретный посыл от разработчиков. Это вас сведет с ума.

_________________
Земля Механоидов


Последний раз редактировалось Leon Вс 9 фев 2020 15:57, всего редактировалось 3 раз(а).

 Сообщение Вс 9 фев 2020 3:02
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
002
Идея мода «Симулятор Наутилуса».
Ты — Наутилус. Стремишся пообщаться с механоидами, но ничего не выходит. Печаль, беда. Но давайте чтобы игровой процесс был веселее мы добавить цель на подобии «попытайся выйти на контакт с сотней механоидов». Нет, ты не злостный убийца механоидов, ну что ты. Ты просто желаешь общения. Кто виноват, что одно твоё «Привет» сводит механоидов с ума. Вот такие и дела.

Разумеется, мод не может быть серьёзным ровно в той степени, насколько Наутилус не может быть механоидов 8 поколения летающим с невидимостью на грузовой платформе. И конечно же мод делается в первую очередь для фана, но может я найду метод как сделать этот процесс увлекательным, увидим.

_________________
Земля Механоидов


Последний раз редактировалось Leon Вс 9 фев 2020 15:58, всего редактировалось 1 раз.

 Сообщение Вс 9 фев 2020 3:06
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
003
За основу был взят мод «Тотальный Контроль версии 003 от 2019-06-04», но лишь по той причине что я там вырезал огромное количество скриптов и квестов (можно сказать что все уникальные квесты были выпилины), по этому это лишь техническое решение для того чтобы ускорить разработку. И по факту я из мода буду использовать только очищенные от сюжетных квестов скрипты, по этому ничего общего в модах не будет.

Создал файл include/simnautilus.cpp
Я его буду подключать к скриптам, чтобы дать понять себе что конкретный скрипт был переписан именно под функционал мода. Я написал одну строку:
Код:
#define NAUTILUS "PLAYER"

Чтобы под текстом NAUTILUS скрывалась личность игрока, хехе.
Итого, я выпылил все скрипты объектов кроме одного — loc11.src — внутри я прописал выдачу денег и установку конфигурации Наутилуса игроку. Грибочки оставив как есть, пусть ростут. (Скрипты были удалены, а CONFIG/objects.ini подчищен от лишних записей)

НОВЫЙ СКРИПТ LOC11
Код:
#include "include\AIM.src"
#include "include\simnautilus.cpp"

void proc OnEnterLocation(char item)
{
   if (!GetVar("location11.FISRT"))
   {
      // SetPelengPoint("B_L11_ARLINGLAB");
      
      SetMechName("PLAYER", "NAUTILUS"); // (Это было добавлено в 004)
      
      AddAmount(AMOUNT_ENERGY, 123456); // DENEG DAT'
      InstallEquipLayer(EQIP_CONFIG, "CFG_NAUTILUS"); // POSTAVIT CFG KAK Y HAUTILUSA
      
      SetVar("location11.FISRT");
   }
}

void proc OnHour(char locID)
{
   ThrowGoodsOnRoad("TOV_FUNGUS", 10);
}



Открываю главный скрипт новой игры — AIMII.src
И отправляю игрока на старте в локацию 11 — в ядовитые болота

НОВЫЙ СКРИПТ AIMII.src
Код:
#include "include\AIM.cpp"

void proc StartGame()
{
   MoveToLocation("location11");
}

StartGame();


Events/Talk.src — в событии OnTalk я добавил 10 млн урону встречному глайдеру.

НОВЫЙ СКРИПТ Talk.src
Код:
#include "include\AIM.cpp"
#include "include\simnautilus.cpp"

void proc OnTalk(char gliderID)
{
   // Nautilus - ubyet vseh!
   DamageGlider(gliderID, 10000000);
}


Под итогом, я удалил ВСЕ скрипты, помимо трёх:
• \Events\Talk.src
• \Locations\loc11.src
• AIMII.src

И вот CONFIG/objects.ini

НОВЫЙ CONFIG/objects.ini
Код:
; Мод "Симулятор Наутилуса"

[COMMON]
Autorun=AIMII.src
Name=Механоиды II. Война кланов.;

[OBJECTS]
location11=Locations\loc11.src

[EVENTS]
OnTalk=Events\Talk.src


От мода тотальный контроль уже не осталось ничего, как и от основной игры в принципе. А нет, грибы остались)))

_________________
Земля Механоидов


Последний раз редактировалось Leon Вс 9 фев 2020 16:01, всего редактировалось 3 раз(а).

 Сообщение Вс 9 фев 2020 3:13
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
004

Скомпилировал скрипты, проверил. Все работает.
Вложение:
n4 AIMII 2020-02-09 00-28-59-07.jpg
n4 AIMII 2020-02-09 00-28-59-07.jpg [ 29.83 КБ | Просмотров: 113 ]


Только имя нужно сменить, а то заводское от 5 поколения не в тему.

НОВЫЙ loc11.src
Код:
#include "include\AIM.src"
#include "include\simnautilus.cpp"

void proc OnEnterLocation(char item)
{
   if (!GetVar("location11.FISRT"))
   {
      // SetPelengPoint("B_L11_ARLINGLAB");
      
      SetMechName("PLAYER", "NAUTILUS");
      
      AddAmount(AMOUNT_ENERGY, 123456); // DENEG DAT'
      InstallEquipLayer(EQIP_CONFIG, "CFG_NAUTILUS"); // POSTAVIT CFG KAK Y HAUTILUSA
      
      SetVar("location11.FISRT");
   }
}

void proc OnHour(char locID)
{
   ThrowGoodsOnRoad("TOV_FUNGUS", 10);
}


Вложение:
n4 AIMII 2020-02-09 00-29-10-41.jpg
n4 AIMII 2020-02-09 00-29-10-41.jpg [ 33.71 КБ | Просмотров: 113 ]


Перекомплируем. Тестим, все отлично. На базе еще можно глайдер сменить на Ястреб или Броненосец.
Мод в компактном виде состоит из двух файлов:
• Data/CONFIG/objects.ini
• Data/AIMBIN4871785.pak
Поскольку все BIN-скрипты я запаковал.

Идеи на будущее:
• Добавить счётчик уничтоженных игроков глайдеров от Наутилуса
• Разработать квест «пообщаться с 100 мехов» и забавные тексты
• Заставить оборонительные пушки атаковать игрока просто так
И теоретические более серъёзные идеи:
• Создать модельку для Наутилуса
• Изменить музыку на локации
• Обосновать причины, почему Наутилус захотел пообщаться с механоидами
• Создать сюжет, что вроде как в одно время Наутилус пытался выйти на контакт и сломал сотни механоидов.

_________________
Земля Механоидов


 Сообщение Вс 9 фев 2020 13:36
Профиль  
МехоВед
Аватара пользователя
Сообщения: 6809
Зарегистрирован: Пн 7 ноя 2005 11:30
Ну ты наркоман :lol:

_________________
Воздух в последнее время какой-то необычный. Может, это ветер перемен?


 Сообщение Вс 9 фев 2020 15:52
Профиль  
Активный участник
Аватара пользователя
Сообщения: 61
Откуда: Украина
Зарегистрирован: Сб 13 ноя 2010 15:13
Вадим писал(а):
Ну ты наркоман :lol:

Это ты еще видимо не знаешь что SiriusIV захотел сделать модельку Намтара полностью обклеинного колобками...

_________________
Земля Механоидов


 Сообщение Пн 10 фев 2020 1:45
Профиль  
МехоВед
Аватара пользователя
Сообщения: 6809
Зарегистрирован: Пн 7 ноя 2005 11:30
Leon, это вообще моя идея :smile: Допускаю, что он пришел к ней независимо.

_________________
Воздух в последнее время какой-то необычный. Может, это ветер перемен?


Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB