What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Unified GilesPlugin's Unnoficial Updates File

Status
Not open for further replies.
About 7 hours til it's night here. And I haven't started .4 yet, so feel free to work on .39 and I'll start .4 with that

Sounds good, give me a few hours. Have some real life work to do first. Will send over to you asap though.
 
And what would that be, exactly?

In the past, it was suppose to temporary auto-blacklist targets/objects that are unreachable after 15 seconds or so. So it doesn't stay focused on unreachable targets/objects the whole time game. Then it will unblacklist the target/object after 30 seconds or so in case you are on the move again and was able to reach it later on in the game.

I was looking around the code and it seems like the way it is handle is it gets the current datetime and your current target health. Then after 15 seconds or so, it checks the health and compare it to the previous health check, if it's the same, it would auto-blacklist the target since it gave you enough time to at least do some damage to it. If it didn't receive any damage, most likely you can't reach the target, and would temporary auto-blacklist it for you so you can move on with your profile.
 
I'll look through but last time I found that code it was set to 2 minutes before it was put on the temporary black list. I can reduce the time if you want if that hasn't been changed by anyone in this unified version. Has been about 2 weeks since I last saw that because I was getting stuck by those stupid birds in A2 and moths in A1.

Going to migrate my uber stuff to .39 now!
 
I think 30 seconds be good for auto-blacklisting, plenty of time to hit it at least once.
 
Here's what needs to be changed to fix the blacklist. Change this:

Code:
                        if (targetCurrent.ThisGilesObjectType == GilesObjectType.Unit)
                        {
                            if (targetCurrent.bThisTreasureGoblin && settings.iTreasureGoblinPriority >= 3)
                                bBlacklistThis = false;
                            if (targetCurrent.iThisHitPoints <= 0.90 && DateTime.Now.Subtract(dateSincePickedTarget).TotalSeconds <= 120)
                                bBlacklistThis = false;
                        }
                        if (bBlacklistThis)
                        {
                            if (targetCurrent.ThisGilesObjectType == GilesObjectType.Unit)
                            {
                                Logging.WriteDiagnostic("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
                                    targetCurrent.iThisActorSNO.ToString() + "}. Range=" + targetCurrent.fCentreDistance.ToString() + ", health %=" + targetCurrent.iThisHitPoints.ToString());
                            }
                            hashRGUIDTemporaryIgnoreBlacklist.Add(targetCurrent.iThisRActorGuid);
                            dateSinceTemporaryBlacklistClear = DateTime.Now;
                        }
                    }


To this:

Code:
                        if (targetCurrent.ThisGilesObjectType == GilesObjectType.Unit)
                        {
                            if (targetCurrent.bThisTreasureGoblin && settings.iTreasureGoblinPriority >= 3)
                                bBlacklistThis = false;
                            if (targetCurrent.iThisHitPoints <= 0.90 && DateTime.Now.Subtract(dateSincePickedTarget).TotalSeconds <= 25)
                                bBlacklistThis = false;
                        }
                        if (bBlacklistThis)
                        {
                            if (targetCurrent.ThisGilesObjectType == GilesObjectType.Unit)
                            {
                                Logging.WriteDiagnostic("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
                                    targetCurrent.iThisActorSNO.ToString() + "}. Range=" + targetCurrent.fCentreDistance.ToString() + ", health %=" + targetCurrent.iThisHitPoints.ToString());
                            }
                            hashRGUIDTemporaryIgnoreBlacklist.Add(targetCurrent.iThisRActorGuid);
                            dateSinceTemporaryBlacklistClear = DateTime.Now;
                        }
                    }
 
I'll change that since I'm putting Uber code in...just about done
 
OK my version attached for whenever the official v40 comes out. I already changed the version number on it in case anyone wants to start using it. Here's what I did:

