Rheiko
Spell Reviewer
- Joined
- Aug 27, 2013
- Messages
- 4,264
Hi guys,
i'm trying to make this spell for Gimli_2 but i forgot to index the lightning
so when i change the lightning variable into an array, still nothing bad happens
when i change the custom script from
into
World Editor Crash
maybe you can help me fixing it with your WE cuz maybe my laptop is the problem, i don't know the reason either
and also if you want the full trigger, here it is
[highlight]Note: This Trigger isn't completed yet, if i did something wrong feel free to tell me[/code]
and here's the test map
Lightning Hook
i'm trying to make this spell for Gimli_2 but i forgot to index the lightning
so when i change the lightning variable into an array, still nothing bad happens
when i change the custom script from
JASS:
set udg_LH_Lightning = AddLightningEx(udg_LH_Lightning_Type, true , GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70, GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70)
JASS:
set udg_LH_Lightning[udg_LH_Max_Index] = AddLightningEx(udg_LH_Lightning_Type, true , GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70, GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70)
maybe you can help me fixing it with your WE cuz maybe my laptop is the problem, i don't know the reason either
and also if you want the full trigger, here it is
[highlight]Note: This Trigger isn't completed yet, if i did something wrong feel free to tell me[/code]
-
Configuration
-

Events
-


Map initialization
-
-

Conditions
-

Actions
-


-------- ---------------------------------------------- --------
-


-------- GENERAL CONFIGURATION --------
-


-------- ---------------------------------------------- --------
-


-------- Store your ability here --------
-


Set LH_Ability_ID = Lightning Hook
-


-------- Store your dummy here --------
-


Set LH_Dummy_Type = Hook
-


-------- Your Ability Damage --------
-


Set LH_Damage[1] = 150.00
-


Set LH_Damage[2] = 225.00
-


Set LH_Damage[3] = 300.00
-


-------- Your Ability Damage Type --------
-


Set LH_DamageType = Lightning
-


-------- Your Ability Attack Type --------
-


Set LH_AttackType = Spells
-


-------- Your lightning type --------
-


Set LH_Lightning_Type = Chain Lightning - Primary
-


-------- Your lightning color (RGB) --------
-


Set LH_Lightning_Red = 100.00
-


Set LH_Lightning_Green = 100.00
-


Set LH_Lightning_Blue = 100.00
-


-------- Your missile speed --------
-


Set LH_Missile_Speed = 1500.00
-


-------- Area of Effect --------
-


Set LH_AoE = 150.00
-


-------- Where the hook spawn at? --------
-


Set LH_Start_Range = 100.00
-


Set LH_Special_Effect =
-


-------- You want to Destroy Tree? If yes, "True". If no, "False" --------
-


Set LH_DestroyTree = True
-


-------- ---------------------------------------------------------- --------
-


-------- CONDITION CONFIGURATION --------
-


-------- ---------------------------------------------------------- --------
-


-------- Belongs to an Ally --------
-


Set LH_Condition[1] = False
-


-------- Belongs to an Enemy --------
-


Set LH_Condition[2] = True
-


-------- Structure --------
-


Set LH_Condition[3] = False
-


-------- Magic Immune --------
-


Set LH_Condition[4] = False
-


-------- Alive --------
-


Set LH_Condition[5] = True
-


-------- Unit is in UnDamage Group (to prevent damage looping) --------
-


Set LH_Condition[6] = False
-


-------- ---------------------------------------------------------- --------
-


-------- END OF CONFIGURATION --------
-


-------- ---------------------------------------------------------- --------
-


-------- DO NOT CHANGE THIS --------
-


-------- ---------------------------------------------------------- --------
-


Set TempPoint = (Center of (Playable map area))
-


Unit - Create 1 Peasant for Neutral Passive at TempPoint facing Default building facing degrees
-


Custom script: call RemoveLocation(udg_TempPoint)
-


Set LH_TreeDestroyer = (Last created unit)
-


Unit - Hide LH_TreeDestroyer
-


-------- ---------------------------------------------------------- --------
-


-------- ---------------------------------------------------------- --------
-
-
-
Lightning Hook
-

Events
-


Unit - A unit Starts the effect of an ability
-
-

Conditions
-


(Ability being cast) Equal to LH_Ability_ID
-
-

Actions
-


Set LH_Max_Index = (LH_Max_Index + 1)
-


Set LH_Owner[LH_Max_Index] = (Triggering player)
-


Set LH_Caster[LH_Max_Index] = (Triggering unit)
-


Set LH_Target[LH_Max_Index] = (Target unit of ability being cast)
-


Set LH_Ability_Level[LH_Max_Index] = (Level of LH_Ability_ID for LH_Caster[LH_Max_Index])
-


Set TempPoint = (Position of LH_Caster[LH_Max_Index])
-


Set TempPoint2 = (Position of LH_Target[LH_Max_Index])
-


Set LH_Angle[LH_Max_Index] = (Angle from TempPoint to TempPoint2)
-


