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

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
Berserker Offline
Administrators

Posts: 16657
Post: #466

Sav, надеюсь это корректно, я просто 3 байта меняю для башен, превращая 3 деления в три умножения.
В битве работает.


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

Posts: 2180
Post: #467

Это корректно, но в этом случае не учитывается атака башен (заявленная как 10 и на самом деле такая) и защита цели.
(This post was last modified: 01.04.2012 18:01 by Sav.)
01.04.2012 18:00
Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #468

Есть у кого мысли по поводу этого вопроса?
Не стесняемся, если кто подскажет, тому за это ничего не будет )

А то подключение программы зеркалирования карт практически готово, только вышеозначенная проблема возникла.
Пробовал разобраться, как в Эре реализована функция ExecErmCmd, но слишком сложно для меня, да и нет необходимости ее повторять. Нужно как-то инициировать выполнение ЕРМ кода из скрипта.
01.04.2012 21:15
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #469

Quote:Это корректно, но в этом случае не учитывается атака башен (заявленная как 10 и на самом деле такая) и защита цели.
Так она и без нас, по ходу, не считается. Просто деление на умножение вернуть уже достаточно. А ещё микробонус от разницы между атакой и защитой считать....имхо не стоит.

kostya_76, вы закомментировали получение опции, поэтому в v1 у вас мусор. Найдите адрес массива опций и обращайтесь к нему напрямую.


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

Posts: 33
Post: #470

(01.04.2012 21:32)Berserker Wrote:  kostya_76, вы закомментировали получение опции, поэтому в v1 у вас мусор. Найдите адрес массива опций и обращайтесь к нему напрямую.

Да нет, это я закомментировал строчку с функцией Эры, чтобы показать, что с ней работает с первого раза. А получение опции идет с помощью той же ЕРМ команды, расположенной в скрипте в функции 29501, вызов которой есть в коде.
Все работает, но только со второй генерации после загрузки героев.

А адрес опции найти-то нетрудно, но обращение к ней нужно делать так, чтобы это работало впоследствии при любом изменении количества ВОГ-опций. Что у меня с ходу не получилось. Не знаю, как по номеру опции найти адрес.

И дело не в ВОГ-опции, это как пример - дальше мне нужен ВОГ-диалог для бана героев, ввода еще некоторых параметров.

Может быть загрузка скриптов идет только после загрузки карты?
Тогда получается нужно все-таки делать аналог ExecErmCmd из Эры?
Или может быть как-то инициировать загрузку скриптов до загрузки карты?
(This post was last modified: 01.04.2012 22:09 by kostya_76.)
01.04.2012 21:59
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #471

Quote:Может быть загрузка скриптов идет только после загрузки карты?
Да.

Quote:Тогда получается нужно все-таки делать аналог ExecErmCmd из Эры?
Да. При чём скорее всего ещё и вызывать процедуры очистки и инициализации ЕРМ. Только диалог - это ещё и события, а события - уже Эра или полноценно загруженный скрипт.

Quote:Или может быть как-то инициировать загрузку скриптов до загрузки карты?
Думал уже над этим не раз, но на деле воговская процедура FindErm очень уж привязана к карте/сохранёнке.


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

Posts: 33
Post: #472

(01.04.2012 23:10)Berserker Wrote:  Да. При чём скорее всего ещё и вызывать процедуры очистки и инициализации ЕРМ. Только диалог - это ещё и события, а события - уже Эра или полноценно загруженный скрипт.

А события для чего? Вот пример скрипта выбора героев:
Тут вроде нет событий никаких.

А Эру к WT подключить можно как-нибудь?

Иначе остается вариант все-таки вызывать свое окно, от чего хотелось уйти, либо оставлять необходимость предварительной загрузки любой карты.
(This post was last modified: 02.04.2012 00:06 by kostya_76.)
01.04.2012 23:59
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #473

Berserker Wrote:Так она и без нас, по ходу, не считается. А ещё микробонус от разницы между атакой и защитой считать....имхо не стоит.
Да, не считается. Но это ошибка, иначе бы не писалось в описании по ПКМ, что у башен атака 10.
Бонус не такой уж и мелкий, по слабым существам на треть вполне урон может увеличить. А если есть опыт башен и т. п., то уж и тем более. Кроме того, в общей функции теоретически могут срабатывать какие-нибудь новые защитные способности существ, поэтому её следует использовать, чтобы башня их не ломала. Разницы в скорости я не заметил.
Ну, во всяком случае, в Хоте я реализовал так, как считаю нужным. А в Эре, учитывая, что перед ней изначально не ставились задачи модификации геймплея, и мини-исправления может быть вполне достаточно.
02.04.2012 00:05
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #474

Quote:А события для чего?
Trigger = событие. Список событий формируется при загрузки скриптов уже после загрузки карты.

Quote:А Эру к WT подключить можно как-нибудь?
Без понятия, как там Асм сделал.


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

Posts: 2180
Post: #475

Кто-нибудь знает, чем занимается IFC20.dll, функции CImmProject__CreateEffect, CImmCompoundEffect__Start (вызовы в функции 0x4B6750)? У меня они вроде бы вообще не выполняются из-за неуспешного вызова инциализации этого CImmProject, поэтому я не могу так определить, что они делают.
03.04.2012 20:07
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #476

Похоже, IFC - это Immersion Foundation Classes, 20 - видимо, версия 2.0. Но что это всё же такое по сути, я так и не смог разобрать.
(This post was last modified: 04.04.2012 19:51 by Sav.)
04.04.2012 19:50
Find all posts by this user Quote this message in a reply
solitaire345 Offline

Posts: 24
Post: #477

IFC library is responsible for kinetic feedback on gamepads/wheels and other game controllers. Quite strange that it is used for turn-based game. I managed to trigger that function on spell casting and hovering mouse on town buildings.

The branch that calls IFC functions is never executed because dword at 0x00696DD4 is always null and the function returns immediately to not dereference that pointer. 0x00696DD4 is probably pointer to device that supports Immersion Foundation Classes.
Trying to jump to other branch results in access violation.
04.04.2012 23:30
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #478

Thank you for explanation.
05.04.2012 00:44
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #479

Кто-нибудь знает, зачем нужно поле setup (первые 4 байта) у структур, таких, как банк существ, и зачем в конструкторе этому полю присваивается значение неинициализированной стековой переменной?
(This post was last modified: 05.05.2012 23:34 by Sav.)
05.05.2012 23:34
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #480

Не знаю, но твоё сообщение напомнило мне об одной мысли, что хотел сказать по поводу твоего последнего модуля. Универсальный интерфейс делается в Си-стиле. Пишется обёртка над объектом в следующем виде:

typedef void* TObject;
...
TObject Create (x, y, z, frames, colors, wtf, ...);
void Draw (TObject Obj, args...);
void Move (TObject Obj, args...);

То есть все методы - это функции, принимающие сам объект (указатель) в качестве одного из параметров. Для внешнего кода ссылка на твой объект - это чёрный ящик.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
06.05.2012 00:17
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