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 > Heroes 3.5 - WoG and Beyond > Thread: How to edit HotA?
Thread: How to edit HotA? This thread is 38 pages long: 1 2 3 4 5 ... 10 20 30 ... 34 35 36 37 38 · «PREV / NEXT»
peter1985
peter1985

Tavern Dweller
posted December 05, 2017 08:31 PM

Dear RoseKavalier!

What (Heroes 3) project do you work for?

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


Honorable
Famous Hero
posted December 06, 2017 01:09 AM

We're getting off-topic but if you want to take a look:
SoD_SP
Modified WoG mapeditor. I've not worked on this one in a long time but I plan to work on it in the near future.

A few more things that are for my private use and another thing that will eventually be available when I can locate one piece of code causing some problems.

Mapmaking is my ultimate end goal, however the game was not able to do what I wanted it to so I got into modding a bit to remove Plague/Month of the Creature, fix some bugs... and then it kinda got out of control.
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

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

Tavern Dweller
posted December 07, 2017 10:42 PM

Dear RoseKavalier!

Congratulations to your work! If I'm finished, I'll check it out.

I want to understand something. There are creature buildings in the "object" txt file. There are 79 buildings on the map. (9X7 + 15 neutral) In the txt file, 1 to 79 indicate which creature to be taken in which building. Exe file number 79 is assigned a charge. How do you know where this is in the exe file? If I already know where the ex is, then I can find out.

I found another interesting thing I could not figure out yet!

00273b00
00273be8
00273cd0
00273db8

There are four empty spaces here for creatures. Can these be made active?

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


Honorable
Famous Hero
posted December 08, 2017 12:03 AM
Edited by RoseKavalier at 00:05, 08 Dec 2017.

They're not entirely absent from game, they are filler spots for Conflux (since the 4 elementals were originally neutral) and NWC didn't bother to make the ordering nice. For example if you look at cprsmall.def you can see some "unused" sprites - I forget the exact frame number.
I suppose with a lot of work these could be made into something useful... but at this point you may as well just use WoG since all the required tools are already done.

For buildings, I don't know yet and I'm a bit tight on time for the week.

What I would try: use Olly to search for names. The game has to load these text files at some point and the file names are hard-coded.
Search for building in ASCII...


Then search for address of building.txt


This function loads building.txt and then will assign the necessary data in the area which, I presume, stores all data related to these buildings.

If that leads to a dead end, then there are other options to explore.
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

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

Tavern Dweller
posted December 08, 2017 05:13 AM
Edited by Nmesa at 05:24, 08 Dec 2017.

In this thread i find a post about changing Luna's bonus from her spell to 50% or (3% x lvl) and i've got a crazy idea to make a static percent bonus to all specialists.

As i understand, it begins with Luna at E6358 (00 = 100%). E635a is probably Cielle (01=50%), 06 is (x lvl) formulae for other heroes (i guess its all at once - spells, skills, creatures). Is there some kinda list with offsets for each hero?

And does the creature spec. work the same way? (00 - x2 bonus to initial stats and etc).

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


Honorable
Famous Hero
posted December 08, 2017 07:21 AM
Edited by RoseKavalier at 07:22, 08 Dec 2017.

Nmesa said:
In this thread i find a post about changing Luna's bonus from her spell to 50% or (3% x lvl) and i've got a crazy idea to make a static percent bonus to all specialists.

As i understand, it begins with Luna at E6358 (00 = 100%). E635a is probably Cielle (01=50%), 06 is (x lvl) formulae for other heroes (i guess its all at once - spells, skills, creatures). Is there some kinda list with offsets for each hero?

And does the creature spec. work the same way? (00 - x2 bonus to initial stats and etc).


Luna/Ciele/... spell specialties are not based on hero, but on spell_id.
It's essentially switch(spell_id) {} that ranges from Firewall (0x0D) to Slayer (0x37). Spells with ID below or above this range do not have specialties.

