Hello.
Arcomage script now (at least on my two PCs) supports Might and Magic 7.
Also it have been improved a bit - no more tweaking so-called event handler (function at 0x42edd8 - mm8, 0x4304d6 - mm7), variables now stored out of mm.exe module, and their adresses not predefined anymore, and no more such shame as correcting esp register. Scripts for mm7 and mm8 could be easily merged, but i don't want to hurry with it right now.
https://www.dropbox.com/s/926ejhe6d11io ... 7.lua?dl=0
https://www.dropbox.com/s/lwradka3inxe3 ... 8.lua?dl=0
I've found bug, which i can not solve (not to mention crutches), and i dont sure if it is result of my script. My desperate move was to comment whole AM script, and even after it, bug appeared. MM7 GOG, win 7 x64, hardware 3d: dword [0xf8b9b0] does not resetting to 0x0 after intro cinematics. At attempt to load saved game, jump at 0x463373 is not taken, what cause call somewhere to smackw32.dll, attempt to launch cinematics again (i can hear sound) and crash in few seconds. Though i can start newgame, then buggy dword will reset to 0x0 after newgame cinematic. After it i can load any saved game, and bug will not appear anymore untill game will not be restarted. I did not noticed this bug when game was started with software 3d, and on winXP this bug did never appear. Dont want to make wall of text, so in short words, this dword strongly affects showing of every prerenders in the game, not only intro cinematics.
MM7 script with crutch (dword forced to reset to 0x0 on first loading of saved game):
https://www.dropbox.com/s/3a6mraqst7blb ... h.lua?dl=0
J.M. Sower, i did not try, but seems you can easily implement any scripts in new quest system. Add Give, Ungive, Done, Undone, or even Execute into Quest{} Like this:
Code: Select all
Quest{
Slot = A,
Ungive = function(t) Game.PlaySound(130) end,
Texts = {
Topic = "Placeholder",
Ungive = "Test text",
}
}
Give, Ungive, Done, Undone represents current quest state. If you'll use Execute, then you should define each point of topic in it (even message, "Texts" will not work). Use any your commands instead of "Game.PlaySound(130)".
Also, if you can spend some time to debug AM script do this tasks, please:
Download mm8 version script from this post. Install clear version of mm8 somewhere, install patch 2.0, unpack MMExstension, unpack MMEditor, launch game - exit. Put ArcomageMM8.lua into ...scripts\general folder, start new game, open console, type this: StartArcomage(100, 200, 15, 10, 11, 12, 13, 1, 2, 3). I think it will crash again. Find in crash message button like "Show details" or "Technical information", press, printscreen or copy, send it here. After it, launch mm8setup.exe, in Video panel change option to opposite (Software 3d or Hardware 3d), start new game, use StartArcomage again, if it'll crash - send details again.
I ask for this stuff with clear installation because i wonder if crash provided by system or by ingame modifications.