MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

The role-playing games (I-X) that started it all and the various spin-offs (including Dark Messiah).
User avatar
Vinevi
Leprechaun
Leprechaun
Posts: 48
Joined: 17 Jul 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vinevi » 28 Jun 2020, 14:25

For me it turned out that portals are too big of a deal for almost nothing. I mean the performance doesn't seem to drop too badly, probably unless going for a really huge map and automap being revealed right away is alright. So the object mode seems fine as for now. I have made a small sample map using textures from Minecraft as a little showcase:
https://youtu.be/rBuNyAvVqfE
https://imgur.com/a/4WEEUok
The _Invisible_ texture is really helpful for making invisible walls and movement helpers. For example in this map blocks themselves are too high to just step over them so I've used _Invisible_ texture like that:
https://imgur.com/hndpUVz
To make slides to help moving around. Clip texture is used in Quake to achieve similar results.
Last edited by Vinevi on 28 Jun 2020, 14:30, edited 4 times in total.

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby cthscr » 30 Jun 2020, 14:45

GrayFace wrote:
cthscr wrote:Oh, I'm already logging them. Problem is two actions 113 are used to quit from subscreen. And I'm unable to do two actions at once [at least yet]. Looks like action 113 supposes to clear actions queue if Param2 is 0. Setting it to something else won't help though.
There's a function for exiting a single house screen: mem.call(mmv(0x4A4AA0, 0x4BD818, 0x4BB3F8), 0) (or Game.ExitHouseScreen() in current version from Github). You can exit all house screens like this:

Code: Select all

while mem.call(mmv(0x4A4AA0, 0x4BD818, 0x4BB3F8), 0) ~= 0 do
end
-- then add action 133 which would close house dialog properly
Also note the ability to call the function that processes actions like this: mem.call(mmv(0x42ADA0, 0x4304D6, 0x42EDD8), 0)
Surprisingly, the easiest method to kick party out of shop was to set this shop ban expiration time into the future (even 2 ticks was enough for me).
MM8, for houses 1 - 52:

Code: Select all

mem.i8[0xB211D4 + 8 * HouseId] = Game.Time + 2
Since I tried to set up ban, I've got exit for free. Found at 0x4431C6.

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby cthscr » 06 Aug 2020, 06:50

GrayFace wrote:
Please take a look at https://gitlab.com/templayer/mmmerge/-/issues/663
There could be a serious flaw in MMExt evt interaction.

User avatar
Vinevi
Leprechaun
Leprechaun
Posts: 48
Joined: 17 Jul 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vinevi » 16 Aug 2020, 13:01

Is there any way to extend data tables using similar approach as with patch LODs? For example if I were to add a single custom monster I will need to replace the entire tables, which could've been modified prior as well, breaking compatibility with the other mods. By extending I mean creating a separate file with new entries, with some unique prefix. Having something like that will allow making and sharing small scale mods much easier.
Last edited by Vinevi on 16 Aug 2020, 13:02, edited 1 time in total.

Rodril
Swordsman
Swordsman
Posts: 556
Joined: 18 Nov 2016

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Rodril » 16 Aug 2020, 14:34

I don't think there is. I'm thinking about it for quiet long time now, but have no idea, how to implement it yet.

User avatar
Vinevi
Leprechaun
Leprechaun
Posts: 48
Joined: 17 Jul 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vinevi » 16 Aug 2020, 17:56

That will be a really nice addition. In theory it can be done by just appending all extra tables to the main one while the game is loading in a similar way as the bin files are generated, but I know nothing about how the patch works so can't be sure. I remember that the 2D locations are accessed by IDs from the tables so that's probably the most problematic area.
One more idea I had is to have some way for a player to access custom maps. A feature very similar to town mirrors in Swords of Xeen where player is asked for a code word and if it matches something the player will be teleported there. That skips the step where it is necessary to embed a newly created map into the world and is user friendly if made in a form of NPC.
Last edited by Vinevi on 16 Aug 2020, 18:01, edited 1 time in total.

User avatar
Anerag
Leprechaun
Leprechaun
Posts: 32
Joined: 20 Jan 2019

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Anerag » 18 Aug 2020, 12:14

After compiling an indoor map in MM6 some double doors break. I believe the merge mod has the same problem. One of the doors opens normally but the other "opens" and leaves an invisible wall. I'd like to know if this will ever get fixed. Are there any workarounds?