So @E6358h you have the outcome for Firewall specialty which is normally exit '00' which doubles damage.
@E6359h - Earthquake [06] - (no bonus in this case)
...
and so on, each successive bit represents one spell.
Exits:
[00] - + 100%
[01] - + 50%
[02] - static bonus (Bloodlust, Precision, ...)
[03] - static bonus (Disrupting Ray)
[04] - static bonus (Fortnue)
[05] - static bonus (Slayer)
[06] - + 3% per level bonus type ~ can result in no bonus.


The hex edit I had proposed earlier just swapped the exits around.

~~

Creature specialties are based on creature level, except the static bonuses like Mutare/Kilgor.
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

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

Tavern Dweller
posted December 08, 2017 07:32 AM
Edited by Nmesa at 08:20, 08 Dec 2017.

RoseKavalier said:

[00] - + 100%
[01] - + 50%
[02] - static bonus (Bloodlust, Precision, ...)
[03] - static bonus (Disrupting Ray)
[04] - static bonus (Fortnue)
[05] - static bonus (Slayer)
[06] - + 3% per level bonus type ~ can result in no bonus.



Thanks, now it make sense, especially about spell order. I guess each creature has such exits for specialisation as well?

RoseKavalier said:

from Firewall (0x0D) to Slayer (0x37)



Strange, because there is no space left for Hypnotize.

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


Hired Hero
posted December 08, 2017 09:40 AM

where to put the plugins for hota ?, in which folder?

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

Tavern Dweller
posted December 08, 2017 09:50 AM
Edited by Nmesa at 09:51, 08 Dec 2017.

planetavril said:
where to put the plugins for hota ?, in which folder?


Heroes of Might and Magic 3  _HD3_Data  Packs  Folder with plugin in it

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


Honorable
Famous Hero
posted December 08, 2017 03:09 PM

Nmesa said:

Thanks, now it make sense, especially about spell order. I guess each creature has such exits for specialisation as well?

I cannot recall right now, I can check in a few days. I would think no since there are not many cases to be handled, more likely some if () statements.

Nmesa said:

Strange, because there is no space left for Hypnotize.

That just means it is elsewhere. Considering the spell works differently (calculations are done before animation), it's not surprising.
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

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

Tavern Dweller
posted December 10, 2017 05:50 AM
Edited by Nmesa at 09:32, 15 Dec 2017.

There are the offsets for hero's specialties:
_________________

Orrin    278420  (Archery)
Valeska    278448 (Archers)
Edric    278470 (Griffins)
Sylvia    278498 (Navigation)
Haart    2784c0 (Estates)
Sorsha    2784e8 (Swordsmans)
Christian    278510 (Ballista)
Tyris    278538 (Cavaliers)
Rion    278560 (First Aid)
Adela    278588 (Bless)
Cuthbert    2785b0 (Weakness)
Adelaide    2785d8 (Frost Ring)
Ingham    278600 (Monks)
Sanya    278628 (Eagle Eye)
Loynis    278650 (Prayer)
Caitlin    278678 (Gold)
_________________

Mephala    2786a0 (Armorer)
Ufretin    2786c8 (Dwarves)
Jenova    2786f0 (Gold)
Ryland    278718 (Dendroids)
Thorgrim    278740 (Resistance)
Ivor    278768 (Elves)
Clancy    278790 (Unicorns)
Kyrre    2787b8 (Logistics)
Coronius    27870 (Slayer)
Uland    278808 (Cure)
Elleshar    278830 (Intelligence)
Gem    278858 (First Aid)
Malcom    278880 (Eagle Eye)
Melodia    2788a8 (Fortune)
Alagar    2788d0 (Ice Bolt)
Aeris    2788f8 (Pegasus)
_________________

Piquedram    278920 (Gargoyles)
Thane    278948 (Genies)
Josephine    278970 (Golems)
Neela    278998 (Armorer)
Torosar    2789c0 (Ballista)
Fafner    27898 (Nagas)
Rissa    278a10 (Mercury)
Iona    278a38 (Genies)
Astral    278a60 (Hypnotise)
Halon    278a88 (Misticism)
Serena    278ab0 (Eagle Eye)
Daremyth    278ad8 (Fortune)
Theodorus    278b00 (Mages)
Solmyr    278b28 (Chain Lightning)
Cyra    278b50 (Haste)
Aine    278b78 (Gold)
_________________