Set TempPoint3 = (TempPoint offset by LH_Start_Range towards LH_Angle[LH_Max_Index] degrees)
-


Unit - Create 1 LH_Dummy_Type for LH_Owner[LH_Max_Index] at TempPoint3 facing LH_Angle[LH_Max_Index] degrees
-


Set LH_Dummy[LH_Max_Index] = (Last created unit)
-


Custom script: set udg_LH_Lightning = AddLightningEx(udg_LH_Lightning_Type, true , GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70, GetLocationX(udg_TempPoint3), GetLocationY(udg_TempPoint3), GetLocationZ(udg_TempPoint3) + 70)
-


Set LH_Stage[LH_Max_Index] = 1
-


Custom script: set udg_LH_UnDamage_Group[udg_LH_Max_Index] = CreateGroup()
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




LH_Max_Index Equal to 1
-
-



Then - Actions
-




Trigger - Turn on Loop <gen>
-
-



Else - Actions
-
-


Custom script: call RemoveLocation(udg_TempPoint)
-


Custom script: call RemoveLocation(udg_TempPoint2)
-


Custom script: call RemoveLocation(udg_TempPoint3)
-
-
-
Loop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer LH_Current_Index) from 1 to LH_Max_Index, do (Actions)
-



Loop - Actions
-




If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-





If - Conditions
-






LH_Stage[LH_Current_Index] Equal to 1
-
-





Then - Actions
-






Set TempPoint = (Position of LH_Caster[LH_Current_Index])
-






Set TempPoint2 = (Position of LH_Dummy[LH_Current_Index])
-






Set TempPoint3 = (Position of LH_Target[LH_Current_Index])
-






Set LH_Angle[LH_Current_Index] = (Angle from TempPoint2 to TempPoint3)
-






Set TempPoint4 = (TempPoint2 offset by (LH_Missile_Speed x 0.03) towards LH_Angle[LH_Current_Index] degrees)
-






Unit - Move LH_Dummy[LH_Current_Index] instantly to TempPoint4
-






Custom script: call MoveLightningEx(udg_LH_Lightning, true , GetLocationX(udg_TempPoint), GetLocationY(udg_TempPoint), GetLocationZ(udg_TempPoint) + 70, GetLocationX(udg_TempPoint2), GetLocationY(udg_TempPoint2), GetLocationZ(udg_TempPoint2) + 70)
-






Set LH_Damage_Group = (Units within LH_AoE of TempPoint2)
-






Unit Group - Pick every unit in LH_Damage_Group and do (Actions)
-







Loop - Actions
-








Set TempUnit = (Picked unit)
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










(TempUnit belongs to an ally of LH_Owner[LH_Current_Index]) Equal to LH_Condition[1]
-










(TempUnit belongs to an enemy of LH_Owner[LH_Current_Index]) Equal to LH_Condition[2]
-










(TempUnit is A structure) Equal to LH_Condition[3]
-










(TempUnit is Magic Immune) Equal to LH_Condition[4]
-










(TempUnit is alive) Equal to LH_Condition[5]
-










(TempUnit is in LH_UnDamage_Group[LH_Current_Index]) Equal to LH_Condition[6]
-
-









Then - Actions
-










Unit - Cause LH_Caster[LH_Current_Index] to damage TempUnit, dealing LH_Damage[LH_Ability_Level[LH_Current_Index]] damage of attack type LH_AttackType and damage type LH_DamageType
-










Unit Group - Add TempUnit to LH_UnDamage_Group[LH_Current_Index]
-
-









Else - Actions
-
-
-
-






Custom script: call DestroyGroup(udg_LH_Damage_Group)
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








LH_DestroyTree Equal to True
-
-







Then - Actions
-








Destructible - Pick every destructible within LH_AoE of TempPoint2 and do (Actions)
-









Loop - Actions
-










Set TempDest = (Picked destructible)
-










Unit - Order LH_TreeDestroyer to Harvest TempDest
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












(Current order of LH_TreeDestroyer) Equal to (Order(harvest))
-
-











Then - Actions
-












Destructible - Kill TempDest
-
-











Else - Actions
-
-










Unit - Order LH_TreeDestroyer to Stop
-
-
-
-







Else - Actions
-
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








(Distance between TempPoint2 and TempPoint3) Less than or equal to 100.00
-
-







Then - Actions
-








Set LH_Stage[LH_Current_Index] = 2
-








Custom script: call DestroyGroup(udg_LH_UnDamage_Group[udg_LH_Current_Index])
-








Custom script: set udg_LH_UnDamage_Group[udg_LH_Current_Index] = CreateGroup()
-
-







Else - Actions
-
-






Custom script: call RemoveLocation(udg_TempPoint)
-






Custom script: call RemoveLocation(udg_TempPoint2)
-






Custom script: call RemoveLocation(udg_TempPoint3)
-






Custom script: call RemoveLocation(udg_TempPoint4)
-
-





Else - Actions
-






If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-







If - Conditions
-








