Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).

Moderator: Moderators

User avatar
alekssandros
Leprechaun
Leprechaun
Posts: 45
Joined: 18 Jun 2019

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby alekssandros » Oct 13 2020, 4:44

Eksekk wrote:
alekssandros wrote:Question: There is some way to chage the TIMESCALE of the game? By the way, which is the timescale from MM678?


What do you mean by timescale?


timescale = How much time pass in game compared with real time. 1:1 would be 1 min in game 1 min in real time. Elder Scroll 3, 4 and 5 use 1:30

User avatar
Roxterat
Peasant
Peasant
Posts: 59
Joined: 28 Jun 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby Roxterat » Oct 14 2020, 1:45

cthscr wrote:Once again: regular peasants, guards, pirates - all have NPC_ID=0. Check mon.Group. Check mon.Group!

Code: Select all

for k, v in Map.Monsters do
  print(k, v.NPC_ID, v.Id, v.Group, Game.MonstersTxt[v.Id].Name)
end


Yes, they do, but once you place a monster on map using command:

local mon = SummonMonster(1, Party.X, Party.Y, Party.Z, true)

they seem to not always have their portraits and they only say:
"If the pirates make it through our warriors we are certainly doomed!"

I just wanted to know where I can find which mon.NPC_ID belongs to whom..

User avatar
Roxterat
Peasant
Peasant
Posts: 59
Joined: 28 Jun 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby Roxterat » Oct 14 2020, 11:02

Might be streaming on Twitch soon!

https://www.twitch.tv/roxterat
Last edited by Roxterat on Oct 16 2020, 7:55, edited 1 time in total.

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 17 2020, 7:17

Roxterat wrote:
cthscr wrote:Once again: regular peasants, guards, pirates - all have NPC_ID=0. Check mon.Group. Check mon.Group!

Code: Select all

for k, v in Map.Monsters do
  print(k, v.NPC_ID, v.Id, v.Group, Game.MonstersTxt[v.Id].Name)
end


Yes, they do, but once you place a monster on map using command:

local mon = SummonMonster(1, Party.X, Party.Y, Party.Z, true)

they seem to not always have their portraits and they only say:
"If the pirates make it through our warriors we are certainly doomed!"

I just wanted to know where I can find which mon.NPC_ID belongs to whom..

"You're doing it wrong." So, you have summoned monster of Id==1. Let's look into 'Data/Tables/Bolster - monsters.txt'. Aha, it has Peasant in ExtraType (and Creed also). So the MM8 engine will always consider it as MonsterKind==Peasant. Which as you may guess has special hardcoded processing. So you better don't use peasant monster types for anything but peasants.

