Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопросы по модификации
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25
feanor
Цитата
Надо только найти, как хук на триггер !?ОВ поставить.
Вогосорцы же, не?
Ну или поставить бряк на CallERM и когда поймается нужный номер триггера, искать в стеке нужное место.
kostya76
Цитата(feanor @ 20 Nov 2013, 22:23) *
Вогосорцы же, не?


Все правильно, я же и говорю найти нужно))
Berserker
Цитата
У меня они появляются во вкладке сокровища и только как декоративные объекты, иначе исчезают из редактора. Это так и должно быть?

И еще вопрос. Пытался расположить объекты в zeobjts.txt по своему усмотрению (напр. все зимние в снежный ландшафт - не получилось, нахожу их где угодно, но не в нужной вкладке. Как это можно исправить?

Решите второй вопрос — заработает и первый. Я делал для примера, ставил разное расположение и всё было нормально в редакторе. Объекты добавлялись в конец нужной секции или, если такие уже существовали, заменяли оригинал.
igrik
Вопрос по нестандартным диалогам DL
В TXT координаты отрисовки задаются только статически.
Код
3: номер x позиции - X позиция от верхнего левого угла (-1=центр экрана)
4: номер y позиции - Y позиция от верхнего левого угла (-1=центр экрана)

А возможно ли как-то их двигать динамически в процессе игры?
Или как найти указатель на:
Код
"1: знак '#' - означает начало нового шаблона диалога"


igrik
Как через ЭРУ считать значение в ECX с определенного адреса? Вроде как там хранится указатель.
feanor
Только через постановку хука в длл.
Berserker
igrik, ты на каком-нибудь ЯП пишешь, пусть даже скриптовом?
igrik
Нет. А что такое ЯП?
tolich
язык программирования
Berserker
Пробовал DL:A?

52 – установить положение по X (без перерисовки) (число/числовая переменная)
53 – установить положение по Y (без перерисовки) (число/числовая переменная)
hippocamus
Нигде не могу найти emerald.dll от Феанора. Никто не подскажет? И нельзя ли им заменить ТПМ-овский? ТПМ работать со своим не хочет вообще.
Господин Уэф
Не помню, насколько он свежий, но вот http://rusfolder.com/38989637
hippocamus
Интересует возможность снимать книгу магии и ставить вместо неё стихийные книги (как вариант, другие книги, вроде дающих определённый уровень магии, или тематические подборки, вроде Книги смерти, Книги разума).
Где-то в Вог видел возможность ставить и передавать книгу с уже установленным набором заклинаний, но не помню, каким образом там хранился список заклинаний. Для стихийных же и указанных мной память о заклинаниях не нужна, т.к. они фиксированы.
Также - возможность ставить свиток в этот слот, чтобы этот свиток давал в бою единственное доступное заклинание (на карте пусть заклы читаются и из слотов "разное", т.к. их всё равно можно переставить, а в бою не переставишь. Зато закл будет доступен без книги.
feanor
Замаешься.
feanor
Для начала нужно обеспечить всем книгам заклинаний уникальность. Это можно сделать через кастомдата, но её еще надо заполнять. Ну ладно, в момент надевания можно выдавать им уникальный ID: хук на GiveArtifact, думаю, поможет.

Потом нужно как-то связать массив заклинаний с ID книги. Либо через хук на GiveSpell писать не только в структуру героя, но и в допмассив для книг, либо при снятии книги запоминать все заклинания скопом - и делать сопутствующие действия при одевании героя..в общем, довольно криво и чревато побочками.

Ну и напоследок - сделать возможность каста при отсутствии обычной книги, но наличии стихийных книг.

Algor
Цитата(feanor @ 04 Dec 2013, 22:56) *
Замаешься.

Почему? Я делал похожее:
Код
!#UN:A47/2/14;     [карты пророчества надеваются в слот Книги]

и по !?AE меняешь состав заклинаний. Или я не понял вопроса?

Цитата(feanor @ 04 Dec 2013, 23:23) *
Для начала нужно обеспечить всем книгам заклинаний уникальность.

Эм.. задача вроде так не стоит. Разделять ведь надо обычную книжку магии и другие "тематические" артефакты. А две разных книжки даже отличать-то в рюкзаке проблемно будет.

Hippo, или ты хотел иметь возможность и между героями передавать заклинания вместе с книжкой?
feanor
Одеваем карты, снимаем книгу, получаем спецзаклинание.
Выбрасываем книгу леваку, покупаем новую книгу в гильдии, одеваем - опа, заклинания те же самые что и в старой. Нехорошо.
Algor
Цитата(feanor @ 04 Dec 2013, 23:23) *
Ну и напоследок - сделать возможность каста при отсутствии обычной книги, но наличии стихийных книг.

У меня с картами пророчества в слоте "книга" в бою все без проблем кастовалось. Тип артефакта видимо не проверяется.
feanor
Цитата
А две разных книжки даже отличать-то в рюкзаке проблемно будет.

Ну, в структуре артефакта на кукле есть специальное поле, дающее возможность отличать конкретный артефакт от всех прочих его же типа.
Свитки ведь отличаются друг от друга, хоть и имеют один и тот же номер.
Algor
Цитата(feanor @ 04 Dec 2013, 23:33) *
Одеваем карты, снимаем книгу, получаем спецзаклинание.
Выбрасываем книгу леваку, покупаем новую книгу в гильдии, одеваем - опа, заклинания те же самые что и в старой. Нехорошо.

Опять же, смотря, чего нужно достичь...


Цитата(feanor @ 04 Dec 2013, 23:37) *
Цитата
А две разных книжки даже отличать-то в рюкзаке проблемно будет.

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

Всегда считал, что артефакты обезличены. В т.ч. и что свитки с одним и тем же заклинанием имеют один и тот же номер (1000+).
Тебе виднее конечно, это у меня инструментарий erm'ом ограничен... А есть пример, как (на ерм) можно использовать id конкретного артефакта?
feanor
Вот, по ЛКМ на артефакту на кукле можно посмотреть номер артефакта и его данные.

Код
ZVSE

!?CM2;
!!CM:I?y1 F?y2;
!!if&y1>1/y1<21/y2=512:;
!!VRy3:Sy1 -2;  //y3 - номер слота
!!HE-1:N?y4; //y4 - номер героя

!!VRy5:Sy3 *8;
!!UN:C6919480/4/?y10;
!!VRy11:Sy4 *1170 +305 +y5 +136736 +y10;
!!UN:Cy11/4/?y6;
!!VRy11:Sy4 *1170 +301 +y5 +136736 +y10;
!!UN:Cy11/4/?y7;

!!IF:M0/4/^Тип артефакта: %Y7 Доп.информация: %Y6^;  

!!el:;
!!en:;


Задать, соответственно ../y6; и ../y7;
У свитков номер = 1, доп.информация = номеру заклинания; у прочих артефактов в доп.информации по умолчанию лежит -1.
Если изменить этой функцией номер артефакта (или выставить -1, убрав его со стека, или, наоборот, создать артефакт из ничего) - артефакт сменится, но соответствующие функции (GiveArtifact/TakeArtifact и связанные с ними ERM-триггеры) запущены не будут. Т.е., скажем, бонус первичных навыков не снимется/новый не начислится.

Для рюкзака примерно так же, только вместо 301/305 - 468/472, и после уничтожения артефакта могут быть проблемы с прокруткой: количество артефактов в рюкзаке хранится отдельно.

Еще что-то совсем черномагическое есть здесь:
http://forum.df2.ru/index.php?showtopic=6737
hippocamus
Цитата(Algor @ 04 Dec 2013, 22:31) *
Hippo, или ты хотел иметь возможность и между героями передавать заклинания вместе с книжкой?

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

Кто-то составлял альтернативные концепции командиров, помимо стандартной воговской, оруженосцев и Iv'овских питомцев?
Iv
Цитата(feanor @ 20 Dec 2013, 22:56) *
Я в упор не помню, спрашивал я или нет..

Кто-то составлял альтернативные концепции командиров, помимо стандартной воговской и Iv'овских питомцев?

У меня их две было: питомцы и воплощение героя на поле боя
igrik
Никто не знает, как отключить желтую обводку после клика ЛКМ в слот существа в окне города и в окне встречи героев?

P.S. feanor, если не сложно подскажи как выловить нажаты ли Ctrl или Shift одновременно с ЛКМ через "GetKeyState" в user32.dll
Berserker
Два последовательных вызова. VK_SHIFT, VK_CONTROL. Проверка обоих результатов. Есть ещё функция, возвращающая массив всех статусов клавиш. GetKeyboardState.
Orzie
Цитата(Iv @ 20 Dec 2013, 23:06) *
У меня их две было: питомцы и воплощение героя на поле боя

А где можно глянуть, прошу прощения за нескромный вопрос?
Iv
Цитата(Orzie @ 24 Dec 2013, 19:18) *
Цитата(Iv @ 20 Dec 2013, 23:06) *
У меня их две было: питомцы и воплощение героя на поле боя

А где можно глянуть, прошу прощения за нескромный вопрос?

Тут. В первом посте, в конце
kostya76
Как узнать, на какое количество стэков поделятся нейтралы в битве в зависимости от армии текущего героя? Нужен адрес функции, которая это вычисляет.
feanor
Слушайте, есть способ подгрузить патч/плагин в редактор без его правки?
Помнится, то ли Эра, то ли Сергроевский патч такое позволяли.
feanor
Вопрос снят.
Berserker
Из папки EraEditor подгружаются модули как из EraPlugins, включая заплатки. Правда, событий нет.
kostya76
Пробовал кто-нибудь изменять зону тактического перестроения перед битвой? Насколько понимаю, в этой функции вычисляется:

Тень изменить легко ( вычисляется функцией CombatMan_IsSquareInTacticsZone), а вот саму доступность как изменять?
feanor
Дык, очевидно ж.

Код
//----- (00475D20) --------------------------------------------------------
char __thiscall CombatMan_IsSquareInTacticsZone(_CombatMan_ *this, int side, signed int squareId)
{
  bool v3; // eax@2

  if ( side )
    v3 = squareId % 17 < 2 * this->TacticsDifference + 15;
  else
    LOBYTE(v3) = squareId % 17 > 2 * this->TacticsDifference + 1;
  return v3;
}
kostya76
Цитата(feanor @ 08 Jan 2014, 01:28) *
Дык, очевидно ж.


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

Хотя на автобое стэки перемещаются таки на затемненные клетки. Причем, если снова вернуть расстановку в ручной режим, то тень вообще пропадает.

Нашел. Нужно увеличивать значение уровня тактики в структуре this->TacticsDifference после того, как туда будет помещено реальное значение. Если поставить 8, например, то перекрывается все поле боя, и доступность будет определяться исходя из результатов вычисления функции CombatMan_IsSquareInTacticsZone, либо их подменой.
Vadim_FVE
Подскажите, что нужно сделать, чтобы существо на поле боя перемещалась телепортом (по подобию дьяволов)?

Я для теста брал копейщика, менял ему деф и озвучку на деф и озвучку дьявола, в CrAnim.txt строку копейщика заменял на строку дьявола. Но при перемещении вместо телепортации такой дьявол медленно перемещался с мигающим кадром и каким-то пищанием.
feanor
А полет выставлял?
Axolotl
Еще, работает просто существо с полетом и то ли просто пустым кадром (т.е. просто залитый цветом прозрачности) вместо анимации движения, то ли вообще можно не вставлять никакого.
Или есть еще какие-то особенности у телепортации?
hippocamus
Всё-таки, мне кажется, игра различает телепортеров и летунов. Не помню только в чём.
Vadim_FVE
Проверял, у обычных дьяволов во время боя флаги = 65808 = 16 (Живое существо) + 256(Король 2) + 65536 (Враг не отвечает), полета нет, но это им не мешает перемахивать через стену.
Замененный копейщик на дьвола имеет теже флаги, но при этом не может перемахнуть через стену.
Видимо за телепортацию что-то еще отвечает, помимо флагов.
hippocamus
Ну копейшику-то полёт поставь. А так - мне кажется, в экзешник зашита проверка на принадлежность к подмножеству (в оригинале это улучшенный и неулучшенный дьяволы; у нас в ХотЕ ещё нимфы прибавились)

Спроси у Сава, он с этим разбирался. У нас вроде сначала у Нимф была имитация телепорта, а потом сделали настоящий.
feanor
Я знаю, что для телепорта нужны спецправки для озвучки. А больше, вроде, ничо.
navigator777
Подскажите в каком скрипте или где отредактировать чтоб убрать или уменьшить умение у Чудище-Привидение "Игнорирует защиту".
feanor
Для Эры

Код
!?PI;
!!UN:C7722324/4/666; zogryzanie zoschischennyh zohaval zotona
!?GM0;
!!UN:C7722324/4/666; zogryzanie zoschischennyh zohaval zotona
Vadim_FVE
Как-то можно с помощью UN:C подменить картинку существа в окне героя?
feanor
Нет.
hippocamus
Ну как это - нет? Можно.
Другое дело, что никто не написал кода для этого, и поэтому не можем помочь.
А так - с помощью UN:C можно хоть флешку отформатировать.
feanor
Хорошо, можно, но все равно нельзя.
Orzie
А другим каким-либо способом в рамках Эры?
feanor
Готовых нету в любом случае.
Да и незачем оно, как по мне.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.