Wake of Gods Forum | Форум Во Имя Богов
Расширение ERM - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Скрипты (/forumdisplay.php?fid=103)
+--- Thread: Расширение ERM (/showthread.php?tid=5933)


Расширение ERM - Raistlin - 07.02.2021 15:27

Привет, друзья!
У меня тут некоторое время назад возникла мысль, что ERM можно и расширить - когда я сам только-только начинал писать скрипты, мне для моих замашек многого не хватало: я тогда не был программистом, а потому слово "функция" пугала меня, и я даже не пытался с этим разобраться. Точно так же было с командой UN:C и вообще всеми командами, предполагающими работу с памятью. Я еще помню те ощущения и потому принял решение хотя бы попытаться решить эту проблему.

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

Итак, ресивер FC (Fraction Controller):

# - Тип города

!!FC#:B0/$ – Установить/проверить/получить артефакт, покупаемый в кузнице
!!FC#:B1/$ – Установить/проверить/получить сушество, показываемое в кузнице
!!FC#:C$1/$2/$3/$4 – Координаты зданий. $1 – Номер здания, $2 – Количество кадров в def'е, $3 – Позиция X, $4 – Позиция Y. Если какой-то параметр не надо модифицировать, можно использовать число -1 или d0
!!FC#:D$1/$2 – Установить/проверить/получить приоритет отображения строений. $1 – Индекс элемента массива, $2 – Номер строения (в скором времени у данной команды появится пояснительный комментарий)
!!FC#:H0/$1/$2 – Прирост в "орде 1". $1 неулучшенное существо, $2 – улучшенное
!!FC#:H1/$1/$2 – Прирост в "орде 2". $1 неулучшенное существо, $2 – улучшенное
!!FC#:H2/$1/$2 – Уровень сушеств в "орде 1". $1 неулучшенное существо, $2 – улучшенное
!!FC#:H3/$1/$2 – Уровень сушеств в "орде 2". $1 неулучшенное существо, $2 – улучшенное
!!FC#:H4/$1/$2/$3 – Тип простых $2 и улучшенных $3 существ в орде $1 (1/2)
!!FC#:M – Получить в v1 тип рва (2, 1, нет)
!!FC#:M0/# – Установить тип рва (2, 1, нет)
!!FC#:M1/$ – Установить/проверить/получить урон от рва
!!FC#:R$1/$2 – Установить/проверить/получить ресурсы в хранилище. $1 - тип (0-6), $2 - количество
!!FC#:S$ – Установить/проверить/получить существо в стрелковой башне
!!FC#:T$ – Установить/проверить/получить родную почву


Об использовании:
Данный ресивер задумывался не столько для изменения шаблонов городов, сколько для работы в тандеме с ассоциативными массивами. Впрочем, благодаря ему многие вещи теперь действительно можно реализовать без плагинов и патчей.

Как это можно использовать (идеи опций):
- Улучшение хранилища ресурсов за мифрил
- Выбор ресурса в хранилище
- С помощью FC:C и SN:R можно реализовать альтернативы с полноценными жилищами в городах (как в Tides of War), надо просто выставлять значения в OnPreTownScreen в зависимости от обитателя жилища
- FC:М - улучшение рва (например, тоже за мифрил)
- FC:В - добавление новых боевых машин

Примеры использования:


Ресивер PR (Prison):

#1/#2/#3 - Координаты тюрьмы на карте. Можно использовать и 1 параметр - номер v-переменной

!!PR#1/#2/#3:H$ – Установить/проверить/получить номер героя


Также я планирую ввести команды OB:Z (Получение структуры объекта), MA:W (Разрешение для появления в генераторе случайных монстров) и WH:N (Работа с номером объекта на карте у хижин ведьм).

Пишите, что думаете по этому поводу, а также, каких команд вам не хватает. Я с удовольствием добавлю еще что-нибудь интересненькое. 115


RE: Расширение ERM - daemon_n - 07.02.2021 15:42

Raistlin, очень нужно - пишу с телефона)
Но сразу вопрос по первой. Можно поставить любой артефакт?


RE: Расширение ERM - Raistlin - 07.02.2021 15:51

(07.02.2021 15:42)daemon_n Wrote:  Raistlin, очки нужно
Что? 148

(07.02.2021 15:42)daemon_n Wrote:  Но сразу вопрос по первой. Можно поставить любой артефакт?
Да, даже добавленный каким-либо плагином. Цена покупки, кстати, равняется цене существа, а не артефакта.