Fiona    278ba0 (Hounds)
Rashka    278bc8 (Efreets)
Marius    278bf0 (Demons)
Ignatius    278c18 (Imps)
Octavia    278c40 (Gold)
Calh    278c68 (Gogs)
Pyre    278c90 (Ballista)
Nimus    278cb8 (Pit Fiends)
Ayden    278ce0 (Intelligence)
Xyron    278d08 (Inferno)
Axsis    278d30 (Misticism)
Olema    278d58 (Weakness)
Calid    278d80 (Sulfur)
Ash    278da8 (Bloodlust)
Zydar    278dd0 (Sorcery)
Xarfax    278df8 (Fireball)
_________________

Straker    27820 (Zombies)
Vokial    27848 (Vampires)
Moandor    27870 (Liches)
Charna    27898 (Wights)
Tamika    2780 (Death Knights)
Isra    2788 (Necromancy)
Clavius    278f10 (Gold)
Galthran    278f38 (Skeletons)
Septienna    278f60 (Death Ripple)
Aislinn    278f88 (Meteor Shower)
Sandro    278fb0 (Sorcery)
Nimbus    278fd8 (Eagle Eye)
Thant    279000 (Animate Dead)
Xsi    279028 (Stone Skin)
Vidomina    279050 (Necromancy)
Nagash    279078 (Gold)
_________________

Lorelei    2790a0 (Harpies)
Arlach    2790c8 (Ballista)
Dace    2790f0 (Minotaurs)
Ajit    279118 (Beholders)
Damacon    279140 (Gold)
Gunnar    279168 (Logistics)
Synca    279190 (Manticores)
Shakti    2791b8 (Troglodites)
Alamar    27910 (Resurrection)
Jaegar    279208 (Misticism)
Malekith    279230 (Sorcery)
Jeddite    279258 (Resurrection)
Geon    279280 (Eagle Eye)
Deemer    2792a8 (Meteor Shower)
Sephinroth    2792d0 (Crystals)
Darkstorn    2792f8 (Stone Skin)
_________________

Yog    279320 (Cyclopes)
Gurnisson    279348 (Ballista)
Jabarkas    279370 (Orcs)
Shiva    279398 (Rocs)
Gretchin    2793c0 (Goblins)
Krellion    27938 (Ogres)
Crag Hack    279410 (Offence)
Tyraxor    279438 (Raiders)
Gird    279460 (Sorcery)
Vey    279488 (Ogres)
Dessa    2794b0 (Logistics)
Terek    2794d8 (Haste)
Zubin    279500 (Precision)
Gundula    279528 (Offence)
Oris    279550 (Eagle Eye)
Saurug    279578 (Gems)
_________________

Bron    2795a0 (Basiliscs)
Drakon    2795c8 (Gnolls)
Wystan    2795f0 (Lizardmen)
Tazar    279618 (Armorer)
Alkin    279640 (Gorgons)
Korbac    279668 (Serpent Flies)
Gerwulf    279690 (Ballista)
Broghild    2796b8 (Wyverns)
Mirlanda    27960 (Weakness)
Rosic    279708 (Misticism)
Voy    279730 (Navigation)
Verdish    279758 (First Aid)
Merist    279780 (Stone Skin)
Styg    2797a8 (Sorcery)
Andra    2797d0 (Intelligence)
Tiva    2797f8 (Eagle Eye)
_________________

Pasis    279820 (Magic Elementals)
Thunar    279848 (Earth Elementals)
Ignissa    279870 (Fire Elementals)
Lacus    279898 (Water Elementals)
Monere    2798c0 (Magic Elementals)
Erdamon    27988 (Earth Elementals)
Fiur    279910 (Fire Elementals)
Calt    279938 (Water Elementals)
Luna    279960 (Fire Wall)
Brissa    279988 (Haste)
Ciele    2799b0 (Magic Arrow)
Labetha    2799d8 (Stone Skin)
Inteus    279a00 (Bloodlust)
Aenain    279a28 (Disrupting Ray)
Gelare    279a50 (Gold)
Grindan    279a78 (Gold)
_________________

