|
|
kerosin

 
Tavern Dweller
|
posted April 03, 2016 08:05 AM |
|
|
Quote: ZVSE
!#UN:C7961026/1/03;
!#UN:C7960838/1/02;
!#UN:C7960650/1/03;
!#MA:B63/3;
Vampire Lords now can cast BloodLust (as Ogre Mages) three times for a battle.
For other creatures (except Castle creatures, as I said), increase or decrease mem addresses.
Feanor wrote this for WOG3.58f, does somebody know the same adresses for ERA?
|
|
bloodsucker

 
     
Legendary Hero
|
posted April 03, 2016 09:53 AM |
|
|
Salamandre said: but for new scripts, better someone hurry and learns the whole thing.
The problem is: there are tons of interresting things to learn about the game and what he can do with it and it takes time to master all. For the last months I've been working on a single map for HotA. If someone told me he needed months to draw a map I would found it strange but I already know you (Sal) think it takes about a year to draw a good one. So, I will restart my ERM study when I finnish the map and I hope it will be soon but since I took two new approaches in the last week, completly changing the narrative of the map (it still lacks a storyline but at least it has a plot) it may take longer then I tought.
|
|
kerosin

 
Tavern Dweller
|
posted April 03, 2016 10:57 AM |
|
Edited by kerosin at 10:59, 03 Apr 2016.
|
Sorry for bad English.
I found adresses for ERA, now all creatures (besides Castle, because tabbles begin from archangel) can became casters:
Peasants can cust random spell like master genies:
!#UN:C7994382/1/01;
!#UN:C7994190/1/01;
!#UN:C7993998/1/01;
!#MA:B139/5;
For another creatures (x-creature number):
-adress in first row 7994243+x; and bites:
00 - cust ressurection like archangel
01 - master genie
02 - pit lords
03 - ogres
04 - 07 - something like elementals
08 - fairie dragon
09 - nope
-in second row 7994051+x and bites:
00 - archangels
01 - genie
02 - ogres
03 -06 elementals
07 - fairie dragon
08 - nope
- in third row 7993859+x and bites
00- archangels
01-genie and ogres
02-fairie dragon
03-nope
and !#MA:Bx/y
|
|
bloodsucker

 
     
Legendary Hero
|
posted April 03, 2016 02:05 PM |
|
|
Does this adds the same hability to other creature or moves it from the first one to the other?
|
|
kerosin

 
Tavern Dweller
|
posted April 03, 2016 02:32 PM |
|
|
bloodsucker said: Does this adds the same hability to other creature or moves it from the first one to the other?
Adds
|
|
bloodsucker

 
     