RE: Расширение ERM - Bes - 07.02.2021 16:55

- можно для обелиска добавить команду получения координат зарытого грааля.
- на мой взгляд, вратам подземного мира тож нужен свой ресивер для контроля игроком точек выхода через другие такие же врата
- как-то таки заставить через !!MN добывать мифрил, а иначе он так и останется как странный ресурс, недоконца внедрённый в игре когда-то


RE: Расширение ERM - daemon_n - 07.02.2021 17:38

Вот что я думаю - каждому объекту можно дать порядковый номер среди имеющихся.
Координаты, конечно, хорошо, но каждый раз сканировать каждую клетку на карте, чтобы пройтись по всем объектов определённого типа - устаревший подход, мне кажется.

Но тут опытные скриптописцы могут сказать больше.

Что касается !!FC - faction - добавить можно туда всё, что касается уникальных фракций.
Вот список того, что пока вспомнил - не думаю, что от всего есть смысл.
  • Отношение существ по морали к другим (нежить и прочее)
  • Отношение существ к штрафам на разных почвах и особых землях (туман/кровь/святая земля)
  • То же касается и бонусов
  • Число и тип существ во всяких особенных построек на прирост (Или "орда 1/2" это оно и есть?)
  • Влияние фракций на отношения с нейтральными отрядами на карте (да, такое тоже есть - агрессивность, присоединение и тп)
  • Заклинания, которые доступны для появления в Гильдии Магов данной фракции
  • Описание зданий в таун холле (надо ли?)
  • Мировоззрение фракции
  • Доступность изучаемых навыков для героев разных классов разных фракций
  • Эффекты грааля - тут уж совсем я замахнулся)) но просто вспомнил, вот



RE: Расширение ERM - Raistlin - 07.02.2021 18:15

(07.02.2021 16:55)Bes Wrote:  - можно для обелиска добавить команду получения координат зарытого грааля.
А зачем? Не думаю, что этим кто-то будет пользоваться...

Quote:- на мой взгляд, вратам подземного мира тож нужен свой ресивер для контроля игроком точек выхода через другие такие же врата
О, вот это интересная мысль 132 На разных заскриптованных картах можно будет делать так, чтобы врата могли вести в разные локации Gamer1

Quote:- как-то таки заставить через !!MN добывать мифрил, а иначе он так и останется как странный ресурс, недоконца внедрённый в игре когда-то
Это означает, что структуру ресурсов придется перенести и расширить. В теории, для этой цели можно даже создать отдельный плагин. Идея на самом деле хорошая, спасибо! Ab
Касательно ERM: если структура все-таки будет расширена, то в данном плагине достаточно будет просто поменять пару циферок, это не сложно. Ну а реализовать добычу мифрила можно через РО-номера, если выставить шахте определенный статус и забирать производимые ресурсы каждый день.

(07.02.2021 17:38)daemon_n Wrote:  Вот что я думаю - каждому объекту можно дать порядковый номер среди имеющихся. Координаты, конечно, хорошо, но каждый раз сканировать каждую клетку на карте, чтобы пройтись по всем объектов определённого типа - устаревший подход, мне кажется.
Так ведь это уже реализовано, вот пример из справки:
Впрочем, получение данного номера по координатам, наверное, реализовать все-таки стоит, оно есть не везде.

Quote:
  • Отношение существ по морали к другим (нежить и прочее)
  • Отношение существ к штрафам на разных почвах и особых землях (туман/кровь/святая земля)
  • То же касается и бонусов
По-моему, за все это отвечает только один параметр - мировоззрение, и его безусловно стоит начать контролировать. Спасибо за идею, тут ты действительно хорошо подметил 132

Quote:- Число и тип существ во всяких особенных построек на прирост (Или "орда 1/2" это оно и есть?)
Ага )

Quote:- Влияние фракций на отношения с нейтральными отрядами на карте (да, такое тоже есть - агрессивность, присоединение и тп)
Серьезно?! Надо поизучать Ab

Quote:
  • Заклинания, которые доступны для появления в Гильдии Магов данной фракции
  • Доступность изучаемых навыков для героев разных классов разных фракций
Можно сделать, но для этого ведь есть текстовики...

Quote:- Описание зданий в таун холле (надо ли?)
Это я на самом деле планировал реализовать в будущем, но с помощью отдельного плагина.

Quote:- Эффекты грааля - тут уж совсем я замахнулся)) но просто вспомнил, вот
А там ведь нет общих редактируемых параметров... Или у тебя есть идея?


