Current time: 24.04.2024, 00:34 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
igrik Offline
Administrators

Posts: 2814
Post: #7456

(09.11.2020 17:07)SergOz Wrote:  Столкнулся с такой проблемой: если, изначально непосещаемому объекту, скриптом назначить жёлтую клетку входа, то срабатывание посещения такого объекта происходит только после его посещения и потом нажатия клавиши пробела.
Держи решение. Вот код только для Кратера (id = 118)


game bug fixes extended.dll || My Plugins || My GitHub
10.11.2020 15:37
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1292
Post: #7457

igrik, 20132
У меня кратеры - это подземные ходы, по которым герои игрока переносятся по карте (типа телепортов). Всё сработало! Одна строчка позволила убрать десятки строк! Dance3
Спасибо!


Карта-мод "Война на Холсте"
10.11.2020 15:53
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7458

igrik, а что правится, маска жёлтых клеток?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
10.11.2020 16:41
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7459

(10.11.2020 16:41)Berserker Wrote:  а что правится, маска жёлтых клеток?

Кейс посещения объекта при шаге героя (0 - тип гарнизон, 1 - декорация, 2 - тип пограничные ворота, 3 - дефолтное значение: объекты со входом).

(10.11.2020 15:53)SergOz Wrote:  У меня кратеры - это подземные ходы, по которым герои игрока переносятся по карте (типа телепортов).

Проще использовать стандартные телепорты (так хоть ИИ их будет использовать).
(This post was last modified: 10.11.2020 17:06 by XEPOMAHT.)
10.11.2020 17:02
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1292
Post: #7460

XEPOMAHT, в том то и дело, что ИИ не должны их использовать.
А если поставить стандартные телепорты и навесить на них запрет, то эти ИИ, с такими телепортами, делают вот такое: JC_humpy


Карта-мод "Война на Холсте"
10.11.2020 17:19
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7461

(10.11.2020 17:19)SergOz Wrote:  в том то и дело, что ИИ не должны их использовать.

Тогда тип 40/любой свободный подтип. ИИ туда никогда не ходит + объект со входом по-умолчанию.
10.11.2020 17:40
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #7462

Здравствуйте..

Ребята, Ваша помощь нужна или хотя бы подсказка.. Бился со скриптом недели три, а то и более и пытался самостоятельно в нём разобраться, читал ERM-помощник и вроде бы всё учёл, как я сам понял, но почему-то всё безуспешно и нет результата работы скрипта!

Не получается: никак не могу передать переменную тому герою, на которого нападаю (это мне проверка показала). У меня быстрая битва отключается (у того всадника-героя, который нападает), а у противника (на которого я нападаю) я это не могу никак реализовать (думаю, именно в этом и есть проблема!). При проверке вижу, что переменная доходит до конца кода, но как бы никуда не передаётся!

Скрипт писал для мультиплейерной игры и тестировал его на двух компьютерах…
Цель скрипта: если герой у человека, а не у ИИ, нападёт на героя тоже человека, но никак не ИИ (человек на человека - действует только на людей, а в остальных случаях будет выход со скрипта и будет предложено вновь выбирать вид битвы самостоятельно при нападении на монстров и героев, то есть включится опция 233), то битва должна быть только видимой, а не быстрой, а после того как битва будет закончена (неважно какой был исход её сражения), то у того героя на кого нападали и у того героя кто нападал битва быстрая вновь активируется (у обоих героев-людей). Криво описал цель конечно, но сказал всё по сути..

Мне конечно не принципиально важно этот код добить до конца (использовать его в игре конечно бы не отказался), но ради большого интереса хотелось бы уже понять тот недочёт, который не могу исправить уже долгое время.. Может я что-то снова упустил или не так использовал, как требовалось…

Сам код
(я этот код понял именно так)
Вот этот же код, но только с проверкой
(в скобках указано значение, что должно выходить в результате проверки)
Да уж, с созданием скриптов на сетевую игру ещё сложнее работать….
Все способы перепробовал, но так и ничего не смог сделать!
Заранее за совет или помощь благодарен..
(This post was last modified: 11.11.2020 18:01 by fatsawhorse.)
11.11.2020 17:50
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1292
Post: #7463

fatsawhorse, попробую в десятый раз написать, что проверку на Эру достаточно сделать один раз.
При загрузке карты в !?PI; или инструкцией.
ВСЁ!!! дальше во всех скриптах карты такую проверку делать не нужно!

С мультиплеером не знаком, но по-моему достаточно вот такого:
P.S. Ты так любишь всякие проверки, что мне кажется что ты - налоговый инспектор, а не экономист96
И перестань мне "Выкать" - я уж, кажется, писал тебе об этом


