I´m a noob with a eazzy help...

FjZ345

New Member
Reaction score
0
my 2nd wc3 spell and i don't know why the spell comes in the middle of the map.. i think i have messed something up with the triggers... Here it is:

Code:
Flame Strike Cool
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Flame Strike Cool
    Actions
        Unit - Pause (Casting unit)
        For each (Integer A) from 1 to 3, do (Actions)
            Loop - Actions
                Special Effect - Create a special effect at (Position of (Casting unit)) using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
                Wait 1.00 seconds
        Wait 0.70 seconds
        Unit - Cause (Casting unit) to damage circular area after 0.00 seconds of radius 600.00 at (Target point of ability being cast), dealing 300.00 damage of attack type Spells and damage type Normal
        For each (Integer A) from 1 to 4, do (Actions)
            Loop - Actions
                Special Effect - Create a special effect at ((Target point of ability being cast) offset by 100.00 towards 0.00 degrees) using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
        Wait 0.20 seconds
        Unit - Unpause (Casting unit)

When i look at it, it looks good but when i try it out the special effect comes in the middle of the map some newbie as i need some help please :p.
 

KingJohn

New Member
Reaction score
0
A first thing that could help you is to use variables.
You're "wait" time adds up to nearly 2 seconds. If any other spell is casted while your trigger is running, the "Position of casting unit" and "Target point of ability being cast" will be overwritten.
Create a "point" variable, first Action will be something like "Set CastingPointFSC = Target point of ability being cast".
Do that also with the casting unit, and the position of casting unit, and refer to the variables in the trigger.
If that doesn't help, come back again :)
 

KaerfNomekop

Swim, fishies. Swim through the veil of steel.
Reaction score
613
1. Memory leaks. You've got quite a few of them.

2. Casting unit isn't wait-safe. That is, it may lose its value after a wait action. Use Triggering unit as much as possible, as it will refer to the same unit throughout the trigger. Same goes for Target point of ability being cast, which you should save into a variable.

3. The special effect appears in the middle of the map because that's where a location will refer to if it loses its value, i.e. Target point of ability being cast. I've rewritten your trigger to this:

Trigger:
  • Flame Strike Cool
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Flame Strike Cool
    • Actions
      • Custom script: local location CasterLoc = GetUnitLoc(GetTriggerUnit()) *CasterLoc is a local variable, which is a variable that only exists within this trigger. Here I have created it and had it set to (Position of (Triggering unit)). "GetUnitLoc(GetTriggerUnit())" is what it looks like in code.*
      • Unit - Pause (Triggering unit)
      • For each (Integer A) from 1 to 3, do (Actions)
        • Loop - Actions
          • Custom script: set udg_TempPoint = CasterLoc *These and the RemoveLocation actions help to remove leaks.*
          • Special Effect - Create a special effect at TempPoint using Abilities\Spells\Items\TomeOfRetraining\TomeOfRetrainingCaster.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_TempPoint)
          • Wait 1.00 seconds
      • Wait 0.70 seconds
      • Custom script: set udg_TempPoint = CasterLoc
      • Unit - Cause (Triggering unit) to damage circular area after 0.00 seconds of radius 600.00 at TempPoint, dealing 300.00 damage of attack type Spells and damage type Normal
      • For each (Integer A) from 1 to 4, do (Actions)
        • Loop - Actions
          • Set TempPoint2 = (TempPoint offset by 100.00 towards 0.00 degrees)
          • Special Effect - Create a special effect at TempPoint2 using Abilities\Spells\Undead\FrostNova\FrostNovaTarget.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation(udg_TempPoint2)
      • Custom script: call RemoveLocation(udg_TempPoint)
      • Wait 0.20 seconds
      • Unit - Unpause (Triggering unit)
      • Custom script: call RemoveLocation(CasterLoc)
      • Custom script: set CasterLoc = null *Always remember to clear local variables as you would with any other variables. You also need to null most local variables after using them.*


Text within ** stars are comments, and don't need to exist in the trigger itself. Post again with any questions, but make sure to read the linked tutorial on memory leaks.
 

FjZ345

New Member
Reaction score
0
hmmmmmmmmmmm i think i should save this spell cause this is too complicated for me xD thx anyway^^
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top