Heroes of Might and Magic Community
visiting hero! Register | Today's Posts | Games | Search! | FAQ/Rules | AvatarList | MemberList | Profile


Age of Heroes Headlines:  
5 Oct 2016: Heroes VII development comes to an end.. - read more
6 Aug 2016: Troubled Heroes VII Expansion Release - read more
26 Apr 2016: Heroes VII XPack - Trial by Fire - Coming out in June! - read more
17 Apr 2016: Global Alternative Creatures MOD for H7 after 1.8 Patch! - read more
7 Mar 2016: Romero launches a Piano Sonata Album Kickstarter! - read more
19 Feb 2016: Heroes 5.5 RC6, Heroes VII patch 1.7 are out! - read more
13 Jan 2016: Horn of the Abyss 1.4 Available for Download! - read more
17 Dec 2015: Heroes 5.5 update, 1.6 out for H7 - read more
23 Nov 2015: H7 1.4 & 1.5 patches Released - read more
31 Oct 2015: First H7 patches are out, End of DoC development - read more
5 Oct 2016: Heroes VII development comes to an end.. - read more
[X] Remove Ads
LOGIN:     Username:     Password:         [ Register ]
New Server | HOMM1: info forum | HOMM2: info forum | HOMM3: info forum | HOMM4: info forum | HOMM5: info forum | MMH6: wiki forum | MMH7: wiki forum
Heroes Community > Dimension Gates > Thread: Modding M&M VI,VII,VIII
Thread: Modding M&M VI,VII,VIII
Baronus
Baronus


Supreme Hero
posted August 08, 2017 01:15 PM

Modding M&M VI,VII,VIII

Modding MMVI, VII, VIII has a poor content here. And I want add something interesting because some people want it.
Last question spell editing. My knowlege is that in txt tables we have ONLY TEXT DESCRIPTION! Changing it gives nothing only mod spell text. Real spell effects are codded in exe. I know adresses:
MMVI 0 x 0BDD7E
MMVII 0 x 0E3C5C
MMVIII 0 x OF4884
But here you have mana costs recovery time and maybe something more. All spell construction is codded in other place.
See Grayface MMextension. You have txt table spells and it can be modded too...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
FfuzzyLogik
FfuzzyLogik


Adventuring Hero
posted August 08, 2017 09:52 PM
Edited by FfuzzyLogik at 00:11, 09 Aug 2017.

I'm not sure for each spell how its written. If I read well its mana cost at basic then mana cost at advanced then mana cost at expert then duration then next spell.

The copy paste of data (in MMVI) from the start you asked.
00 00 01 00 01 00 01 00 3c 00 3c 00 3c 00 00 00
00 00 02 00 01 00 00 00 64 00 5a 00 50 00 00 00

If I'm right its :
00 00 : ??
01 00 : mana cost in basic
01 00 : mana cost in advanced
01 00 : mana cost in expert
3c 00 : Time recovery in basic
3c 00 : Time recovery in advanced
3c 00 : Time recovery in expert
00 00 : ??
00 00 : ??
02 00 : mana cost in basic
01 00 : mana cost in advanced
00 00 : mana cost in expert
64 00 : Time recovery in basic
5a 00 : Time recovery in advanced
50 00 : Time recovery in expert
00 00 : ??

As I read, first element is a basic fire/water/earth/air one (reading mana costs) but they have all quite same mana cost. Probalby fire.
The next element get for level 2 spell 2/2/0 so normally its... Air ?? Some error here between the text and real mana cost if elements are in same order than in game. In my old memories, I remember the mana cost of one basic element second spell in advanced skill level is 2 and not 1. According to text file mana cost for the second spell if elemental is 2/1/0.
Third element is samly a basic fire/water/earth/air, probably water.
Fourth element is samly a basic fire/water/earth/air, probably earth.
Fifth element is 1/1/0 so normally its spirit here.
Sixth element is normally mind then seventh body.
Eight is light the ninth is dark (I'm sure cause of mana costs of last spell who's insane for last dark spell).

You're right, text file is only informative.
You know where damages are stored (or duration for benedictions) ?
MMextension gives ability to change spell time recovery but I didn't found how to change other spells proprieties.

Thanks alot,
____________
FfuzzyLogik.

