Current time: 25.10.2020, 10:38 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 7146
Post: #211

(20.03.2014 08:59)gamehuntera Wrote:     Вопрос - можно ли задать туману войны свойство возвращаться через неделю после открытия? Всмысле, герой проходит через карту, и на том месте, где он был неделю назад, снова появляется туман войны.
Скриптами это всё можно сделать.
Очень просто сделать возвращение тумана войны в начале каждой недели. Но именно для открытия тумана ровно на неделю потребуется функционал Эры, в частности выделение памяти.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
20.03.2014 12:32
Find all posts by this user Quote this message in a reply
Ivor Offline
Moderators

Posts: 1068
Post: #212

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


Моды (Иные герои, иные заклинания), скины
20.03.2014 17:02
Visit this user's website Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #213

Разобрался с форматом героев, работает.
Непонятен только формат специальности. На форуме heroesworld указано:
Quote:678420h (278420h in exe, similar for SoD and all WoGs, but may not for HotA) - heroes specialities. 28h byte for one hero.
Parameters are similar to HE:X."
В справке по erm написано про HE:X среди прочего
Quote:To make hero keeper of resources
    X2/$1/0/0/0/0/0 or X2/$1
    $1=resource type (see Format R )
Понятно, что если я хочу сделать героя специалистом по золоту, мне нужно прописать в память куда-то в эти 28 байт число 6.
Но какого оно должно быть формата (byte, word, dword), где именно лежать и что нужно помимо него прописывать, чтобы указать, что специальность по ресурсам, непонятно.
Кто-нибудь может с этим помочь?


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
31.03.2014 13:26
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #214

Устанавливаешь специальности через ЕРМ, смотришь в память.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
31.03.2014 16:27
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 570
Post: #215

Все очевидно же. HE:X просит семь параметров, память просит 28 байт, то есть, семь dword.
31.03.2014 17:27
Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #216

Quote:Все очевидно же. HE:X просит семь параметров, память просит 28 байт, то есть, семь dword.
Спасибо, понял.

Оказалось, что там все же не 7, а 10 байт на героя.
Только иконки и описания не поменялись. Второе уже поправил. А вот где лежат иконки, не знаю.


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
(This post was last modified: 31.03.2014 20:53 by Arseniy.)
31.03.2014 19:41
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 570
Post: #217

UN**.def
31.03.2014 22:01
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1369
Post: #218

Code:
struct Структура_специализации_героя
     Dword Тип_специальности
     Dword Подтип_специальности_1
     Dword Подтип_специальности_2
     Dword Подтип_специальности_3
     Dword Подтип_специальности_4
     Dword Подтип_специальности_5
     Dword Подтип_специальности_6
     Dword Название
     Dword Краткое_описание
     Dword Описание
ends


Я на Лит-Нете
01.04.2014 03:34
Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #219

MOP, feanor, спасибо!
Теперь понятно, почему последние три поля поля пустые в ida.

У меня появилась новая интересная идея.
Можно ли добавить несколько новых почв в герои (так, чтобы у замка, оплота и сопряжения у каждого была своя трава, например)?
И можно ли менять почву на клетках карты уже во время игры?
И какой формат у клеток почвы? То есть, в редакторе карт сделать почву размером 1 на X сделать невозможно, минимальный размер по любому направлению 2. Если менять вручную, это будет также?
Я припоминаю, что в какой-то карте вога по-моему были квадраты почвы 1х1, расставленные в шахматном порядке.
И что на деле происходит в тех клетках, где рисунок почвы идет по диагонали? Внутри там одно значение или два?


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
(This post was last modified: 01.04.2014 18:09 by Arseniy.)
01.04.2014 17:54
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7146
Post: #220

Это всё легко и просто можно узнать из ЕРМ-справки. Форматы -> Типы и подтипы почв.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
01.04.2014 20:21
Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #221

Quote:Это всё легко и просто можно узнать из ЕРМ-справки. Форматы -> Типы и подтипы почв.
Спасибо.)
Узнать можно многое, но совсем не все. Адресов памяти и организации в ней там нет.


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
02.04.2014 19:38
Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #222

1) Подскажите, как поправить Horde Growth. Оказалось, что этот параметр в CRTRAITS.TXT не влияет на игру. О_о
2) Как можно изменить параметры вторичных навыков?
3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
(This post was last modified: 05.04.2014 07:38 by Arseniy.)
04.04.2014 21:20
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 570
Post: #223

Quote:Можно ли добавить несколько новых почв в герои (так, чтобы у замка, оплота и сопряжения у каждого была своя трава, например)?
Предположим, нет.

Quote:И можно ли менять почву на клетках карты уже во время игры?
Да.

Quote:И какой формат у клеток почвы? То есть, в редакторе карт сделать почву размером 1 на X сделать невозможно, минимальный размер по любому направлению 2. Если менять вручную, это будет также?
Нет.

Quote:И что на деле происходит в тех клетках, где рисунок почвы идет по диагонали? Внутри там одно значение или два?
Нет. Одно, конечно, в дефы глянь.

