[Trigger] [SOLVED] Game freezing only with one hero

Level 6
Joined
Oct 11, 2017
Messages
66
Greetings, everyone!

I'm currently working on a Druid hero, and I've been facing a weird problem:
The game freezes at 8~9 minutes.

"But Paulo, are there any loops running in this time window?"
Yes, there are, but I disabled them, and the Druid keeps freezing the game.

"Have you tried turning it off then on again? isolating his abilities to check which one is the problematic one?"
Yes, I did, many, many times, and I came to the conclusion that using Thorny Field (the strongest suspect) and Wild Form during a run ensures the freezing, while using only one of them... doesnt.

Here are his abilities' triggers:
  • The actual ability (cast by the Druid) is based on Entangling Roots.
  • The AoE damage (cast by a dummy) is based on Flame Strike (with @Chaosium's Rooty Impale model replacing the ground flames)
  • Thorny Field
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Druid H1 - Thorny Field
    • Actions
      • Set VariableSet TES_Caster = (Casting unit)
      • Set VariableSet _Player = (Owner of TES_Caster)
      • Set VariableSet _Integer = (Level of Druid H1 - Thorny Field for TES_Caster)
      • Set VariableSet _Real = (Real((_Integer + 1)))
      • Set VariableSet _Real = (_Real x (1.00 + (0.01 x (Real((Intelligence of TES_Caster (Include bonuses)))))))
      • Ability - Set Ability: (Unit: TES_Caster's Ability with Ability Code: Druid H1 - Thorny Field )'s Real Level Field: Duration - Normal ('adur') of Level: (_Integer - 1) to _Real
      • Ability - Set Ability: (Unit: TES_Caster's Ability with Ability Code: Druid H1 - Thorny Field )'s Real Level Field: Duration - Hero ('ahdu') of Level: (_Integer - 1) to (_Real x 0.50)
      • Set VariableSet TES_Target = (Target unit of ability being cast)
      • Set VariableSet TES_Point = (Position of TES_Target)
      • Unit - Create 1 *Dummy Caster for _Player at TES_Point facing Default building facing degrees
      • Set VariableSet TES_Dummy = (Last created unit)
      • Unit - Add Druid H1a - Thorny Field [AOE Damage over time] to TES_Dummy
      • Set VariableSet _Real = (0.15 x (Real((_Integer + 1))))
      • Set VariableSet _Real = (_Real x (Real((Intelligence of TES_Caster (Include bonuses)))))
      • Set VariableSet _Real = (_Real x 0.25)
      • Ability - Set Ability: (Unit: TES_Dummy's Ability with Ability Code: Druid H1a - Thorny Field [AOE Damage over time])'s Real Level Field: Full Damage Dealt ('Hfs1') of Level: 0 to _Real
      • Unit - Order TES_Dummy to Human Blood Mage - Flame Strike TES_Point
      • Custom script: RemoveLocation(udg_TES_Point)
  • The actual ability (cast by the Druid) is based on Silence, affecting none.
  • The AOE rejuvenation effect (cast by the Dummy) is based on Sroll of Regeneration
  • Rejuvenation
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Druid H2 - Rejuvenation
    • Actions
      • Set VariableSet TES_Caster = (Casting unit)
      • Set VariableSet TES_Point = (Target point of ability being cast)
      • Set VariableSet _Player = (Owner of TES_Caster)
      • Set VariableSet _Integer = (Level of Druid H2 - Rejuvenation for TES_Caster)
      • -------- - --------
      • Set VariableSet _Real = (Real((_Integer + 1)))
      • Set VariableSet _Real = (_Real x 3.00)
      • Set VariableSet _Real = (_Real x (Real((Intelligence of TES_Caster (Include bonuses)))))
      • -------- - --------
      • Unit - Create 1 *Dummy Caster for _Player at TES_Point facing Default building facing degrees
      • Set VariableSet TES_Dummy = (Last created unit)
      • Unit - Add Druid H2a - Rejuvenation [AOE Rejuv] to TES_Dummy
      • Ability - Set Ability: (Unit: TES_Dummy's Ability with Ability Code: Druid H2a - Rejuvenation [AOE Rejuv] )'s Real Level Field: Life Regenerated ('irl1') of Level: 0 to _Real
      • Custom script: IssueImmediateOrderById(udg_TES_Dummy, 852609)
      • Custom script: RemoveLocation(udg_TES_Point)
  • Wild Form
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Druid H4 - Wild Form
    • Actions
      • Set VariableSet _Unit = (Casting unit)
      • Set VariableSet _UnitType = (Unit-type of _Unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Druid H5 - Attribute Bonus for _Unit) Not equal to 0
        • Then - Actions
          • Set VariableSet _Ability = (Unit: _Unit's Ability with Ability Code: Druid H5 - Attribute Bonus )
          • Set VariableSet _Integer = (Level of Druid H5 - Attribute Bonus for _Unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • _UnitType Equal to Druid [Wise Form]
            • Then - Actions
              • Ability - Set Ability: _Ability's Integer Level Field: Strength Bonus ('Istr') of Level: (_Integer - 1) to (24 x _Integer)
              • Ability - Set Ability: _Ability's Integer Level Field: Agility Bonus ('Iagi') of Level: (_Integer - 1) to (12 x _Integer)
              • Ability - Set Ability: _Ability's Integer Level Field: Intelligence Bonus ('Iint') of Level: (_Integer - 1) to 0
            • Else - Actions
              • Ability - Set Ability: _Ability's Integer Level Field: Strength Bonus ('Istr') of Level: (_Integer - 1) to (12 x _Integer)
              • Ability - Set Ability: _Ability's Integer Level Field: Agility Bonus ('Iagi') of Level: (_Integer - 1) to (6 x _Integer)
              • Ability - Set Ability: _Ability's Integer Level Field: Intelligence Bonus ('Iint') of Level: (_Integer - 1) to (18 x _Integer)
        • Else - Actions

I'm... completely lost on how to pinpoint what exactly is freezing, but it's sure that using Wild Form and Thorny Field WILL freeze the game around the 8~9 minutes mark.

EDIT: After a lot of tests, the issue was that I set Flame Strike's "Half Damage Interval" as 0.00, which was somehow stressing the game until it froze.
 
Last edited:
well, none of my spells use timers at all, unless Flame Strike uses some sort of internal timer I'm not aware of..

the weirdest thing is, the game does not freeze during a cast; as long as I use this ability, the game will crash, even if I'm not doing anything related to it at the time
 
Well I hope it's not my little model that freezes the entire thing :grin:

Do you have anything else that would happen in your map around the 8-9 min?

The AOE rejuvenation effect (cast by the Dummy) is based on Sroll of Regeneration

I'm a bit puzzled about this, I can't remember for sure but isn't there a problem with spells based on item abilities causing issues when ordered to be cast by units? I could swear I saw it somewhere
 
Last edited:
Well I hope it's not my little model that freezes the entire thing :grin:

Do you have anything else that would happen in your map around the 8-9 min?



I'm a bit puzzled about this, I can't remember for sure but isn't there a problem with spells based on item abilities causing issues when ordered to be cast by units? I could swear I saw it somewhere
rest assured it's not your model; I was having this problem before asking for it.

I tried disabling all timed events from the map, and the issue persisted.
 
Back
Top