Sir Mullich    279aa0 (+2 Speed)
Adrianne    279ac8 (Expert Fire Magic)
Catherine    279af0 (Swordsman)
Dracon    279b18 (Enchanters)
Gelu    279b40 (Sharpshooters)
Kilgor    279b68 (Behemoths)
Lord Haart    279b90 (Dread Knights)
Mutare    279bb8 (Dragons)
Roland    279be0 (Swordsman)
M Drake    279c08 (Dragons)
Boragus    279c30 (Ogres)
Xeron    279c58 (Devils)
_________________

28h byte per hero. First "field" checks group:

0 for skills. Next one is the number of skill ( 01 - Archery).
1 for creatures (+1 speed and x lvl formulae). Next one is the number of creature (92 - ballista).
2 for resources. Next one is the type of resource (2 - sulfur, 4 - crystal, 6 - gold).
3 for spells. Next one is the number of the spell (29 - Bless).
4 for static bonus to creature (Kilgore, Evil Haart): number of the creature, attack, defence, damage. Sadly, there is no way to affect speed.
5 for Sir Mullich (the next value 02 doesnt affect speed, so its somewhere else).
6 for Creature Training (Jelu and Dracon). You can choose initial creatures (basic, upgraded counts as well) and creature after training.
7 for Mutare, since her bonus affects more than 2 creatures.
ffffff for Adrienne since she doesnt have actual specialty.
_________________

Never thought it was so easy to change them with hex editing. It is possible to create Scouting specialty instead of Navigation or swap them between heroes (Valeska - griffins, Edric - archers). The only drawback is spec icons, which stays the same.
_________________

