Current time: 23.04.2024, 21:20 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 4338
Post: #7666

Berserker, спасибо - нашёл. Но не работает в бою.]

Нашёл ещё интересную вещь:

В БОЮ!
TAB: вводим сообщение;
ESC; до отправки
TAB; сообщение остаётся.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 18:07
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7667

Тут у Игрика нужно спросить, какой функцией отослать сообщение элементу управления. Сам диалог получить не сложно из менеджера игры.


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

Posts: 4338
Post: #7668

Мне уже ничего не надо - я для себя всё сделал.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 20:22
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #7669

Вопрос с left/right ctrl+alf+shift уже прорабатывается, процентов 70 кода написал, работает. Реализовал и отключение обработки клавиш при наличии фокуса в любом поле ввода.


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

Posts: 1012
Post: #7670

А если на полном серьёзе 2 года мало, то как тогда в события скрипты включить - механика карты то не позволяет?
11.01.2021 21:32
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7671

fatsawhorse, сама игра большегода уже может не выдержать


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
11.01.2021 22:27
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7672

(12.01.2021 18:44)Raistlin Wrote:  
Реализация арены магов в моем плагине (Click to View)

Такие кастыли нужно оставлять на ERM, ибо это очень плохой код. По-нормальному, если уж делаешь плагином, то хуком кейса соответствующей функции посещения объекта карты и написанием полноценной функции посещения арены магов (т.е. как в MoP, без воговщины). Если тырите из хоты, то и код тоже тащите от туда, без кастыльной самодеятельности.
(This post was last modified: 12.01.2021 21:09 by XEPOMAHT.)
12.01.2021 21:07
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #7673

Код функции выглядит вот так (Click to View)
Если честно, мне не кажется что тут стоит что-то хукать, а удобнее просто изменить 6 значений. Из хоты мы тырим только идеи и графику, код я пишу сам. Вообще, я безусловно благодарен Вам за замечание - у меня по-прежнему не так уж и много опыта, по сути я пока только учусь, и типичные ошибки в реализации мне не знакомы.


Создал новый глобальный мод: WoG Ultra Edition
12.01.2021 21:39
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7674

(12.01.2021 21:39)Raistlin Wrote:  
Код функции выглядит вот так (Click to View)

Для сравнения это же самое, но уже из MoP 2.19:

функция посещения Арены (+2 к Атаке или Защите на выбор) (Click to View)
функция посещения Колизея Магов (+2 к Силе Магии или Знанию на выбор) (Click to View)
Такой вот коддинг на Ассемблере 148

(12.01.2021 21:39)Raistlin Wrote:  Если честно, мне не кажется что тут стоит что-то хукать, а удобнее просто изменить 6 значений.

Из моей практики - такие вот "обезьяньи патчи" при накоплении их в коде программы приводят к путанице и последующим бесконтрольным ошибкам. Недавно вроде б в закрытом чате эту тему затрагивали, вот даже на вики кто-то ссылку кидал: https://ru.wikipedia.org/wiki/Monkey_patch . Вроде б все сошлись на том, что на Си это зло (да и на Ассемблере тоже), требующее полного искоренения (хотя и Тифон немного грешит этим, потому что мне просто было лень затаскивать огромные содовские функции в dll).
(This post was last modified: 13.01.2021 01:23 by XEPOMAHT.)
13.01.2021 00:44
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #7675

(13.01.2021 00:44)XEPOMAHT Wrote:  Такой вот коддинг на Ассемблере 148
Я пока что ни разу не писал код на чистом ассемблере, но я похоже понял принцип работы основных команд. Я могу читать код, но "думаю" я пока только на высокоуровневых языках 148
Скажу честно, мне очень хочется разобраться и в этом, Вы не будете против, если я задам Вам несколько вопросов лично?

(13.01.2021 00:44)XEPOMAHT Wrote:  Из моей практики - такие вот "обезьяньи патчи" при накоплении их в коде программы приводят к путанице и последующим бесконтрольным ошибкам. Недавно вроде б в закрытом чате эту тему затрагивали, вот даже на вики кто-то ссылку кидал: https://ru.wikipedia.org/wiki/Monkey_patch . Вроде б все сошлись на том, что на Си это зло (да и на Ассемблере тоже), требующее полного искоренения (хотя и Тифон немного грешит этим, потому что мне просто было лень затаскивать огромные содовские функции в dll).
У меня более тысячи строк кода, и это первый раз, когда я пропатчил что-то таким образом. Всего 6 изменённых значений + к каждому дан комментарий (все остальное, кстати, тоже прокомментировано) - путаницу это точно не создаст, ведь решение простое и рабочее. Написал и забыл. Ab Тем не менее, в будущем я буду это учитывать.


Создал новый глобальный мод: WoG Ultra Edition
13.01.2021 01:52
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7676

(13.01.2021 01:52)Raistlin Wrote:  Скажу честно, мне очень хочется разобраться и в этом, Вы не будете против, если я задам Вам несколько вопросов лично?

Можно и публично. Но Ассемблер я знаю так себе, на 3 с минусом.

(13.01.2021 01:52)Raistlin Wrote:  путаницу это точно не создаст, ведь решение простое и рабочее. Написал и забыл. Ab Тем не менее, в будущем я буду это учитывать.

