• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Bribe's Damage Engine Help

Status
Not open for further replies.
Level 5
Joined
Apr 13, 2008
Messages
184
Hi guys do you use Bribe's Damage Engine, I've been trying it for awhile and it caused the game to have lag spikes, sometimes some abilities insta-kill people and seems to have some damage recursion going on.
Even after deleting all the triggers related to the Damage Engine except his original code, the lag spikes still occur.

When i used Priest's path of light spell after 3-5 minutes, his ability insta-kills everything even though his spell is not related to the Damage Engine at all.

The lag spikes happen pretty consistently at 2:14, 3:34, 5min

The items beside the tavern are to test for the Damage Engine. Please do have a look at the map and let me know because i've checked through all the triggers and only all the triggers listed in the Damage Engine folder is related to the Damage Engine. Even though i never used anything related to the Damage Engine, the priest's path of light spell still insta-kills. The items that do additional damage seem to go on an endless loop.

Damage Engine 3.8.0.0
 

Attachments

  • AoTL 0.68 (DamageEngineBug).w3x
    4.7 MB · Views: 57
Last edited:

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
Hi Troy,

I haven't responded because the type of investigation this requires needs the entire map drudged through, and I don't have that kind of time these days. My laptop keys are screwed up and my train commute is half the time if used to be. With 2 kids at home there is no time for games.

I can only supply you with some information to empower yourself to do the "grunt work":

1) Open Object Manager
2) Go to the Functions tab
3) Find all instances of "Unit Damage Target"
4) Make sure you disable (This trigger) prior to dealing damage from a damage event, in every case (also make sure you run trigger ClearDamageEvent (Checking conditions) after each instance).
5) Make sure you have really checked step 3 to ensure no rogue damage is dealt to spin your system into a loop.
6) test, and let me know whether it helped or not.
 
Level 5
Joined
Apr 13, 2008
Messages
184
I tried deleting/disabling certain triggers one by one and found out it was the GUI Unit Event System,
after removing that the lag and damage recursion was gone.


Do I have to do this? Is this correct?
  • BladeBane Armor Damage
    • Events
      • Game - DamageModifierEvent becomes Equal to 1.00
    • Conditions
    • Actions
      • Trigger - Turn off (This trigger)
      • Unit Group - Pick every unit in BladebaneGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • DamageEventTarget Equal to (Picked unit)
            • Then - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • IsDamageSpell Not equal to True
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                  • Unit - Cause DamageEventTarget to damage DamageEventSource, dealing ((0.25 x (Real((Strength of DamageEventTarget (Include bonuses))))) + 20.00) damage of attack type Pierce and damage type Normal
                  • Unit - Cause (Triggering unit) to damage (Picked unit), dealing ROT_Damage damage of attack type Spells and damage type Normal
                  • Trigger - Run ClearDamageEvent (checking conditions)
                  • Trigger - Turn on (This trigger)
                • Else - Actions
            • Else - Actions
      • Trigger - Turn on (This trigger)
  • Moon Staff Activate
    • Events
      • Game - DamageModifierEvent becomes Equal to 1.00
    • Conditions
      • (DamageEventSource is in MoonStaffGroup) Equal to True
    • Actions
      • Trigger - Turn off (This trigger)
      • Set DamageEventType = DamageTypeCriticalStrike
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • And - All (Conditions) are true
            • Conditions
              • IsDamageSpell Not equal to True
              • (DamageEventTarget is Magic Immune) Equal to False
              • (DamageEventTarget is A structure) Equal to False
        • Then - Actions
          • Set MoonStaffUser = DamageEventSource
          • Set MoonStaffTarget = DamageEventTarget
          • Set MoonStaffDamage = ((0.04 x (Mana of MoonStaffUser)) + 0.00)
          • Unit - Set mana of DamageEventSource to ((Mana of DamageEventSource) - (0.01 x (Mana of DamageEventSource)))
          • Set DamageEventAmount = (MoonStaffDamage + DamageEventAmount)
          • -------- --------
          • Floating Text - Create floating text that reads (|cffffcc00 + ((String((Integer(MoonStaffDamage)))) + !)) above MoonStaffTarget with Z offset 0.00, using font size 7.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
          • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
          • Floating Text - Change (Last created floating text): Disable permanence
          • Floating Text - Change the lifespan of (Last created floating text) to 0.80 seconds
          • Floating Text - Change the fading age of (Last created floating text) to 0.80 seconds
          • Quest - Display to (All players) the Quest Update message: G
          • -------- --------
          • Special Effect - Create a special effect attached to the origin of MoonStaffTarget using Abilities\Spells\Orc\FeralSpirit\feralspiritdone.mdl
          • Special Effect - Destroy (Last created special effect)
        • Else - Actions
      • Trigger - Run ClearDamageEvent (checking conditions)
      • Trigger - Turn on (This trigger)
  • Circle Of BlessingDamage
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • Set COBgroup2 = (Units within 350.00 of COBPointO matching (((((Matching unit) is A structure) Not equal to True) and (((Matching unit) is Magic Immune) Equal to False)) and ((((Matching unit) belongs to an enemy of (Owner of COBDummy)) Equal to True) and (((Matching unit) i
      • For each (Integer COB_Integer) from 1 to (Number of units in COBgroup2), do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in (Random 1 units from COBgroup2) and do (Actions)
            • Loop - Actions
              • Set COBPoint2 = (Position of (Picked unit))
              • Trigger - Turn off (This trigger)
              • Unit - Cause COBCaster to damage (Picked unit), dealing ((10.00 + (10.00 x (Real((Level of Circle Of Blessings for COBCaster))))) + (0.40 x (Real((Intelligence of COBCaster (Include bonuses)))))) damage of attack type Spells and damage type Normal
              • Trigger - Run ClearDamageEvent (checking conditions)
              • Trigger - Turn on (This trigger)
              • Special Effect - Create a special effect at COBPoint2 using Abilities\Spells\Other\Incinerate\IncinerateBuff.mdl
              • Special Effect - Destroy (Last created special effect)
              • Unit Group - Remove (Picked unit) from COBgroup2
          • Custom script: call RemoveLocation( udg_COBPoint2 )
      • Custom script: call DestroyGroup( udg_COBgroup2 )
 
Status
Not open for further replies.
Top