If I'm crazy ? Sure, because its madness to be normal...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Baronus
Baronus


Supreme Hero
posted August 10, 2017 08:05 AM
Edited by Baronus at 08:09, 10 Aug 2017.

I think that spell order is the same like in txt table. 0000 ???? is free area betwen spells. In MM VII, VIII is litlle another...
Spell effects can be modabble in MMVII and VIII as I remember. In VI you have recovery time and cost. But its enough.
If spell has 80 recovery and cost 20 sp. If you give 40 recovery and 10 mp, this spell is 2x more powerfull. You cast it eg. bolt 2 times more a round. So its the same like effect x2. Round is 100.  In this way you can ballanced all magic missiles. Rest spells you can ballanced by mana cost eg. healing.
Spell effects are codded in alghoritms and its more complicated to find and mode. But its dont needed. You can do the same in easiest way as I wrote...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
FfuzzyLogik
FfuzzyLogik


Adventuring Hero
posted August 10, 2017 10:58 AM
Edited by FfuzzyLogik at 23:20, 10 Aug 2017.

Yes and no, affecting damage or amount of healing is intrestsing/important too. For example, the two "basic heal" don't depend on points you placed in the schools. They heal always same amount of HP. So finding how we can change the value may be of use to just add +1/level in body magic for example.

I think its written like "y = ax + b" three times where y is effect, "a" is your level in school and the value is simple but means 1 to the value is placed (1-4 for firebolt, 1-6 for fireball, 1-10 for lightning...) and "b" the basic bonus.
Maybe some other hex are here for duration of spells and if they affect all group or not ?

I find the bonus caracteristics for "luck, intelligence+personnality" is too strong for start... It is 10+2/level in school. I'd simply delete the "+10". They may be written just one time for all those spells ? Not sure.

Someone knows where the table of caracteristic bonus is stored ? The adress. This table determines the bonus for "strengh, intelligence, ...". At start its very nice but after 50, the change of caracteristics don't affect much the bonus. So getting +25 of intellignence just add you very few points of mana max... I'd like to make it increase a bit more frequently at high levels.

I know patches correct damage of mind spell who dealed 1-12/level to 12+1-12/level (bug, because the text file indicates the second damange). But where it is , I don't know...

Thanks,
____________
FfuzzyLogik.

If I'm crazy ? Sure, because its madness to be normal...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Baronus
Baronus


Supreme Hero
posted August 16, 2017 08:57 AM
Edited by Baronus at 09:00, 16 Aug 2017.

HOHO! You are very ambitious. I dont know how to rewrite spells. Will be very good to know but its high level programming knowledge. But all important you can ballace by speed and mana cost.
You have two healings in game. Second depend on skill level.

Good news is that Grayface tell where are bonus points in MMVII and Ive found rest.
Yes past 50 are very bad. One of first thing I mod...
Adresses of bonuses to 7 stats (only 16x lines you must find precise value):
MMVI 0C2860
MMVII 0EDEA0
MMVIII 0FE0E8

But you can do it comforatble by Grayface MMextension for MMVII:
Quote:
local vals = {
   500, 30,
   400, 25,
   350, 20,
   300, 19,
   275, 18,
   250, 17,
   225, 16,
   200, 15,
   175, 14,
   150, 13,
   125, 12,
   100, 11,
   75, 10,
   50, 9,
   40, 8,
   35, 7,
   30, 6,
   25, 5,
   21, 4,
   19, 3,
   17, 2,
   15, 1,
   13, 0,
   11, -1,
   9, -2,
   7, -3,
   5, -4,
   3, -5,
   0, -6
}

for i = 0, #vals - 2, 2 do
   mem.i2[0x4EDEA4 + i] = vals[i + 1]
   mem.i1[0x4EDEE0 + i/2] = vals[i + 2]
end


Put it in ScriptsGeneral.

You must only rewrite these2 adresses for MMVI adding 4*****.
I have all three but maybe you want to train someone?
And for MMVI as I tested 0 must be always 13. This value is in code? MMVII, VIII as you want.
We must think how to mod it...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
FfuzzyLogik
FfuzzyLogik


Adventuring Hero
posted August 17, 2017 01:16 PM
Edited by FfuzzyLogik at 13:41, 17 Aug 2017.