LH_Stage[LH_Current_Index] Equal to 2
-
-







Then - Actions
-








Set TempPoint = (Position of LH_Caster[LH_Current_Index])
-








Set TempPoint2 = (Position of LH_Dummy[LH_Current_Index])
-








Set TempPoint3 = (Position of LH_Target[LH_Current_Index])
-








Set LH_Angle[LH_Current_Index] = (Angle from TempPoint3 to TempPoint)
-








Set TempPoint4 = (TempPoint2 offset by (LH_Missile_Speed x 0.03) towards LH_Angle[LH_Current_Index] degrees)
-








Unit - Move LH_Dummy[LH_Current_Index] instantly to TempPoint4
-








Unit - Move LH_Target[LH_Current_Index] instantly to TempPoint2
-








Custom script: call MoveLightningEx(udg_LH_Lightning, true , GetLocationX(udg_TempPoint), GetLocationY(udg_TempPoint), GetLocationZ(udg_TempPoint) + 70, GetLocationX(udg_TempPoint2), GetLocationY(udg_TempPoint2), GetLocationZ(udg_TempPoint2) + 70)
-








Set LH_Damage_Group = (Units within LH_AoE of TempPoint2)
-








Unit Group - Pick every unit in LH_Damage_Group and do (Actions)
-









Loop - Actions
-










Set TempUnit = (Picked unit)
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












(TempUnit belongs to an ally of LH_Owner[LH_Current_Index]) Equal to LH_Condition[1]
-












(TempUnit belongs to an enemy of LH_Owner[LH_Current_Index]) Equal to LH_Condition[2]
-












(TempUnit is A structure) Equal to LH_Condition[3]
-












(TempUnit is Magic Immune) Equal to LH_Condition[4]
-












(TempUnit is alive) Equal to LH_Condition[5]
-












(TempUnit is in LH_UnDamage_Group[LH_Current_Index]) Equal to LH_Condition[6]
-
-











Then - Actions
-












Unit - Cause LH_Caster[LH_Current_Index] to damage TempUnit, dealing LH_Damage[LH_Ability_Level[LH_Current_Index]] damage of attack type LH_AttackType and damage type LH_DamageType
-












Unit Group - Add TempUnit to LH_UnDamage_Group[LH_Current_Index]
-
-











Else - Actions
-
-
-
-








Custom script: call DestroyGroup(udg_LH_Damage_Group)
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










LH_DestroyTree Equal to True
-
-









Then - Actions
-










Destructible - Pick every destructible within LH_AoE of TempPoint2 and do (Actions)
-











Loop - Actions
-












Set TempDest = (Picked destructible)
-












Unit - Order LH_TreeDestroyer to Harvest TempDest
-












If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-













If - Conditions
-














(Current order of LH_TreeDestroyer) Equal to (Order(harvest))
-
-













Then - Actions
-














Destructible - Kill TempDest
-
-













Else - Actions
-
-












Unit - Order LH_TreeDestroyer to Stop
-
-
-
-









Else - Actions
-
-








If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-









If - Conditions
-










(Distance between TempPoint2 and TempPoint) Less than or equal to 100.00
-
-









Then - Actions
-










Custom script: call DestroyGroup(udg_LH_UnDamage_Group[udg_LH_Current_Index])
-










Custom script: set udg_LH_UnDamage_Group[udg_LH_Current_Index] = CreateGroup()
-










Lightning - Destroy LH_Lightning
-










Unit - Remove LH_Dummy[LH_Current_Index] from the game
-










Set LH_Ability_Level[LH_Current_Index] = LH_Ability_Level[LH_Max_Index]
-










Set LH_Ability_Level[LH_Max_Index] = 0
-










Set LH_Angle[LH_Current_Index] = LH_Angle[LH_Max_Index]
-










Set LH_Angle[LH_Max_Index] = 0.00
-










Set LH_Caster[LH_Current_Index] = LH_Caster[LH_Max_Index]
-










Set LH_Caster[LH_Max_Index] = No unit
-










Set LH_Dummy[LH_Current_Index] = LH_Dummy[LH_Max_Index]
-










Set LH_Dummy[LH_Max_Index] = No unit
-










Set LH_Target[LH_Current_Index] = LH_Target[LH_Max_Index]
-










Set LH_Target[LH_Max_Index] = No unit
-










Set LH_Current_Index = (LH_Current_Index - 1)
-










Set LH_Max_Index = (LH_Max_Index - 1)
-










If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-











If - Conditions
-












LH_Max_Index Equal to 0
-
-











Then - Actions
-












Trigger - Turn off (This trigger)
-
-











Else - Actions
-
-
-









Else - Actions
-
-








Custom script: call RemoveLocation(udg_TempPoint)
-








Custom script: call RemoveLocation(udg_TempPoint2)
-








Custom script: call RemoveLocation(udg_TempPoint3)
-








Custom script: call RemoveLocation(udg_TempPoint4)
-
-







Else - Actions
-
-
-
-
-
-
-
Lightning Hook