Legendary Hero
|
posted April 03, 2016 06:21 PM |
|
|
Christimas camed earlier this year... Thanks.
Not Enchanters hability, tough.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2016 06:48 PM |
|
Edited by fred79 at 18:49, 05 Apr 2016.
|
@ hawaiing: i tried your code, and i'm getting syntax errors. using this info:
**x1=STACK_ID 0-41,x2=z-var indexer (wav name)
**x3=sounds for 0 move/1 attack/2 wince/3 shoot/4 kill/5 defend
!?FU9999911;
!!FU|x1<0/x1>41:E;
!!FU|x2<1/x2>1000:E;
!!FU|x3<0/x3>5:E;
!!VRy1:Sx2 *512 +9597416;
!!VRx3:-10;
!!BMx1:Gx3/?y11/d;
!!SN:E5622064/2/y1;
!!BMx1:Gx3/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
this is the script i used, that gave me the errors:
!?BF;
!!VRz2:S^pirtattk.wav^;
!!VRz3:S^pirtdfnd.wav^;
!!VRz4:S^pirtkill.wav^;
!!VRz5:S^pirtmove.wav^;
!!VRz6:S^pirtwnce.wav^;
!!VRy1:S0;
!!FU9999911:Py1/2/1;
!!FU9999911:Py1/3/5;
!!FU9999911:Py1/4/4;
!!FU9999911:Py1/5/0;
!!FU9999911:Py1/6/2;
!?FU9999911;
!!FU|137<0/137>41:E;
!!FU|^pirtattk.wav^<1/^pirtattk.wav^>1000:E;
!!FU|1<0/1>5:E;
!!VRy1:S^pirtattk.wav^ *512 +9597416;
!!VR1:-10;
!!BM137:G1/?y11/d;
!!SN:E5622064/2/y1;
!!BM137:G1/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
!?FU9999911;
!!FU|137<0/137>41:E;
!!FU|^pirtdfnd.wav^<1/^pirtdfnd.wav^>1000:E;
!!FU|5<0/5>5:E;
!!VRy1:S^pirtdfnd.wav^ *512 +9597416;
!!VR5:-10;
!!BM137:G5/?y11/d;
!!SN:E5622064/2/y1;
!!BM137:G5/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
!?FU9999911;
!!FU|137<0/137>41:E;
!!FU|^pirtkill.wav^<1/^pirtkill.wav^>1000:E;
!!FU|4<0/4>5:E;
!!VRy1:S^pirtkill.wav^ *512 +9597416;
!!VR4:-10;
!!BM137:G4/?y11/d;
!!SN:E5622064/2/y1;
!!BM137:G4/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
!?FU9999911;
!!FU|137<0/137>41:E;
!!FU|^pirtmove.wav^<1/^pirtmove.wav^>1000:E;
!!FU|0<0/0>5:E;
!!VRy1:S^pirtmove.wav^ *512 +9597416;
!!VR0:-10;
!!BM137:G0/?y11/d;
!!SN:E5622064/2/y1;
!!BM137:G0/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
!?FU9999911;
!!FU|137<0/137>41:E;
!!FU|^pirtwnce.wav^<1/^pirtwnce.wav^>1000:E;
!!FU|2<0/2>5:E;
!!VRy1:S^pirtwnce.wav^ *512 +9597416;
!!VR2:-10;
!!BM137:G2/?y11/d;
!!SN:E5622064/2/y1;
!!BM137:G2/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
the syntax errors i got were:
"getflags"
"!!$$:"
"erm has wrong syntax"
disabled
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 05, 2016 07:08 PM |
|
|
fred79 said: @ hawaiing: i tried your code,
lol, no, you butchered his code.
There is only one function !?FU9999911, and it is called multiple times. You need to loop through battle stacks, which is a new step in your erm mastery.
I will try to look tomorrow, if Hawaiing doesn't post the missing loop.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2016 07:37 PM |
|
|
? how did i butcher anything, when i only followed the instructions?
Quote: **x1=STACK_ID 0-41,x2=z-var indexer (wav name)
**x3=sounds for 0 move/1 attack/2 wince/3 shoot/4 kill/5 defend
lol, we script newbies need an erm help, for erm help.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 05, 2016 08:03 PM |
|
|
All preceded by ** is a comment from Hawaiing, telling what you have to do before, not something you have to replace with a code. All the values must be given before the !!FU receiver then they will be processed by !?FU trigger.
I know, sounds chinese at this moment.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2016 08:08 PM |
|
|
oh! i thought they were a key for what i had to replace. thanks for clearing that up.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 05, 2016 08:19 PM |
|
|
Leave !?FU thing as it is, then work on !!FU receiver
!?BF;
!!VRz2:S^pirtattk.wav^;
!!VRz3:S^pirtdfnd.wav^;
!!VRz4:S^pirtkill.wav^;
!!VRz5:S^pirtmove.wav^;
!!VRz6:S^pirtwnce.wav^;
!!VRy1:S0; when this is 0, it means the creature ID is 0 (pikeman).
!!FU9999911:Py1/2/1;
!!FU9999911:Py1/3/5;
!!FU9999911:Py1/4/4;
!!FU9999911:Py1/5/0;
!!FU9999911:Py1/6/2;
So change y1 to whatever ID those sound are for. Now you finished THIS creature. Then add to all this (keep a space between different ID) the next creature ID so it will look like:
!?BF;
!!VRz2:S^pirtattk.wav^;
!!VRz3:S^pirtdfnd.wav^;
!!VRz4:S^pirtkill.wav^;
!!VRz5:S^pirtmove.wav^;
!!VRz6:S^pirtwnce.wav^;
!!VRy1:S0; when this is 0, it means the creature ID is 0 (pikeman).
!!FU9999911:Py1/2/1;
!!FU9999911:Py1/3/5;
!!FU9999911:Py1/4/4;
!!FU9999911:Py1/5/0;
!!FU9999911:Py1/6/2;
;change in the following all the sounds wavs then y1 value to next creature you want to process
!!VRz2:S^pirtattk.wav^;
!!VRz3:S^pirtdfnd.wav^;
!!VRz4:S^pirtkill.wav^;
!!VRz5:S^pirtmove.wav^;
!!VRz6:S^pirtwnce.wav^;
!!VRy1:S0; here change now y1 to following ID, and in the following 5 lines TOO (y1 only)
!!FU9999911:Py1/2/1;
!!FU9999911:Py1/3/5;
!!FU9999911:Py1/4/4;
!!FU9999911:Py1/5/0;
!!FU9999911:Py1/6/2;
And so on. For now, do it for 2-3 creatures then go testing, there is a lot of hacking there and I fear your house will explode.
____________
Era II mods and utilities
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2016 08:25 PM |
|
Edited by fred79 at 21:05, 05 Apr 2016.
|
thanks for breaking it down for me, sal. i'll give it another go, then get back with my findings. :)
edit: ok. i tried it again, and the sounds weren't changed. this is the script i used:
!?BF;
!!VRz2:S^pirtattk.wav^;
!!VRz3:S^pirtdfnd.wav^;
!!VRz4:S^pirtkill.wav^;
!!VRz5:S^pirtmove.wav^;
!!VRz6:S^pirtwnce.wav^;
!!VRy1:S137;
!!FU9999911:Py1/2/1;
!!FU9999911:Py1/3/5;
!!FU9999911:Py1/4/4;
!!FU9999911:Py1/5/0;
!!FU9999911:Py1/6/2;
!?FU9999911;
!!FU|x1<0/x1>41:E;
!!FU|x2<1/x2>1000:E;
!!FU|x3<0/x3>5:E;
!!VRy1:Sx2 *512 +9597416;
!!VRx3:-10;
!!BMx1:Gx3/?y11/d;
!!SN:E5622064/2/y1;
!!BMx1:Gx3/v1/d;
!!if&y11>0:;
!!UN:Cy11/4/?y13;
!!VRy13:+4;
!!UN:Cy13/4/?y14;
!!SN:Ey14/2/y11;
!!en:;
the sound specs in the script aren't case-sensitive, are they(because the actual sounds are PIRTATTK.DEF, etc)?
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 05, 2016 09:36 PM |
|
|
My fault, I didn't read carefully hawaiing description. y1 is not creature ID, but battle stack ID. So you need loop. Will look into it tomorrow if time.
|
|
fred79

      
Disgraceful
Undefeatable Hero
|
posted April 05, 2016 10:12 PM |
|
|
ok, thanks. i have plenty of work to occupy myself until then.
|
|
Hero_Of_Light

   
    
