|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted May 14, 2016 03:32 PM |
|
|
So your spliting preferences would be based on 5 and multiple of 5?
After 35 monsters, always 7 stacks? This basically means every battle after month 2 is vs 7 stacks.
|
|
robizeratul
Known Hero
|
posted May 14, 2016 04:04 PM |
|
|
Salamandre said: So your spliting preferences would be based on 5 and multiple of 5?
After 35 monsters, always 7 stacks? This basically means every battle after month 2 is vs 7 stacks.
well i am still thinking about the number,there is much more to be done,i am finishing the terrain now.
however 100 is the best number so far. so neutral battles should be 7 stacks of 100 maximum. heroes and the like would have custom numbers.
every monster quantity is fixed, so creature growth is irrelevant.
these are the planing stages,just curious what can be done with erm.
|
|
dumiwow
Tavern Dweller
|
posted May 14, 2016 11:42 PM |
|
|
How is called that way or setting that lets me different units I upgrade my castle? Who can help me with a name something please.
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted May 15, 2016 09:34 PM |
|
|
hey Dumi, I don't understand your question.
|
|
dumiwow
Tavern Dweller
|
posted May 23, 2016 01:18 PM |
|
Edited by dumiwow at 13:47, 23 May 2016.
|
It's done. Thanks for your attention Salamandre.
If you could help about this error occurs when you want to give me save the game .... not know what to do. Please advise me what or how to do.
http://postimg.org/image/lmiho0c7f/
|
|
XEricSin
Famous Hero
|
posted May 26, 2016 01:42 PM |
|
|
replace the town music when entering a specific rampart town
HI I am trying to replace the town music when entering a specific rampart town.
The code below is from Dragon Park to replace building pictures.
Can I use it to redirect the sound files?
* REDIRECT BUILDING PICTURES
! !SN:L^Era.dll^/?y1; y1=handle
! !SN:Ay1/^RedirectFile^/?y2; y2=FU address
! !SN:Ey2/1/^TBRMDW_0.def^/^TBRMDW_4.def^;
.....
for example like
! !SN:Ey2/1/^original sound file name^/^custom sound file name^;
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted May 26, 2016 01:55 PM |
|
|
Dumi, it should not do that. Post your list of mods then a saved game if possible, I will investigate.
|
|
dumiwow
Tavern Dweller
|
posted May 30, 2016 08:02 PM |
|
|
If you can enlighten me and me what I did wrong and why I ask you this error occurs.
I posted the scripts that I have in my game and the error appears to Save.
http://postimg.org/image/ah7m8g0dn/
http://postimg.org/image/r547vldyj/
http://postimg.org/image/4mpi7hv57/
http://postimg.org/image/72ild8fe3/
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted May 30, 2016 08:15 PM |
|
|
Platforms as wog AND wog revised should be at the bottom. So first WoG then just above him, wog revised. Then all your mods. About crash no idea, crash reports says nothing about erm so it could be as well your OS, your video card, sound, anything. Try HD mod and remove HS mod (for example I use HD mod 800x600 so its same feeling) because HD mod is fixing some crashes from vanilla.
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted May 30, 2016 08:23 PM |
|
|
|
XEricSin
Famous Hero
|
posted June 09, 2016 11:45 AM |
|
|
Hi, I have this problem:
When I start a new map, the hero w-variables are not cleared at the start of game.
How can I clear them?
And after I save and exit the game, will the w variables be saved as well?
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted June 09, 2016 01:24 PM |
|
|
From Erm help:
Initializing Variables
Like flags, all variables begin the game with an initial value of 0. However, also like flags, certain variable ranges will NOT be reset between maps without restarting the Heroes game. Again, this is to allow those variables to "carry over" their values to another map as part of a multi-map campaign. When you start a new map, the following variables will be reset to zero (0) or a void string "" for z variables: f...t, v1...v500, v1001-v10000, z1...z300, z501-z1000, w1-w50. The following variables will retain their current values between games (unless you quit and restart Heroes): v501-v1000, z301-z500, w51-w100.
If you want a specific scenario to always reset all vars, you need to place reset command in instructions.
|
|
XEricSin
Famous Hero
|
posted June 09, 2016 01:40 PM |
|
|
Great. I am using w174 and w175. probably can change to w36 and w37.
And what is the command for clearing variables please?
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted June 09, 2016 01:46 PM |
|
|
Do them all, to be sure. I use this in Tew4, change functions unique ID for your map
ZVSE
!?FU164879255;
!!VRvx16:S0;
!?FU164879256;
!!DO164879257/51/200/1:Px16;
!?FU164879257;
!!IF:Wx1;
!!VRwx16:S0;
!#DO164879255/501/1000/1:P; reset v501-v1000
!#DO164879256/0/155/1:P; reset w51-w200 for all heroes
____________
Era II mods and utilities
|
|
XEricSin
Famous Hero
|
posted June 09, 2016 04:28 PM |
|
|
Thanks Sal.
I still have my second question.
If I start map A which sets w36 to 100, and then I save and quit to play Map B which modifies w36 to 1000.
When I load map A, will the w36 remain at 100? 1000? or 0?
|
|
Salamandre
Admirable
Omnipresent Hero
Wog refugee
|
posted June 09, 2016 05:00 PM |
|
|
Every save has in memory its own variables. They can only mix if you quit a scripted map without exiting to desktop (clean memory) then start another scripted one. Saves are always safe.
____________
Era II mods and utilities
|
|
majaczek
Supreme Hero
Work at Magic Dimmension
|
posted June 14, 2016 07:59 PM |
|
Edited by majaczek at 14:53, 22 Jun 2016.
|
Does Summoned Creatures count into experience, when battle is over?
I am making a mod which Increases Battle Difficulty but Not Increases experience.
Any Ideas? I currently changed Attack, Defense, Speed and Retaliation of all AI stacks, and all Wild stacks get Ace level (normal AI stacks does not).
---------------------------
here is C++ code form wog sources to make ghost_ressurect - I believe
Quote: if(*((int *)&MKB_MonA[0x34])==159){
*((int *)&MKB_MonA[0x34])=63;
// *((int *)&MKB_MonA[0x60])*=3;
n=*((int *)&MKB_MonA[0x4C]);
// n+=(*((int *)&MKB_MonD[0x50])-*((int *)&MKB_MonD[0x4C]));
n+=MKB_Killed;
*((int *)&MKB_MonA[0x60])=n;
MKB_Flags=*((int *)&MKB_MonD[0x84]); //
*((int *)&MKB_MonD[0x84])|=0x10; //
MKB_HPdel=(MKB_HPdel*GhostMultiplyer[MKB_MonD[0x34]])/100;
ns=ITxt(38,0,&Strings);
np=ITxt(39,0,&Strings);
__asm{
mov eax,63
mov edi,0x06747B0
mov edi,[edi]
lea ecx,[0x8*eax]
sub ecx,eax
lea eax,[eax+4*ecx]
mov ecx,[edi+4*eax+0x14] //
mov ebx,ns
mov ns,ecx
mov [edi+4*eax+0x14],ebx
mov ecx,[edi+4*eax+0x18] //
mov ebx,np
mov np,ecx
mov [edi+4*eax+0x18],ebx
}
__asm{
mov ecx,0x440B9D+1
mov al,[ecx]
mov MKB_OldMagic,al
mov al,0x53
mov [ecx],al
}
__asm{
mov ecx,MKB_MonA
push MKB_HPorig
push MKB_Killed
push MKB_HPdel
push MKB_MonD
call dword ptr [OriginalCallPointer]
}
__asm{
mov ecx,0x440B9D+1
mov al,MKB_OldMagic
mov [ecx],al
}
__asm{
mov eax,63
mov edi,0x06747B0
mov edi,[edi]
lea ecx,[0x8*eax]
sub ecx,eax
lea eax,[eax+4*ecx]
mov ecx,ns
mov [edi+4*eax+0x14],ecx
mov ecx,np
mov [edi+4*eax+0x18],ecx
}
*((int *)&MKB_MonD[0x84])=MKB_Flags; //
*((int *)&MKB_MonA[0x60])=*((int *)&MKB_MonA[0x4C]);
*((int *)&MKB_MonA[0x34])=159; //
RETURN(1)
}
From what I see it needs two hooks to make both old and new Ghost creature to suck souls. could anybody help? I could use ERM_Hooker
|
|
majaczek
Supreme Hero
Work at Magic Dimmension
|
posted June 22, 2016 03:53 PM |
|
Edited by majaczek at 16:27, 28 Jun 2016.
|
It seems only one Hook is Enough :)
Quote:
!?FU55128; Ghost Hook
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +28; // y2 is pointer to EAX
!!UN:Cy2/4/?y3; // get EAX to y3
!!VRy4:Sy3 +52; // y4 is pointer to creature type
!!UN:Cy4/4/?y5; // get Creature type to y5
!!if|y5=159/y5=288:; //if y5 is Ghost
!!UN:Cy4/4/y5;
!!UN:C7695514/4/y5;
!!en:;
********************HOOK_CODE******************************
!?BA0&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^SetHook^/?y2;
!!SN:Ey2/1/7695135/55128; //Ghost Hook
!?BA1&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^UnsetHook^/?y2;
!!SN:Ey2/1/7695135; !!UN:C7695514/4/159;
************************************************************
Please feel free to share
Quote: !?FU55129; Fix for Resistance Specialist
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +28; // y2 is pointer to EAX
!!UN:Cy2/4/?y3; // get EAX to y3
!!VRy4:Sy3 +26; // y4 is pointer to hero number
!!UN:Cy4/4/?y5; // get hero number to y5
!!HEy5:X?y11/?y12/?y13/?y14/?y15/?y16/?y17;
!!FU|y11<>0/y12<>26:E; Exit if not Resistance/Exorcist Specialist
!!VRy22:Sy1 +32;
!!UN:Cy22/4/7717607;
!?BA0&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^SetHook^/?y2;
!!SN:Ey2/1/7717601/55129;
!?BA1&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^UnsetHook^/?y2;
!!SN:Ey2/1/7717601;
it fixes resistance calculation for any specialist of resistance (before it worked only for Thorgrim) currently if you change thorgrim it would also catch the speciality
------------------------------------------------------------------
some useful hooks :)
make unit behave like Ghost/hell steed/soreceress/enchanter
Quote: !?FU55128; Ghost Hook
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +28; // y2 is pointer to EAX
!!UN:Cy2/4/?y3; // get EAX to y3
!!VRy4:Sy3 +52; // y4 is pointer to creature type
!!UN:Cy4/4/?y5; // get Creature type to y5
!!if|y5=159/y5=288:; //if y5 is Ghost
!!UN:Cy4/4/y5;
!!UN:C7695514/4/y5;
!!en:;
**FU55129;
**Reserved for Knightmare Heroes
!?FU55130; Hell Steed Hook
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +8; // y2 is pointer to EBP
!!UN:Cy2/4/?y3; // get EBP to y3
!!VRy4:Sy3 -44; // y4 is pointer to creature type
!!UN:Cy4/4/?y5; // get Creature type to y5
!!VRy10:Sy1 +32;
!!UN|y5=195/y5=209:Cy10/4/7719490;
!?FU55131; Sorceress Hook
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +8; // y2 is pointer to EBP
!!UN:Cy2/4/?y3; // get EBP to y3
!!VRy4:Sy3 -44; // y4 is pointer to creature type
!!UN:Cy4/4/?y5; // get Creature type to y5
!!VRy10:Sy1 +32;
!!UN|y5=193/y5=276:Cy10/4/7719289;
!?FU55132; //Enchanter Hook
!!SN:X?y1/1; //registers addres
ErmHandlerFunc receives two SN:X arguments: (Context pointer, ExecuteOverwrittenCode? = 1)
If you set ExecuteOverwrittenCode to 0, be sure to change context.RetAddr
Context structure (offsets in brackets):
: EDI (0), ESI (4), EBP (8), ESP (12), EBX (16), EDX (20), ECX (24), EAX (28)
: RetAddr (32)
!!VRy2:Sy1 +28; // y2 is pointer to EAX
!!UN:Cy2/4/?y3; // get EAX to y3
!!VRy4:Sy3 +34; // y4 is pointer to creature type
!!UN:Cy4/4/?y5; // get Creature type to y5
!!VRy10:Sy1 +32;
!!UN|y5=136/y5=136:Cy10/4/4488930;
********************HOOK_CODE******************************
!?BA0&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^SetHook^/?y2;
!!SN:Ey2/1/7695135/55128; //Ghost Hook
!!SN:Ey2/1/7719481/55130; //Hell Steed Hook
!!SN:Ey2/1/7719276/55131; //Sorceress Hook
!!SN:Ey2/1/4488921/55132; //Enchanter Hook
!?BA1&1000;
!!SN:L^EraPluginserm_hooker.era^/?y1 Ay1/^UnsetHook^/?y2;
!!SN:Ey2/1/4488921;
!!SN:Ey2/1/7719276;
!!SN:Ey2/1/7719481;
!!SN:Ey2/1/7695135; !!UN:C7695514/4/159;
|
|
fred79
Disgraceful
Undefeatable Hero
|
posted July 09, 2016 10:39 PM |
|
Edited by fred79 at 22:49, 09 Jul 2016.
|
i've tried everything but UN:C to remove fire shield from creature 171, and i'm not having any luck. any UN:C guru's out there that can help?
also, i need to remove the casting ability from creature 136(enchanter). again, i need the UN:C code for that. thanks in advance, guys.
|
|
Hawaiing
Adventuring Hero
|
posted July 11, 2016 05:02 AM |
|
|
fred79 said: i've tried everything but UN:C to remove fire shield from creature 171, and i'm not having any luck. any UN:C guru's out there that can help?
also, i need to remove the casting ability from creature 136(enchanter). again, i need the UN:C code for that. thanks in advance, guys.
Try this.
!!UN:C7727548/4/9999; remove 171# fire shield
!!UN:C7735412/4/9999; remove 171# fire shield
!!UN:C4608221/2/59792; remove 136# casting ability
|
|
|
|