HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Urgent Help Needed - Fatal Errors in my TD.

07-09-2009, 08:17 PM#1
CixxyZ




Been bugging me for like few months ... so much testing to no avail. So as a last resort im gonna post an unprotected ver of my TD so that someone might be able to figure out what is causing the fatal errors. It usually occurs after 20 min into the game when there are a lot of towers.

Will give a lot of credit if you can help!!

If you need to know anything about the map just ask here.

Thanks in advance.
07-09-2009, 08:53 PM#2
CixxyZ
found this
Quote:
Originally Posted by tamisrah
Ability Connected:
- Chainlightning: end game crash
- orb effect + attack ground
- modified flamestrike interacting with non modified
- tooltip with invalid expression followed by atleast 63 characters
- spellbook inside spellbook
- morph, alternate destroyer form, avatar, metamorphosis: various bugs & errors

Triggers
- call GetWorldBounds on global initialization
- using a rect created upon init
- Player(n) 15<n or 0>n
- non existant array index
- handling null handles <- not confirmed
- ExecuteFunc on non-existant function
- non initialized event responses (GetExpiredTimer)
- doing stuff outside map bounds
- H2I + Addition
- BJDebugMsg(H2S(someHandle))
- infinte loop
- moving a destroyed lightning
- native -> codevar

Other:
- ColorCodes within Team Names <- not confirmed

When the Thor tower attacks, it creates 5 dummies and they cast a total of 5 chain lightnings simultaneously. Do you guys think it could be that?