//------------------------------------------------------
Quote:2) Как можно изменить параметры вторичных навыков?
Если без подробностей - вот здесь адреса http://forum.df2.ru/index.php?showtopic=6139

Quote:3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?
У тебя чтоль чужих исходников нет?
09.04.2014 03:58
Find all posts by this user Quote this message in a reply
Arseniy Offline

Posts: 123
Post: #224

Quote:У тебя чтоль чужих исходников нет?
Исходников? О_о
Каких?
У меня есть дизассемблированная база под IDA, но во-первых, что-либо найти в ней очень затруднительно, если не знаешь базового адреса, где искать (то есть подходит только, чтобы что-то уточнять), во-вторых, как я понимаю, карта создается в динамической памяти и в иде ее быть не может.
За ответы спасибо, ссылка
Quote:http://forum.df2.ru/index.php?showtopic=6139
очень годная.


- Как я сегодня балагурю?
- Вы прекрасны, сир! (с)
09.04.2014 22:02
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 570
Post: #225

Quote:Исходников? О_о
Каких?
WoG, сергроевская база, HD где-то был, декомпилят по сергрожевской базе.

Quote:У меня есть дизассемблированная база под IDA, но во-первых, что-либо найти в ней очень затруднительно, если не знаешь базового адреса, где искать (то есть подходит только, чтобы что-то уточнять
если это готовая - по названиям ищи

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




Энивей:

Quote:3) Началась игра, загрузилась карта. Как получить ее адрес, адрес клетки на карте?

Адвенчаменеджер
Code:
#define o_AdvMgr (*(_AdvMgr_**)0x6992B8)
В нем
Code:
..
_GameMap_* map; //+92 (десятичное)
..

Или

Игроменеджер
Code:
#define o_GameMgr (*(_GameMgr_**)0x699538)

В нем:
Code:
..
  _MapHeader_ map_header; // +1F86Ch
  _GameMap_ Map; // +1FB70h
..

Теперь:

Code:
NOALIGN struct _GameMap_ : public _Struct_
{
  // Список шаблонов объектов карты.
  _List_<_Template_> Templates; // +0
  // Список объектов на карте.
  _List_<_Object_> Objects; // +16
  
  _byte_ f20[128]; // +32
  
  // Список лагерей героя на карте.
  _List_<_PlaceHolder_> PlaceHolders; // +160
  
  _byte_ fB0[32]; // +176
  
  // Адрес 3-мерного массива [L][Y][X], хранящего свойства объекта каждой клетки карты.
  _MapItem_* items; // +208
  // Размер карты (по-горизонтали и по-вертикали).
  _int_ size; // +212
  // Есть ли у карты подземный уровень.
  _bool8_ has_underground; // +216
  
  _byte_ fD9[3715]; // +217
  
  
  //normal
  // Получение клетки по координатам (из массива items).
  inline _MapItem_* GetItem(_int_ x, _int_ y, _int_ z)
  {
     return CALL_4(_MapItem_*, __thiscall, 0x4086D0, this, x, y, z);
  }
};

Или, если надо чистую UN:C реализацию - вот исходник этой 0x4086D0

Code:
//----- (004086D0) --------------------------------------------------------
int __thiscall GetMapItemPoByXY(int this, int a2, int a3, int a4)
{
  return *(_DWORD *)(this + 208) + 38 * (a2 + *(_DWORD *)(this + 212) * (a3 + a4 * *(_DWORD *)(this + 212)));
}

Теперь сама _MapItem_


Code:
NOALIGN struct _MapItem_ : public _Struct_
{
_dword_  setup; //+0
_byte_  land; // +4
_byte_  land_type;//+5
_byte_  river;//+6
_byte_  river_type;//+7
_byte_  road;//+8
_byte_  road_type;//+9
_word_  field_0A;//+10
_byte_  mirror;//+12
_byte_  attrib;//+13
_word_  field_0E_bits;//+14
_word_  field_10;//+16
_dword_  draw;//+18
_dword_  draw_end;//+22
_dword_  draw_end_2;//+26

_dword_  object_type;//+30

_word_  os_type; //+34
_word_  draw_num;//+36
}


Quote:1) Подскажите, как поправить Horde Growth. Оказалось, что этот параметр в CRTRAITS.TXT не влияет на игру. О_о

Code:
// 642E30: using guessed type int HordeBuildings[4];
..
// 6887F0: using guessed type _HordeBuildingData_ TownHordeBuildings[18];
Code:
00000000 _HordeBuildingData_ struc ; (sizeof=0x10)
00000000 Monster             dd ?
00000004 Count               dw ?                                    ; base 10
00000006 Level               dw ?                                    ; base 10
00000008 UpgMonster          dd ?
0000000C UpgCount            dw ?                                    ; = Level + 7
0000000E UpgLevel            dw ?                                    ; base 10
00000010 _HordeBuildingData_ ends
(This post was last modified: 09.04.2014 23:05 by feanor.)
09.04.2014 22:53
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-2020 MyBB Group