Wake of Gods Forum | Форум Во Имя Богов

Full Version: Вопросы по моддингу
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(13.09.2015 00:19)Barin Wrote: [ -> ]А изначальный адрес любого другого процесса как определить? Артмани надо?
Артмани слишком мало. Нужна Ida + база героев для неё
Quote:!!EX:R$1/$2/$3/$4
    $1 – есть артефакт или нет (0 = нет, 1 = да)
    $2 – номер артефакта (сейчас только 156)
    $3 – подтип артефакта (опции 0…15 – еще не все используются)
    $4 – количество копий артефакта (0...3)
gamecreator, ты не вкурсе как увеличить кол-во копий арта с 0...3 до 0...6?
Никак, это поле занимает 2 бита.

Ну вообще можно переписать пол-системы опыта отрядов и забрать биты у номера артефакта, раз он бывает только один. Тогда можно будет 0..15. Но это очень сильное колдунство. Мне пытаться?
In my opinion, is not a good solution to increase number, because player will anyway need to remove the extra 5 copies manually then. If it is for WT keys mod, just store each warlord banner then give the extra to hero backpack

This is what I use in army management, all extra banners from combining 4-6 stacks into one go to backpack:
Quote:Но это очень сильное колдунство. Мне пытаться?
Ого как ты сложно спросил. Я тут не в праве решать. Но если конечно же у тебя есть время и желание, это было бы очень замечательно.

Спасибо, Valery. В таком духе я и добавлю этот функионал в HoatkeysWT + прикручу фунцию: быстрое снятие одной еденицы Знамени Полководца с отряда с перемещением его в рюкзак (на какую бы комбинацию кнопок его повесить? [Ctrl+ПКМ] сойдет? А то ЛКМ почти вся уже занята).
Сейчас как раз я делаю умное распределение отрядов по Shift+ЛКМ (равное разделение отрядов) с учетом Знамени и опыта
(17.09.2015 12:25)igrik Wrote: [ -> ]Ого как ты сложно спросил. Я тут не в праве решать. Но если конечно же у тебя есть время и желание, это было бы очень замечательно.
Ну я конечно же попробую, потому что раньше ничего подобного не делал. Но ценности именно в плане управления отрядами я не вижу. Лишние артефакты всегда можно сбрасывать в рюкзак, как верно заметил Valery. Кстати, удаление артефактов при соединении тоже попытаюсь исправить.
А про пол-системы это я преувеличил немного. Слава ООП!

(17.09.2015 01:00)gamecreator Wrote: [ -> ]забрать биты у номера артефакта, раз он бывает только один. Тогда можно будет 0..15.
А можно ещё и убрать бессмысленное поле наличия артефакта и освободить ещё целый бит. Тогда можно будет 0..30 копий иметь (то есть 0..31 артефактов). А если и это мало, то там ещё есть 10 бит неиспользованных. Можно сделать 0..32766 копий если надо. 96-copy
:D
Quote: можно ещё и убрать бессмысленное поле наличия артефакта и освободить ещё целый бит.
и сделать о кол-ве знамен не 0...3, а 1...4 (или в этом духе). или если нет знамени, то устанавливать -1.
Народ, подскажите, а где-то было решение по замене текстов в игре (в частности, интересует текст специализации героя, текст описания втор. навыков) без использования отдельных z-переменных?
А то у меня с ними полный... кризис.
Да, было. Но всё это можно в воговских исходниках найти:
0x698BC4 - таблица названий вторичных навыков, хз зачем она. Подряд идут указатели на строки с названиями.
0x698C34 - таблица описаний вторичных навыков, хз зачем она. Подряд идут указатели на строки, по три строки на навык.
0x698D88 - таблица названий и описаний вторичных навыков, используется игрой (это та, которую я находил). Подряд идут указатели на строки, по 4 стоки на навык (первая - название).
0x679C80 - адрес таблицы специализаций (подменяется вогом). На каждую специализацию сначала идут 7 четырёхбайтовых чисел, потом указатели на три строки (третья - описание, первые две - название какое-то).
Как заменять: создаёшь строковую переменную SN:W, получаешь её адрес и присваиваешь этот адрес вместо геройского родного. Сохранять эти переменные в сейве не нужно.
Это всё может понадобиться переустанавливать каждый раз при запуске игры.
Algor, тут заменено описание базового интеллекта, т.е. через цикл можно заменить все описания


PS: Как ввариант: создать таблицу такого же размера, и заменить указатель старой таблицы на указатель своей таблицы. Так можно вообще?
(18.09.2015 17:19)igrik Wrote: [ -> ]PS: Как ввариант: создать таблицу такого же размера, и заменить указатель старой таблицы на указатель своей таблицы. Так можно вообще?
Ну со специализацией прокатит, а вот с другими мне было бы лень искать их все в коде. Да и смысла так делать я не вижу, когда можно просто подменить строку.

(18.09.2015 17:19)igrik Wrote: [ -> ]!!VRy1:S10; указываем нормер создаваемого слота
Для временной переменной можно и не занимать номер.
Угу, а если не заморачиваться со слотами и использовать это:
feanor Wrote:Получить адрес z-переменной из ert-файла
!!SN:E7824928/1/299000; //299000 - номер.
Пойдет?
Т.е. у меня задача, собственно, текст из ert загнать в описание навыка/специализации и освободить полтора-два десятка z-переменных.
ну а че не пойдет то? Работет жеж

(18.09.2015 18:03)gamecreator Wrote: [ -> ]
(18.09.2015 17:19)igrik Wrote: [ -> ]!!VRy1:S10; указываем нормер создаваемого слота
Для временной переменной можно и не занимать номер.
Можно, но лентяйская натура дает своё, + так проще редактировать, ибо менять всего одно значение, а не во всех местах искать этот номер.
Да, работает, спасибо.
Achievement get!
Code:
; SetArtAll
753313 8B45088B510881E2FF1FC0FF85C0740C8B45144083E01FC1E00D09C28B451083E00FC1E01209C289​51088BE55DC210009090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090
; HasArt
7279C3 8B41082500E003007406B80100000090
; GetArt
728263 B89C00000089EC5DC390909090909090909090909090909090
; ArtCopy (get)
727A63 8B41082500E003007406C1E80D489090
; DelArt
727903 8B410825FF1FC0FF89410889EC5DC390909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; SetArt
7279E3 8B51088B450C81E2FF1FC0FF83E00F81CA00200000C1E01209C2895108B80100000089EC5DC20800​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090
; GetArtNums
768B93 8B41082500E00300C1E80D89EC5DC3909090909090909090909090909090909090909090909090
; TakeArt
728283 8B410889C22500E00300741EC1E80D48740A81E2FF1FFCFF09C2EB0681E2FF1FC0FFB80100000089​510889EC5DC390909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090
; CopyArt
727D53 8B55088B42088B51082500E03F0081E2FF1FC0FF09C289510889EC5DC20400909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; ArtCopy (set)
727A83 8B51088B450881E2FF1FFCFF83F8007D07B801000000EB0D83F81F7C07B81F000000EB0140C1E00D​09C289510889EC5DC204009090909090909090909090909090
Теперь, igrik, потестируй, где именно я накосячил. Кто с опытом и знамёнами играет - можете тоже.
Соединение отрядов я не трогал пока, знамёна всё равно будут теряться. Но с лимитом в 31 шт. это уже не критично.
Reference URL's