|
Thread: CHANGING the mass spells (new and for plugin) | |
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted June 23, 2021 06:17 AM |
|
Edited by NimoStar at 14:53, 09 Jun 2022.
|
CHANGING the mass spells (new and for plugin)
So, I was looking at the Heroes 4 exe for several hours trying to find where were creature spells stored. So far, no luck, but I did find something nearly equally interesting that I didn't know...
There is a section which lists the Mass Spells and to WHICH individual spell each mass spell corresponds.
Earlier I had experimented a bit with this mechanic butonly in the spell table: H4 Ultimate Prerelease changes Curse to Chaos Magic (since Death already has weakness and lots of other debuffs), but leaves Mass Curse in Death. This worked fine, but what about changing Mass Curse to a yet unused mass spell, like Mass Aging?
Eureka, this is exactly what this section of the Hex code does!
First we have the hex of the spell which is to be the "massified" applier, then we have the hex of the spell which is the massed!
Here I made Mass Fervor (Mirth) into Mass Strenght Potion (non existent in original game)
Everything works perfectly including the attach anim.
Just after the mass fervor hex 00 00 00 63
(which is in 0058bfc8 in Hex Editor Neo, add 400000 for ida pro)
Change from 00 00 00 94 (Mirth)
To 00 00 00 99 (Strenght potion)
Even unused spells slots could conceivably be turned into mass spells this way. Problem is we have limited hex space. A plugin should be programmed immediately (psst, tell rosekavalier ). This is extremely easy, just correspond this with the hex spell list, the plugin should only extend this section of the code with a configurable "This hex (massivizer) -> This spell (massive)" method.
SO far so good, but there is also the question: Can a spell mass itself by repetition 00 00 00 17 00 00 00 17 ?
Turns out, no, this behaviour will confuse the game and lead to crash.
Too bad? Well not really;
turns out ANY other spell you put as the originator of Mass_Spell will work as an initiator. So I can take Aging and turn it into Mass Curse.
As it happens, this doesn't affect combat cast, so while the spellbook Aging will turn to Mass Curse, the Ghost/Mummies in Ultimate attacking will still generate the normal Aging. A fancy way to add more mass spells, but much more useful with the plugin since otherwise you are disabling one of the existing mass spells to do this.
Some spells which have no mass variant But can be made this way:
Note that some of these spells maybe very powerful, some would have to be level 5, others like Mass Hypnotize would be entirely too OP to be available normally. But even these are interesting to make powerful scrolls.
[spells with a "V" are in Ultimate Mod]
[Blessings]
v- Regeneration
- Magic Resistance
- Magic Immunity
- Dragon Strenght
v- Magic Mirror
- Cat Reflexes (Double attack)
- Life Draining (Vampirism)
v- Quickness (potion)
- Pain Mirror
- Protection from Fire
- Freezing Attack
v- Fire Aura
- Immortality
[Curses]
- Aging
- Acid (Vial of)
- Disrupting Ray
- Spell Shackle
- Mana Leech
- Power Drain
(affects allies because they are area dependant: )
- Choking Gas (Vial of)
[Disabling]
- Berserk
- Cowardice
- Song of Peace
- Hypnotize
- Charm (Mermaid)
- Blind
- Freeze
- Confusion
- Wasp Swarm
( affects allies because they are area dependant: )
- Cloud of confusion
Blesses, Curses and Disables in general are proven to work.
... Targeting obeys the targeting rules of the "child" spell, as said in spell table. The mass spell will attack all possible creature and hero targets, as if replacing "target" with "each". If the spell is restricted to allied targets the Mass will apply to all allies. If the spell is restricted to enemy targets, the mass will apply to all enemies. And such.
... The following spell types need more testing:
[Damage]
( Needs more testing like spell power and such in the table. The graphic effect appears at least.)
(PROVEN they take power from new spell, not original)
v- Magic Fist
- Poison
- Magic Arrow
- Fire Bolt
v- Lightning
- Implosion
- Banish
( affects allies because they are area dependant: )
- Demon Fire (Vial of)
- Fire Ring
- Fireball
- Inferno
- Chain Lightning
( unknown if would work since they have special mechanics: )
- Sparks (probably would not work)
[quasi-damage]
v- Hand of Death
Unworking:
- Holy Water (because it has "self-targeting" alt-mode)
Confirmed damage spells work with due table.spells configuration. They need to have a power set and the like. I made a spell that works like Mass Magic Arrow.
[Healing+]
- Simple Healing
- Resurrection
v- Rebirth
(Any in general, same as damage.)
Heal unworking:
- Sacrifice
[Summoning]
( unknown if would work since they have special mechanics, also require table edit with power and more
[CONFIRMED working, but making more than one creature type generates superposition.]
w- Create Illusion
w- Phantom Image
w- Animate Dead
w- Death Call
w- Raise Skeleton
w- Raise Ghost
w- Raise Vampire
Unworking others:
- Smoke ( Smokes the location of all creatures and heroes with a cloud, seems to not work but may require more testing.)
- Teleport
- Displacement (probably)
- Quicksand (almost certainly)
Tere remains many other untested spells.
________________________________
With just hex edit, we are limited to the existing number, but with a plugin to just extend this very simple 00 00 00 XX -> 00 00 00 YY list, we could have as many new mass spells as we want.
Incidentally, in an indirect way this allows to change the spells of creatures - for example, turn the Bloodlust of the Ogre Magi into Mass Slayer, and Mass Slayer into something else like Mass Cat Reflexes. The bad part is that without a plugin, you are "sacrificing" one spell each time you do this (in this case using the Bloodlust spell instead of Bloodfrenzy, which will then become useless without the code to become mass, since it does nothing "by itself"), so the plugin is a priority to get the most out of the system.
____________
|
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted June 23, 2021 07:44 AM |
|
|
Confirmed Mass Chain Lightning works (with table edit) and is really cool as a sort of apocalyptic effect. Looks much better when animated, too.
____________
|
|
Baronus
Legendary Hero
|
posted June 23, 2021 09:29 AM |
|
Edited by Baronus at 09:32, 23 Jun 2021.
|
Baronus
Congratulations! Great discovery! Massive pluggin is needed. Hexediting is tired.
All we know should be added. Eg. town unit recruitment.
|
|
boho
Hired Hero
|
posted June 24, 2021 07:07 PM |
|
|
Chain Lighting Apocalypse looks cool!
____________
|
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted June 25, 2021 07:19 AM |
|
|
Thanks to this method, I was able to create a new spell "Mass Poison Attack" and to give it to Ogre Magi instead of Bloodlust:
Unfortunately, doing this means that both Bloodlust and Bloodfrenzy no longer exist since I had to replace their hex for it, which is why we need the plugin, so that there is no "cost" of doing it.
____________
|
|
Baronus
Legendary Hero
|
posted June 25, 2021 10:23 AM |
|
|
Yes looks really fantastic. But must be placed high lvl of guild. I think they planned something like spells lvls as in H3 but they abandon it. You discovered abandon content.
I think that if we discover magi,genie,eye,water,faerie spellbooks in code maybe viad pluggin will be possible add more spellbooks to other units. Angel, phonix, leorechaun, satir ,spells' de facto have skills using spell code. But magical units are using spells.
These spellboks must look like this table eg. 000000 0A 000000.
|
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted July 05, 2021 05:07 AM |
|
Edited by NimoStar at 10:05, 09 Jul 2021.
|
Still no luck finding creature spells.
But I have been researching which spells can be turned into addittional mass spells with the plugin.
Note question: Can adventure-type spells be massified (other than healing)? Example: Mass Immortality. Test.
TO DO "CASTABLE" (SPELLBOOK ENABLED) BUT UNWORKING SPELLS TO MAKE MASS SPELLS:
- binding
- cold resistance
- fear_effect
- fire shield
- fire_aura_effect
- mana leech
- panic
- precognition
- stone_gaze
- stun
- water walk
These spells, appearing in the .exe list, will appear in the spellbook if enabled with "learnable" in the spell table. However, by default they don't work/do nothing when you try to cast them. They can be made work (in theory) by turning them into mass spells with other effects.
SEMI WORKING BY DEFAULT
- rebirth (could actually be cast, but needs dead on stack, thus quite useless for hero; can be added to creatures, and is used by phoenix by default)
UNWORKING (spellbook disabled) so far:
- devour
- mana_potion
- martyr_client
- physical protection
- precognition
- ranged protection
- robe_of_the_guardian
- sacrifice_client
- vampirism
...
These spells, appearing in the .exe list, will not appear in spellbook even if set as "learnable" in the table.
To test: hex 00682751 in exe
more "potions"
hypnotize_effect
berserk_effect
devour
____________
|
|
nostradamus
Adventuring Hero
|
posted July 18, 2021 07:31 PM |
|
|
Nimo is it possible to give a hero such regeneration spell,so that the hero can fully regenerate in one round/move in combat map like trolls have as their ability,or perhaps to give/create such an artifact.Thank you.
|
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted July 19, 2021 07:47 AM |
|
|
There are two ways of doing that which are "possible", one is just to increase the power of the Regeneration spell, another is to increase the power of the breastplateof regeneration but this requires finding the hexes for the formula, probably.
It's also possible to make a mass regeneration spell, but I didn't due to a lack of mass spells plugin.
Equilibris could make another such artifact as well, but their method is undocumented and unsupported.
____________
|
|
NimoStar
Responsible
Legendary Hero
Modding the Unmoddable
|
posted January 11, 2023 10:11 PM |
|
Edited by NimoStar at 22:13, 11 Jan 2023.
|
Since I cannot edit the main one, I post an update:
So, I was looking at the Heroes 4 exe for several hours trying to find where were creature spells stored. So far, no luck, but I did find something nearly equally interesting that I didn't know...
There is a section which lists the Mass Spells and to WHICH individual spell each mass spell corresponds.
Earlier I had experimented a bit with this mechanic butonly in the spell table: H4 Ultimate Prerelease changes Curse to Chaos Magic (since Death already has weakness and lots of other debuffs), but leaves Mass Curse in Death. This worked fine, but what about changing Mass Curse to a yet unused mass spell, like Mass Aging?
Eureka, this is exactly what this section of the Hex code does!
First we have the hex of the spell which is to be the "massified" applier, then we have the hex of the spell which is the massed!
Here I made Mass Fervor (Mirth) into Mass Strenght Potion (non existent in original game)
Everything works perfectly including the attach anim.
Just after the mass fervor hex 00 00 00 63
(which is in 0058bfc8 in Hex Editor Neo, add 400000 for ida pro)
Change from 00 00 00 94 (Mirth)
To 00 00 00 99 (Strenght potion)
Even unused spells slots could conceivably be turned into mass spells this way. Problem is we have limited hex space. A plugin should be programmed immediately (psst, tell rosekavalier ). This is extremely easy, just correspond this with the hex spell list, the plugin should only extend this section of the code with a configurable "This hex (massivizer) -> This spell (massive)" method.
SO far so good, but there is also the question: Can a spell mass itself by repetition 00 00 00 17 00 00 00 17 ?
Turns out, no, this behaviour will confuse the game and lead to crash.
Too bad? Well not really;
turns out ANY other spell you put as the originator of Mass_Spell will work as an initiator. So I can take Aging and turn it into Mass Curse.
As it happens, this doesn't affect combat cast, so while the spellbook Aging will turn to Mass Curse, the Ghost/Mummies in Ultimate attacking will still generate the normal Aging. A fancy way to add more mass spells, but much more useful with the plugin since otherwise you are disabling one of the existing mass spells to do this.
Some spells which have no mass variant But can be made this way:
Note that some of these spells maybe very powerful, some would have to be level 5, others like Mass Hypnotize would be entirely too OP to be available normally. But even these are interesting to make powerful scrolls.
[spells with a "V" are in Ultimate Mod]
[Blessings]
v- Regeneration
v- Magic Resistance
- Magic Immunity
- Dragon Strenght
v- Magic Mirror
- Cat Reflexes (Double attack)
- Life Draining (Vampirism)
v- Quickness (potion)
?- Pain Mirror
- Protection from Fire
- Freezing Attack
v- Fire Aura
- Immortality
[Curses]
v- Aging
?- Acid (Vial of)
- Disrupting Ray
- Spell Shackle
- Mana Leech
- Power Drain
(affects allies because they are area dependant: )
- Choking Gas (Vial of)
[Disabling]
v- Berserk
- Cowardice
- Song of Peace
- Hypnotize
- Charm (Mermaid)
- Blind
- Freeze
- Confusion
- Wasp Swarm
( affects allies because they are area dependant: )
- Cloud of confusion
Blesses, Curses and Disables in general are proven to work.
... Targeting obeys the targeting rules of the "child" spell, as said in spell table. The mass spell will attack all possible creature and hero targets, as if replacing "target" with "each". If the spell is restricted to allied targets the Mass will apply to all allies. If the spell is restricted to enemy targets, the mass will apply to all enemies. And such.
... The following spell types need more testing:
[Damage]
( Needs more testing like spell power and such in the table. The graphic effect appears at least.)
(PROVEN they take power from new spell, not original)
v- Magic Fist
- Poison
- Magic Arrow
- Fire Bolt
v- Lightning
- Implosion
- Banish
( affects allies because they are area dependant: )
- Demon Fire (Vial of)
- Fire Ring
- Fireball
- Inferno
- Chain Lightning
( unknown if would work since they have special mechanics: )
x- Sparks (probably would not work... and it didn't)
[quasi-damage]
v- Hand of Death
Unworking:
- Holy Water (because it has "self-targeting" alt-mode)
Confirmed damage spells work with due table.spells configuration. They need to have a power set and the like. I made a spell that works like Mass Magic Arrow.
[Healing+]
- Simple Healing
- Resurrection
v- Rebirth
(Any in general, same as damage.)
Heal unworking:
- Sacrifice
[Summoning]
( unknown if would work since they have special mechanics, also require table edit with power and more
[CONFIRMED working, but making more than one creature type in ILLUSION spells generates superposition.]
w- Create Illusion
w- Phantom Image
v- Animate Dead
v- Death Call
v- Raise Skeleton
v- Raise Ghost
v- Raise Vampire
Unworking others:
- Smoke ( Smokes the location of all creatures and heroes with a cloud, seems to not work but may require more testing.)
- Teleport (everything disappears, game crashes)
- Displacement (probably)
- Quicksand (almost certainly)
There remains many other untested spells.
________________________________
With just hex edit, we are limited to the existing number, but with a plugin to just extend this very simple 00 00 00 XX -> 00 00 00 YY list, we could have as many new mass spells as we want.
Incidentally, in an indirect way this allows to change the spells of creatures - for example, turn the Bloodlust of the Ogre Magi into Mass Slayer, and Mass Slayer into something else like Mass Cat Reflexes. The bad part is that without a plugin, you are "sacrificing" one spell each time you do this (in this case using the Bloodlust spell instead of Bloodfrenzy, which will then become useless without the code to become mass, since it does nothing "by itself"), so the plugin is a priority to get the most out of the system.
Disabling spells this way makes scripts learning that spell generate a lock of the map (the edited game will not be able to open to play a map with this script); this was my Mass Bloodlust problem, thus I had to reverse Ogre Magi
____________
|
|
|
|