Now, NPC_ID. This tells us that current map monster is an NPC from NPCData.txt (and Game.NPC[] as well). With it's own name, portrait, topics etc. Like S'ton has NPC_ID==27 in Merge (and 31 in vanilla MM8 with 27 being Pyrannaste - easiest way to get tons of XP in Comm Merge is to load from vanilla MM8 save and wait for S'ton event; all NPCs will be broken though). You can link peasant to NPC (via NPC_ID) but he will still be considered as peasant (with addition of personal name, portrait, topics, etc).

Now, to the guards. As you may guess from my tips there are several mon.Group related to guards. Even without any additional code you can detect eight suspicious Lizardman Sergeants with Group==38 (map monsters 53-60 with Id==5). Yes, they are guards. Note that other map monsters with Id==5 aren't guards (Group 12 or 13). Also note that in MM7 and MM6 maps guards are Group 55. I suspect you can link guard to NPC as well (though never checked).

Mirondor
Leprechaun
Leprechaun
Posts: 23
Joined: 25 Feb 2019

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby Mirondor » Oct 18 2020, 0:19

Brothers!
Would it be possible to make a table files able to create new skills based on something?
For example i want to create a new skill for knight called "combat tactics", and it would base on armsmaster, so i'd have 2 armsmaster skills, and one of them called combat tactics for example.
Or a new skill for mages like "Occultism" based of fire magic ect...
I think that would be cool!

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 18 2020, 18:24

raekuul wrote:The modified data itself (and probably the map definition files as well) can be distributed as part of the mod package as they're relatively small after compression. I'm mostly thinking of pulling assets (Anims and Music and other graphical stuff) specifically from already-installed MM6/7 to save on space.

"Other graphical stuff" is modified in various ways. There's no history I'm afraid.
raekuul wrote:Definitely would need Rodril and his toolset to figure out what can be sourced from existing installs vs what would need to be redistributed. At the very least, locally sourcing the Anims and Music would cut the mod download size from 1.6 GB to 800 MB

Some deduplication is needed also. Right now there are three 3DO logos, three JVC logos and two NWC logos in Magicdod.vid. There are fonts in EnglishT.lod and icons.lod.
raekuul wrote:It should also be possible to distribute patch files (I'll look around to see what's a good fit; xdelta comes to mind) for the MM8 assets that are getting changed. The fewer raw assets being redistributed, the better.

lod is an archive and GrayFace has added support of having lod in multiple files. Rodril had started with merging lods (icons.lod and EnglishD.lod at least) which is not the greatest way IMHO.
We have 6 lods in Data came from MM8: bitmaps.lod, EnglishD.lod, EnglishT.lod, games.lod, icons.lod, sprites.lod. No one is left unmodified. And I'm not sure what is amount of unchanged data in MM8 files from these lods.
I was thinking about tomchen1989's mmarch (https://www.celestialheavens.com/forum/10/17118) if lod merge will be required. Though it shouldn't.
raekuul wrote:E: Yeah, any files with a shared name between the mod and MM8's base game should be diff'd instead of being provided wholesale (looking at the Anims here, but providing a patch for MM8.exe instead of redistributing the executable directly is less of a legal grey area),

mm8.exe is just patched by GrayFace's patch. No additional modification (as there is no difference found with GOG version patched by MM8Patch 2.4.1; checked by vbindiff).
Side note: we probably need to take GrayFace's modifications to MM7 done by his MM7Patch 2.4 unless they are already merged.
raekuul wrote:and depending on how Rodril pulled the MM6/MM7 graphical assets we can either redistribute the tools with a script wrapper or else write new extracting/patching tools from scratch to redistribute with the mod (I really hope for the former since that's already done) and pull the data player-side.

It looks like most of the bloat comes from the MM8 assets being redistributed wholesale instead of being diff/patched, so we can save a lot of space just from optimizing that part. I'll look around for a good diff/patch tool for this. xdelta patching comes to mind but we need something that can be used with shell scripting (to automate as much of the process as possible)

Well... According to mmarch there is no one unmodified file in EnglishD.lod (compared to GOG MM8 one). Wonder what size of the patch we will get.

Several things could be done (even before all that). EnglishT.lod, EnglishD.lod and icons.lod should be split. MM7 and MM6 items icons should unconditionally have "7" and "6" prefixes accordingly (you could remember that "boot on face" feature). Same could be applied to players face icons and voice sounds.

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 18 2020, 18:29

Mirondor wrote:Would it be possible to make a table files able to create new skills based on something?
For example i want to create a new skill for knight called "combat tactics", and it would base on armsmaster, so i'd have 2 armsmaster skills, and one of them called combat tactics for example.
Or a new skill for mages like "Occultism" based of fire magic ect...

Heavy (really heavy) patching of mm8.exe would be required. Each new skill should be hardcoded into game engine code (in multiple places). Players skill list should be put somewhere else. Every offset entry (hundreds of them) should be changed. I'd say it's easier to add sixth party member than new skill.

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 18 2020, 19:12

Eksekk wrote:Would it be possible to introduce some delay when casting town portal before you can click on cities? 0.5 sec should be enough. Doubleclicking happens often, which is very annoying. It didn't happen in vanilla (town portal here was modified, which is probably why). The same happens with dimension door.

Fellow MouseLook user? Have you tried press CapsLock before casting Town Portal?
Wormwood wrote:I just spent 20 min typing up a rant about the racial skills.... in the end it seems most of my confusion was due to the tracker's table of the same being rather out of date. L. Elves don't get a master bow racial bonus, D.Elves DO get a +1 Merc bonus (I think?), Dracoliches can only learn expert Dragon ability. If the table in the tracker could be updated to reflect how the racial skills function currentlyI'd appreciate it!

You are using some additional modification. Additional modifications can differ. (And since you didn't mention if it's Base Merge or Community Branch, it's even harder to guess.)
Wormwood wrote:Is it possible to have the starting skill slots completely empty during character creation?

No, AFAIK.
Wormwood wrote:only the living dragon necromancer was able to learn dodge and unarmed, while the D.Elf wth Dragon class and undead dragons all were unable to learn the unarmed/dodge skills. I guess my question is, bug or feature?

Depends on your Merge version and additional modification. Dark Elf shouldn't get Dragon racial bonuses anyway. Undead Dragon has Undead race in Base Merge and nothing can be done here. In Community Branch Undead Dragon has Undead Dragon race, so his racial bonuses can be tuned. I guess you're using 'Race Skill Alternate' modification (which is broken [in other way] since based on wrong assumption of how race skills work [I mean second number in field value - it's added to maximum of first number and current class value]) - it hasn't been tuned since new race system was implemented, so Undead Human and Undead Dragon have almost the same bonuses. I don't maintain this modification so you'd better ask majaczek about any possible changes.
Kraust wrote:my hd texture for mm678 marge mode ( only mm7 ). needs GrayFace patch

Awesome! Thank you! Merge itself requires GrayFace patch so no need to mention.
Kraust wrote:help me choes best version textures

I'd say v1.
Eksekk wrote:Another suggestion. Add dark/light resistance (preferably as an optional toggle)?

They are already present (if we speak about player resistances) but don't affect anything. I'm planning to code them [one day] into 0x48CDA6 (CalcDamageToPlayer) together with Physical and Energy (field was used previously by Magic) resistances, with all 11 fields to be used.

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 19 2020, 17:24

cthscr wrote:
raekuul wrote:Probably the most important buff Blasters could receive is making the Hive Core immune to anything that isn't a Blaster (as it should be).

Blasters always deal melee physical damage in MM8. While it can be easily fixed for ranged attack (with object 135), I'm not sure about melee range.

Upd: also they should be non-immune to anything with damage type different to 0-4,6-10. Like dragons (who have damage type 50)...

If you want your blasters to hit immune creatures:

Code: Select all

-- Fix Blaster Damage Type
mem.asmpatch(0x437009, [[
mov ecx, dword ptr [ebp-8]
mov dword ptr [ebp-0xC], 0xC
jmp absolute 0x437243
]])

Looks like this patch affects melee as well.

And here is debuff for Dragons:

Code: Select all

-- Make Dragon Attack to be of Fire damage type
mem.asmpatch(0x43710C, [[
mov dword ptr [ebp-0xC], 0
]])
Last edited by cthscr on Oct 19 2020, 18:09, edited 1 time in total.

Eksekk
Leprechaun
Leprechaun
Posts: 12
Joined: 19 Jul 2016

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby Eksekk » Oct 19 2020, 17:51

cthscr wrote:
Eksekk wrote:Would it be possible to introduce some delay when casting town portal before you can click on cities? 0.5 sec should be enough. Doubleclicking happens often, which is very annoying. It didn't happen in vanilla (town portal here was modified, which is probably why). The same happens with dimension door.

Fellow MouseLook user? Have you tried press CapsLock before casting Town Portal?


Yes, I am using MouseLook and no, I didn't test disabling it. Will test asap. Though a fix requiring no workaround would still be appreciated.

Anyways, if I want to disable positive reputation on Enroth (because massive discounts can be reached almost immediately and it ruins the gold economy), can I use evt.Set("Reputation", 0) safely? I peeked inside reputation.lua and saw some stuff related to multicontinent reputation, wouldn't it break them?

cthscr
Scout
Scout
Posts: 167
Joined: 12 Jan 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby cthscr » Oct 19 2020, 18:16

Eksekk wrote:Yes, I am using MouseLook and no, I didn't test disabling it. Will test asap. Though a fix requiring no workaround would still be appreciated.

One can try to find the root reason of this bug and add it to the issue: https://gitlab.com/templayer/mmmerge/-/issues/73
Eksekk wrote:Anyways, if I want to disable positive reputation on Enroth (because massive discounts can be reached almost immediately and it ruins the gold economy), can I use evt.Set("Reputation", 0) safely? I peeked inside reputation.lua and saw some stuff related to multicontinent reputation, wouldn't it break them?

I haven't seen anything related to cross-continent reputation (it's per-continent). Using evt.Set shouldn't affect anything but current continent. So I'd say you can use it.


mergefan
Leprechaun
Leprechaun
Posts: 1
Joined: 22 Oct 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby mergefan » Oct 22 2020, 10:19

Dear Rodrill,
I am new here.
I do love the merge of MM6-8

I also created some Ideas if you are interested let me know

Best
Roland

zealot
Leprechaun
Leprechaun
Posts: 3
Joined: 31 Jan 2019

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby zealot » Oct 22 2020, 18:02

@Kraust thank you for your work !
Is it possible to have a single archive with all your upscaled textures ? It would be cool to have a place where we can find the newest version of the textures.

Kraust
Leprechaun
Leprechaun
Posts: 27
Joined: 01 Feb 2020

Re: Might and Magic 6, 7, 8 merge based on mm8 engine. [upd. 12.07.2020]

Postby Kraust » Oct 22 2020, 19:26

zealot wrote:@Kraust thank you for your work !
Is it possible to have a single archive with all your upscaled textures ? It would be cool to have a place where we can find the newest version of the textures.

i post all news in this thread https://www.celestialheavens.com/forum/ ... start=5960


Return to “Might and Magic”

Who is online

Users browsing this forum: No registered users and 11 guests