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

Unknown error "Handle2AgentReg"

Status
Not open for further replies.

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
Is there a custom script just like "RemoveLocation()" to fix those leaks via GUI?
Yeh you can call your own functions instead which do not leak handle indices.
if not, then i imagine that the only thing that i can do to save my years of work is to learn Jass..
Something you should have done years ago. It is really hard to make maps for Warcraft III without knowing JASS, especially complex ones.
i'm willing to learn Jass, i've also tried using JassCraft for better code comprehension, but i really can't understand 90% of things currently.. when i see jass, my mind tries to read it like if it is a GUI trigger, searching codes to interpretate events, conditions, etc.. but can't understand where an event begins, where are conditions... i've read many tutorials but none of those was enough explicative for me to stop me from using using GUI..
One quickly learns that GUI is just a very bad and nonsense subset of JASS.
 
Level 4
Joined
Mar 30, 2018
Messages
76
Yeh you can call your own functions instead which do not leak handle indices.

What are those functions? remember that i know almost nothing outside GUI

Something you should have done years ago. It is really hard to make maps for Warcraft III without knowing JASS, especially complex ones..

As i said, the problem is not related to the will of learn jass, but i found nothing on the web that helps really to understand how jass is structured. Lot of map makers start projects without knowing that GUI is completely unreliable, and no one of them made a mistake voluntairly, since there's not any advise that say "warning: never use GUI".

Anyway, i'm inclined to offer some work to jass experts on the comunity to work with me on this complex project, or also to help me just to learn jass.
 
Level 38
Joined
Feb 27, 2007
Messages
4,951
What are those functions? remember that i know almost nothing outside GUI
You really don't seem to be getting the point here. You will have to rewrite them for yourself... or do a lot of googling and hope you can find someone else who got fed up enough with unfixable GUI leaks that they decided to rewrite a bunch of functions for theirself (but also didn't just switch over to JASS entirely, and good luck finding that person).
 
Level 4
Joined
Mar 30, 2018
Messages
76
You really don't seem to be getting the point here. You will have to rewrite them for yourself... or do a lot of googling and hope you can find someone else who got fed up enough with unfixable GUI leaks that they decided to rewrite a bunch of functions for theirself (but also didn't just switch over to JASS entirely, and good luck finding that person).

All I can do here is to explain again, that i don't have any idea of what "write a function" means. if this thing is not related to events/conditions/actions, it's currently outside of my possibility.
 
Level 38
Joined
Feb 27, 2007
Messages
4,951
if this thing is not related to events/conditions/actions, it's currently outside of my possibility.
unfixable GUI leaks
then i imagine that the only thing that i can do to save my years of work is to learn Jass..
It is really hard to make maps for Warcraft III without knowing JASS, especially complex ones.
i'm willing to learn Jass, i've also tried using JassCraft for better code comprehension, but i really can't understand 90% of things currently.. when i see jass, my mind tries to read it like if it is a GUI trigger, searching codes to interpretate events, conditions, etc.. but can't understand where an event begins, where are conditions...
It... is a GUI trigger in form. Write a simple trigger--1 event 1 condition 3 actions. Copy it and convert the copy. Search within the code for key words in the event: event, unit, death, spell, player, etc. You'll see somewhere in the code something that looks like it could be the event. In that line it refers to some other things like the trigger, player if applicable-- search for those terms too and look around and see if other lines make sense. Do the same with key words in the conditions, then actions. Common words will show up in multiple places. Notice how all the actions are done in order top to bottom; read function names to see if do what it sounds like; search functions with bizarre names to find them in the code. Put an if statement see how that appears differently. Try deleting things and seeing what happens. Read the syntax checker and actually look at the line it says and the type of error it says it has instead of being mad it didn't work.


Investigate and Experiment!
 
Last edited:
Level 4
Joined
Mar 30, 2018
Messages
76
It... is a GUI trigger in form. Write a simple trigger--1 event 1 condition 3 actions. Copy it and convert the copy. Search within the code for key words in the event: event, unit, death, spell, player, etc. You'll see somewhere in the code something that looks like it could be the event. In that line it refers to some other things like the trigger, player if applicable-- search for those terms too and look around and see if other lines make sense. Do the same with key words in the conditions, then actions. Common words will show up in multiple places. Notice how all the actions are done in order top to bottom; read function names to see if do what it sounds like; search functions with bizarre names to find them in the code. Put an if statement see how that appears differently. Try deleting things and seeing what happens. Read the syntax checker and actually look at the line it says and the type of error it says it has instead of being mad it didn't work.