RE: Расширение ERM - daemon_n - 07.02.2021 18:47

(07.02.2021 18:15)Raistlin Wrote:  
Quote:
  • Отношение существ по морали к другим (нежить и прочее)
  • Отношение существ к штрафам на разных почвах и особых землях (туман/кровь/святая земля)
  • То же касается и бонусов
По-моему, за все это отвечает только один параметр - мировоззрение, и его безусловно стоит начать контролировать. Спасибо за идею, тут ты действительно хорошо подметил 132
1 - нет , именно от фракции
2 - то же от фракции - кентавры и гремлины имеют разные бонусы/штрафы на снегу,
мировоззрение отвечает лишь на особые земли

Quote:
Quote:
  • Заклинания, которые доступны для появления в Гильдии Магов данной фракции
  • Доступность изучаемых навыков для героев разных классов разных фракций
Можно сделать, но для этого ведь есть текстовики...
Текстовик есть и для навыков, и для заклинаний, и для существ их параметров, и для бонусных навыков.

Но не всё из этого можем проверить/установить/получить. Я тут слегка намекнул на перестройку заклинаний в городе, к слову, когда говорил о проверке возможных заклинаний Yes Хотя ERM для этого не лучший инструмент105

Quote:
Quote:- Эффекты грааля - тут уж совсем я замахнулся)) но просто вспомнил, вот
А там ведь нет общих редактируемых параметров... Или у тебя есть идея?
Идей нет - разве что вкл/откл уникальные эффекты, что им выпонлятюся.


RE: Расширение ERM - Bes - 07.02.2021 19:14

Quote:тип рва (2, 1, нет)
если рва нет, то в v1 занесётся 0 ?
может тогда надо указать как (0..2) 102

(07.02.2021 18:15)Raistlin Wrote:  
(07.02.2021 16:55)Bes Wrote:  - можно для обелиска добавить команду получения координат зарытого грааля.
А зачем? Не думаю, что этим кто-то будет пользоваться...
ты только что сам пустил тень как на половину всех команд ЕРМ, так и на собственно свою же идею расширения ЕРМ. Beee
Главное чтобы был инструмент под рукой для скриптера/картостроителя. А там уже он сам решит когда и что ему пригодится на практике. YesMail1


RE: Расширение ERM - Bes - 07.02.2021 19:27

(07.02.2021 15:27)Raistlin Wrote:  !!FC#:M – Получить в v1 тип рва (2, 1, нет)
!!FC#:M0/$ – Установить тип рва (2, 1, нет)
Удобнее же было бы сделать одной командой !!FC#:M0/$; режим set/get , isn't it? Unsure


RE: Расширение ERM - Bes - 07.02.2021 19:43

(07.02.2021 15:27)Raistlin Wrote:  !!FC#:B0/$ – Установить/проверить/получить артефакт, покупаемый в кузнице
!!FC#:B1/$ – Установить/проверить/получить сушество, показываемое в кузнице
Чёт я запутался, команда B0 может не артефакт устанавливает, а существо?


RE: Расширение ERM - Raistlin - 07.02.2021 19:48

(07.02.2021 18:47)daemon_n Wrote:  Идей нет - разве что вкл/откл уникальные эффекты, что им выпонлятюся.
На мой взгляд, такую вещь лучше регулировать через UN:C, уже ведь есть готовый код, где дополнительно ничего настраивать не нужно.

(07.02.2021 19:27)Bes Wrote:  Удобнее же было бы сделать одной командой !!FC#:M0/$; режим set/get , isn't it? Unsure
Мне как программисту изначально было проще сделать это именно так, но ты прав, для скриптера это будет неудобно. Переделаю перед релизом.

(07.02.2021 19:14)Bes Wrote:  
Quote:тип рва (2, 1, нет)
если рва нет, то в v1 занесётся 0 ?
Да.

Quote:может тогда надо указать как (0..2) 102
Действительно... Слово "тип", кстати, лучше заменить на "толщина" или "толщина в гексах/клетках". Спасибо за поправку!

(07.02.2021 19:14)Bes Wrote:  ты только что сам пустил тень как на половину всех команд ЕРМ, так и на собственно свою же идею расширения ЕРМ. Beee
Главное чтобы был инструмент под рукой для скриптера/картостроителя. А там уже он сам решит когда и что ему пригодится на практике. YesMail1
Полностью согласен, но как по мне, конкретно эту штуку лучше тоже оставить для регулирования с помощью UN:C. Хотя... Хотяяяяя...
Ты прав, создам новую команду !!UN 96-copy


