Raistlin
Posts: 1349
|
|
24.01.2021 16:51 |
|
Raistlin
Posts: 1349
|
XEPOMAHT, как взять его потом, я и вправду знаю, но... К сожалению, я не знаю, как воспользоваться RedirectMemoryBlock в условиях ассемблера. Правда, у меня имеется иная идея: что, если на месте какой-то не используемой больше функции создать новую, которая будет попросту записывать в какой-то регистр адрес таблицы? Я тогда смогу вызвать ее где-то ещё, сохранив при этом предыдущее значение, хранящееся в регистре, куда-нибудь скопировать указатель, а затем восстановить данные в том регистре, куда я его сохранял.
Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 13.02.2021 13:15 by Raistlin.)
|
|
13.02.2021 13:13 |
|
Berserker
Posts: 16657
|
Посмотреть в исходники Тифона 2.7z можно. Я тоже не знал, но нагуглил же.
Code:
section '.idata' data readable
data import
; Импортируемые процедуры
library kernel32, 'kernel32.dll',\
era, 'era.dll'
import kernel32,\
CreateFileA,'CreateFileA',\
GetFileSize, 'GetFileSize',\
VirtualAlloc, 'VirtualAlloc',\
ReadFile, 'ReadFile',\
CloseHandle, 'CloseHandle',\
VirtualFree, 'VirtualFree',\
WriteFile, 'WriteFile'
import era,\
RegisterHandler, 'RegisterHandler',\
RedirectMemoryBlock, 'RedirectMemoryBlock'
Code:
stdcall [RedirectMemoryBlock], 7D0C90h, 196 * sizeof._Creature_, MonTable
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
13.02.2021 16:56 |
|
Berserker
Posts: 16657
|
|
13.02.2021 21:22 |
|
Raistlin
Posts: 1349
|
Все, теперь понял. Собственно, то, что это воговский адрес, я знаю, проблема была в том, что я пока не разобрался, как находить нужное в воговской секции кода.
Еще раз спасибо за пример, это, правда, не совсем то, чего мне было нужно, но, кажется, я знаю, как мне быть. Я имел ввиду вот эту таблицу:
Code:
MonTable2 rb 59000; вторичные абилки
Counterstrike_Table = MonTable2
AlwaysPositiveMorale_Table = MonTable2+1000
AlwaysPositiveLuck_Table = MonTable2+2000
Arrow_Table = MonTable2+3000
Ballistic_Table = MonTable2+4000
DeathBlow_Table = MonTable2+5000
DeathCloudAndFireBall_Table = MonTable2+6000
Espionage_Table = MonTable2+7000
Fear_Table = MonTable2+8000
Fearless_Table = MonTable2+9000
NoWallPenalty_Table = MonTable2+10000
MagicAura_Table = MonTable2+11000
FireShield_Table = MonTable2+12000
StrikeAndReturn_Table = MonTable2+13000
SpellsCostLess_Table = MonTable2+14000
SpellsCostDump_Table = MonTable2+15000
Skeleton_Transformer_Table = MonTable2+16000
Upgrades_Table = MonTable2+20000
Properties1_Table = MonTable2+24000
Properties2_Table = MonTable2+25000
Properties3_Table = MonTable2+26000
Properties4_Table = MonTable2+27000
Properties5_Table = MonTable2+28000
Immun_Table = MonTable2+29000
GnomResistance_Table = MonTable2+30000
GolemResistance_Table = MonTable2+31000
Spells_Table = MonTable2+32000
Hate_Table = MonTable2+33000
JoustingBonus_Table = MonTable2+34000
ImmunToJoustingBonus_Table = MonTable2+35000
RegenerationHitPoints_Table = MonTable2+36000
RegenerationChance_Table = MonTable2+40000
ThreeHeadedAttack_Table = MonTable2+41000
ManaDrain_Table = MonTable2+42000
MagicChannel_Table = MonTable2+44000
MagicMirror_Table = MonTable2+45000
Sharpshooters_Table = MonTable2+46000
ShootingAdjacent_Table = MonTable2+47000
ReduceTargetDefense_Table = MonTable2+48000
Rebirth_Table = MonTable2+49000
PackAttack_Table = MonTable2+50000
AttackAllMove1 = MonTable2+51000
AttackAllMove2 = MonTable2+52000
PreventiveCounterstrikeTable= MonTable2+53000
RangeRetaliation_Table = MonTable2+54000
RayColor_Table = MonTable2+55000
Ban_Table = MonTable2+56000;
Stun_Table = MonTable2+57000;
ProtectFromShooting_Table = MonTable2+58000;
Делать надо вот так?
Code:
stdcall [RedirectMemoryBlock], (свободный адрес, за которым идет необходимое колличество пустого пространства), 59000, MonTable2
Создал новый глобальный мод: WoG Ultra Edition
|
|
13.02.2021 23:26 |
|
Berserker
Posts: 16657
|
|
14.02.2021 04:29 |
|
V_Maiko
Posts: 610
|
Raistlin, What do you plan to do with MonTable2 in Typhon? Discover new addresses for UN:C?
(This post was last modified: 14.02.2021 05:24 by V_Maiko.)
|
|
14.02.2021 05:21 |
|
Berserker
Posts: 16657
|
|
14.02.2021 15:45 |
|