Current time: 22.04.2024, 14:07 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 2270
Post: #1696

(01.02.2021 18:42)Raistlin Wrote:  Собственно, я даже догадался, в чем заключается проблема, но решить я ее не могу.

Копируй ассемблерный код на берсерк, если не получается написать его самостоятельно.

(01.02.2021 18:42)Raistlin Wrote:     "lea edx, [eax-1]" означает, что в edx запишется адрес из eax, а затем будет забрана единица, или же, что в edx запишется значение по адресу, хранящемся в eax, со смещением в -1? А может это будет значение по адресу eax, уменьшенное на 1? Подскажите пожалуйста, а то непонятно, как данная команда работает.

mov edx, eax
dec edx
01.02.2021 21:03
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1697

(01.02.2021 21:03)XEPOMAHT Wrote:  Копируй ассемблерный код на берсерк, если не получается написать его самостоятельно.
Со сменой цели и атакой все нормально, у меня не выходит построить маршрут до цели и вообще узнать, можно ли до нее добраться за определённое количество шагов.

(01.02.2021 21:03)XEPOMAHT Wrote:  mov edx, eax
dec edx
Спасибо 132
02.02.2021 00:38
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1698

Подскажите пожалуйста, где содержится указатель на def объекта? В структуре _MapItem_ я что-то данное поле не вижу...


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

Posts: 2270
Post: #1699

(03.02.2021 01:45)Raistlin Wrote:  Подскажите пожалуйста, где содержится указатель на def объекта? В структуре _MapItem_ я что-то данное поле не вижу...

MapItem.H3Vector<H3ObjectDraw> objectDrawing - a vector of DEFs to draw on this tile.

Если нужна загрузка, то уже здесь:

H3ObjectDetails.setup.

Само имя дефа для загрузки - в H3ObjectAttributes.defName.

Точнее лучше спрашивать у Кавалериста (он хорошо в этом разбирается).
(This post was last modified: 03.02.2021 02:01 by XEPOMAHT.)
03.02.2021 01:51
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1700

Извините за глупый вопрос, но как туда добраться? Может быть Вам известен адрес массива соответствующих структур?


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

Posts: 2270
Post: #1701

(03.02.2021 01:54)Raistlin Wrote:  Извините за глупый вопрос, но как туда добраться? Может быть Вам известен адрес массива соответствующих структур?

Туда лучше не соваться. Структуры _Object_ и _Template_ являются техническими, для моддеров полезного там особо ничего нет (безопасно можно только считывать, все действия - содовскими функциями, либо изменением соответствующих текстовиков).
03.02.2021 13:50
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1702

Спасибо, я понял.


Создал новый глобальный мод: WoG Ultra Edition
03.02.2021 14:01
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1703

Номер объекта на карте - это ведь последнее поле структуры _MapItem_? Или надо где-то еще смотреть?

Сама структура (Click to View)

Судя по исходникам ERM, _MapItem_ тут как-то используется, но логика мне не совсем понятна. Помогите пожалуйста разобраться Ab
Code:
int  v;
...
_MapItem_ *mip=GetMapItem2(MixPos);
_CMGarden_ *stp=(_CMGarden_ *)mip;
...
case 'N': // N# установить номер (5)
v=stp->Number;
Apply(&v,4,Mp,0);
stp->Number=(Word)v;
break;
...
// первые 4 байта для магического сада - настройка в 4C
struct _CMGarden_{ // type 0x37
  unsigned  Number  :  5;
  unsigned _u1      :  1;
  unsigned  ResType :  4; // всегда = 5
  unsigned  HasRes  :  1; // =1 - есть ресурс
  unsigned _u2      : 21;
};


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

Posts: 2270
Post: #1704

(05.02.2021 15:20)Raistlin Wrote:  Номер объекта на карте - это ведь последнее поле структуры _MapItem_?

Да.

(05.02.2021 15:20)Raistlin Wrote:  Судя по исходникам ERM, _MapItem_ тут как-то используется, но логика мне не совсем понятна. Помогите пожалуйста разобраться Ab

Большую статью десятилетней давности про ключевые слова выкладывали даже во вконтакте. Рекомендую ознакомиться, тогда надеюсь будет понятно назначение первых 4-х байтов _MapItem_.
(This post was last modified: 05.02.2021 15:49 by XEPOMAHT.)
05.02.2021 15:48
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1705

Я знаю эту статью, но до этого момента я, правда, не знал, что ключевое слово хранится именно в первых четырёх байтах. Спасибо за информацию! Собственно, что делать, мне теперь ясно, однако одну деталь я все-таки хотел бы уточнить: если номер объекта хранится в последнем поле, то почему тогда его нужно считывать из первого байта?


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

Posts: 2270
Post: #1706

(05.02.2021 16:42)Raistlin Wrote:  если номер объекта хранится в последнем поле, то почему тогда его нужно считывать из первого байта?

В последнем - номер объекта, который моддерам не нужен, это не игровые данные (это для рендера). Внимательнее изучайте структуры (или используйте русские - я пользуюсь русскими).

В первом - сетап или по-нашему - ключевое слово, где находятся сами игровые настройки объекта (разработчики пожмотились на них, увы, поэтому там всё жестко лимитировано, но формат вполне изменяем, например в MoP 2.19 некоторые ключевые слова изменены, чтобы хранить в них больше информации).
05.02.2021 17:11
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1707

Любопытно Ab

Quote:Внимательнее изучайте структуры (или используйте русские - я пользуюсь русскими).
Русские структуры? А где их можно найти, если не секрет?


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

Posts: 2270
Post: #1708

(05.02.2021 17:17)Raistlin Wrote:  Русские структуры? А где их можно найти, если не секрет?

В исходниках MoP. Например мапитем:

Code:
struct MapItem
      контрольное_слово dd ?    ;0
      тип_почвы db ?        ;4
      подтип_почвы db ?        ;5
      тип_реки db ?        ;6
      подтип_реки db ?        ;7
      тип_дороги db ?        ;8
      подтип_дороги db ?    ;9
      db ?            ;A
      db ?            ;B
      Зеркало db ?        ;C
      маска_доступа db ?    ;D бит 1 - проходимость, 2 - water edge see 0x4FEA32, 10h - вход
      db 16 dup (?); H3Vector<H3ObjectDraw> objectDrawing - a vector of DEFs to draw on this tile
      тип_объекта dd ?        ;1E
      подтип_объекта dw ?    ;22 = _AdvMgr_.monsterCountBattle
      номер_отрисовки dw ?    ;24 = _AdvMgr_.monsterTypeBattle
ends

;Зеркало:
;tileH      0x01 -    tileV    0x02
;riverH        0x04 -    riverH    0x08
;roadH        0x10 -    roadV    0x20
;can dig    0x40
;animated    0x80 (river, water or lava terrain)
05.02.2021 17:26
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1709

Благодарю, я понял.


Создал новый глобальный мод: WoG Ultra Edition
05.02.2021 18:53
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1348
Post: #1710

Друзья, подскажите пожалуйста, как можно "триггернуть" определенное место на карте, координаты которого изначально неизвестны? Мне нужно что-то вроде "!?FU(OnLocalEvent %V1024/%V1025/%V1026)", но такой подход, к сожалению не работает, даже несмотря на то, что я заранее создал там событие с помощью UN:I...


Создал новый глобальный мод: WoG Ultra Edition
09.02.2021 19:14
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