Responsible
Supreme Hero
|
posted April 07, 2016 05:28 PM |
|
|
Is there a way to replace standard upgrade script (in order to upgrade these creatures etc) with a custom one that will occur in select creatures only?
In my mod, I made some creatures interchangeable (which means you can upgrade back and forth at no cost) and I would like to add a custom script when that happens.
For instance, in my mod Skeletons are upgraded to Skeleton Warriors and vice versa. Instead of the usual text that appears when you click on these creatures' upgrade button I would like a new one that looks like this:
"Are you sure you would like to exchange your "plural of creature you clicked upgrade" with "creatures it upgrades to"?
And below the message, instead of the gold icon the two creatures' twcrport.def images will appear.
Is this possible to make it work for a list of creatures (or at all)?
**EDIT**
I also want another script which I want help with.
I want to make Battle Scholars dwelling (23) in Dungeon to summon a number of Rogues every week (6 to 9). Every Monday, If the building is built, 6-8 Rogues should appear in town garrison. I tried copying the script from halfling mod but didn't work. Can somebody help me with this?
!?PI;
!?TM21; //every monday
!!UN:U98/5/?i; //searching for all Dungeons
!!FU&i=0:E;
!!DO25676/1/i/1:P;
!?FU25676;
!!VRy3:S6 R3; [3-6 Rocs: y3]
!!CA2:O?y2 B3/23; [Owner of Town (y2), Flag 1 is TRUE if the building is built]
!!CA2&x1<0:M2/x16/?y2/?y3; [Garrison troops in slot x16. Type: y2, Number: y3]
!!HEx1&x1>=0:C0/x16/?y2/?y3; [Garrison hero's troops in slot x16. Type: y2, Number: y3]
!!FU&y2>=0/y2<>143:E; [Exit if slot isn't empty unless it contains Rocs already]
!!CA2&x1<0:M2/x16/143/dy-6; [Garrison: give available Rocs]
!!HEx1&x1>=0:C0/x16/143/dy-6; [Garrison hero: give available Rocs]
!!VRy-5:S1; [Set y-5 to 1 if Rocs given]
!!VRx16:S999; [Set x16 to 999 to exit loop]
!!PO2:V2/0; [Reset PO:V2 to 0 if Rocs given]
Can someone please help me with this?
____________
Not idly do the leaves of Lorien fall.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 09, 2016 11:06 AM |
|
|
This script doesn't make any sense, there is no x value parsed by the function, can you show the original halfling script?
|
|
Hero_Of_Light

   
    
Responsible
Supreme Hero
|
posted April 09, 2016 11:15 AM |
|
|
Halfling mod gave 3-6 Rocs in Fountain of Fortune. You clicked on Fountain, a text showed up, checked if empty slots and the Rocs were there.
What I want is simpler. I want to make the Dungeon's Battle School to gather 6-9 Rogues each Monday, without clicking on any dwelling. If the battle school is built then you get the rogues automatically.
Anyway, here's the script.
** PART TWO
** Mystic Pond
** Summons 3-6 Rocs each week that player may recruit for free.
** Variables:
** FU26201-FU26202
!?PI;
!#TM1:S1/999/1/255; [Triggers for every color every day]
** [Weekly Day 1 Timer]
!?TM1; [Daily Timer is trigger]
!#UN:P83/?v5993; [Check is the script is enabled, otherwise exit]
!!FU&v5993<>1:E;
!!VRy-1:Sc-1; [Current day minus 1: y-1]
!!VRy-2:Sy-1 :7 *7; [Divide day by 7, multiply by 7: y-2]
!!FU&y-1<>y-2:E; [Exit if not a day 1]
!!UN:U98/1/?y-3; [Number of Halfling Towns on map: y-3]
!!FU&y-3<1:E; [Exit if no Towns]
!!VRv2:S-1; [Initialize v2 to -1 for fast UN:U looping]
!!DO26201/1/y-3/1:P; [Loop through all Halfling Towns]
** [Loop through all Halfling Towns]
!?FU26201;
!!UN:U98/1/-1/2; [Store Halfling Town coordinates in v2/v3/v4]
!!OW:C?y1; [Current player: y1]
!!CA2:O?y2 B3/17; [Owner of Town (y2), Flag 1 is TRUE if the building is built]
!!VRy3:S3 R3; [3-6 Rocs: y3]
!!OW:Iy1/?y4; [Check if player is Human (0) or AI (1): y4]
!!PO2&y1=y2/1:V2/dy3; [If player owns town and Pond built, add 3-6 Rocs available for recruiting: PO:V2 number]
!!FU|y4=0/y1<>y2/-1:E; [Exit if Human player or if current player doesn't own town or no Pond built]
!!CA2:H0/?y-4; [AI's Garrison hero # (-1 if no garrison hero): y-4]
!!PO2:V2/?y-6; [Number of Rocs available to be recruited by AI: y-6]
!!DO26202/0/6/1:Py-4; [Loop through all slots and recruit Rocs for AI if there's space]
** [Left Click on Pond]
!?CM1; [Town mouse-click is trigger]
!#UN:P83/?v5993; [Check is the script is enabled, otherwise exit]
!!FU&v5993<>1:E;
!!CA-1:T?y-1; [Town type: y-1]
!!CM:S?y-2 I?y-3; [Subtype of click (y-2), Location (y-3)]
!!FU|y-1<>1/y-2<>12/y-3<>17:E; [Exit if not a left click on Pond]
!!CA-1:P?v2/?v3/?v4; [Town's location: v2/v3/v4]
!!CA2:H0/?y-4; [Garrison hero # (-1 if no garrison hero): y-4]
!!PO2:V2/?y-6; [Number of Rocs available to be recruited: y-6]
!!IF&y-6>0:Q2/23/17/21/92/2^{Mystic Pond}
The Mystic Pond produces a small number of resources weekly and allows you to recruit Rocs, but the latter is disabled if you build Fountain of Fortune.
There are currently %Y-6 Rocs available. Do you wish to recruit them now?^;
!!IF&y-6<1:Q1/23/17/21/92/1^{Mystic Pond}
The Mystic Pond produces a small number of resources weekly and allows you to recruit Rocs, but the latter is disabled if you build Fountain of Fortune.
There are currently %Y-6 Rocs available.^;
!!CM:R0; [Disable standard click action]
!!FU|-2/y-6<1:E; [Exit if player doesn't wish to recruit Rocs or none available]
!!VRy-5:S-1; [Initialize y-5 to -1]
!!DO26202/0/6/1:Py-4; [Loop through all slots and recruit Rocs if there's space]
!!IF&y-5<0:Q1/21/92/1^You must make room in your army before you can recruit the Rocs.^;
!!UN:R4/0; [Redraw Town Screen]
** [Loop through all slots and give Rocs]
!?FU26202;
!!CA2&x1<0:M2/x16/?y2/?y3; [Garrison troops in slot x16. Type: y2, Number: y3]
!!HEx1&x1>=0:C0/x16/?y2/?y3; [Garrison hero's troops in slot x16. Type: y2, Number: y3]
!!FU&y2>=0/y2<>92:E; [Exit if slot isn't empty unless it contains Rocs already]
!!CA2&x1<0:M2/x16/92/dy-6; [Garrison: give available Rocs]
!!HEx1&x1>=0:C0/x16/92/dy-6; [Garrison hero: give available Rocs]
!!VRy-5:S1; [Set y-5 to 1 if Rocs given]
!!VRx16:S999; [Set x16 to 999 to exit loop]
!!PO2:V2/0; [Reset PO:V2 to 0 if Rocs given]
** end of part two
____________
Not idly do the leaves of Lorien fall.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted April 09, 2016 11:57 AM |
|
|
Try this: 6-9 rogues are added each first day of the week if a) 1st army slot of hero in garrison (if any) is empty or b) if town first slot is empty
!?TM21; //every monday
!!UN:U98/5/?y1; get total # of dungeons on map
!!VRv1:S-1;
!!DO25676/1/y1/1&y1>0:P98;
!?FU25676;
!!UN:Ux1/5/-1/2; town in v2-v4
!!CA2:O?y2; type and owner
!!FU&y2<0:E;
!!CA2:B3/23;
!!FU&-1:E;
!!CA2:H0/?y3;
!!VRy4:S6R3;
!!if&y3>-1:; if hero in garrison
!!HEy3:C0/0/?y5/?y6;
!!FU&y5>-1:E;
!!HEy3:C2/0/143/y4;
!!en:;
!!if&y3<0:; if no hero in garrison
!!CA2:M2/0/?y5/?y6;
!!FU&y5>-1:E;
!!CA2:M2/0/143/y4;
!!en:;
____________
Era II mods and utilities
|
|
Hero_Of_Light

   
    
Responsible
Supreme Hero
|
posted April 09, 2016 12:24 PM |
|
|
Thanks
It works but it has some small bugs this way:
1st) Can you make it loop through all slots and give the rogues in first empty slot?
2nd) Even If there are Rogues in first slot there are no extra Rogues given. Can you make it accumulate Rogues each week?
3rd) The timmer has a bug, If you go on Monday and get the rogues from town, then next day additional rogues will be added (I think it works on start of turn AND end of turn.
I copied-pasted your script and edited a bit to make it work on Day 1 If Dungeon has the Battle School already built as well. Can you help me with these bugs? I think Halfling mod script had slot checks in it.
!?PI;
!!UN:U98/5/?y1; get total # of dungeons on map
!!VRv1:S-1;
!!DO25675/1/y1/1&y1>0:P98;
!?FU25675;
!!UN:Ux1/5/-1/2; town in v2-v4
!!CA2:O?y2; type and owner
!!FU&y2<0:E;
!!CA2:B3/23;
!!FU&-1:E;
!!CA2:H0/?y3;
!!VRy4:S6R3;
!!if&y3>-1:; if hero in garrison
!!HEy3:C0/0/?y5/?y6;
!!FU&y5>-1:E;
!!HEy3:C2/0/143/y4;
!!en:;
!!if&y3<0:; if no hero in garrison
!!CA2:M2/0/?y5/?y6;
!!FU&y5>-1:E;
!!CA2:M2/0/143/y4;
!!en:;
!?TM21; //every monday
!!UN:U98/5/?y1; get total # of dungeons on map
!!VRv1:S-1;
!!DO25676/1/y1/1&y1>0:P98;
!?FU25676;
!!UN:Ux1/5/-1/2; town in v2-v4
!!CA2:O?y2; type and owner
!!FU&y2<0:E;
!!CA2:B3/23;
!!FU&-1:E;
!!CA2:H0/?y3;
!!VRy4:S6R3;
!!if&y3>-1:; if hero in garrison
!!HEy3:C0/0/?y5/?y6;
!!FU&y5>-1:E;
!!HEy3:C2/0/143/y4;
!!en:;
!!if&y3<0:; if no hero in garrison
!!CA2:M2/0/?y5/?y6;
!!FU&y5>-1:E;
!!CA2:M2/0/143/y4;
!!en:;
____________
Not idly do the leaves of Lorien fall.
|
|
|