Edited: By using DefViewer and DefMaker its possible to recreate UN44.def (compilation of .bmp images for specialty's icons) from H3sprite.lod.
Thats just incredible news for me - even withous WoG there is way to change specialties or even create a new one, for example for Lightning Bolt or Destroy Undead, with 100%/50% or level-based bonus.

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


Adventuring Hero
posted December 10, 2017 11:42 PM
Edited by FfuzzyLogik at 23:54, 10 Dec 2017.

Adrienne has effectively "no speciality" in heroes secondary skills she has expert fire magic at start...
She has some icon for her speciality but it adds nothing. I intend to change this and make a new "special" hero with an other speciality.

But if you find this kind of "speciality" nice you can change the heroes basic skills and their starting troops.

Notice that number of them are not stored here but in a text file (you can also change).

Someone already asked about Mullich's speed value on this thread :
http://heroescommunity.com/viewthread.php3?TID=42152&pagenumber=9
On page 9 this was discussed so you can find where to change it.
____________
FfuzzyLogik.

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

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

Tavern Dweller
posted December 10, 2017 11:53 PM

I also tried to change the heroes' specialty, but I did not succeed!

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

Tavern Dweller
posted December 11, 2017 03:49 AM
Edited by Nmesa at 04:02, 11 Dec 2017.

I dont' understand one thing - Xeron is the only hero who has a static bonus +4 Attack, +2 Defence and+1 Speed. But there is no value, affecting it, just 04-36-04-02-00...

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


Supreme Hero
posted December 11, 2017 07:17 PM
Edited by Baronus at 20:23, 19 Dec 2017.

Baronus

How to get campaign heroes in all maps:
Campaign heroes
Rosecavalier:
Hex edit of HD exe to make all heroes available:
C4B3Ch = FF
...

Thats better solution than editing all map...
_______

Edit. Its: 0C4B3C to FF
And works but you cant get hero in start menu. Only random tawern and random start generation.

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


Supreme Hero
Heroes is love, Heroes is life
posted December 18, 2017 04:22 PM

I was messing around with the Planeswalkers static creature bonuses and since I found these static bonuses pretty boring, I changed them to bonus per level, like normal creature specialists and it works well.

I also did this for Kilgor and Xeron, but I am not sure about Mutare (and Mutare Drake) She gets a static bonus to ALL dragons, would it be possible to give her a bonus per level like the other creature specialists? (She has speciality bonus 07 which is exclusive to her, 04 is static bonus to a single creature and 01 is creature bonus per level.)

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


Honorable
Famous Hero
posted December 19, 2017 08:07 PM

Of course, but more work. Since Mutare's bonus is not tied to a single creature, it means that bonus is applied differently and so you will need a plugin to get that effect.
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

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


Supreme Hero
Heroes is love, Heroes is life
posted December 20, 2017 12:07 AM

Hmm okay, plug-ins are not my speciality, so I guess I'll just leave her as she is.

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


Hired Hero
posted December 20, 2017 04:56 PM

Plug-in // C++

It's so F*cking Hard to create a new Plug-in

RoseKavalier, If you steal there,  I tried to do something with C++ to change DIPLOMACY skill, but all explanation are in russian, Even when I translate in french, it still remains very hard to understand because the translation isn't perfect.


I create a new project called DIPLOMACY, ok, good, and I've got this:


#include "patcher_x86.hpp"

Patcher* _P;
PatcherInstance* _PI;
static _bool_ plugin_On = 0;

int __stdcall testHook(LoHook* h, HookContext* c)
{
  c->eax *= 2;

  return EXEC_DEFAULT;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
  switch ( ul_reason_for_call )
  {
     case DLL_PROCESS_ATTACH:
       
        if ( !plugin_On )
        {
           plugin_On = 1;
           _P = GetPatcher();
           _PI = _P->CreateInstance("HD.Plugin.TestPlugin");
           _PI->WriteLoHook(0x44467E, testHook);
        }

     case DLL_THREAD_ATTACH:
     case DLL_THREAD_DETACH:
     case DLL_PROCESS_DETACH:
        break;
  }
 
  return TRUE;
}

----------

Now, the probleme is...
Where do I put your following instructions: ????

0x4A6C88
c->esi = max(1, (c->esi) >> 2); // integer division by 4, minimum value 1
return EXEC_DEFAULT;

0x4A6EE8
c->edi = max(1, (c->edi) >> 2); // integer division by 4, minimum value 1
return EXEC_DEFAULT;

0x4A73DC
c->ebx += (c->ebx) >> 1; // artificially add 50% to creature count for power calculations
return EXEC_DEFAULT;

---------

HELP

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


Honorable
Famous Hero
posted December 20, 2017 07:00 PM

Create LoHook for each of them at the given address, same thing as you did for testHook. (probably best to use an informative name for each function so you know what you are looking at later on)


int __stdcall testHook2(LoHook* h, HookContext* c)
{
 c->esi = max(1, (c->esi) >> 2);
 return EXEC_DEFAULT;
}

int __stdcall testHook3(LoHook* h, HookContext* c)
{
 c->edi = max(1, (c->edi) >> 2);
 return EXEC_DEFAULT;
}

int __stdcall testHook4(LoHook* h, HookContext* c)
{
 c->ebx += (c->ebx) >> 1;
 return EXEC_DEFAULT;
}


and in DllMain add:

_PI->WriteLoHook(0x4A6C88, testHook2);
_PI->WriteLoHook(0x4A6EE8, testHook3);
_PI->WriteLoHook(0x4A73DC, testHook4);


The first plugin is hardest, don't give up
____________
My Let's Plays: Metataxer's Revenge - The Empire of The World 2

 Send Instant Message | Send E-Mail | View Profile | PP | Quote Reply | Link
Jump To: « Prev Thread . . . Next Thread » This thread is 38 pages long: 1 2 3 4 5 ... 10 20 30 ... 34 35 36 37 38 · «PREV / NEXT»
Post New Poll Post New Topic Post New Reply

Page compiled in 0.0741 seconds