RE: Расширение ERM - Bes - 07.02.2021 19:54

UN:J12 свободна 96-copy
(HTML-справку для !!FC сделал)


RE: Расширение ERM - Raistlin - 07.02.2021 20:41

(07.02.2021 19:54)Bes Wrote:  UN:J12 свободна 96-copy
Можно, главное - чтобы никто другой за нее не взялся, а то очень уж напрашивается решение Rolleyes

Quote:(HTML-справку для !!FC сделал)
Круто, спасибо! 20 Можно мне посмотреть?


RE: Расширение ERM - Bes - 07.02.2021 22:13

ну, Berserker для ERA взял после J11 сразу J13, почему он оставил J12 хз, обговори с ним этот вопрос, может были причины


RE: Расширение ERM - Raistlin - 07.02.2021 22:32

Хорошо


RE: Расширение ERM - XEPOMAHT - 07.02.2021 23:03

(07.02.2021 22:13)Bes Wrote:  ну, Berserker для ERA взял после J11 сразу J13, почему он оставил J12 хз, обговори с ним этот вопрос, может были причины

J12 занят вогом 3.59.

И было бы намного лучше, если бы перетащили именно ERM-команды с WoG 3.59 (исходные коды позволяют это сделать без особого труда, но... желающих пока нет, увы).

Например все данные шаблонов городов можно подгружать вообще из текстовиков (что когда-нибудь будет в ERA+), тогда и реализация на ERM в виде !!FC не понадобиться совершенно.


RE: Расширение ERM - Raistlin - 07.02.2021 23:12

(07.02.2021 23:03)XEPOMAHT Wrote:  И было бы намного лучше, если бы перетащили именно ERM-команды с WoG 3.59 (исходные коды позволяют это сделать без особого труда, но... желающих пока нет, увы).
Вы прямо мысли читаете! 96 Перенос команд из WoG 3.59 действительно входит в мои планы, и я постараюсь осуществить его в скором времени. Кстати, а документации по данным командам случайно не осталось?

(07.02.2021 23:03)XEPOMAHT Wrote:  Например все данные шаблонов городов можно подгружать вообще из текстовиков (что когда-нибудь будет в ERA+), тогда и реализация на ERM в виде !!FC не понадобиться совершенно.
Соглашусь, такой подход лучше.

(07.02.2021 23:03)XEPOMAHT Wrote:  J12 занят вогом 3.59.
Спасибо за информацию, буду знать.


RE: Расширение ERM - Bes - 07.02.2021 23:49

(07.02.2021 23:12)Raistlin Wrote:  Кстати, а документации по данным командам случайно не осталось?

вроде должна там же быть...
(26.03.2020 23:57)Berserker Wrote:  Вышел ЕРМ-хэлп по ВоГ 3.59 альфа.
https://drive.google.com/file/d/1uUdTvsJ6ey9D2bHH1A8aZyMyxtQCCzqk/view



RE: Расширение ERM - Raistlin - 08.02.2021 13:56

Bes, спасибо!
daemon_n, контроллеру Граалей быть!


RE: Расширение ERM - feanor - 08.02.2021 14:29

А когда восстанавливаются оригинальные данные, после выхода или перед загрузкой?


RE: Расширение ERM - Raistlin - 08.02.2021 14:55

feanor, это один из пока еще нерешенных вопросов. Как бы Вы посоветовали сделать?


RE: Расширение ERM - Raistlin - 08.02.2021 17:12

Наверное, изменения будут откатываться в событии OnGameLeave и возвращаться в OnGameEnter


RE: Расширение ERM - daemon_n - 08.02.2021 17:32

Raistlin, OnGameStartOrLoad (!?PI; !?GM0; )


RE: Расширение ERM - Raistlin - 08.02.2021 18:00

(08.02.2021 17:32)daemon_n Wrote:  Raistlin, OnGameStartOrLoad (!?PI; !?GM0; )
Вместо OnGameEnter?


RE: Расширение ERM - daemon_n - 08.02.2021 18:35

Raistlin, да

Хотя... это лишь для самой новой ЭРА.
Лучше оставь OnGameEnter


RE: Расширение ERM - Raistlin - 08.02.2021 23:26

daemon_n, окей, благодарю за информацию. Я хочу оставить совместимость со старыми версиями, а потому действительно не стану менять событие