Current time: 27.11.2024, 10:13 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 1315
Post: #6376

Berserker, спасибо. Это тот случай, когда надо знать - логика здесь бессильна.


Карта-мод "Война на Холсте"
31.03.2020 21:05
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #6377

fatsawhorse, задумку понял, способ завязки активации последующих действий после !?BG0; крайне странный.
есть же флаги для этих целей: типа выставил флаг на ИСТИНУ, и тогда делать ЭТО. зачем брать для этого переменные??????
т.е. должно было быть так:


P.S.по самой начинке скрипта пока перевариваю... может что напишу позже, если будет что сказать
(This post was last modified: 31.03.2020 21:51 by Bes.)
31.03.2020 21:49
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #6378

SergOz, SN:F вызывает внешнюю функцию GetGameState. ?y1 означает передачу в качестве параметра адрес y1 в памяти. y1 занимает 4 байта, y2 тоже четыре.
А функция на самом деле работает с адресом структуры в 8 байт из двух полей:
- родительский диалог (ID); приходится на y1
- дочерний диалог (ID); приходится на y2


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

Posts: 5422
Post: #6379

fatsawhorse, строка перехода к другому стэку вообще что-то из разряда "я придумал себе друга и он со мной разговаривает". Yes Эта запись тупо изменяет значение временной переменной и на этом всё. ничего бы и не произошло, чтобы вы там не хотели.
Итак, давай поглядим что тут не так в событии BG0:
ваш скрипт (Click to View)
что это?
в этом месте у вас всё и заканчивается, но мне хочется понять чты вы этим хотели сделать, чтобы объяснить вам что это не то что вы хотели

Я тут вижу следующее:
Quote:1.узнаём сторону активного стэка
2.если левая сторона, то какие герои слева и справа
3.СТОП, если ходит левый герой и он Орринкрасный
4.если правая сторона, то какие герои слева и справа
5.СТОП, если ходит правый и он Орринкрасный


148Dash110296-copy
(This post was last modified: 01.04.2020 02:37 by Bes.)
31.03.2020 22:45
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #6380

уж простите, смайлы могли бы быть и другими, но боюсь вы обидитесь за зря
Upd: простите, попутал в прочтении команды BA:O... там цвет стороны игрока а не номер героя
(This post was last modified: 01.04.2020 02:39 by Bes.)
31.03.2020 22:50
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #6381

Berserker, это отложится в голове только после нескольких использований в самостоятельных примерах.
А !!SN:F полностью заменяет !!SN:A.. E.. L ? Стоит ли тратить время на их изучение?


Карта-мод "Война на Холсте"
(This post was last modified: 31.03.2020 22:58 by SergOz.)
31.03.2020 22:57
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #6382

SergOz, не стоит. Сразу SN:F^имя функции^/параметры…


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

Posts: 1022
Post: #6383

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

Bes спасибо Вам большое за готовое решение.. Не верю, что смог благодаря Вашей подсказки объединить этих два кода..

P.S. Я считал что можно это было сделать посредством двух переменных w или v Bad


   
Algor, простите, Вы правы оказались что-то получилось схоже с тем, что и должно быть, но с ошибками!

Попробовал сделать по написанному Вами сценарию и не ругайте меня, если что-то не так понял как надо!

Если я вместо обнуления с переменными поступаю таким образом
!!VRv80:S-1; - приравниваю к -1 переменную v80, то армия перестаёт у меня существовать и враг побеждает автоматически!

!!VRv80:S0; - приравниваю к 0 переменную v80 - такой вариант работает, но только в процессе работы скрипта каждый ход возникает ошибка I?y39, при ответном ударе нет защиты от смертельного взгляда, как и говорил Algor и почему то у всех существ исчез флаг полёта и они стали не широкими, а на одну клетку в размере (см. флаг 1).

Код по шаблону от Algor
Подскажите, а как можно поправить эти ошибки и тогда скрипт будет отлично работать:
1. в процессе работы скрипта каждый ход возникает ошибка I?y39, но скрипт при этом работает
2. при ответном ударе нет защиты от смертельного взгляда и враг косит им моих юнитов, которые его атаковали
3. почему то у всех существ исчез флаг полёта и они стали не широкими, а на одну клетку в размере (см. флаг 1)

Что-то наверное я снова не так сделал! Пол дня с этим скриптом возился и не могу понять, что нужно здесь поправить? Bad

Посмотрите пожалуйста представленный код
31.03.2020 23:50
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #6384

не пойму, а почему у вас везьде идёт проверка именно на красного игрока? это условие вашего сценария? другого игрока уже не будет?
(This post was last modified: 01.04.2020 02:48 by Bes.)
01.04.2020 02:08
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #6385

так, а тут что за портянка заграждений?
как я вижу, вообще ни один монстр не пройдёт эти условия, а потом v80 всегда будет =0, и потому этот ноль уходит в триггер BG1 где и записывается во флаги стэка защитника - он становится бесполётным и одногексовым и т.д.

простой пример: у нас атакует пожар. Первое условие...
нашего Пожара уже не пропустит, а значит весь дальнейший код просто не выполнится.
опять же, используйте флаг активации забирания флагов (!!IF:V), чтобы потом повесить его на BG1, дабы исключить дальнейшие проблемы с флагами монстров..

