World of Xeen modding and bux fixing

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

Moderator: Moderators

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: Re:

Postby Rune_Caster » Oct 25 2016, 19:54

GreatEmerald wrote:
Rune_Caster wrote:I added the tavern and blacksmith in Lakeside (I tested them they seem to work with out any bugs) So you won't get the messages "These stairs once led to a tavern, but it was destroyed long ago." and "These stairs once led to a blacksmith shop, but it was destroyed long ago." anymore.


Curious, is there any game code that sets the blacksmith items to some particular values unique to Lakeside, or does it use the item pattern of some other town?


I am curious too, but with out an understanding of how the game codes the blacksmith the equipment generated at lakeside is not going to be "high quality" maybe Wizardstan would know...

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Oct 27 2016, 21:12

Some more bugs with Xeen Indoor (over world) Mao Editor Cedric

When you try to delete new objects/wall objects placed on some maps...

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.OverflowException: Value was either too large or too small for an unsigned byte.
at System.Convert.ToByte(Int32 value)
at XeenIndoorMapEditor.Form1.dgWallObjects_RowsRemoved(Object sender, DataGridViewRowsRemovedEventArgs e)
at System.Windows.Forms.DataGridView.OnRowsRemoved(DataGridViewRowsRemovedEventArgs e)
at System.Windows.Forms.DataGridView.OnRowsRemovedInternal(Int32 rowIndex, Int32 rowCount)
at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged_PostNotification(CollectionChangeAction cca, Int32 rowIndex, Int32 rowCount, DataGridViewRow dataGridViewRow, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell)
at System.Windows.Forms.DataGridViewRowCollection.OnCollectionChanged(CollectionChangeEventArgs e, Int32 rowIndex, Int32 rowCount, Boolean changeIsDeletion, Boolean changeIsInsertion, Boolean recreateNewRow, Point newCurrentCell)
at System.Windows.Forms.DataGridViewRowCollection.RemoveAtInternal(Int32 index, Boolean force)
at System.Windows.Forms.DataGridView.ProcessDeleteKey(Keys keyData)
at System.Windows.Forms.DataGridView.ProcessDataGridViewKey(KeyEventArgs e)
at System.Windows.Forms.DataGridView.OnKeyDown(KeyEventArgs e)
at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
at System.Windows.Forms.DataGridView.ProcessKeyEventArgs(Message& m)
at System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
at System.Windows.Forms.Control.WmKeyChar(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.DataGridView.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
XeenIndoorMapEditor
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Powell/Might%20and%20Magic/Wox%20Files/XeenIndoorMapEditor%202014/XeenIndoorMapEditor.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


When selecting No when it asks if it is darkside and your viewing darkside you get this error...


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at XeenIndoorMapEditor.Form1.DrawWallObjectsIndex()
at XeenIndoorMapEditor.Form1.DrawMap()
at XeenIndoorMapEditor.Form1.btnNext_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
XeenIndoorMapEditor
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///D:/Powell/Might%20and%20Magic/Wox%20Files/XeenIndoorMapEditor%202014/XeenIndoorMapEditor.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Oct 28 2016, 5:41

https://www.dropbox.com/s/1o9ypvclvuzl4zv/Changelog.png?dl=0 How does this look? In addition I have added + 25 to everything after you complete the dungeon of death and get the Super Goober Award. (I noticed the typo for "Intellect")
Last edited by Rune_Caster on Oct 28 2016, 12:56, edited 1 time in total.

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Oct 30 2016, 15:37

I checked 0x6B InParty it looks like the game uses 24/32 in party slots to prevent re-use of some items such as the Book of Fire and Book of Electricity in Elinger's Tower placing a marker for 20 for the Book of Fire and at 21 for the Book of Electricity. I used a test to add 1 - 32 via giveortake 0x6B InParty 1 - 32 and the game seemed to continue with out issues. (I did check a save file I found 0x6B InParty for markers 1 - 32 but nothing above 24...)
Last edited by Rune_Caster on Oct 31 2016, 0:14, edited 1 time in total.

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Nov 11 2016, 20:00

I noticed that the Ruby, Emerald, Sapphire and Diamond Smiths on darkside can generate a limited number of one handed weapons or body armor. I could allow them to generate all equipment or just refine the available equipment such as adding some one and two handed weapons with bows and other armor.

!H Weapon
Long Sword 3d3
Short Sword 2d3
Broad Sword 3d4
Scimitar 2d5
Cutlass 2d4
Sabre 4d2
Club 1d3
Hand Axe 2d3
Katana 4d3
Nunchakas 2d3
Wakazashi 3d3
Dagger 2d2
Mace 2d4
Flail 1d10
Cudgel 1d6
Maul 1d8
Spear 1d9
2H Weapon
Bardiche 4d4
Glaive 4d3
Halberd 3d6
Pike 2d8
Flamberge 4d5
Trident 2d6
Staff 2d4
Hammer 2d5
Naginata 5d3
Battle Axe 3d5
Grand Axe 3d6
Great Axe 3d7
Bow
Short Bow 3d2
Long Bow 5d2
Crossbow 4d2
Sling 2d2
Armor
Robes 2
Scale Armor 4
Ring Mail 5
Chain Mail 6
Splint Mail 7
Plate Mail 8
Plate Armor 10
Shield 4
Helm 2
Boots 1
Cloak 1
Cape 1
Gauntlets 1

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Jul 23 2019, 2:08

What do you think of the Gemsmith's event re-write (it can generate any weapon or armor of the gem type)

1 12 3 0 12 0, 0, 104, 4 TakeOrGive
1 12 3 1 60 23, 234, 6, 155, 10 PlayCD
1 12 3 2 5 6, 7, 10, 0, 4 NPC
1 12 3 3 18 Exit
1 12 3 4 12 35, 232, 3, 0, 0 TakeOrGive
1 12 3 5 25 40, 40, 0 CallEvent
1 12 3 6 53 8 DisplayMain
1 12 3 7 48 2, 35 ChooseNumeric
1 12 3 8 56 13, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33 GotoRandom
1 12 3 9 44 36, 57, 0, 0 GiveEnchanted
1 12 3 10 18 Exit
1 12 3 11 44 37, 57, 0, 0 GiveEnchanted
1 12 3 12 18 Exit
1 12 3 13 44 38, 57, 0, 0 GiveEnchanted
1 12 3 14 18 Exit
1 12 3 15 44 39, 57, 0, 0 GiveEnchanted
1 12 3 16 18 Exit
1 12 3 17 44 40, 57, 0, 0 GiveEnchanted
1 12 3 18 18 Exit
1 12 3 19 44 41, 57, 0, 0 GiveEnchanted
1 12 3 20 18 Exit
1 12 3 21 44 42, 57, 0, 0 GiveEnchanted
1 12 3 22 18 Exit
1 12 3 23 56 43, 57, 0, 0 GotoRandom
1 12 3 24 18 Exit
1 12 3 25 44 44, 57, 0, 0 GiveEnchanted
1 12 3 26 18 Exit
1 12 3 27 44 45, 57, 0, 0 GiveEnchanted
1 12 3 28 18 Exit
1 12 3 29 44 46, 57, 0, 0 GiveEnchanted
1 12 3 30 18 Exit
1 12 3 31 44 47, 57, 0, 0 GiveEnchanted
1 12 3 32 18 Exit
1 12 3 33 44 48, 57, 0, 0 GiveEnchanted
1 12 3 34 18 Exit
1 12 3 35 56 33, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100 GotoRandom
1 12 3 36 44 1, 57, 0, 0 GiveEnchanted
1 12 3 37 18 Exit
1 12 3 38 44 2, 57, 0, 0 GiveEnchanted
1 12 3 39 18 Exit
1 12 3 40 44 3, 57, 0, 0 GiveEnchanted
1 12 3 41 18 Exit
1 12 0 42 44 4, 57, 0, 0 GiveEnchanted
1 12 0 43 18 Exit
1 12 0 44 44 5, 57, 0, 0 GiveEnchanted
1 12 0 45 18 Exit
1 12 0 46 44 6, 57, 0, 0 GiveEnchanted
1 12 0 47 18 Exit
1 12 0 48 44 7, 57, 0, 0 GiveEnchanted
1 12 0 49 18 Exit
1 12 0 50 44 8, 57, 0, 0 GiveEnchanted
1 12 0 51 18 Exit
1 12 0 52 44 9, 57, 0, 0 GiveEnchanted
1 12 0 53 18 Exit
1 12 0 54 44 10, 57, 0, 0 GiveEnchanted
1 12 0 55 18 Exit
1 12 0 56 44 11, 57, 0, 0 GiveEnchanted
1 12 0 57 18 Exit
1 12 0 58 44 12, 57, 0, 0 GiveEnchanted
1 12 0 59 18 Exit
1 12 0 60 44 13, 57, 0, 0 GiveEnchanted
1 12 0 61 18 Exit
1 12 0 62 44 14, 57, 0, 0 GiveEnchanted
1 12 0 63 18 Exit
1 12 0 64 44 15, 57, 0, 0 GiveEnchanted
1 12 0 65 18 Exit
1 12 0 66 44 16, 57, 0, 0 GiveEnchanted
1 12 0 67 18 Exit
1 12 0 68 44 17, 57, 0, 0 GiveEnchanted
1 12 0 69 18 Exit
1 12 0 70 44 18, 57, 0, 0 GiveEnchanted
1 12 0 71 18 Exit
1 12 0 72 44 19, 57, 0, 0 GiveEnchanted
1 12 0 73 18 Exit
1 12 0 74 44 20, 57, 0, 0 GiveEnchanted
1 12 0 75 18 Exit
1 12 0 76 44 21, 57, 0, 0 GiveEnchanted
1 12 0 77 18 Exit
1 12 0 78 44 22, 57, 0, 0 GiveEnchanted
1 12 0 79 18 Exit
1 12 0 80 44 23, 57, 0, 0 GiveEnchanted
1 12 0 81 18 Exit
1 12 0 82 44 24, 57, 0, 0 GiveEnchanted
1 12 0 83 18 Exit
1 12 0 84 44 25, 57, 0, 0 GiveEnchanted
1 12 0 85 18 Exit
1 12 0 86 44 26, 57, 0, 0 GiveEnchanted
1 12 0 87 18 Exit
1 12 0 88 44 27, 57, 0, 0 GiveEnchanted
1 12 0 89 18 Exit
1 12 0 90 44 28, 57, 0, 0 GiveEnchanted
1 12 0 91 18 Exit
1 12 0 92 44 29, 57, 0, 0 GiveEnchanted
1 12 0 93 18 Exit
1 12 0 94 44 30, 57, 0, 0 GiveEnchanted
1 12 0 95 18 Exit
1 12 0 96 44 31, 57, 0, 0 GiveEnchanted
1 12 0 97 18 Exit
1 12 3 98 44 32, 57, 0, 0 GiveEnchanted
1 12 3 99 18 Exit
1 12 3 100 44 33, 57, 0, 0 GiveEnchanted
1 12 3 101 18 Exit

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Jul 24 2019, 2:32

Still using Cedric's Indoor/Outdoor editor

Some things I have learned using Cedric's Indoor editor is Events in Wox can be assigned greater then 99, 99 for example there is a Event in Mine 2 that is assigned to 100,100 and all the stat enhancement barrels refer to it after you have drinken from the barrel. You can find the event by editing Maze34 Classic Event Long and searching 100 100 4 1 9 44 1 2 and changing the event to 99,99 and then the event above that and then you will be able to see it in Cedric's editor.

Now in Cedric's Outdoor editor there are some events assigned outside the 32 by 32 grid that appear with [??] in the editor those events cannot be opened unless you assign them to one of the 32 by 32 map grid. I did inform him about this but he has yet to fix it... but I can understand... it might take quite a bit of time...

Opcode 20 is GiveTreasure Not sure what the 66 is for, perhaps it generates all 66 enchantments? but the 2nd number is the enchantment level 0 for no enchantments and 7 for the best enchantments. It also gives treasure such as gold, gems, quest items etc

I was able to add some events to add bows to Level 6 and 7 loots, but that is a separate process that just adds another drop item in the mix that is always a sling, short bow, cross box or long bow on some maps on both clouds and darkside. But I don't know how to fix that internally. There is also the matter of monsters moving twice when you use an item, but I think the reason for that is time doesn't pass (either 1 min or 10 mins) and somehow the game gets confused. not sure... And then there is resting... it is almost non-existent in world of xeen as there are no penalties for not sleeping and the weakness status eventually goes away during normal gameplay anyway if anyone knows how to fix any of this let me know

User avatar
Rune_Caster
Assassin
Assassin
Posts: 293
Joined: 02 May 2010
Location: Attacking you behind a wall (Texas)

Re: So i figured out how to correct a bug in World of Xeen

Postby Rune_Caster » Jul 24 2019, 9:40

How does this look? The totals in the box are the original totals of stats (notice how Luck and Accuracy is very low?)
Image
Last edited by Rune_Caster on Jul 24 2019, 9:51, edited 1 time in total.


Return to “Might and Magic”

Who is online

Users browsing this forum: Google [Bot] and 7 guests