Current time: 19.04.2024, 18:41 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
Bes Offline

Posts: 5422
Post: #1426

(11.07.2020 00:02)feanor Wrote:  
(09.07.2020 20:27)Bes Wrote:  feanor, и если улучшал свой chalk плагин, но не публиковал, тож не пожадничай и выложи (хотя бы что есть) пожалуйста Ab
Не, ничо с ним не делал. А что-то надо?


feanor, он у меня во всех игровых папках (три как минимум: две с эра2,46 и одна сборка с эра2,9,14)... часто пользуюсь, и все пожелания, что высказывали на дф2-теме, тихо покорно ждал, вдруг ты их реализуешь... нужна история введённых команд (хотя бы повтор прошлой команды, как в dos)
11.07.2020 00:34
Visit this user's website Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1427

feanor, большое спасибо за исходники, мне безусловно пригодятся некоторые примеры132

Ну а некоторые комментарии просто сделали мой день)))

Quote://и да, это write-only code
//прости, дяденька будущий я, я больше так не буду

Quote://и, кстати, проверка на c->ecx - фуфло

Quote://0066D03C - таблица количества окошек 0x13 - гнусный хак, и так мы делать не будем


Создал новый глобальный мод: WoG Ultra Edition
11.07.2020 00:47
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #1428

Quote:
Code:
//прости, дяденька будущий я, я больше так не буду
Однажды, когда мне понадобился этот код, я полез в эти исходники, нашел эту строку и понял, что он мне не так уж и нужен. Проронив скупую слезу, потому что я уже успел забыть про эту смердящую капсулу времени.
Иногда одно петросянство вместо тысячи описаний механики реально экономит время.

Quote:
Code:
//0066D03C - таблица количества окошек 0x13 - гнусный хак, и так мы делать не будем
Там есть сиквел, "//не будем, но еретика нет ".

Просто обработчик диалога не умеет в более чем 18 окошек, и попытка вытащить 19ое заставляет его отрисоваться, но не заставляет реагировать на мышку. Здраво рассудив, я решил, что все равно 19 окон (сплошной, 4*3 блок спецстроений) + 7 двеллов внизу) - это реально не оч хорошая идея.

Теперь корочи смотрите.
Как вытащить гильдии 4- и 5-ого уровней для городов, где они заблокированы изначально...
4
(This post was last modified: 11.07.2020 02:27 by feanor.)
11.07.2020 01:24
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16484
Post: #1429

feanor, огромное спасибо за ценную информацию для будущих поколений.
Пост нужно сохранить.

moderator Wrote:сделано, шеф 118


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

Posts: 223
Post: #1430

Может кто-то подсказать как убрать отряд более правильно? В сейве из 2.9.14 по ссылке ниже второй герой в списке стоит перед Адскими Троглодитами, при атаке на них стек палаток незаконно добавляемых командиром остается видимым пока не походит мой первый юнит, после чего он магически исчезает
https://drive.google.com/file/d/1LxemlYh...sp=sharing

Стек палаток должен быть удален вот этой функцией:

Code:
** x1 == stack ID 0..41
!?FU(zEwmIV_BFDeleteStack);
!!FU|x1<0/x1>41:E;

!!BMx1:F?y4;                               [y4 stack flags]
!!VRy4:|4194304;                           [y4 set sumonned flag]
*!VRy4:|8388608;                           [y4 set cloned flag]
!!BMx1:Fy4;                                [set set new flag]

*!BMx1:T145;                               [set type catapult]

!!UN:C6919200/4/?y10;                      [y10 combat manager]
!!VRy1:Sx1 *1352 +21708 +y10;              [y1 adddress of x1 stack struct]
!!VRy3:Sy1 +233; !!UN:Cy3/1/1;             [y3 TMP set stack lost at least one creature]
!!VRy3:Sy1 +234; !!UN:Cy3/1/1;             [y3 TMP set stack dead]

!!BMx1:F?y4;                               [y4 stack flags]
!!VRy4:|268435456;                         [y4 set sacrificed flag]
!!BMx1:N0 Fy4;                             [set stack monster count to 0 and set new flag]
!!IF:M^Dead %X1^;

*!SN:E4621680/2/y1/51/1;                   [clear dead body]
*!SN:E4797616/2/y1/0/1;                    [refresh battlefield]
*!BU:R;

Если раскаментить !!BU:R; в последней строке то игра упадет, потому что окно битвы еще не открылось. Функция выше по стеку вызовов относится к такому триггеру:

Code:
!?BR&1000;                                [Every turn of batle]
!!SN:W^zEwmIV_mod_on^/?y1; !!FU&y1<>1:E;  [Exit if mod disabled]

!!FU&v997<>-1:E;                          [Exit if not a turn -1]

вот тут еще родительская функция и вызывается

   Т.е. функция удаления стека срабатывает на !?BR для хода -1.
(This post was last modified: 11.07.2020 03:19 by Zur13.)
11.07.2020 03:18
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #1431