Couple of examples I found: first, double door right at the entrance in temple of baa. Second, the very last bit of the abandoned temple, the double doors leading to the room with a chest.

User avatar
raekuul
War Dancer
War Dancer
Posts: 398
Joined: 05 Jul 2019

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby raekuul » 18 Aug 2020, 18:20

This also happens at the double door in the Lair of the Wolf

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby cthscr » 09 Sep 2020, 15:47

I have an asmpatch:

Code: Select all

	-- Fix Day of the Gods, Deadly Swarm and Flying Fist spell selection for monsters.
	DayGods, DeadlySwarm, FlyingFist = "Day-o-Gods", "Deadly", "Flying"
	mem.asmpatch(0x4524B3, [[
	jnz short @daygods
	push 0x44
	jmp absolute 0x4520EB
	@daygods:
	push ]] .. mem.topointer(DayGods) .. [[;
	push dword ptr [edi+4]
	call absolute 0x4DA920
	test eax, eax
	pop ecx
	pop ecx
	jnz @swarm
	push 0x53
	jmp absolute 0x4520EB
	@swarm:
	push ]] .. mem.topointer(DeadlySwarm) .. [[;
	push dword ptr [edi+4]
	call absolute 0x4DA920
	test eax, eax
	pop ecx
	pop ecx
	jnz @fist
	push 0x25
	jmp absolute 0x452485
	@fist:
	push ]] .. mem.topointer(FlyingFist) .. [[;
	push dword ptr [edi+4]
	call absolute 0x4DA920
	test eax, eax
	pop ecx
	pop ecx
	jnz absolute 0x4524BC
	push 0x4C
	jmp absolute 0x452485
	]])
If variables were made local, only the pointer to the last one will point to actual ascii data. Should I do it some other way or is it buggy a bit?

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Eksekk » 05 Oct 2020, 17:50

Whenever I try importing any object in MMEditor (exported from existing map, I'm total noob at 3D graphics) it either doesn't appear or appears totally out of place (not before/at the party, but large distance from expected location). Any ideas what might cause this? Maybe objects are exported with extra space around them, which needs to be removed in some way?

EDIT: It seems that location is "hardcoded" in OBJ file, is there no other way than to export them with correct location? My described behavior (create model where party currently is) seems much more intuitive.
Last edited by Eksekk on 05 Oct 2020, 23:12, edited 2 times in total.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

User avatar
Vinevi
Leprechaun
Leprechaun
Posts: 48
Joined: 17 Jul 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vinevi » 06 Oct 2020, 15:06

Objects are imported relatively to the scene so the best way to deal with it will be to export the entire map into a 3D editor and then position objects based on it. Or to move the object manually in MMEditor after it is imported.

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Eksekk » 08 Oct 2020, 22:11

Vinevi wrote:Objects are imported relatively to the scene so the best way to deal with it will be to export the entire map into a 3D editor and then position objects based on it.
Thanks for your tip, it was very helpful. I can now import any object on any outdoor map anywhere I want! :)

Another question. I tried making an indoor "map" - just a simple cube for testing, however when I flew into it I couldn't see any sides (of course "no dark" was turned on). When I tried disabling editor while inside the cube i was teleported on top. However when I removed the top face, now it behave like a normal dungeon and I could jump around in the cube. How do I make this behavior happen without removing any faces (having a solid object)?

I'm sorry if my questions are explained by more experience in 3D modelling, currently I haven't got much of it.

Edit: Problem solved, you just have to select entire object and flip normals. It's working now :-D
Last edited by Eksekk on 08 Oct 2020, 22:33, edited 2 times in total.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

Eksekk
Assassin
Assassin
Posts: 259
Joined: 19 Jul 2016

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Eksekk » 08 Nov 2020, 22:05

Is there any way to make monsters on one map friendly with scripts in MM 7-8? Grayface's example script is for MM6 and when I adjusted it, it didn't work. The following script also doesn't work (of course I put it in scripts/global folder):

Code: Select all

function events.BeforeLoadMap() 
	if Game.Map.Name == "out06.odm" then
		LocalHostileTxt()
		for i = 0, 88 do -- range this high for testing, should make all monsters friendly, didn't work
			Game.HostileTxt[i][0] = 0 -- tried numbers from 0 to 4 after =, still nothing
		end
	end
end
Last edited by Eksekk on 08 Nov 2020, 22:06, edited 1 time in total.
Unfinished mod by me: MM7 Rev4 mod, MMMerge version.

