• 🏆 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!

Odd crash specific to 1.30

Status
Not open for further replies.
Level 13
Joined
Jul 15, 2007
Messages
763
Since the patch I have experienced a few cases where a game you're playing suddenly ends, and takes you to the end-game score screen.

Well, I had a few reports of this occurring in my own map, specifically relating to a particular boss ability. I have observed it a few times and basically I've isolated the following trigger that causes the crash:

[Trigger=]
Boss15SeismicSlam
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Boss 15 - Seismic Slam
Actions
Game - Display to (All players) for 10.00 seconds the text: ((|cffffcc00 + (Proper name of (Triggering unit))) + |r has caused the ground to tremble!)
Set TEMP_POINT = (Position of (Casting unit))
For each (Integer TempInteger) from 1 to 12, do (Actions)
Loop - Actions
Set TEMP_POINT2 = (TEMP_POINT offset by 300.00 towards ((Real(TempInteger)) x 30.00) degrees)
Unit - Create 1 Dummy - Tectonic Energy for (Owner of (Triggering unit)) at TEMP_POINT2 facing Boss_Ability_Point
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 50.00%, 50.00%) with 75.00% transparency
Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_TEMP_POINT2)
For each (Integer TempInteger) from 1 to 18, do (Actions)
Loop - Actions
Set TEMP_POINT2 = (TEMP_POINT offset by 600.00 towards ((Real(TempInteger)) x 20.00) degrees)
Unit - Create 1 Dummy - Tectonic Energy for (Owner of (Triggering unit)) at TEMP_POINT2 facing Boss_Ability_Point
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 50.00%, 50.00%) with 75.00% transparency
Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_TEMP_POINT2)
For each (Integer TempInteger) from 1 to 24, do (Actions)
Loop - Actions
Set TEMP_POINT2 = (TEMP_POINT offset by 900.00 towards ((Real(TempInteger)) x 15.00) degrees)
Unit - Create 1 Dummy - Tectonic Energy for (Owner of (Triggering unit)) at TEMP_POINT2 facing Boss_Ability_Point
Animation - Change (Last created unit)'s vertex coloring to (100.00%, 50.00%, 50.00%) with 75.00% transparency
Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_TEMP_POINT2)
Custom script: call RemoveLocation(udg_TEMP_POINT)
[/Trigger]

The game doesn't end instantly after the spell is cast, but around after 0.5-1.0 sec (way before the other part of the trigger can fire where area damage is dealt when the dummy units die/expire). But i do know the crash is 100% caused by this ability being cast.

The dummy units (Tectonic Energy) have no special properties besides being a typical dummy unit, they're mostly a visual effect (unit with model & locust). The crash isn't related to them.

It worked fine before 1.30. It seems to crash quite consistently in online games (can't reproduce it off-line under test/single-player conditions).

Thought i'd post this here in case anyone has any ideas :p
 
Level 13
Joined
Jul 15, 2007
Messages
763
The spell is based on Faerie Fire (for it's AI/auto-cast properties); i don't think this should be an issue. A lot of boss abilities use this as an AI prompt of sorts.

I have had reports of another boss causing an issue. His ability is very similar to seismic slam. Seismic slam is actually an adaptation of this one's ability (which is called Drown).

One thing these abilities both have in common is

[Trigger=]Unit - Create 1 Dummy - Tectonic Energy for (Owner of (Triggering unit)) at TEMP_POINT2 facing Boss_Ability_Point[/Trigger]

The error being Boss_Ability_Point isn't set in Seismic Slam or Drown. Hopefully without confusing you, Drown is an adaptation of another boss ability called Deluge which creates a line of dummy units that expire/explode after a while.

Deluge has had no 0 reports but actually uses Boss_Ability_Point (hence the copy paste error in Drown/Seismic Slam...). Is it possible that when creating units facing an "invalid"/non-existent point, the game could desync/close on Battle.net? It certainly never used to, but i'm wondering if this is potentially a new patch thing?
 
Level 20
Joined
Apr 12, 2018
Messages
494
Either way, there's no telling just what's in that variable if you don't set it yourself so you should at least set it to something before referring to it.

I would be surprised if that's the actual issue, but it does make a little sense.
 
Level 13
Joined
Jul 15, 2007
Messages
763
Since updating via hotfix I haven't had complaints of crashing/desyncing, and all i did was change the point variable to the correct one.

So... possibly, creating a unit facing a point that didn't exist may have caused the desync. I tried to replicate the issue in a basic test map online but failed. So the issue is probably more complex than that, but having fixed it, i wont be investigating it further.
 
Status
Not open for further replies.
Top