Карта-мод "Война на Холсте"
(This post was last modified: 03.12.2020 02:49 by SergOz.)
11.11.2020 18:57
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #7464

SergOz здравствуйте..

Quote:Сообщение: #7524
fatsawhorse, попробую в десятый раз написать, что проверку на Эру и на битву ИИ достаточно сделать один раз. На Эру при загрузке карты в !?PI; или инструкцией, на битву ИИ - в первом триггере !?BA0;
- само собой, я в скриптах, как Вы мне и говорили, поставил в самом начале единожды и больше нигде не ставлю, а для полноты скрипта я указал именно здесь Sm
Я помню Ваш совет и кстати, прекрасно работает когда я единожды установил эти проверки..

Quote:С мультиплеером не знаком, но по-моему достаточно вот такого:
Bad

- не заработает, поскольку переменная может и не передаться другому герою (у меня было так !!BA:Q0 Qv65; - и не передалось и функция сработала только на одной стороне)

Quote:P.S. Ты так любишь всякие проверки, что мне кажется что ты - налоговый инспектор, а не экономист96
И перестань мне "Выкать" - я уж, кажется, писал тебе об этом
- Sm
(This post was last modified: 11.11.2020 21:15 by fatsawhorse.)
11.11.2020 19:15
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #7465

fatsawhorse, ты малость спутал героя и игрока
IP:D - это для цвета ИГРОКА, а не номера героя
11.11.2020 22:09
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #7466

а что до кода, то я не увидел там смысла
если ты дублируешь команду, и во второй подставляешь v65, это не значит что она именно для удалённой стороны. Ты сам себя в этом убедил, но это не так.
Здесь ты просто удалённо передал , чтобы v65 синхронизировало значение на двух сторонах. всё.

Я не проверял, срабатывает ли BA:Q сразу на двух сторонах, когда только одна из сторон её активирует.
Но тебе нужна команда FU:D
Т.е. должно было бы быть так, никакие v65 тут не нужны
11.11.2020 22:21
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #7467

Здравствуйте..

Bes благодарю Вас снова за подсказку и готовое решение проблемы.. Буду разбираться.. Попробую на выходных код по-другому перестроить согласно уже Вашим замечаниям и коррективам.. Спасибо..

SergOz Вас также благодарю за консультацию..

P.S. Да уж, столько много подводных камней получается находить в попытке разобраться с тем или иным кодом и чтобы хотя бы что-то простейшее построить - приходится тщательно изучить помощник-ERM, не один десяток раз протестировать скрипт, при этом кучу раз ошибиться и только потом хотя бы что-то начнёт мало-мальски работать должным образом Bad
(This post was last modified: 13.11.2020 17:23 by fatsawhorse.)
13.11.2020 17:18
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1292
Post: #7468

Подскажите, плиз, как правильно сделать. Scratch_one-s_head

Хочу, чтобы при посещении гарнизонов ИИ, стажники в них были неприсоединяемы.
А при посещении их игроком - стражников можно было бы оставлять/присоединять.
Написал:
Но, получается, что при взятии/посещении гарнизона противника считывается показатель бывшего хозяина и только при повторном посещении гарнизона код срабатывает правильно.

P.S. Считывание в !$OB33; и !?BA1; даёт те же данные

UPD Вопрос снят. Решается через определение хозяина героя, напавшего/посетившего гарнизон


Карта-мод "Война на Холсте"
(This post was last modified: 13.11.2020 22:08 by SergOz.)
13.11.2020 18:16
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1012
Post: #7469

SergOz, при посещении ИИ я делал проще:

!!GR84/65/0&y98=1:G0/-1/d G1/-1/d G2/-1/d G3/-1/d;, где y98=1 - является ИИ (1 = ИИ, 0 - человек) и тогда всё обнуляется, а потом через таймер на следующий день я вновь стражу восстанавливал Sm

Не очень такой грамотный мой вариант Sm
(This post was last modified: 13.11.2020 18:43 by fatsawhorse.)
13.11.2020 18:42
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7470

Заметил интересную вещь.
Игра с hd mod, потому касаться будет него.
Новые элементы карты приключений отмечены здесь (Click to View)
Допустим, хочу заблокировать клик на них, но в справке на них нет айди - через CM:I выясняем, что это [63;67], но работает только для !?CM0;
Если точнее, любые манипуляции можем делать ТОЛЬКО с левой кнопкой мыши, а с ПКМ - полный игнор105

UPD: даже CM:A не работает на ПКМ


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
14.11.2020 01:58
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group