lightbringer23
Pixie
Pixie
Posts: 130
Joined: 02 Apr 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby lightbringer23 » 15 Nov 2020, 21:15

In MMEditor, when I create a new item of a pile of gold, the gold piece value is zero. You receive zero gp when you pick it up. Anyone know the way to change that? I looked in the "edit" page, but that seemed to just be details for other items. I haven't seen other instances of gold piece piles that were hand placed -- the base game seems to just use the random item spawn method.

How do you place a pile of gold that has the usual random value by pile size?

User avatar
Vaulth516
Leprechaun
Leprechaun
Posts: 33
Joined: 02 Nov 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vaulth516 » 16 Nov 2020, 01:44

Hi, can somehow instruct me on how to get MMEditor opened and running?
I've downloaded the files but don't know where and what to do with them, I would like to mod and add dungeons to MMMerge.

lightbringer23
Pixie
Pixie
Posts: 130
Joined: 02 Apr 2017

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby lightbringer23 » 16 Nov 2020, 02:00

You're in luck -- I just spent the day figuring out how to do that. You'll need both MMEditor and MMExtension. You'll also need MMArchive to make your modifications playable.

Once in the game, press F4 to go into windowed mode. This allows you to see the toolbar on the left side of the screen.

Press New to start a new project. This moves you to a blank area. Press Internal Map to bring up a list of existing maps. This is the easiest way to start -- modifying existing maps.

Once in the loaded map, you can insert objects, spawn points, items, and monsters. Click the button, then Create to place the object. Select Type to change the object from the default.

Save saves your work as a .dat file so you can return to your WIP. When you're ready to place in the game, you need to Compile. This creates the 2 files that the game can read. You'll need to use MMArchive to insert those files into Games.lod. Be sure to start a new game to see the new maps appear in-game.

If you need to change the stats of the thing you placed, you can do that with Edit -- bringing up the debug console. You may need to do this to make certain creatures hostile -- many are non-hostile by default. In order to "save" your changes, you need to execute the contents of the debug console by striking ctrl-enter.

User avatar
Vaulth516
Leprechaun
Leprechaun
Posts: 33
Joined: 02 Nov 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vaulth516 » 16 Nov 2020, 05:02

I got the files for MMEditor, MMExtensionTmp, and MMArchive,

so do I put all the files within those folders in the MM8(Merge) directory,
and do I keep them inside those folders, or move the files themselves into the main MM8 folder?

And I do not run any exe to open the editor, it opens in the game itself?
Last edited by Vaulth516 on 16 Nov 2020, 05:05, edited 1 time in total.

cthscr
Swordsman
Swordsman
Posts: 587
Joined: 12 Jan 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby cthscr » 16 Nov 2020, 08:48

MMMerge already has MMEditor 2.1 inside. Press Alt+F1. And read 'MMEditor Readme.txt' from game directory.

Note: you might not be able to "internal" load maps from MM7/MM6 with 2.1. At least there's no easy way.
Last edited by cthscr on 16 Nov 2020, 08:51, edited 1 time in total.

User avatar
Vaulth516
Leprechaun
Leprechaun
Posts: 33
Joined: 02 Nov 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Vaulth516 » 16 Nov 2020, 11:15

Ok, I got the Editor running, trying to figure out some basics... Damn, this is brutal...

1/ How do I change monster size?
Also, when I clicked on the ground in [New] a window pops up where I can type in codes, what is that coding windows?

2/ how to add an NPC and set up a story dialogue, where would the text file be stored?

and then...
3/ when I clicked on InternalMap, there's only the maps for MM8, how do I load the maps for MM6 and MM7?

Thanks.
Last edited by Vaulth516 on 16 Nov 2020, 17:42, edited 3 times in total.

Dkt
Leprechaun
Leprechaun
Posts: 4
Joined: 08 Dec 2020

Re: MMExtension v2.2 + MMEditor v2.1 Level Editor [June 4, 2019]

Unread postby Dkt » 08 Dec 2020, 18:21

Hey guys. Is there any way to reset areas in mm8 using this editor? Monsters, dungeons and chests? I have cleared all areas in mm8 and i hate wasting in-game time using rest and traveling between different regions waiting for areas to respawn. Thanks


Return to “Might and Magic”

Who is online

Users browsing this forum: No registered users and 57 guests