Quote:остается видимым пока не походит мой первый юнит, после чего он магически исчезает
Zur13, а если ты сам его вернёшь "на свет", сделав вновь видимым?
Quote:Таблица известных значений для BM:G:
-100: Видимость существа (4 - виден, 8 - не виден)
11.07.2020 05:02
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1432

(11.07.2020 05:02)Bes Wrote:  Zur13, а если ты сам его вернёшь "на свет", сделав вновь видимым?

Таблица известных значений для BM:G:
-100: Видимость существа (4 - виден, 8 - не виден)

Так мне наоборот нужно чтобы он вообще не появлялся, начинается битва, я на ходу -1 удаляю стек палаток с поля битвы, а он остается видимым с 0 существ пока не походит другой стек, причем пока он видим на него можно навести мышкой, для него работает правый клик, но вот массовые заклинания вроде метеоритного дождя на него не действуют. Но после любого действия выстрела или магиии на поле боя он исчезает, без анимации смерти просто растворяется.

Попробовал сделать его "невидимым", не помогло:

Code:
!!BMx1:G-100/8/d;                          [set stack invisible]
(This post was last modified: 11.07.2020 12:07 by Zur13.)
11.07.2020 12:07
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1433

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


но это не помогает.
(This post was last modified: 12.07.2020 11:41 by Zur13.)
12.07.2020 03:43
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16484
Post: #1434

Zur13, странно, сам не проверял, но отрицательная в теории должна была работать. Видимо, в алгоритме прошито при возможности атаковать хоть кого-то нейтралами. Получилось решить вопрос?


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

Posts: 223
Post: #1435

(12.07.2020 12:18)Berserker Wrote:  Zur13, странно, сам не проверял, но отрицательная в теории должна была работать. Видимо, в алгоритме прошито при возможности атаковать хоть кого-то нейтралами. Получилось решить вопрос?

Нет, я просто пока поставил делитель, но ситуация осталась таже, когда стек нейтралов просчитывает ходы, для остальных стеков игрока варианты самые разные от -50000 до +5000, сам стек элементалей изначально оценивается в +7000..+10000, я ему принудительно ставил разные значения и +50 и 0 и -5000 и -175000, но нейтралы во всех случаях разворачиваются и бегут бить элементалей.
Правка: в обычных турнирных играх такое поведение используется для отманивания стеков, например выделяется перед битвой единички, которые подставляются таким образом чтобы как можно дольше ИИ стеки не подходили к стрелкам, но баллиста упрощает этот процес, потому хотелось бы как-то на это влиять.
(This post was last modified: 12.07.2020 12:51 by Zur13.)
12.07.2020 12:29
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #1436

(13.07.2020 00:23)Zur13 Wrote:  я когда эксперементировал с кодом убийстива стека в какой-то момент пробовал поставить ему 0 жизней и забыл, в обычной битве это ни на что не влияло. Странно что в быстрой битве на такой стек кто-то пытается напасть ведь он помечен мертвым через

Code:
!!UN:C6919200/4/?y10;                      [y10 combat manager]
!!VRy1:Sx1 *1352 +21708 +y10;              [y1 adddress of x1 stack struct]
!!VRy3:Sy1 +234; !!UN:Cy3/1/1;             [y3 TMP set stack dead]


Zur13, щас же короче можно делать (era2,9,14+)
13.07.2020 00:35
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2269
Post: #1437

(13.07.2020 00:35)Bes Wrote:  

Вообще-то если по этому адресу записать 1, то игра будет считать отряд живым, но избитым. На труп - вроде как следующий байт.
13.07.2020 01:17
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #1438

Stop мы рзные исходники смотрим?
Code:
// +E9 db = 1, если умирал хоть один
// +EA db = 1, если был убит весь стэк
EA = 234
13.07.2020 01:20
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2269
Post: #1439

(13.07.2020 01:20)Bes Wrote:  Stop мы рзные исходники смотрим?

Конечно разные. У меня ж моповские 148 . По ним как-то так:

;E8 - Флаг_монстра_нужно_ударить_Огненным_Щитом
;E9 - Флаг_если_хоть_раз_монстра_били
;EA - Флаг_если_умирал_хоть_один
;EB - Флаг_если_был_убит_весь_стек

Но по факту в игре там всегда нули 148 , поэтому в MoP оно закомментировано и не используется.

Например на ту же трупность - проверка соответствующего флага монстра (1) + текущее здоровье (0), а совсем не 234-й байт в структуре.
(This post was last modified: 13.07.2020 01:41 by XEPOMAHT.)
13.07.2020 01:38
Find all posts by this user Quote this message in a reply
Элементалист Offline

Posts: 31
Post: #1440

Есть ли разница между разломами элементалов и алтарями? т.е. если я к примеру хочу заменить двеллинги элементалов, мне придётся заменять графику обоим жилищам?


начинающий скриптописец с грандиозными планами...
13.07.2020 16:31
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