Baronus said:
HOHO! You are very ambitious. I dont know how to rewrite spells. Will be very good to know but its high level programming knowledge. But all important you can ballace by speed and mana cost.
You have two healings in game. Second depend on skill level.

You must only rewrite these2 adresses for MMVI adding 4*****.
I have all three but maybe you want to train someone?
And for MMVI as I tested 0 must be always 13. This value is in code? MMVII, VIII as you want.
We must think how to mod it...

Yes, I'm proably ambitious but this "+10" in caracteristic not depending on your skill level bother me... It makes not very strong to increase the school level and is too strong at start. Just one of these benediction (by spell scroll for example) and you get very high bonus.
This also makes bonus on items you find not very strong (because as said, over 50 in a caracteristic, bonuses are neglictable and so relics who adds 100 and do -40 to an other one are useless)...

There are those healing spells :
- Healing touch (body) 2MP heals (5HP basic ; 7HP advanced ; 10HP expert)
- Heal (spirit) 3P and heals 3-7HP/basic ; 5-9HP/advanced ; 7-11HP/expert
- Heal wounds (body) : 5MP heals 5+(1-2)/level HP, recovery time changes by level, not amount healed.
- Greather heal (body) : 30MP heals 10+2 HP to all caracters, just recovery time changes by level.
- Share life (spirit) : Share HP +1HP/level in basic, +2HP/level in advanced and +3HP/level for expert.
- Divine Intervention (light) : heals all and regererates all mana ; cost 10 years age ^^...

Thanks alot by seraching (and finding) adress in MMVI !
At "0C2860" I got (for MMVI) :
f4 01 90 01 5e 01 2c 01 13 01 fa 00 e1 00 c8 00
af 00 96 00 7d 00 64 00 4b 00 32 00 28 00 23 00
1e 00 19 00 15 00 13 00 11 00 0f 00 0d 00 0b 00
09 00 07 00 05 00 03 00 00 00 00 00 1e 19 14 13
12 11 10 0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03
02 01 00 ff fe fd fc fb fa 00 00 00 01 02 03 04
You told "only 16 lines", you mean 16 different values ? But in table there is 28 values... I'm not sure I understand well...

If table must have the same size I was thinking about something like :
Statistic  Effect
350        32
300        30
250        28
200        26
160        22
140        20
120         18
100         16
90         15
80         14
70         13
60         12
55         11
50         10
45          9
40          8
36          7
32          6
28          5
25          4
22          3
19          2
16          1
13          0
11           -1
9           -2
7           -3
5           -4
0           -5
But if its possible to change the size of table, I'd appreciate to add more values in it (to make increase more stats and not add "+5 at end"). Will it work if its done with MM7 tool ?

For grayface MMVII extension the 1.52 is good or need an other version ? (Its for MMVI no ?) ?
I found the .lua file ! I just copy paste what you posted before (changing the values I want) ?

Thanks alot for your attentions,
____________
FfuzzyLogik.

If I'm crazy ? Sure, because its madness to be normal...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Baronus
Baronus


Supreme Hero
posted August 17, 2017 08:48 PM
Edited by Baronus at 06:13, 19 Aug 2017.

- Healing touch (body) 2MP heals (5HP basic ; 7HP advanced ; 10HP expert) }}} 9 exp?
- Heal (spirit) 3P and heals 3-7HP/basic ; 5-9HP/advanced ; 7-11HP/expert
...
Its the same.

- Heal wounds (body) : 5MP heals 5+(1-2)/level HP, recovery time changes by level, not amount healed.
...

I mean this. Progress with skill points.
...

f4 01 its 500 and max bonus = 30. This adress begins table.

For all game another example:

You must only change these values.

mem.i2[0x4EDEA4 + i] = vals[i + 1]
mem.i1[0x4EDEE0 + i/2] = vals[i + 2]

...

For MMVII first adress is 0EDEA4 you must add 4***** = 4EDEA4
Second adress is always 60 bytes higher = 3C
4EDEA4 + 3C = 4EDEE0
For other games you can calculate to train.
Yes this table named eg. MMVIstats.lua ( NOT stats.txt!) is enough! Put in Scripts/General.
Should work in 1,5 MMExt but you can download newest 2.1 and patch:

