![]() |
Расширение 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 (Работа с номером объекта на карте у хижин ведьм). Пишите, что думаете по этому поводу, а также, каких команд вам не хватает. Я с удовольствием добавлю еще что-нибудь интересненькое. ![]() 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, очки нужноЧто? ![]() (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 - добавить можно туда всё, что касается уникальных фракций. Вот список того, что пока вспомнил - не думаю, что от всего есть смысл.
RE: Расширение ERM - Raistlin - 07.02.2021 18:15 (07.02.2021 16:55)Bes Wrote: - можно для обелиска добавить команду получения координат зарытого грааля.А зачем? Не думаю, что этим кто-то будет пользоваться... Quote:- на мой взгляд, вратам подземного мира тож нужен свой ресивер для контроля игроком точек выхода через другие такие же вратаО, вот это интересная мысль ![]() ![]() Quote:- как-то таки заставить через !!MN добывать мифрил, а иначе он так и останется как странный ресурс, недоконца внедрённый в игре когда-тоЭто означает, что структуру ресурсов придется перенести и расширить. В теории, для этой цели можно даже создать отдельный плагин. Идея на самом деле хорошая, спасибо! ![]() Касательно ERM: если структура все-таки будет расширена, то в данном плагине достаточно будет просто поменять пару циферок, это не сложно. Ну а реализовать добычу мифрила можно через РО-номера, если выставить шахте определенный статус и забирать производимые ресурсы каждый день. (07.02.2021 17:38)daemon_n Wrote: Вот что я думаю - каждому объекту можно дать порядковый номер среди имеющихся. Координаты, конечно, хорошо, но каждый раз сканировать каждую клетку на карте, чтобы пройтись по всем объектов определённого типа - устаревший подход, мне кажется.Так ведь это уже реализовано, вот пример из справки: Впрочем, получение данного номера по координатам, наверное, реализовать все-таки стоит, оно есть не везде. Quote:По-моему, за все это отвечает только один параметр - мировоззрение, и его безусловно стоит начать контролировать. Спасибо за идею, тут ты действительно хорошо подметил ![]() Quote:- Число и тип существ во всяких особенных построек на прирост (Или "орда 1/2" это оно и есть?)Ага ) Quote:- Влияние фракций на отношения с нейтральными отрядами на карте (да, такое тоже есть - агрессивность, присоединение и тп)Серьезно?! Надо поизучать ![]() Quote:Можно сделать, но для этого ведь есть текстовики... Quote:- Описание зданий в таун холле (надо ли?)Это я на самом деле планировал реализовать в будущем, но с помощью отдельного плагина. Quote:- Эффекты грааля - тут уж совсем я замахнулся)) но просто вспомнил, вотА там ведь нет общих редактируемых параметров... Или у тебя есть идея? RE: Расширение ERM - daemon_n - 07.02.2021 18:47 (07.02.2021 18:15)Raistlin Wrote:1 - нет , именно от фракцииQuote:По-моему, за все это отвечает только один параметр - мировоззрение, и его безусловно стоит начать контролировать. Спасибо за идею, тут ты действительно хорошо подметил 2 - то же от фракции - кентавры и гремлины имеют разные бонусы/штрафы на снегу, мировоззрение отвечает лишь на особые земли Quote:Текстовик есть и для навыков, и для заклинаний, и для существ их параметров, и для бонусных навыков.Quote:Можно сделать, но для этого ведь есть текстовики... Но не всё из этого можем проверить/установить/получить. Я тут слегка намекнул на перестройку заклинаний в городе, к слову, когда говорил о проверке возможных заклинаний ![]() ![]() Quote:Идей нет - разве что вкл/откл уникальные эффекты, что им выпонлятюся.Quote:- Эффекты грааля - тут уж совсем я замахнулся)) но просто вспомнил, вотА там ведь нет общих редактируемых параметров... Или у тебя есть идея? RE: Расширение ERM - Bes - 07.02.2021 19:14 Quote:тип рва (2, 1, нет)если рва нет, то в v1 занесётся 0 ? может тогда надо указать как (0..2) ![]() (07.02.2021 18:15)Raistlin Wrote:ты только что сам пустил тень как на половину всех команд ЕРМ, так и на собственно свою же идею расширения ЕРМ.(07.02.2021 16:55)Bes Wrote: - можно для обелиска добавить команду получения координат зарытого грааля.А зачем? Не думаю, что этим кто-то будет пользоваться... ![]() Главное чтобы был инструмент под рукой для скриптера/картостроителя. А там уже он сам решит когда и что ему пригодится на практике. ![]() ![]() RE: Расширение ERM - Bes - 07.02.2021 19:27 (07.02.2021 15:27)Raistlin Wrote: !!FC#:M – Получить в v1 тип рва (2, 1, нет)Удобнее же было бы сделать одной командой !!FC#:M0/$; режим set/get , isn't it? ![]() RE: Расширение ERM - Bes - 07.02.2021 19:43 (07.02.2021 15:27)Raistlin Wrote: !!FC#:B0/$ – Установить/проверить/получить артефакт, покупаемый в кузницеЧёт я запутался, команда 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?Мне как программисту изначально было проще сделать это именно так, но ты прав, для скриптера это будет неудобно. Переделаю перед релизом. (07.02.2021 19:14)Bes Wrote:Да.Quote:тип рва (2, 1, нет)если рва нет, то в v1 занесётся 0 ? Quote:может тогда надо указать как (0..2)Действительно... Слово "тип", кстати, лучше заменить на "толщина" или "толщина в гексах/клетках". Спасибо за поправку! (07.02.2021 19:14)Bes Wrote: ты только что сам пустил тень как на половину всех команд ЕРМ, так и на собственно свою же идею расширения ЕРМ.Полностью согласен, но как по мне, конкретно эту штуку лучше тоже оставить для регулирования с помощью UN:C. Хотя... Хотяяяяя... Ты прав, создам новую команду !!UN ![]() RE: Расширение ERM - Bes - 07.02.2021 19:54 UN:J12 свободна ![]() (HTML-справку для !!FC сделал) RE: Расширение ERM - Raistlin - 07.02.2021 20:41 (07.02.2021 19:54)Bes Wrote: UN:J12 свободнаМожно, главное - чтобы никто другой за нее не взялся, а то очень уж напрашивается решение ![]() Quote:(HTML-справку для !!FC сделал)Круто, спасибо! ![]() 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 (исходные коды позволяют это сделать без особого труда, но... желающих пока нет, увы).Вы прямо мысли читаете! ![]() (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 альфа. 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, окей, благодарю за информацию. Я хочу оставить совместимость со старыми версиями, а потому действительно не стану менять событие |