|
|
idiotpariah

 
 
Adventuring Hero
|
posted November 21, 2009 04:53 AM |
|
|
You can add the wog script to a timed event in a map. You can't make it drag and drop.
If you want to make the blank artifact always have certain powers you can add it to the wogify scripts in the data\s folder (to the artifact boosting scripts would seem most logical).
At that point the remaining issue would be how to add the artifact into normal/random maps, two ways to do that:
1) Add the artifact to a hero- that hero will then always have that artifact when first bought.- this is the easiest way but not perhaps ideal.
2) Add your artifact to the wogify script that replaces some old artifacts with new ones.
|
|
Siegfried

 
   
Famous Hero
|
posted November 21, 2009 06:04 PM |
|
|
The basic idea behind these blank artifacts and erm is, these artifacts do not do anything at all. It is not just setting some artifact attributes and then the remainder is automatically, as with the standard artifacts.
So if you want to do anything with these artifacts, then you have to script it. So in cases where this artifact should "do" anything, set up a trigger, check, if the hero as this artifact equipped, then do what you want with erm. The artifact itself will not do anything.
|
|
Vanderlow

 
Tavern Dweller
|
posted November 23, 2009 06:32 AM |
|
|
OK thanks for your replies.
I've had a shot at making an artifact that works like a suicide bomb - whenever a hero with this artifact equipped attacks another hero, or is attacked by another hero, BOTH heroes instantly get killed.
Here's the script:
ZVSE
!?BA0;
!!BA:E?y1; [is this a network battle?]
!!FU1&y1=0 v1; [if not, continue the script]
!!BA:H0/?v700; [get attacking hero's number]
!!BA:H1/?v701; [get defending hero's number]
!!HEv700:A2/168/0/?v702; [has attacking hero got ROD equipped?]
!!HEv701&v701>=0:A2/168/0/?v703; [has defending hero got ROD equipped?]
!!HEv700:R2/?v705; [Store attacker's sex]
!!HEv701:R2/?v706; [Store defender's sex]
!!VRz90&v705=0:S^he^;
!!VRz90&v705=1:S^she^;
!!VRz91&v705=0:S^him^;
!!VRz91&v705=1:S^her^;
!!VRz92&v706=0:S^he^;
!!VRz92&v706=0:S^he^;
!!VRz93&v706=0:S^him^;
!!VRz93&v706=0:S^her^;
!!HEv700&v702=1:B0/?z80; [get name of attacker if he has artifact]
!!HEv700&v703=1:B0/?z81; [get name of attacker if defender has artifact]
!!HEv701&v702=1:B0/?z80; [get name of defender if he has artifact]
!!HEv701&v703=1:B0/?z81; [get name of defender if attacker has artifact]
!!IF&v702=1:M^%Z80 had the Relic of Doom equipped!! As soon as %Z90 is in range %Z90 detonates, taking %Z81 with %Z91!!^;
!!IF&v703=1:M^%Z80 had the Relic of Doom equipped!! As soon as %Z92 is in range %Z92 detonates, taking %Z81 with %Z93!!^;
!!HEv700&v702=1:K; [If attacker has ROD, kill attacker]
!!HEv700&v703=1:K; [If defender has ROD, kill attacker]
!!HEv701&v702=1:K; [If attacker has ROD, kill defender]
!!HEv701&v703=1:K; [If defender has ROD, kill defender]
It works in that both Heroes end up dead, but the names in the message are wrong. It puts the Heroes name WITHOUT the artifact first! And the other Hero (z81) doesn't come up at all...
any ideas?
-Vanderlow
|
|
Siegfried

 
   
Famous Hero
|
posted November 23, 2009 10:07 AM |
|
|
I think here is an error:
!!HEv700:A2/168/0/?v702; [has attacking hero got ROD equipped?]
0 does not mean do nothing. 0 means set it to 0. If you want to do nothing here you should use d0 (meant as delta 0, i.e. add this to the current value instead of setting it), or simply just d.
BTW, just for security i'dd prefere to preset v702 with 0. Same for other hero.
And this one is not necessary:
!!HEv700&v702=1:B0/?z80; [get name of attacker if he has artifact]
(and then next 3 lines).
Simply get their names unconditionally. Condition checking in output is just sufficient. But if that has something to do with your bug, i don't think so.
And checking condition: In theory it is possible to get higher values than 1 if the hero has several of these artifacts equipped. So to be safe just check for =0 or <>0.
Next:
!!FU1&y1=0v1; [if not, continue the script]
Where is FU1? And do you have the standard scripts removed? I think FU1 is already implemented elsewhere. So what you are doing here is calling FU1. Don't know what this function is doing. Then the remainder of the script is executed.
If you want to continue the script if not network battle, it is much easier to think reverse: Exit the script if it is a network battle:
!!FU&y1<>0:E;
Else: What message appears?
|
|
Vanderlow

 
Tavern Dweller
|
posted November 24, 2009 02:23 AM |
|
|
Siegfied:
Thanks for your help mate.
I'll put your suggestions to the test!
-Vanderlow
|
|
Vanderlow

 
Tavern Dweller
|
posted November 24, 2009 09:07 AM |
|
|
Hi again.
I've tried some of Seigfried's suggestions and this is what i've come up with:
It works fine when the Human hero equips and attacks a computer hero, but doesn't work in the siege situation.
When a computer Hero equips and attacks me, the dialogue is correct, but before both heroes disappear, you still fight out the battle, however both armies are just 1x Level 1 creature!!
If anyone can be bothered to have a look and let me know where i went wrong i would be very grateful!!
ZVSE
!?BA0&-998;
!#VRv700:S0; [v700 = Attacking Hero's #]
!#VRv701:S0; [v701 = Defending Hero's #]
!#VRv702:S0; [v702 = Attacking Hero's equipped Relic of Doom]
!#VRv703:S0; [v703 = Attacking Hero's equipped Relic of Doom]
!#VRv705:S0; [v705 = Attacker's sex]
!#VRv706:S0; [v706 = Defender's sex]
!#VRv707:S0; [v707 = Network battle?]
!#VRv50:S0; [v50 = Seige battle?]
!#VRv51:S0; [v51 = AI only battle?]
!#VRv52:S0; [v52 = Seige battle FU done?]
!#VRv53:S0; [v53 = AI battle FU done?]
!!BA:E?v707; [is this a network battle?]
!!FU29000&v707=0:P; [if not, continue the script]
!?FU29000;
!!BA:H0/?v700; [get attacking hero's number]
!!BA:H1/?v701; [get defending hero's number]
!!HEv700:B0/?z80; [get name of attacker]
!!HEv701&v701>=0:B0/?z81; [get name of defender]
!!HEv700:R2/?v705; [Store attacker's sex]
!!HEv701&v701>=0:R2/?v706; [Store defender's sex]
!!VRz90&v705=0:S^he^; [attacker "he"]
!!VRz90&v705=1:S^she^; [attacker "she"]
!!VRz91&v705=0:S^him^; [attacker "him"]
!!VRz91&v705=1:S^her^; [attacker "her"]
!!VRz92&v706=0/v701>=0:S^he^; [defender "he"]
!!VRz92&v706=1/v701>=0:S^she^; [defender "she"]
!!VRz93&v706=0/v701>=0:S^him^; [defender "him"]
!!VRz93&v706=1/v701>=0:S^her^; [defender "her"]
!!HEv700:A2/168/d0/?v702; [has attacking hero got ROD equipped?]
!!HEv701&v701>=0:A2/168/d0/?v703; [has defending hero got ROD equipped?]
!!BA:A/?v51; [is this an AI only battle?
!!FU29002&v51>0:P; [if this is only AI, go to FU 29002]
!!FU29000&v53>0:E; [end this function]
!!BA:S/?v50; [Is this a seige battle?]
!!FU29001&v50>0:P; [If it is, go to FU29001]
!!FU29000&v52>0:E; [end this function]
!!HEv700&v702>0:K; [If attacker has ROD, kill attacker]
!!HEv700&v703>0:K; [If defender has ROD, kill attacker]
!!HEv701&v702>0:K; [If attacker has ROD, kill defender]
!!HEv701&v703>0:K; [If defender has ROD, kill defender]
!!IF&v702>0:M^%Z80 had the Relic of Doom equipped!! As soon as %Z90 is in range %Z90 detonates, taking %Z81 with %Z91!!^;
!!IF&v703>0:M^%Z80 had the Relic of Doom equipped!! As soon as %Z92 is in range %Z92 detonates, taking %Z81 with %Z93!!^;
!!FU29000:E;
!?FU29001; [Seige battle]
!!FU29001&v701>=0/v702<1/v703<1:E;
!!IF&v701>=0:M^%Z81 is out of range of the Relic of Doom's explosive range.^;
!!VRv52:S1;
!!FU29000:P;
!?FU29002; [AI only]
!!FU29002&v701>=0/v702<1/v703<1:E;
!!HEv700&v701>=0/v702>0:K; [If attacker has ROD, kill attacker]
!!HEv700&v701>=0/v703>0:K; [If defender has ROD, kill attacker]
!!HEv701&v701>=0/v702>0:K; [If attacker has ROD, kill defender]
!!HEv701&v701>=0/v703>0:K; [If defender has ROD, kill defender]
!!VRv53:S1;
!!FU29000:P;
*!!BA:D;
Cheers
-Vanderlow
|
|
Siegfried

 
   
Famous Hero
|
posted November 24, 2009 10:11 AM |
|
|
This one is strange:
!!FU29000:E;
There are similar lines. I'm not sure what it does. Normally it should call FU29000, but then what doe :E here?
I think you simply meant !!FU:E; which simply means to exit this function. I'm not sure what it does when using a function number here. Normally !!FU29000 ; would call that function. I'm not sure what !!FU29000:E; does.
Just for short...
Quote: When a computer Hero equips and attacks me, the dialogue is correct, but before both heroes disappear, you still fight out the battle, however both armies are just 1x Level 1 creature!!
That seems you first have killed them, then recalled them. This is similar if you hire 2 heroes in town, and then hire a third hero. This one is then put to map with just 1 lvl 1 creature.
|
|
Vanderlow

 
Tavern Dweller
|
posted November 26, 2009 05:36 AM |
|
|
Trouble with Seige battle
Here is a little script for testing whether a battle is a seige or not. Seige battles should return a value of 1, 2 or 3 for the !!BA:S$ receiver.
ZVSE
!?BA0;
!!BA:S?v50;
!!IF:M^Seige battle state is %V50.^;
For some reason it doesn't return the values expected: i.e it sometimes returns "1" for a non-seige battle, and will return "0" for a non-seige battle, then return "0" for a seige battle!
Any ideas how to get the correct return for checking if it's a seige battle?
-Vanderlow
|
|
Siegfried

 
   
Famous Hero
|
posted November 26, 2009 11:57 AM |
|
|
I've often tried it, and it always gave correct results.
perhaps the error is in what you think is a siege battle. Attacking a town is not automatically a siege battle. The town needs at least a fort to make this a siege battle.
And the return value is simply the fort level. So 0 fo no fort (which is valid in field battles as well as town battles with no fort), 1 if fort, 2 if citadel and 3 if castle.
|
|
Vanderlow

 
Tavern Dweller
|
posted November 26, 2009 12:05 PM |
|
|
Yeah i realise that. Perhaps the problem is with my version of WOG?
Is there any way i can check what version i'm using?
I downloaded the 3.58 script update and updated it...
____________
|
|
Siegfried

 
   
Famous Hero
|
posted November 26, 2009 03:32 PM |
|
|
!!UN:V$1/$2 -> Version/Subversion
|
|
ranger

 
  
Known Hero
The Forest Knight
|
posted November 26, 2009 08:39 PM |
|
|
Can you give me script to live without castle?
|
|
Siegfried

 
   
Famous Hero
|
posted November 26, 2009 08:49 PM |
|
|
That is easy 
!#OW #1/#2;
Replace #1 with the player bit. Set to 255 if all players. Replace #2 with the number of days to live without castle.
To insert that into a map, setup a timed event, day 999, and the text beeing first line ZVSE, then this line. That's all.
If it does not work (some of the commands do not work before most of the map setting is done), try this 2 lines:
!?PI;
!!OW #1/#2;
Replace #1 and #2 as above.
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted November 26, 2009 09:18 PM |
|
|
Siegried click on the red cross (disable smileys) when giving script, no reason to show your happiness inside.
ZVSE
!#OW:D0/250;
!#OW:D1/250;
!#OW:D2/250;
!#OW:D3/250;
!#OW:D4/250;
!#OW:D5/250;
!#OW:D6/250;
!#OW:D7/250;
____________
Era II mods and utilities
|
|
Vanderlow

 
Tavern Dweller
|
posted November 27, 2009 02:07 AM |
|
|
Well i checked, and i'm using v358.
Anyone got any ideas why this script returns wrong values?
ZVSE
!?BA0;
!!BA:S?v50;
!!IF:M^Seige battle state is %V50.^;
I HAVE FIGURED OUT WHAT'S HAPPENING!
For some reason the first battle ALWAYS returns a value of 0.
Then every battle after that returns the value of the PREVIOUS battle.
So if I fought:
1 - A Citadel;
2 - A fort;
3 - A non-seige battle;
4 - A Castle;
5 - A non-seige battle
I would get the values:
1 - 0
2 - 2
3 - 1
4 - 0
5 - 3
Next battle - 0
How can i get it to return the value of the CURRENT battle and not the PREVIOUS battle?!?
-Vanderlow
____________
|
|
Siegfried

 
   
Famous Hero
|
posted November 27, 2009 09:36 AM |
|
|
No idea.
But try this:
!?BA0&1000;
...
This calls this function only if some human is fighting. The BA trigger does not work properly for pure AI battles.
I don't know if that is the reason, but just to be sure...
|
|
mister_kalu

 
  
Known Hero
|
posted December 12, 2009 04:02 AM |
|
|
hello, my team is working on a project, in that project we made a lot of monsters, including creatures some like druids, but to make the druids, we must exclude of the game the pegasi, the reason of this post, is ask to somebody the exactly script to insert a link between the monsters( druid-ex pegasus) and the misile sprites def ... because if anybody change the flag of the pegasi(doble wide monster, fly, melee) or simply the stats, to become a shooter monster(need aditional frames), the game crash, because the inexistent misils.def of the pegasi, how i make a link between my druid and the created misil.def by me in H3sprite.lod?.. or more simply.. a link between zealots shoots or any other monsters missile?.. for example the wog dracolich thanksSsSs
sorry but we arenīt experts in erm ,I would like to request the script, but not just the code, rather including the code of the pegasi
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted December 12, 2009 04:38 AM |
|
|
Write here exactly what is your rampart new upgrades and creatures and which will be shooter as well the wide of new creatures (1-2 hex)
I don't know how to make a shooter from a non shooter but I asked in russian forums, I need it too. Right now it asks for sfx and "sprite" then crash on shoot (it has frames).
____________
Era II mods and utilities
|
|
DoCSumann

 
Tavern Dweller
|
posted December 15, 2009 09:57 AM |
|
|
Hello everybody,
I need some help with my new map scripting . I have already made a script that map isn't wogified, but I want to keep quick combat and additional two secondery skills options. What I have to do ?
|
|
Salamandre

     
       
Admirable
Omnipresent Hero
Wog refugee
|
posted December 15, 2009 10:06 AM |
|
|
Doc, quick combat option is kept whatever are the options. For additional secondary scripts, copy/paste "hidden skills" script from my map Time of Prophecy.
____________
Era II mods and utilities
|
|
|
|