MM6Patch 2+++
MM6-8Ext 2.1

You dont have value 3!

13 0
11 -1
9 -2
7 -3
5 -4
!!!!3!!!!
0 -5

In MMVI 13 and 0 must be always the same place! Other as  you want! MMVII, VIII all as you want.
I try add more lines first time :-) But it gives destruction and absurdal effects. You can test but when I tested size must be the same.
Fastest test:
Build save and use save editor che or Elrond to test all stat levels eg. hit points is easiest. If it works rest works too.

My present system:

500, 30, or 250
200, 21, to 200 bonus for 20 pt
180, 20,
160, 19,
140, 18,
120, 17,
100, 16, to 100 bonus for 10 pt
90, 15,
80, 14,
70, 13,
60, 12,
50, 11, to 50 bonus for 5 pt
45, 10,
40, 9,
35, 8,
30, 7,
25, 6, to 25 bonus for 2 pt
23, 5
21, 4,
19, 3,
17, 2,
15, 1,
13, 0,
11, -1,
9, -2,
7, -3,
5, -4,
3, -5,
0, -6
...

To better remember I gived bonus 10% highest value.
As I see you think very similiar. We must think about it.

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
FfuzzyLogik
FfuzzyLogik


Adventuring Hero
posted August 17, 2017 10:24 PM

Baronus said:
- Healing touch (body) 2MP heals (5HP basic ; 7HP advanced ; 10HP expert) }}} 9 exp?
- Heal (spirit) 3P and heals 3-7HP/basic ; 5-9HP/advanced ; 7-11HP/expert
... Its the same.
I know, that's why I want to change them ! They are "the same" but healing touch cost 3MP instead of 2 for heal. I hoped to make healing touch depending on skill point (+1/skillpoint in spirit ?)

Baronus said:
- Heal wounds (body) : 5MP heals 5+(1-2)/level HP, recovery time changes by level, not amount healed.
...I mean this. Progress with skill points.
Yes but making him more mana consuming and more effective was my wish. So this spell would be different. This one is "to save someone in fight even if it is mana consuming" and the other, not cost many mana but don't heal many HP in fight. That makes them different and both will be of use. If I can't change that, I'll make healing touch very fast to do.
Baronus said:
f4 01 its 500 and max bonus = 30. This adress begins table.
Ok, well but I hardly understand because for me 90 01 is not 30, the corresponding value for the bonus ? I use a converter (http://www.binaryhexconverter.com/hex-to-decimal-converter) and he tolds f401 = 62465... So I tryed f4 (=244)... So, I made a mistake or misunderstanding about what's written or more precisely how its wrtitten...

With this misunderstanding of how it works, I choosed to delete 3 because you don't begin with less than 5 in caracteristic (unpossible in normal game but I used the tool to make start your champions with 3 in all caracteristic at start, game's harder). So this "value" is not really of use. In a table have limited size, I thought better ot use values to make more increase if you have just "28 slots". But if you say we must let 0 value and 13 value to the same, let it be with a 3 value...

Baronus said:
For all game another example:
You must only change these values.
mem.i2[0x4EDEA4 + i] = vals[i + 1]
mem.i1[0x4EDEE0 + i/2] = vals[i + 2]

So here I have to point the right adresses and add the correct values to it ?
0x4EDEA4 is the adress in table and i+1 a +1 bonus to the value is normally placed ? But what means the + i/2 ? I think I'm a bit loosed ^^

Thanks for liks but this one don't work (for me).
MM6-8Ext 2.1
I found the patch here :
https://sites.google.com/site/sergroj/mm#TOC-GrayFace-MM6-Patch-v2.0
But MMextension can't be downloaded anymore (404 error)... I think its too old link so no more working ?

For your actual system, if table have limited space, I suggest for high value to add for example "+2 every 30 of caracteristic" to get some bonuses after 200. Here you just have one value for 500 (or 250).
I'll continue a bit the mod on HeroesIII then test it to MMVI.
Thanks for your answers,
____________
FfuzzyLogik.

If I'm crazy ? Sure, because its madness to be normal...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Baronus
Baronus


Supreme Hero
posted August 18, 2017 06:44 PM
Edited by Baronus at 06:18, 19 Aug 2017.