Лучше оставить это на ERM и не переводить на Си. Т.к. это решение приемлемо именно для ERM (правда, не факт, что в будущем может начать вылетать после обновления Эры, HD-мода или какого-нибудь плагина). На ERM всегда можно исправить руками любого игрока, знающего язык. На Си - всегда затруднительно, т.к. синтаксис там в разы сложнее и непонятнее для непрограммистов типа меня.

Для небольшой функции вроде посещения Колизея Магов надёжнее не использовать существующую содовскую функцию Арены, а написать свою (тем более, содовская функция написана не очень качественно, как будто Арену программировали наспех прямо перед релизом бета-версии Третьих Героев, например там и подсказку забыли добавить, и проверки на переполнение Атаки/Защиты нет, и лишние спецфункции для Арены зачем-то добавили, хотя остальные подобные объекты карты спокойно обходятся без них и т.д.).
(This post was last modified: 13.01.2021 02:25 by XEPOMAHT.)
13.01.2021 02:20
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #7677

(13.01.2021 02:20)XEPOMAHT Wrote:  Можно и публично. Но Ассемблер я знаю так себе, на 3 с минусом.

Эх, мне бы Вашу скромность 96
Если Вы смогли создать Эру+ и MoP 2.18, то это уже как минимум 4. Насчёт плюсов и минусов пока ничего не скажу из-за нехватки опыта, но я готов с уверенностью заявить, что, если Вы можете применять свои знания в таком масштабе, то это совершенно точно не 3!
Спасибо за помощь, спасибо за советы и спасибо за открытость! 132

(13.01.2021 02:20)XEPOMAHT Wrote:  Лучше оставить это на ERM и не переводить на Си. Т.к. это решение приемлемо именно для ERM (правда, не факт, что в будущем может начать вылетать после обновления Эры, HD-мода или какого-нибудь плагина). На ERM всегда можно исправить руками любого игрока, знающего язык. На Си - всегда затруднительно, т.к. синтаксис там в разы сложнее и непонятнее для непрограммистов типа меня.

Тут я с Вами полностью согласен, но только вот у ERM есть множество ограничений, а также всегда существует вероятность, что кто-то где-то возьмёт и использует какой-то индекс, который должен оставаться нетронутым. Как показывает мой опыт, комбинация Си с ERM наиболее удобна для разработки. Например, массивы, а также все, что связано с переменными, выглядит намного более логично и понятно, лично мне такой код читать намного удобнее. Также у меня, как у разработчика, сразу открывается множество новых возможностей вроде использования двумерных массивов (насколько я знаю, в обычных скриптах это делать нельзя).

(13.01.2021 02:20)XEPOMAHT Wrote:  Для небольшой функции вроде посещения Колизея Магов надёжнее не использовать существующую содовскую функцию Арены, а написать свою (тем более, содовская функция написана не очень качественно, как будто Арену программировали наспех прямо перед релизом бета-версии Третьих Героев, например там и подсказку забыли добавить, и проверки на переполнение Атаки/Защиты нет, и лишние спецфункции для Арены зачем-то добавили, хотя остальные подобные объекты карты спокойно обходятся без них и т.д.).

Она явно уже давно переделана: проверка на переполнение, например, там есть, и я даже написал в теме про UN:C, как на нее можно влиять. Также в коде своей функции я модифицирую как раз эту самую проверку:
Code:
Magic->WriteByte(0x49E4F6, 0x78); //Смещение до первого навыка при проверке лимита
Magic->WriteByte(0x49E512, 0x79); //Смещение до второго навыка при проверке лимита


Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 13.01.2021 03:10 by Raistlin.)
13.01.2021 03:10
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #7678

(13.01.2021 03:10)Raistlin Wrote:     проверка на переполнение, например, там есть, и я даже написал в теме про UN:C, как на нее можно влиять.

Она ограничивает только сравнение значений атаки и защиты в выборе ИИ. И то, если атака будет > 99 и защита будет > 99, то ИИ будет всегда выбирать атаку для прокачки, пока она не уйдёт в минус. Т.е. по факту от этого ни жарко, ни холодно - только лишние проверки от какого-то не очень хорошо разбирающегося в коде игры программиста. Это очень хорошо видно в диассемблированном виде функции из IDA (и совершенно не видно в Си-подобном, по крайней мере в таком виде мне её читать затруднительно 148 ).

В ветке функции для человека никаких проверок вообще нет - свободно можно уходить в минус по атаке и защите, ну а в MoP 2.19 уже так не получится как для человека, так и для ИИ (перед повышением значение атаки или защиты проверяется на лимит в 126). 148
(This post was last modified: 13.01.2021 11:42 by XEPOMAHT.)
13.01.2021 11:32
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #7679

Code:
if ( v7 <= 99 ) //если количество очков атаки меньше или равно 99, идём проверять дальше
{
      if ( v7 <= 0 ) //Если количество очков атаки меньше или равно 0, ставим 0
        v8 = 0;
      else //Иначе, ставим количество очков очков атаки
        v8 = v7;
}
else //Если больше чем 99, ставим 99
{
      v8 = 99;
}


Создал новый глобальный мод: WoG Ultra Edition
13.01.2021 11:48
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #7680

А зависимость от артефактов учитывается?


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
13.01.2021 12:05
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