Investigate and Experiment!

Thanks for suggestion, but i've already tried all those things, and complexively i had more difficulties in practice than how you explain in teory. I still however have the Jass Class and Crash Course to explore. Hopefully one day i will not need GUI anymore. ^^
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
1.31 notes shown in China show 64bit support. No idea when that patch is going live however.

Although this will solve the out of memory crash (at least for a few hours on a newish computer until it is actually out of memory), it will not make the map more playable due to the previously mentioned performance degradation as time progresses.
 
Level 38
Joined
Feb 27, 2007
Messages
4,951
Is that paste set to never expire? Copied here in case it isn't:

- PolledWait (cause : leak)
- ChangeElevatorWallBlocker (cause : leak)
- CinematicFadeBJ (cause : useless else)
- ConfigureNeutralVictim (cause : safer to null player local handle)
- CountLivingPlayerUnitsOfTypeId (cause : leak)
- CountUnitsInGroup (cause : leak)
- CustomDefeatDialogBJ (cause : leak) -> Can use a complete rework on all the functions used to make them return boolean and use them as triggercondition for faster execution...
- CustomDefeatReduceDifficultyBJ (cause : leak)
- CustomVictoryDialogBJ (cause : leak)
- DelayedSuspendDecay (cause: leak)
- DelayedSuspendDecayBoneEnum (cause : leak)
- DelayedSuspendDecayFleshEnum (cause : leak)
- DelayedSuspendDecayStopAnimEnum (cause : leak)
- EnumDestructablesInCircleBJ (cause : leak)
- EnumDestructablesInCircleBJFilter (cause : leak)
- EnumUnitsSelected (cause : leak)
- ForceSetLeaderboardBJ (cause : safer to null player local handle)
- GameOverDialogBJ (cause : leak)
- GetCurrentCameraSetup (cause : need total rework .... Like returning a global since it returns a local handle :/)
- GetForceOfPlayer (cause : same as above)
- GetPlayersAllies (cause : same as above)
- GetPlayersByMapControl (cause : same as above)
- GetPlayersEnemies (cause : same as above)
- GetPlayersMatching (cause : same as above)
- GetRandomSubGroup (cause : same as above)
- GetUnitsInRangeOfLocMatching (cause : same as above)
- GetUnitsInRectMatching (cause : same as above)
- GetUnitsInRectOfPlayer (cause : same as above)
- GetUnitsOfPlayerAndTypeId (cause : same as above)
- GetUnitsOfPlayerMatching (cause : same as above)
- GetUnitsSelectedAll (cause : same as above)
-
- GetUnitsOfTypeIdAll (cause : same as above and LEAK xD)
- GetInventoryIndexOfItemTypeBJ (cause : leak)
- InitBlizzardGlobals (cause : leak)
- InitGenericPlayerSlots (cause : leak)
- IssueHauntOrderAtLocBJ (caue : leak)
- LeaderboardGetIndexedPlayerBJ (cause : safer to null player handle local)
- LivingPlayerUnitsOfTypeIdFilter (cause : leak)
- MakeUnitsPassiveForPlayer (cause : leak)
- MakeUnitsPassiveForTeam (cause : safer to null player local handle)
- MeleeCheckAddedUnit (cause : safer to null player handle local)
- MeleeCheckForCrippledPlayers (cause : leak for sure (just check how many local handle there is xD))
- MeleeCheckForLosersAndVictors (cause : leak)
- MeleeCheckForVictors (cause : leak because returns a local handle)
- MeleeCheckLostUnit (cause : safer to null player local handle)
- MeleeClearExcessUnit (cause : leak)
- MeleeClearExcessUnits (cause : safer to null player local handle)
- MeleeClearNearbyUnits (cause : leak)
- MeleeCrippledPlayerTimeout (cause : leak)
- MeleeDefeatDialogBJ (cause : leak)
- MeleeDoDefeatEnum (cause : safer to null player local handle)
- MeleeDoDrawEnum (cause : safer to null player local handle)
- MeleeDoVictoryEnum (cause : safer to null player local handle)
- MeleeEnumFindNearestMine (cause : leak)
- MeleeExposeAllPlayers (cause : leak)
- MeleeExposePlayer (cause : leak)
- MeleeFindNearestMine (cause : leak)
- MeleeGetAllyCount (cause : safer to null player local handle)
- MeleeGetAllyKeyStructureCount (cause : same as above)
- MeleeGetAllyStructureCount (cause : same as above)
- MeleeGetCrippledTimerMessage (cause : leak)
- MeleeGetCrippledWarningMessage (cause : leak)
- MeleeGrantHeroItems (cause : safer to null trigger local handle)
- MeleeInitVictoryDefeat (cause : safer to null those handles ><)
- MeleePlayerIsOpponent (cause : null those handles please ^^)
- MeleeRandomHeroLoc (cause : leak)
- MeleeRemoveObservers (cause : null player local handle)
- MeleeStartingAI (cause : leak)
- MeleeStartingResources (cause : leak)
- MeleeStartingUnits (cause : leak)
- MeleeStartingUnitsHuman (cause : leak)
- MeleeStartingUnitsNightElf (cause : leak)
- MeleeStartingUnitsOrc (cause : leak)
- MeleeStartingUnitsUndead (cause : leak)
- MeleeTournamentFinishNowRuleA (cause : just... omg.... handle local ARRAY oO !!!)
- MeleeTriggerActionPlayerDefeated (cause : null player local handle)
- MeleeTriggerActionPlayerLeft (cause : same as above)
- MeleeTriggerTournamentFinishSoon (cause : same as above)
- MeleeVictoryDialogBJ (cause : leak)
- MeleeWasUserPlayer (cause : leak)
- MultiboardSetItemColorBJ (cause : leak)
- MultiboardSetItemIconBJ (cause : leak)
- MultiboardSetItemStyleBJ (cause : leak)
- MultiboardSetItemValueBJ (cause : leak)
- MultiboardSetItemWidthBJ (cause : leak)
- NearbyElevatorExists (cause : leak)
- NearbyElevatorExistsEnum (cause : leak)
- NudgeItemsInRectEnum (cause : leak)
- NudgeObjectsInRect (cause : leak)
- NudgeUnitsInRectEnum (cause : leak)
- PauseAllUnitsBJ (cause : leak)
- PerformStockUpdates (cause : leak)
- PlaySound (cause : leak)
- ReplaceUnitBJ (cause : leak)
- SetPlayerColorBJ (cause : leak)
- SetUnitFacingToFaceLocTimed (cause : leak)
- SetUnitFacingToFaceUnitTimed (cause : leak)
- ShareEverythingWithTeam (cause : safer to null player local handle)
- ShareEverythingWithTeamAI (cause : safer to null player local handle)
- TeamInitPlayerSlots (cause : same as above)
- TriggerActionUnitRescuedBJ (cause : leak)
- TriggerRegisterEnterRectSimple (cause : leak)
- TriggerRegisterLeaveRectSimple (cause : leak)
- UnitDropItem (cause : return a local handle)
- UpdateEachStockBuilding (cause : leak)
- UpdateStockAvailability (cause : leak)
- WakePlayerUnits (cause : leak)
 