- Included suggestion above for reduction of time allotted for temporary monster blacklisting. Reduced from 2 minutes to 25 seconds.
- Fixed the Trinity Version In action at the bottom (you no longer need to edit this twice Jubisman, just edit it on the top description and it will "MAGIcally appear when you launch the plugin"
- Included my Uber spec stuff:
* Picks up Organs
* Added Ghom Gas slider in Trinity Config window
* Added avoids to Zolton's Energy Twister and Time Warp Bubble, as well as Magdah's projectiles. These numbers may need tweaking for each class, except bubble which is set to always try and get out of. Twister and Magdah's projectiles are still set pretty high though as they do a fair amount of damage.
* Will prioritize Ubers (had to remove from boss SNO as Trinity doesn't like 2 bosses)
 

Attachments

A request for future version would be radius slider for elites.. it's bugging me you loose alot of seconds because the aggrorange is too large when you have script that is sorted out to search through the whole part of the map basically and ends up getting 50-70 feet away from the "path"..
The lesser the aggro the tighter the flow of both gold and items per hour, at least if you have a solid script, which most of us have by now :)..
If you won't add it, please let me know how to edit myself..

While I'm at it,
A tempest-rush-only-through-wps- checkbox would be nice for those trying to sort out the tempestrush build without spendning 500M on it.

Cheers!
 
Last edited:
I also figured out that something related to this function doesn't work right.

Code:
                        // Inactive units like trees, withermoths etc. still underground
                        if (tmp_unit_iThisHitPoints >= 1f || tmp_unit_bThisBoss)
                        {
                            // Get the burrowing data for this unit
                            bool bBurrowed;
                            if (!dictGilesBurrowedCache.TryGetValue(tmp_iThisRActorGuid, out bBurrowed) || tmp_unit_bThisBoss)
                            {
                                try
                                {
                                    bBurrowed = (tempCommonData.GetAttribute<int>(ActorAttributeType.Untargetable) != 0) || (tempCommonData.GetAttribute<int>(ActorAttributeType.Burrowed) != 0);
                                }
                                catch (Exception ex)
                                {
                                    Logging.WriteDiagnostic("[GilesTrinity] Safely handled exception getting is-untargetable or is-burrowed attribute for unit " + tmp_sThisInternalName + " [" + tmp_iThisActorSNO.ToString() + "]");
                                    Logging.WriteDiagnostic(ex.ToString());
                                    continue;
                                }
                                // Only cache it if it's NOT burrowed (if it *IS* - then we need to keep re-checking until it comes out!)
                                if (!bBurrowed)
                                {
                                    // Don't cache for bosses, as we have to check for bosses popping in and out of the game during a complex fight
                                    if (!tmp_unit_bThisBoss)
                                        dictGilesBurrowedCache.Add(tmp_iThisRActorGuid, bBurrowed);
                                }
                                else
                                {
                                    // Unit is burrowed, so we need to ignore it until it isn't!
                                    continue;
                                }
                            }
                        } // Only if at full health, else don't bother checking each loop
Some people noticed that with unexpected stucks near moths and trees. (Some of those hidden moths don't show up, no matter what you do)
Maybe you know what goes wrong there.
 
Thanks jiznadj, my bots been getting stuck sometimes in A3 due to the keywarden being out of range. Hopefully this will fix it.

Nevermind. In addition to adding your fix, I'm also editing the kill radius for keywardens on line 2710:

Code:
						if (tmp_iThisActorSNO == 256015 || tmp_iThisActorSNO == 256000 || tmp_iThisActorSNO == 255996)
							dUseKillRadius = 200;

to

Code:
						if (tmp_iThisActorSNO == 256015 || tmp_iThisActorSNO == 256000 || tmp_iThisActorSNO == 255996)
							dUseKillRadius = 80;
 
OK my version attached for whenever the official v40 comes out. I already changed the version number on it in case anyone wants to start using it. Here's what I did:

- Included suggestion above for reduction of time allotted for temporary monster blacklisting. Reduced from 2 minutes to 25 seconds.
- Fixed the Trinity Version In action at the bottom (you no longer need to edit this twice Jubisman, just edit it on the top description and it will "MAGIcally appear when you launch the plugin"
- Included my Uber spec stuff:
* Picks up Organs
* Added Ghom Gas slider in Trinity Config window
* Added avoids to Zolton's Energy Twister and Time Warp Bubble, as well as Magdah's projectiles. These numbers may need tweaking for each class, except bubble which is set to always try and get out of. Twister and Magdah's projectiles are still set pretty high though as they do a fair amount of damage.
* Will prioritize Ubers (had to remove from boss SNO as Trinity doesn't like 2 bosses)
Thanks!

A request for future version would be radius slider for elites.. it's bugging me you loose alot of seconds because the aggrorange is too large when you have script that is sorted out to search through the whole part of the map basically and ends up getting 50-70 feet away from the "path"..
The lesser the aggro the tighter the flow of both gold and items per hour, at least if you have a solid script, which most of us have by now :)..
If you won't add it, please let me know how to edit myself..

While I'm at it,
A tempest-rush-only-through-wps- checkbox would be nice for those trying to sort out the tempestrush build without spendning 500M on it.

Cheers!
Don't know how to do those. You'll have to hope someone takes interest on your suggestions

I also figured out that something related to this function doesn't work right.

Code:
                        // Inactive units like trees, withermoths etc. still underground
                        if (tmp_unit_iThisHitPoints >= 1f || tmp_unit_bThisBoss)
                        {
                            // Get the burrowing data for this unit
                            bool bBurrowed;
                            if (!dictGilesBurrowedCache.TryGetValue(tmp_iThisRActorGuid, out bBurrowed) || tmp_unit_bThisBoss)
                            {
                                try
                                {
                                    bBurrowed = (tempCommonData.GetAttribute<int>(ActorAttributeType.Untargetable) != 0) || (tempCommonData.GetAttribute<int>(ActorAttributeType.Burrowed) != 0);
                                }
                                catch (Exception ex)
                                {
                                    Logging.WriteDiagnostic("[GilesTrinity] Safely handled exception getting is-untargetable or is-burrowed attribute for unit " + tmp_sThisInternalName + " [" + tmp_iThisActorSNO.ToString() + "]");
                                    Logging.WriteDiagnostic(ex.ToString());
                                    continue;
                                }
                                // Only cache it if it's NOT burrowed (if it *IS* - then we need to keep re-checking until it comes out!)
                                if (!bBurrowed)
                                {
                                    // Don't cache for bosses, as we have to check for bosses popping in and out of the game during a complex fight
                                    if (!tmp_unit_bThisBoss)
                                        dictGilesBurrowedCache.Add(tmp_iThisRActorGuid, bBurrowed);
                                }
                                else
                                {
                                    // Unit is burrowed, so we need to ignore it until it isn't!
                                    continue;
                                }
                            }
                        } // Only if at full health, else don't bother checking each loop
Some people noticed that with unexpected stucks near moths and trees. (Some of those hidden moths don't show up, no matter what you do)
Maybe you know what goes wrong there.
I'll take a look. No promises, though

Thanks jiznadj, my bots been getting stuck sometimes in A3 due to the keywarden being out of range. Hopefully this will fix it.

Nevermind. In addition to adding your fix, I'm also editing the kill radius for keywardens on line 2710:

Code:
						if (tmp_iThisActorSNO == 256015 || tmp_iThisActorSNO == 256000 || tmp_iThisActorSNO == 255996)
							dUseKillRadius = 200;

to

Code:
						if (tmp_iThisActorSNO == 256015 || tmp_iThisActorSNO == 256000 || tmp_iThisActorSNO == 255996)
							dUseKillRadius = 80;
Implemented


Aaand v0.4 is up!
 
Forgot that storm armor before Archon thingy, btw. Can any wizards confirm the importance of that?
 
Forgot that storm armor before Archon thingy, btw. Can any wizards confirm the importance of that?
You can't cast Storm Armor while in Archon so I believe it's a bit important to make sure the buff gets refreshed before popping Archon.
 
You guys sure your plugins are enabled? v0.40 is working just fine for me
 
You guys sure your plugins are enabled? v0.40 is working just fine for me
Well, I grabbed the last version from the SVN and it's not working..
In fact, I think the plugin isn't even compiling correctly, since when you enable it it doesn't show the message of "trinity loaded" etc
 
Status
Not open for further replies.
Back
Top