upd: предвкушая вопрос "а как эту портянку упростить?", отвечаю. тремя строками и введением одной ф-ции в код
(This post was last modified: 01.04.2020 05:56 by Bes.)
01.04.2020 02:45
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #6386

Всем привет.JC_howdy
Хочу, при нападении на определённого героя ИИ, дать ему армию с опытом, в зависимости от выбранной игроком сложности. С установкой количества и расстановки войск проблем нет, а вот с опытом - нескладушка. Никакой из модов C#/#1/$2/$3/$4/$5 не даёт войскам героя ИИ опыт сразу. То есть, если напасть первым героем игрока на героя ИИ - опыт армии у того нулевой, но если тут же напасть вторым героем - опыт согласно установленному в скрипте.
Вот примерный код:
Пробовал и через !?FU(OnBeforeBattle) - результат тот же.
Понимаю, что можно дать герою ИИ войска, заранее и тогда всё как надо, но интересен сам факт: почему так происходит и можно ли это исправить?

UPD:Решил проблему через !!EA:E.


Карта-мод "Война на Холсте"
(This post was last modified: 01.04.2020 15:43 by SergOz.)
01.04.2020 13:28
Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1022
Post: #6387

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

Bes

Quote:что это?
!!BMy54:I?y63;
!!BA&y63=0:O?y72/?y73;
!!FU&y63=0/y72=0:E;
!!BA&y63=1:O?y79/?y98;
!!FU&y63=1/y98=0:E;

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

Quote:уж простите, смайлы могли бы быть и другими, но боюсь вы обидитесь за зря
- да нет! Я уже для этого взрослый и прекрасно понимаю, что написал глупость и бывает мне порой стыдно писать целые скрипты сюда, зная, что они написаны убого и абсолютно не грамотно Bad

Писал SergOz
Quote:Berserker, это отложится в голове только после нескольких использований в самостоятельных примерах.
- согласен, но судя по тому, как у меня с этим нехорошо, то уму не постижимо , когда это случится Bad

Писал Bes
Quote:не пойму, а почему у вас везде идёт проверка именно на красного игрока? это условие вашего сценария? другого игрока уже не будет?
- да, это пока под красного, но в скором времени буду делать и на врага, ну то ест ьи на остальные цвета...


Quote:так, а тут что за портянка заграждений?
!!FU&y28<>103:E; - выход, если не могучая горгона
!!FU&y28<>172:E; - выход, если не кошмар
!!FU&y28<>174:E; - выход, если не командир
...............................
- я пытался уточнить у Algor как раз это, но он промолчал.. Я ему раз 5 задавал вопрос: как обойти проверку всех существ, если это условие &y28<>188:E сразу выйдет, если не командир..., но ответа так и не дождался и решил сделать с этим винегретом!

Quote:как я вижу, вообще ни один монстр не пройдёт эти условия, а потом v80 всегда будет =0, и потому этот ноль уходит в триггер BG1 где и записывается во флаги стэка защитника - он становится бесполётным и одногексовым и т.д.
- я это не знал Bad Вот это да! Даже не догадывался, что так будет, если честно...

Quote:простой пример: у нас атакует пожар. Первое условие...
   !!FU&y28<>103:E; - выход, если не могучая горгона
нашего Пожара уже не пропустит, а значит весь дальнейший код просто не выполнится.
- говорил я это парням, но мне не ответили здесь ранее Bad

Вообщем, Algor благодарю Вас за сценарий к задумки по смертельному взгляду.. Всё как и говорили вышло.. Спасибо Вам..

Bes и опять же Вам большое человеческое С П А С И Б О за помощь в доработке кода и за полезные советы, которые я попробую усвоить и не забыть..

Работает все просто чудесно.. А подскажите, ответный удар от врага при смертельном взгляде, возможно ли избежать! Сейчас только запрещает врагам использовать этот самый смертельный взгляд, если они самим меня атакуют, а если же я бью их, то ответ получаю смертельным взглядом!

То есть чтобы этого не было - мне нужно произвести проверку на тип действия защита и если смертельный взгляд, то далее те же действия, что в скрипте! Я прав?
(This post was last modified: 01.04.2020 14:34 by fatsawhorse.)
01.04.2020 14:10
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #6388

fatsawhorse, я если честно уже не помню, ответка активирует !?BG или нет? Вот в ERA добавили событие для контроля таких действий,как восстановление тролля и т.п абилки существ.
01.04.2020 14:57
Visit this user's website Find all posts by this user Quote this message in a reply
fatsawhorse Offline

Posts: 1022
Post: #6389

Bes ну понятно.. Всё равно спасибо Вам за помощь.. Я попробую что-нибудь сам придумать! Sm

Самое важное и сложное для меня уже сделано! Sm
(This post was last modified: 01.04.2020 15:18 by fatsawhorse.)
01.04.2020 15:11
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #6390

(01.04.2020 14:57)Bes Wrote:  fatsawhorse, я если честно уже не помню, ответка активирует !?BG или нет?
Нет, не активирует. И прямая и контратака проходят в одном действии BG0..BG1. Отдельно для контратаки активируется MF (и некоторые другие триггеры, которых нет в 3.58 118)

SergOz, опыт стеков устанавливается через !!EX, это корректнее чем через EA:E. Тем более, что ты не знаешь какой-мод и как меняет бонусные линии и пр. параметры существ получаемые с опытом.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
01.04.2020 16:35
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