Level 4
Joined
Mar 30, 2018
Messages
76
UPDATE: i've worked a lot on the game architecture, changing the way items and units are generated on the map. I've also created a trigger that limits the max number of simultaneous instances (units and items) during the game, and limited the interactions of units outside player 1 game gamera view (since it's a single player game, the mechanics still works well. )As result, the map works better. As DSG suggested, that was in part a problem related to the number of simultaneous items and units inside the map, but the game still crashes after 30-40 minutes due the memory usage. Actually i've i'm trying to test the game in 1.31 version, but cant find the 1.31 installation path.
 
Level 4
Joined
Mar 30, 2018
Messages
76
i've been able to find the map folder inside the CASC archive using CascView on the "data" folder. But once opened, i can't simply put my map inside CascView. then i've extracted all the files inside the CASC archive, then added my map in the maps list. But now? how can i re-add all files on the CASC storage?
 
Level 4
Joined
Mar 30, 2018
Messages
76
Such as in the documents folder.

That would be my first choise, if only the software would accept to install on my computer:
error.jpg


tried to change destination or even free more space, and it says always "invalid location". Then once i start for the second time the launcher it says "software installed" - repair/launch. Once i click launch the game starts, but no documents\warcraft III public test\maps folder has been created.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
tried to change destination or even free more space, and it says always "invalid location". Then once i start for the second time the launcher it says "software installed" - repair/launch. Once i click launch the game starts, but no documents\warcraft III public test\maps folder has been created.
Your OS specs? Tried running it as administrator? Try deleting the ProgramData cache.
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,180
Windows 10 home Edition, yes running as administrator, and where can i find Programdata cache?
"C:\ProgramData\Blizzard Entertainment"

Note that ProgramData is a hidden folder and hence might require administrator permission to access. One can reveal it by changing the folder view settings in control panel to allow display of hidden folders.
 
Status
Not open for further replies.
Top