Help with spell please

Lifee

New Member
Reaction score
46
Hi i tryed to make a spell,the 1st trigger works fine,but the second one isnt activated @

Check the first :
Trigger:
  • Omnipotentus Praesentia
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Omnipotentus Praesentia
    • Actions
      • Set Omnipotentus_Praesentia_Group = (Units within 900.00 of (Position of (Casting unit)) matching (((Matching unit) belongs to an ally of (Owner of (Casting unit))) Equal to True))
      • Set Omni_Enemy_Group = (Units within 900.00 of (Position of (Casting unit)) matching (((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True))
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Intelligence of (Casting unit) (Include bonuses)))) x 10.00)))
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Unit - Cause (Casting unit) to damage (Picked unit), dealing ((Real((Intelligence of (Casting unit) (Include bonuses)))) x 5.00) damage of attack type Spells and damage type Normal)
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIta\CrystalBallCaster.mdl)
      • Set Omni_enemy_spec_effect = (Last created special effect)
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\StaffOfSanctuary\Staff_Sanctuary_Target.mdl)
      • Set Omni_ally_spec_effect = (Last created special effect)
      • Countdown Timer - Start Omni_Timer as a One-shot timer that will expire in 10.00 seconds



And the second one :
Trigger:
  • Omnipotentus 2
    • Events
      • Time - Omni_Timer expires
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Intelligence of (Casting unit) (Include bonuses)))) x 10.00)))
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Unit - Cause (Casting unit) to damage (Picked unit), dealing ((Real((Intelligence of (Casting unit) (Include bonuses)))) x 5.00) damage of attack type Spells and damage type Normal)
      • Special Effect - Destroy Omni_ally_spec_effect
      • Special Effect - Destroy Omni_enemy_spec_effect
      • Custom script: call DestroyGroup(udg_Omnipotentus_Praesentia_Group)
      • Custom script: call DestroyGroup(udg_Omni_Enemy_Group)
 

jig7c

Stop reading me...-statement
Reaction score
123
Trigger:
  • Omnipotentus Praesentia
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Omnipotentus Praesentia
    • Actions
      • Set Unit = Triggering Unit
      • Set Point = Position of (Triggering unit)
      • Set Omnipotentus_Praesentia_Group = (Units within 900.00 of (Point) matching (((Matching unit) belongs to an ally of (Owner of (Unit))) Equal to True))
      • Set Omni_Enemy_Group = (Units within 900.00 of (Point) matching (((Matching unit) belongs to an enemy of (Owner of (Unit))) Equal to True))
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Intelligence of (Unit) (Include bonuses)))) x 10.00)))
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Unit - Cause (Unit) to damage (Picked unit), dealing ((Real((Intelligence of (Unit) (Include bonuses)))) x 5.00) damage of attack type Spells and damage type Normal)
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\AIta\CrystalBallCaster.mdl)
      • Set Omni_enemy_spec_effect = (Last created special effect)
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Special Effect - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Items\StaffOfSanctuary\Staff_Sanctuary_Target.mdl)
      • Set Omni_ally_spec_effect = (Last created special effect)
      • Countdown Timer - Start Omni_Timer as a One-shot timer that will expire in 10.00 seconds



Trigger:
  • Omnipotentus 2
    • Events
      • Time - Omni_Timer expires
    • Conditions
    • Actions
      • Unit Group - Pick every unit in Omnipotentus_Praesentia_Group and do (Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Real((Intelligence of (Unit) (Include bonuses)))) x 10.00)))
      • Unit Group - Pick every unit in Omni_Enemy_Group and do (Unit - Cause (Unit) to damage (Picked unit), dealing ((Real((Intelligence of (Casting unit) (Include bonuses)))) x 5.00) damage of attack type Spells and damage type Normal)
      • Special Effect - Destroy Omni_ally_spec_effect
      • Special Effect - Destroy Omni_enemy_spec_effect
      • Custom script: call DestroyGroup(udg_Omnipotentus_Praesentia_Group)
      • Custom script: call DestroyGroup(udg_Omni_Enemy_Group)
      • Custom script: call RemoveLocation(udg_Point)
      • Set Unit = (no unit)


maybe this might work...
this is not MUI
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
you should put some debug messages for further testing because the triggers look perfectly fine. well, exept one think, you leak various special effects.

you create 1 special effect for every allied and enemy unit within 900 range but you save only the last created one into a variable, and as well, you destroy only the last created one.
to destroy them all you would need to use a special effect array and an index variable increasing by 1 with each unit iteration.
 

Lifee

New Member
Reaction score
46
you should put some debug messages for further testing because the triggers look perfectly fine. well, exept one think, you leak various special effects.

you create 1 special effect for every allied and enemy unit within 900 range but you save only the last created one into a variable, and as well, you destroy only the last created one.
to destroy them all you would need to use a special effect array and an index variable increasing by 1 with each unit iteration.


So how to increase by 1 with each unit iteration :nuts:
 

roXplosive

New Member
Reaction score
15
He means adding a allies affected , enemies affected variables and 2 vectors of special effects that are to be removed .
 

Lifee

New Member
Reaction score
46
I know what he means but i dont know that:

Where to put them :
-in other trigger,but with what event ?
-in first trigger but after what ?...
-and how to destroy them all in the second trigger
 

laxperson808

New Member
Reaction score
9
Idk if this will help or not.. but i think u need a "set omni_timer = last created timer"
i think thats what might be wrong..
 

Lifee

New Member
Reaction score
46
Idk if this will help or not.. but i think u need a "set omni_timer = last created timer"
i think thats what might be wrong..

The second trigger is activated when i set omni_caster=casting unit,and use it in the second trigger.All what left now is the special effect :(
 

Sonic

New Member
Reaction score
10
Don't use the Pick every unit lala and DO ACTIONS BLA BLA
Use this
Pick every unit in lala and do actions
Actions Lala
Lala
 

Lifee

New Member
Reaction score
46
Don't use the Pick every unit lala and DO ACTIONS BLA BLA
Use this
Pick every unit in lala and do actions
Actions Lala
Lala

and what is the difference ?the special effect isnt destroyed again
 

Sonic

New Member
Reaction score
10
For example in Group x there are 7 units, so you created 7 effects and you set them to the variable (last created effect), there is not 1 effect, there are 7 effects so you must set the variable with array, then you need to set variable +1
 

Lifee

New Member
Reaction score
46
For example in Group x there are 7 units, so you created 7 effects and you set them to the variable (last created effect), there is not 1 effect, there are 7 effects so you must set the variable with array, then you need to set variable +1

Can you make and post it in wc3 tags please ?
 

Sonic

New Member
Reaction score
10
Sorry but I don't have a WE at the moment, Handwritted will be bad and so:
Trigger:
  • Actions
    • Unit Group - Pick every unit in you variable and do actioms
      • set Index = Index + 1
      • Special Effect - create a special effect at point using the model
      • set SE[Index] = last created special effect
      • Unit Group - Add picked unit from the Group x (your Group)





Timer Expires
Trigger:
  • Actions
    • Unit Group - Pick every unit in x and do actioms
      • set Index = Index + 1
      • Special Effect - Destroy SE[Index}
      • Unit Group - Remove picked unit to the Group (your Group)
 

DuelPlayer

Member
Reaction score
21
I could say changing the first trigger
the action: start the timer
Instead use wait 10 second then run the trigger
Maybe it will work
 

Lifee

New Member
Reaction score
46
I could say changing the first trigger
the action: start the timer
Instead use wait 10 second then run the trigger
Maybe it will work

The trigger is running,but he doesnt want to destroy the special effects
 
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