edit. Tested in single player and made 10 thors... no crash.
07-09-2009, 10:16 PM#3
Alevice
with an 1.21b instllation use grmoire, enable war3err iirc and check the crash dump and post it
07-09-2009, 11:09 PM#4
Anopob
After playing 21 minutes with all types of towers (besides Lucifer and that other tower, because I didn't know how to get those), I did not have a fatal error like you described. Perhaps it's something you're doing? Or look over multiple replays, comparing ones that crashed and ones that didn't.
07-09-2009, 11:46 PM#5
CixxyZ
Quote:
Originally Posted by Alevice
with an 1.21b instllation use grmoire, enable war3err iirc and check the crash dump and post it

I would but that sounds way too complex. Could you please post instructions on how to do that because I don't know any of the tools you described and also how to get a 1.21b installation without reinstalling.

Quote:
After playing 21 minutes with all types of towers (besides Lucifer and that other tower, because I didn't know how to get those), I did not have a fatal error like you described. Perhaps it's something you're doing? Or look over multiple replays, comparing ones that crashed and ones that didn't.

Well ta for playing so long. The thing is, it's not possible to save reps when it fatals. . . Also even if I have reps I wouldn't know what the problem resides in.
07-09-2009, 11:51 PM#6
CixxyZ
Trigger:
Thanatos Copy
Collapse Events
Unit - A unit Is attacked
Collapse Conditions
(Unit-type of (Attacking unit)) Equal to Thánatos Esper
Collapse Actions
Collapse For each (Integer A) from 1 to 5, do (Actions)
Collapse Loop - Actions
Set TempThanatosGroup[(Player number of (Owner of (Attacking unit)))] = (Units within 1000.00 of TempPoint matching (((Owner of (Matching unit)) Equal to Player 12 (Brown)) and (((Matching unit) is alive) Equal to True)))
Set TempPoint = (Position of (Attacking unit))
Unit - Create 1 dummy [thanatos] for (Owner of (Attacking unit)) at TempPoint facing Default building facing degrees
Set TempUnit = (Random unit from TempThanatosGroup[(Player number of (Owner of (Attacking unit)))])
Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb TempUnit
Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
Unit - Cause (Attacking unit) to damage TempUnit, dealing 66.00 damage of attack type Spells and damage type Death
Set TempInteger = (Random integer number between 1 and 20)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
TempInteger Equal to 6
Collapse Then - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
((Triggering unit) is A Hero) Equal to False
Collapse Then - Actions
Special Effect - Create a special effect at (Position of TempUnit) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
Special Effect - Destroy (Last created special effect)
Floating Text - Create floating text that reads Death!!! above TempUnit with Z offset 0.00, using font size 12.00, color (75.00%, 0.00%, 75.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 96.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 1.50 seconds
Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
Unit - Kill TempUnit
Collapse Else - Actions
Do nothing
Collapse Else - Actions
Do nothing
Unit Group - Remove TempUnit from TempThanatosGroup[(Player number of (Owner of (Attacking unit)))]
Custom script: call DestroyGroup (udg_TempThanatosGroup[GetConvertedPlayerId(GetOwningPlayer(GetAttacker()))])
Custom script: call RemoveLocation (udg_TempPoint)

I think it might be this trigger. I created 3 of these towers close by and it crashed. They are supposed to be a multiple shot tower that has a chance for instant death. Any one know if this trigger has bugs?
07-10-2009, 02:14 AM#7
Dark.Revenant
It could possibly create an infinite loop. The darndest things will set those off, even if it shouldn't be possible. The base WC3 code sucks...
07-11-2009, 12:41 PM#8
Gorman
Hey Archer, still having this bug i see :(

Well, the trigger you posted appears to be fine as far as i can see. However you could make it a little better by placing
Trigger:
Set TempPoint = (Position of (Attacking unit))
before the loop, as they dont change.

Dunno what could be breaking it, if it was that trigger... Unless its something weird like Dark said, or it could be attacking unit screweing up your arrays or something.

All i can think of is making attacking unit a local variable and seeing if that fixes it. (instead of just using Attacking Unit)



EDIT: sweet fixed

The problem is that you have so many triggers on the map, so its very hard to go through and find them.
07-12-2009, 07:35 PM#9
Sophismata
Actually, it may be that the problem has to do with one of the Macintosh-specific bugs.

You seem to be running the game through WINE or Cider (CrossOver)?


Also, you're triggers are slightly off. You're calling TempPoint when you define TempThanatosGroup[playerID], but you don't define TempPoint till after TempThanatosGroup[playerID].

Here:

Trigger:
Thanatos Copy
Collapse Actions
Set TempPoint = (Position of (Attacking unit))
Set TempThanatosGroup[(Player number of (Owner of (Attacking unit)))] = (Units within 1000.00 of TempPoint matching (((Owner of (Matching unit)) Equal to Player 12 (Brown)) and (((Matching unit) is alive) Equal to True)))
Collapse For each (Integer A) from 1 to 5, do (Actions)
Collapse Loop - Actions
[Actions go here]

Trigger:
Collapse making things a bit neater
Unit - Cause (Attacking unit) to damage TempUnit, dealing 66.00 damage of attack type Spells and damage type Magic
Set TempInteger = (Random integer number between 1 and 20)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
TempInteger Equal to 6
((Triggering unit) is A Hero) Equal to False
Collapse Then - Actions
Special Effect - Create a special effect at (Position of TempUnit) using Objects\Spawnmodels\Undead\UndeadDissipate\UndeadDissipate.mdl
Special Effect - Destroy (Last created special effect)
Floating Text - Create floating text that reads Death!!! above TempUnit with Z offset 0.00, using font size 12.00, color (75.00%, 0.00%, 75.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 96.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 1.50 seconds
Floating Text - Change the fading age of (Last created floating text) to 0.00 seconds
Unit - Kill TempUnit
Collapse Else - Actions
Do nothing
Unit Group - Remove TempUnit from TempThanatosGroup[(Player number of (Owner of (Attacking unit)))]
Custom script: call DestroyGroup (udg_TempThanatosGroup[GetConvertedPlayerId(GetOwningPlayer(GetAttacker()))])
Custom script: call RemoveLocation (udg_TempPoint)