Hallo Liebe Community!
Lange ist es her, dass der WE angerührt wurde aber wenn man mal wieder anfängt sind die Probleme nicht weit.
Ich habe zwei verschieden Zauber erstellt bei denen sich dummies periodisch in einem Kreis um den Zauberer herumbewegen und bei Feinden schaden verursachen bzw freunde heilen. Allerdings fängt es nach einiger Zeit immer massiv an zu laggen im Spiel, aber ich kann keinen Leak oder ähnliches im trigger entdecken.

Trigger 1 (kugeln durchgehend aktiv)

Seelenkugeln cast
Ereignisse
Einheit - A unit Startet den Effekt einer Fähigkeit
Bedingungen
(Ability being cast) Gleich (==) Seelenkugeln (vodiwalker Q)
Aktionen
Einheitengruppe - Remove all units from Tentakel_timewalkunitgroup[(Player number of (Owner of (Triggering unit)))]
Set Seelenkugel_neuspawn[(Player number of (Owner of (Triggering unit)))] = False
Point - Remove Spierlheld_Position[(Player number of (Owner of (Triggering unit)))]
Set Spierlheld_Position[(Player number of (Owner of (Triggering unit)))] = (Position of (Triggering unit))
Set Seelenkugeln_umdrehen[(Player number of (Owner of (Triggering unit)))] = False
Set Voidwalker[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
Set TempLoc = ((Position of (Triggering unit)) offset by 100.00 towards (Facing of (Triggering unit)) degrees)
Point - Remove Seelenkugeln_castpoint[(Player number of (Owner of (Triggering unit)))]
Set Seelenkugeln_castpoint[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
Einheitengruppe - Pick every unit in Seelenkugeln_kugelgruppe[(Player number of (Owner of (Triggering unit)))] and do (Actions)
Schleifen - Aktionen
Einheitengruppe - Remove (Picked unit) from Seelenkugeln_kugelgruppe[(Player number of (Owner of (Triggering unit)))]
Einheit - Kill (Picked unit)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Level of Seelenkugeln (vodiwalker Q) for (Triggering unit)) Größer gleich (>=) 4
'THEN'-Aktionen
Do Multiple ActionsFor each (Integer A) from 1 to 4, do (Actions)
Schleifen - Aktionen
Set TempLoc = ((Position of (Triggering unit)) offset by 200.00 towards (90.00 x (Real((Integer A)))) degrees)
Einheit - Create 1 Dunkelheitskugel aussehen Dummy for (Owner of (Triggering unit)) at TempLoc facing (Angle from (Position of (Triggering unit)) to (Target point of ability being cast)) degrees
Point - Remove TempLoc
Einheit - Turn collision for (Last created unit) Aus
Einheitengruppe - Add (Last created unit) to Seelenkugeln_kugelgruppe[(Player number of (Owner of (Triggering unit)))]
'ELSE'-Aktionen
Do Multiple ActionsFor each (Integer A) from 1 to 3, do (Actions)
Schleifen - Aktionen
Set TempLoc = ((Position of (Triggering unit)) offset by 200.00 towards (120.00 x (Real((Integer A)))) degrees)
Einheit - Create 1 Dunkelheitskugel aussehen Dummy for (Owner of (Triggering unit)) at TempLoc facing (Angle from (Position of (Triggering unit)) to (Target point of ability being cast)) degrees
Point - Remove TempLoc
Einheit - Turn collision for (Last created unit) Aus
Einheitengruppe - Add (Last created unit) to Seelenkugeln_kugelgruppe[(Player number of (Owner of (Triggering unit)))]
Wait 0.40 seconds
Auslöser - Turn on Seelenkugeln cast movement <gen>
Set Seelenkugeln_gecastet[(Player number of (Owner of (Triggering unit)))] = True





Kugeln periodisch moven
Ereignisse
Zeit - Every 0.04 seconds of game time
Bedingungen
Aktionen
Do Multiple ActionsFor each (Integer A) from 1 to 5, do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Seelenkugeln_kugelgruppe[(Integer A)] is empty) Gleich (==) False
Seelenkugeln_gecastet[(Integer A)] Gleich (==) False
'THEN'-Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Voidwalker[(Integer A)] is alive) Gleich (==) True
'THEN'-Aktionen
Set Seelenkugeln_dmg[(Integer A)] = ((0.20 x (Real((Intelligenz of Voidwalker[(Integer A)] (Einschließen bonuses))))) + ((20.00 + (10.00 x (Real((Level of Seelenkugeln (vodiwalker Q) for Voidwalker[(Integer A)]))))) + ((0.05 x (Real((Level of Seelenkugeln (vodiwalker Q) for Voidwalker[(Integer
Einheitengruppe - Pick every unit in Seelenkugeln_kugelgruppe[(Integer A)] and do (Actions)
Schleifen - Aktionen
Set TempLoc2 = (Position of (Picked unit))
Set TempLoc = ((Position of Voidwalker[(Integer A)]) offset by 200.00 towards ((Angle from Spierlheld_Position[(Integer A)] to TempLoc2) + 5.00) degrees)
Custom script: set bj_wantDestroyGroup = true
Einheitengruppe - Pick every unit in (Units within 100.00 of TempLoc2 matching ((((Owner of (Matching unit)) is an enemy of (Owner of Voidwalker[(Integer A)])) Gleich (==) True) and (((Matching unit) has buff Gekugelt ) Gleich (==) False))) and do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Unit-type of (Picked unit)) Ungleich (!=) Dummy
(Unit-type of (Picked unit)) Ungleich (!=) Besessenheit aussehen Dummy
((Picked unit) is alive) Gleich (==) True
'THEN'-Aktionen
Einheit - Cause Damagedummy[(Integer A)] to damage (Picked unit), dealing Seelenkugeln_dmg[(Integer A)] damage of attack type Zaubersprüche and damage type Normal
Einheit - Create 1 Dummy for Spieler 1 (Rot) at (TempLoc2 offset by 500.00 towards 0.00 degrees) facing Vorgabe für Gebäude-Ausrichtung (270.0) degrees
Einheit - Add Gekugelt buff gebeb (cripple basic= to (Last created unit)
Einheit - Order (Last created unit) to Untoten-Totenbeschwörer - 'Verkrüppeln' (Picked unit)
Einheit - Add a 0.40 second Standard expiration timer to (Last created unit)
'ELSE'-Aktionen
Custom script: set bj_wantDestroyGroup = true
Einheitengruppe - Pick every unit in (Units within 100.00 of TempLoc2 matching ((((Owner of (Picked unit)) is an enemy of (Owner of Voidwalker[(Integer A)])) Gleich (==) False) and (((Unit-type of (Matching unit)) Ungleich (!=) Schemen (Level 1)) and (((Unit-type of (Matching unit)) Ungleich (!= and do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Unit-type of (Picked unit)) Ungleich (!=) Dummy
(Unit-type of (Picked unit)) Ungleich (!=) Besessenheit aussehen Dummy
((Picked unit) has buff Gekugelt ) Gleich (==) False
((Picked unit) is alive) Gleich (==) True
'THEN'-Aktionen
Einheit - Set life of (Picked unit) to ((Leben of (Picked unit)) + (Seelenkugeln_dmg[(Integer A)] / 2.00))
Einheit - Create 1 Dummy for Spieler 1 (Rot) at (TempLoc2 offset by 500.00 towards 0.00 degrees) facing Vorgabe für Gebäude-Ausrichtung (270.0) degrees
Einheit - Add Gekugelt buff gebeb (cripple basic= to (Last created unit)
Einheit - Order (Last created unit) to Untoten-Totenbeschwörer - 'Verkrüppeln' (Picked unit)
Einheit - Add a 0.70 second Standard expiration timer to (Last created unit)
'ELSE'-Aktionen
Custom script: set udg_TempX = GetLocationX(udg_TempLoc)
Custom script: set udg_TempY = GetLocationY(udg_TempLoc)
Custom script: call SetUnitX(GetEnumUnit(), udg_TempX)
Custom script: call SetUnitY(GetEnumUnit(), udg_TempY)
Custom script: call RemoveLocation(udg_TempLoc)
Custom script: call RemoveLocation(udg_TempLoc2)
Point - Remove Spierlheld_Position[(Integer A)]
Set Spierlheld_Position[(Integer A)] = (Position of Voidwalker[(Integer A)])
'ELSE'-Aktionen
Einheitengruppe - Pick every unit in Seelenkugeln_kugelgruppe[(Integer A)] and do (Actions)
Schleifen - Aktionen
Einheitengruppe - Remove (Picked unit) from Seelenkugeln_kugelgruppe[(Integer A)]
Einheit - Kill (Picked unit)
'ELSE'-Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Seelenkugeln_kugelgruppe[1] is empty) Gleich (==) True
(Seelenkugeln_kugelgruppe[2] is empty) Gleich (==) True
(Seelenkugeln_kugelgruppe[3] is empty) Gleich (==) True
(Seelenkugeln_kugelgruppe[4] is empty) Gleich (==) True
(Seelenkugeln_kugelgruppe[5] is empty) Gleich (==) True
'THEN'-Aktionen
Auslöser - Turn off (This trigger)
'ELSE'-Aktionen


Der zweite trigger ist nur für ein paar Sekunden aktiv und die dummies bewegen sich in einem größeren Radius als die aus dem ersten spell. Dazu hier einmal der code


Ads cast
Ereignisse
Einheit - A unit Startet den Effekt einer Fähigkeit
Bedingungen
(Ability being cast) Gleich (==) Asgard der Schatten (voidwalker R)
Aktionen
Einheit - Add Multishot (voidwalker) to (Triggering unit)
Einheit - Set level of Multishot (voidwalker) for (Triggering unit) to (Level of Asgard der Schatten (voidwalker R) for (Triggering unit))
Set ADS_Timer[(Player number of (Owner of (Triggering unit)))] = (10.00 + (2.00 x (Real((Level of Asgard der Schatten (voidwalker R) for (Triggering unit))))))
Animation - Change (Triggering unit)'s vertex coloring to (19.00%, 100.00%, 19.00%) with 0.00% transparency
Do nothing
Einheitengruppe - Remove all units from ADS_Kreis[(Player number of (Triggering player))]
Point - Remove Spierlheld_Position[(Player number of (Owner of (Triggering unit)))]
Set Spierlheld_Position[(Player number of (Owner of (Triggering unit)))] = (Position of (Triggering unit))
Set Voidwalker[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
Set TempLoc = ((Position of (Triggering unit)) offset by 100.00 towards (Facing of (Triggering unit)) degrees)
Point - Remove Seelenkugeln_castpoint[(Player number of (Owner of (Triggering unit)))]
Set Seelenkugeln_castpoint[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
'THEN'-Aktionen
Do Multiple ActionsFor each (Integer A) from 1 to 6, do (Actions)
Schleifen - Aktionen
Set TempLoc = ((Position of (Triggering unit)) offset by 575.00 towards (60.00 x (Real((Integer A)))) degrees)
Einheit - Create 1 Besessenheit aussehen Dummy for (Owner of (Triggering unit)) at TempLoc facing (Angle from (Position of (Triggering unit)) to (Target point of ability being cast)) degrees
Point - Remove TempLoc
Einheit - Turn collision for (Last created unit) Aus
Einheitengruppe - Add (Last created unit) to ADS_Kreis[(Player number of (Owner of (Triggering unit)))]
'ELSE'-Aktionen
Wait 0.30 seconds
Auslöser - Turn on ads Kugeln periodisch moven Kopieren <gen>
[/hide]


und der perodische trigger
[hide]

ads Kugeln periodisch moven Kopieren
Ereignisse
Zeit - Every 0.04 seconds of game time
Bedingungen
Aktionen
Do Multiple ActionsFor each (Integer A) from 1 to 5, do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(ADS_Kreis[(Integer A)] is empty) Gleich (==) False
ADS_Timer[(Integer A)] Größer gleich (>=) 0.05
'THEN'-Aktionen
Set ADS_Timer[(Integer A)] = (ADS_Timer[(Integer A)] - 0.04)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
ADS_Timer[(Integer A)] Größer gleich (>=) 0.05
(Voidwalker[(Integer A)] is alive) Gleich (==) True
'THEN'-Aktionen
Set Seelenkugeln_dmg[(Integer A)] = ((0.30 x (Real((Intelligenz of Voidwalker[(Integer A)] (Einschließen bonuses))))) + ((35.00 + (15.00 x (Real((Level of Asgard der Schatten (voidwalker R) for Voidwalker[(Integer A)]))))) + ((0.10 x (Real((Level of Asgard der Schatten (voidwalker R) for Voidw
Einheitengruppe - Pick every unit in ADS_Kreis[(Integer A)] and do (Actions)
Schleifen - Aktionen
Set TempLoc2 = (Position of (Picked unit))
Set TempLoc = ((Position of Voidwalker[(Integer A)]) offset by 575.00 towards ((Angle from Spierlheld_Position[(Integer A)] to TempLoc2) + 4.00) degrees)
Custom script: set bj_wantDestroyGroup = true
Einheitengruppe - Pick every unit in (Units within 100.00 of TempLoc2 matching (((Owner of Voidwalker[(Integer A)]) is an enemy of (Owner of (Matching unit))) Gleich (==) True)) and do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Unit-type of (Picked unit)) Ungleich (!=) Dummy
(Unit-type of (Picked unit)) Ungleich (!=) Besessenheit aussehen Dummy
((Picked unit) has buff Gekugelt ) Gleich (==) False
((Picked unit) is alive) Gleich (==) True
'THEN'-Aktionen
Einheit - Cause Damagedummy[(Integer A)] to damage (Picked unit), dealing Seelenkugeln_dmg[(Integer A)] damage of attack type Zaubersprüche and damage type Normal
Einheit - Create 1 Dummy for Spieler 1 (Rot) at (TempLoc2 offset by 500.00 towards 0.00 degrees) facing Vorgabe für Gebäude-Ausrichtung (270.0) degrees
Einheit - Add Gekugelt buff gebeb (cripple basic= to (Last created unit)
Einheit - Order (Last created unit) to Untoten-Totenbeschwörer - 'Verkrüppeln' (Picked unit)
Einheit - Add a 0.70 second Standard expiration timer to (Last created unit)
'ELSE'-Aktionen
Custom script: set udg_TempX = GetLocationX(udg_TempLoc)
Custom script: set udg_TempY = GetLocationY(udg_TempLoc)
Custom script: call SetUnitX(GetEnumUnit(), udg_TempX)
Custom script: call SetUnitY(GetEnumUnit(), udg_TempY)
Custom script: call RemoveLocation(udg_TempLoc)
Custom script: set bj_wantDestroyGroup = true
Einheitengruppe - Pick every unit in (Units within 100.00 of TempLoc2 matching ((((Owner of (Picked unit)) is an enemy of (Owner of Voidwalker[(Integer A)])) Gleich (==) False) and (((Unit-type of (Matching unit)) Ungleich (!=) Schemen (Level 1)) and (((Unit-type of (Matching unit)) Ungleich (!= and do (Actions)
Schleifen - Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
(Unit-type of (Picked unit)) Ungleich (!=) Dummy
(Unit-type of (Picked unit)) Ungleich (!=) Besessenheit aussehen Dummy
((Picked unit) has buff Gekugelt ) Gleich (==) False
((Picked unit) is alive) Gleich (==) True
'THEN'-Aktionen
Einheit - Set life of (Picked unit) to ((Leben of (Picked unit)) + (Seelenkugeln_dmg[(Integer A)] / 2.00))
Einheit - Create 1 Dummy for Spieler 1 (Rot) at (TempLoc2 offset by 500.00 towards 0.00 degrees) facing Vorgabe für Gebäude-Ausrichtung (270.0) degrees
Einheit - Add Gekugelt buff gebeb (cripple basic= to (Last created unit)
Einheit - Order (Last created unit) to Untoten-Totenbeschwörer - 'Verkrüppeln' (Picked unit)
Einheit - Add a 0.70 second Standard expiration timer to (Last created unit)
'ELSE'-Aktionen
Point - Remove TempLoc2
Point - Remove TempLoc
Point - Remove Spierlheld_Position[(Integer A)]
Set Spierlheld_Position[(Integer A)] = (Position of Voidwalker[(Integer A)])
'ELSE'-Aktionen
Einheit - Remove Multishot (voidwalker) from Voidwalker[(Integer A)]
Animation - Change Voidwalker[(Integer A)]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Einheitengruppe - Pick every unit in ADS_Kreis[(Integer A)] and do (Actions)
Schleifen - Aktionen
Einheitengruppe - Remove (Picked unit) from ADS_Kreis[(Integer A)]
Einheit - Kill (Picked unit)
'ELSE'-Aktionen
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
'IF'-Bedingungen
ADS_Timer[1] Kleiner als (<) 0.05
ADS_Timer[2] Kleiner als (<) 0.05
ADS_Timer[3] Kleiner als (<) 0.05
ADS_Timer[4] Kleiner als (<) 0.05
ADS_Timer[5] Kleiner als (<) 0.05
'THEN'-Aktionen
Auslöser - Turn off (This trigger)
'ELSE'-Aktionen



P.S: Ich kann die hide funktion nicht mehr finden, sorry deswegen

Mfg
Sethroth