First you have lelels 500,400 etc to 0 ! NEXT you have bonus points :-)
Remember its reverse 90 01 is 01 90 :-)
9x16= 144 1x256 = 256 144 + 256 = 400 :-)
But use table its better!
You must change only adresses. If you want what script means you must learn lua and MMExt source code.
Its the same MMExt only from web archive :-)
Replace old MM6Patch and MMExt install new patch (in fact you must put only new mm6patch.dll) and install MMExt from link.
...

Ive tested all point by point. And Ive good news. All works fine, you can write as you want! And limit is 30 values!

My present system:
250, 35,
200, 30, to 200 bonus for 20 pt
180, 28,
160, 26,
140, 24,
120, 22,
100, 20, to 100 bonus for 10 pt
90, 19,
80, 17,
70, 15, to 70 bonus for 5 pt
65, 14,
60, 13,
55, 12,
50, 11,
45, 10,
40, 9,
35, 8,
30, 7,
25, 6, to 25 bonus for 2 pt
23, 5
21, 4,
19, 3,
17, 2,
15, 1,
13, 0,
11, -1,
9, -2,
6, -4,
3, -6,
0, -8
...
edited.

Link dont work! Its because the forum needs https. I fixed it works or try copy paste:
web.archive.org/web/https://dl.dropboxusercontent.com/u/44735333/mm/MMExtension.rar
mirror:
MMExt2.2

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
FfuzzyLogik
FfuzzyLogik


Adventuring Hero
posted August 19, 2017 10:47 AM
Edited by FfuzzyLogik at 10:49, 19 Aug 2017.

Thanks for links, I downloaded files.
For the table, I intend to do this. It changes more "progressively" when values grow up. It shall be better if we could have a more big table but its truly better with one of our tables, the caracteristic value changes more frequently.
350 37  (15e => 0e 15)
300 33  (12c => 0c 12)
250 29  (fa => fa 00)
200 25  (c8 => c8 00)
175 23  (af => af 00)
150 21  (96 => 96 00)
130 19  (82 => 82 00)
110 17  (6e => 6e 00)
90 15  (5a => 5a 00)
80 14  (50 => 50 00)
71 13  (47 => 47 00)
63 12  (3f => 3f 00)
56 11  (38 => 38 00)
50 10  (32 => 32 00)
45 9   (2d => 2d 00)
40 8   (28 => 28 00)
36 7   (24 => 24 00)
32 6   (20 => 20 00)
28 5   (1c => 1c 00)
25 4   (19 => 19 00)
22 3   (16 => 16 00)
19 2   (13 => 13 00)
16 1   (10 => 10 00)
13 0   (d => 0d 00)
11 -1  (b => 0b 00)
9 -2  (9 => 09 00)
7 -3  (7 => 07 00)
5 -4  (5 => 05 00)
3 -5  (3 => 03 00)
0 -6  (0 => 00 00)
The second part of the "table" is "2 hex" not "4 hex" for one value that's it ? In green 4 by 4 the caracteristic value and in blue 2 per 2 the bonus value.
f4 01 90 01 5e 01 2c 01 13 01 fa 00 e1 00 c8 00
af 00 96 00 7d 00 64 00 4b 00 32 00 28 00 23 00
1e 00 19 00 15 00 13 00 11 00 0f 00 0d 00 0b 00
09 00 07 00 05 00 03 00 00 00 00 00
1e 19 14 13
12 11 10 0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03
02 01 00 ff fe fd fc fb fa 00
00 00 01 02 03

So for my table it is :
0e 15 0c 12 fa 00 af 00 96 00 82 00 6e 00 ... 03 00 00 00 25 21 1d 19 17 15 13 11 0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00 ff fe fd fc fb fa 00
And the last values are for negative numbers ?

If I use hex editing, I change the values by those are here. If I want to use patch, I have to change adresses and the table with values written in decimal ?

Thanks alot,
____________
FfuzzyLogik.

If I'm crazy ? Sure, because its madness to be normal...

 Send Instant Message | Send E-Mail | View Profile | Quote Reply | Link
Jump To: Next Thread »
Post New Poll    Post New Topic    Post New Reply

Page compiled in 0.1322 seconds