• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Custom skills fatal errors

Status
Not open for further replies.
Level 5
Joined
Jul 18, 2010
Messages
159
Hello, I've got yet another problem. Can somebody tell me what do those fatal errors mean or how to solve the problem?

It occurs when two specific skills are used right after one another Warcraft crashes.
lkcslOz.png

mdtBQKN.png


Error happens when "Glacial Shards"(second trigger) skill is used on enemies and right after that Freezing Orb(second trigger) skill is casted on same target.

Clip showing using the skills(it cuts at the point when the error happens, my bandicam stoped recording)
https://drive.google.com/file/d/0BwcoxL_cC6AlM3lIM2NoUVlXanM/view?usp=sharing

Skills:
(i'm sorry if the triggers are hard to read, my worldedit is in polish ;/)

1st one based on Cluster Rockets
  • Freezing Orb
    • Wydarzenia
      • Jednostka - A unit Rozpoczyna dziaĹ‚anie zdolnoĹ›ci
    • Warunki
      • (Ability being cast) RĂłwna siÄ™ (Ma)Freezing Orb
    • Akcje
      • Jednostka - Create 1 Dummy for (Owner of (Triggering unit)) at (Target point of ability being cast) facing DomyĹ›lna orientacja budynku degrees
      • Set FODummy = (Last created unit)
      • Wait 0.75 seconds
      • Jednostka - Add a 1.50 second OgĂłlny expiration timer to FODummy
      • Set FOTempPoint = (Position of FODummy)
      • Jednostka - Add Freezing Orb - Stun to FODummy
      • Jednostka - Set level of Freezing Orb - Stun for FODummy to (Level of (Ma)Freezing Orb for (Triggering unit))
      • Jednostka - Order FODummy to Specjalne Czarownik - Inferno (Target point of ability being cast)
      • Jednostka - Add Freezing Nova to FODummy
      • Jednostka - Set level of Freezing Nova for FODummy to (Level of (Ma)Freezing Orb for (Triggering unit))
      • Jednostka - Order FODummy to Neutralny - WĹ‚adca OtchĹ‚ani - Zew Grozy
      • Efekt specjalny - Create a special effect at FOTempPoint using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
      • Efekt specjalny - Destroy (Last created special effect)
      • Set FOTempGroup = (Units within 200.00 of FOTempPoint matching ((((Matching unit) is alive) RĂłwna siÄ™ TAK) and ((((Matching unit) is Prastary) RĂłwna siÄ™ NIE) and (((Owner of (Triggering unit)) is an enemy of (Owner of (Matching unit))) RĂłwna siÄ™ TAK))))
      • Grupa jednostek - Pick every unit in FOTempGroup and do (Actions)
        • PÄ™tla - Akcje
          • Jednostka - Cause (Triggering unit) to damage (Picked unit), dealing (((4.00 x (Real((Level of (Ma)Freezing Orb for (Triggering unit))))) x (Real(Inteligance[(Player number of (Owner of (Triggering unit)))]))) + Spellpower[(Player number of (Owner of (Triggering unit)))]) damage of attack type ZaklÄ™cia and damage type Zimno
      • Custom script: call RemoveLocation (udg_FOTempPoint)
      • Custom script: call DestroyGroup (udg_FOTempGroup)
      • Set FODummy = Brak jednostki
2nd one based on Blizzard
  • Glacial Shards
    • Wydarzenia
      • Jednostka - A unit Rozpoczyna dziaĹ‚anie zdolnoĹ›ci
    • Warunki
      • (Ability being cast) RĂłwna siÄ™ (Ma)Glacial Shards
    • Akcje
      • Jednostka - Create 1 Dummy for (Owner of (Triggering unit)) at (Target point of ability being cast) facing DomyĹ›lna orientacja budynku degrees
      • Set GSDummy = (Last created unit)
      • Jednostka - Add a 1.50 second OgĂłlny expiration timer to GSDummy
      • Set GSTempPoint = (Position of GSDummy)
      • Jednostka - Add Freezing Orb - Stun to GSDummy
      • Jednostka - Set level of Freezing Orb - Stun for GSDummy to (Level of (Ma)Glacial Shards for (Triggering unit))
      • Jednostka - Order GSDummy to Specjalne Czarownik - Inferno (Target point of ability being cast)
      • Jednostka - Add Freezing Nova to GSDummy
      • Jednostka - Set level of Freezing Nova for GSDummy to (Level of (Ma)Glacial Shards for (Triggering unit))
      • Jednostka - Order GSDummy to Neutralny - WĹ‚adca OtchĹ‚ani - Zew Grozy
      • Set GSTempGroup = (Units within 400.00 of FOTempPoint matching ((((Matching unit) is alive) RĂłwna siÄ™ TAK) and ((((Matching unit) is Prastary) RĂłwna siÄ™ NIE) and (((Owner of (Triggering unit)) is an enemy of (Owner of (Matching unit))) RĂłwna siÄ™ TAK))))
      • Grupa jednostek - Pick every unit in GSTempGroup and do (Actions)
        • PÄ™tla - Akcje
          • Jednostka - Cause (Triggering unit) to damage (Picked unit), dealing (((3.00 x (Real((Level of (Ma)Glacial Shards for (Triggering unit))))) x (Real(Inteligance[(Player number of (Owner of (Triggering unit)))]))) + Spellpower[(Player number of (Owner of (Triggering unit)))]) damage of attack type ZaklÄ™cia and damage type Zimno
      • Custom script: call RemoveLocation (udg_GSTempPoint)
      • Custom script: call DestroyGroup (udg_GSTempGroup)
      • Set GSDummy = Brak jednostki
I can translate parts that you don't understand if you think that can help.
 
Last edited:
Level 5
Joined
Jul 18, 2010
Messages
159
Your avatar just fits the answer perfectly.
I should've tested the skill without wait action first... I know it's bad but I have no idea how to delay the effect without it. Now it looks like enemies are getting frozen before the missle even lands ;/
 
Level 12
Joined
Mar 24, 2011
Messages
1,082
Solution1: Can you translate this for me ?
Jednostka - A unit Rozpoczyna działanie zdolności

Solution 2: Use timers. May need to be split in 2 triggers.


There are other methods of measuring time but I believe timer would be fine.
 
Level 24
Joined
Aug 1, 2013
Messages
4,657
@nedio95
hmm... Let me tel you what happens.

MooNek has a point-target-missile spell where the missile should freeze the target in the AoE.
He uses "A unit starts the effect of an ability" to detect when the spell is cast.
And he uses a wait to have the freeze delay.

@MooNek
I actually don't know why the crash comes.
It could be that the event responses are gone after the wait timer but only a few are actually lost.

What I suggest to do is use a Damage Detection System to detect when a unit has been damaged by that spell. Then you freeze the units.

Or (because you use a static delay
When you have an effect that should occur (...) time after a certain event, that is a static delay. You can use timers and in some cases Wait Timers (Wait gametime) to make the wait.
Sometimes you have a dynamic delay. This is for example when you have a missile that follows the target and the target is running away from it. If the target would run towards it, the delay would be much shorter. In that case, you want to have a different event to know when the unit is actually hit.
) you can also use timers to make the delay. In this case you have to have a hashtable to save the data to the timer and retrieve them when it expires.

What you also could do is use a missile system to make the blizzard (or whatever you use)
In that case, you will have an On-Collide event and make the damage yourself.
I prefer this option because you can edit almost every detail... if you use a good Missile System.
 
Level 5
Joined
Jul 18, 2010
Messages
159
Well, just removing the wait helped with the crashes, and also the "Freeze" effect has a base animation time that it looks OK, I've lost some of the graphic value of the spell, but atleast it works fine :)

As long as it works, it's ok for me, I have no time to polish everything now, I want the map to be playable this year, I can't now focus on some graphics details, but thanks to both of you :)
 
Status
Not open for further replies.
Top