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

problems with townrun in town

Kevin Spacey

Community Developer
Joined
Aug 31, 2013
Messages
2,830
Reaction score
11
when i use my profile for crafting or any another profile after crafting:

IN TOWN

1) bot sometimes blacklist items and dont pick up em, i think its trinity problem
Code:
[14:47:45.633 N] [Trinity] Blacklisting target shoulderPads_norm_base_flippy ActorSNO=5288 RActorGUID=2040004723 due to possible stuck/flipflop!

2) bot sometimes think that BLACKSMITH is a Vendor and tying to sold stuff to him
AND i see one time bot trying to sold items to the Remove Gem Artisan;)

Code:
[15:01:09.408 D] 
[15:01:09.011 D] Generating path to Vendor - <286.4183, 276.1614, 0>


Generating path to Name=Blacksmith_Crafting_Backbone Dist=15,6687 IsElite=False HasBeenInLoS=False HitPointsPct=-1 - <253.6294, 219.3736, 0>

seems only when i blacklist him all become fine

3) sometimes bot think he is empty while he is full and trying to pick up again and again
in this log this problem was too, i paused bot and manually drop items from inventory on the ground, after this all become okay

4)...

sorry for .315 DB but the same problems with new .323 i sure
 

Attachments

we need a log file from latest build
 
but there is no changes in townruns, i know all changelogs
but okay i will did it if you want
 
btw you can easy reproduce it if you have some math for craft 100+ items
 
new log with last STABLE DB

1. Last db .323, las trinity 1.7.3.9
2. I decide to made 300 Razorspikes of Dexterity (in party with mule on another machine - notebook, to be safe if bsod or smthing on my crafting bot)
3. 270 items on the ground. 30 in inventory, and i started the bot with this log settings
VdnmP6q.jpg

4. this is my profile, i blacklist some items to prevent stuck and problems when bot trying to sold to wrong vendor
Code:
<Profile>
	<Name>[A2 - Crafting v0.1] blacksmith</Name>
	<KillMonsters>True</KillMonsters>
	<PickupLoot>True</PickupLoot>
	<GameParams act="A2" difficulty="Inferno" resumeFromSave="true"  />
	
	<TargetBlacklists>
	<TargetBlacklist actorId="178304" /> <!--Portal to Caldeum Bazaar-->
	<TargetBlacklist actorId="195171" /> <!--PT_Blacksmith_ForgeWeaponShortcut-->
	<!--TargetBlacklist actorId="195170" /--> <!--PT_Blacksmith_RepairShortcut-->
	<TargetBlacklist actorId="195172" /> <!--PT_Blacksmith_ForgeArmorShortcut-->
	<TargetBlacklist actorId="200371" /> <!--door-->
	<TargetBlacklist actorId="212519" /> <!--PT_Jeweler_AddSocketShortcut-->
	<TargetBlacklist actorId="212521" /> <!--PT_Jeweler_RemoveGemShortcut-->
	<TargetBlacklist actorId="56947" /> <!--PT_Blacksmith-->
    </TargetBlacklists>
	
	<Order>
	
		<ToggleTargeting questId="1" combat="False" looting="True" lootRadius="10" killRadius="100" />	
		<!-- From Town -->
		<While condition="Me.IsInTown">
		    <WaitTimer questId="1" waitTime="1000" />
			<MoveTo questId="1" x="309.8229" y="257.7893" z="0.1" pathPrecision="10"  />
			<MoveTo questId="1" x="288.4681" y="210.1658" z="0.1" pathPrecision="10"  />
			<WaitTimer questId="1" waitTime="1000" />
		</While>
		
		
	</Order>

 </Profile>

5. bot pick up all except one item, i stopped it



only one problem, without another i noticed before, will try to craft 500 items soon, not enough DE now =)
 

Attachments

TY,

PS/ tell me if you need more checkboxes in log options for next logfiles
 
Another report

now i decide to craft 500 items

1. 470 on the ground, 30 in inventory
2. latency all time near 280-300
3. according to the DB window bot pick up 340 items and stop do this - just start mooving on profile coordinats without pick uping - loot radius 10 is enough for it. I paused db

4. i stop/start it, increase loot radius but without any success, so i close db
5. log in zip
 

Attachments

Continue

6. I launch DB again and start the profile - the same bot wont pick up items
7. I delete CompiledAssemblies ang log folders, i push TownRun button - bot sold those items left in the inventory, but dont pick up anothers on the ground anyway
8. Only when i leave the game and resume it (i was in party and items still remains) - bot start to picking up
9. he pick up all till last item fine

few logs
 

Attachments

PHP:
[15:26:54.088 N] [Trinity] Blacklisting target Bracers_norm_base_06 ActorSNO=56328 RActorGUID=2051080487 due to possible stuck/flipflop!
It's trinity blacklisting the items, it thinks your stuck trying to pickup the same item over and over or something.
 
okay i will try to find the strings of code and right file to edit
in trinity plugin
will report later
 
just wondering kevin is your plugin dependent on trinity or can you just disable trinity and use DB and your plugin ?

I ask bc I used a plugin months back for crafting it wasn't trinity dependent but would cause issues like this.
 
just wondering kevin is your plugin dependent on trinity or can you just disable trinity and use DB and your plugin ?

I ask bc I used a plugin months back for crafting it wasn't trinity dependent but would cause issues like this.

there is no plugins for crafting
i use simple PROFILE for mooving near dropped items
 
PHP:
[15:26:54.088 N] [Trinity] Blacklisting target Bracers_norm_base_06 ActorSNO=56328 RActorGUID=2051080487 due to possible stuck/flipflop!
It's trinity blacklisting the items, it thinks your stuck trying to pickup the same item over and over or something.

im thinking on one thing
why restart of DB dont RESET this blacklist?? only when i restart the game?

one answer i guess - Diablo III remember this items itself! right?
 
ok i find smthing in Weighting.cs

what i need to edit? or just comment it all ;)

Code:
{
                TrinityCacheObject cTarget = (TrinityCacheObject)GenericCache.GetObject(targetMd5Hash).Value;
                bool isEliteLowHealth = cTarget.HitPointsPct <= 0.75 && cTarget.IsBossOrEliteRareUnique;
                bool isLegendaryItem = cTarget.Type == GObjectType.Item && cTarget.ItemQuality >= ItemQuality.Legendary;
                if (!cTarget.IsBoss && cTarget.TimesBeenPrimaryTarget > 15 && !isEliteLowHealth && !isLegendaryItem)
                {
                    Logger.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "Blacklisting target {0} ActorSNO={1} RActorGUID={2} due to possible stuck/flipflop!",
                        CurrentTarget.InternalName, CurrentTarget.ActorSNO, CurrentTarget.RActorGuid);

                    hashRGUIDBlacklist60.Add(CurrentTarget.RActorGuid);

                    // Add to generic blacklist for safety, as the RActorGUID on items and gold can change as we move away and get closer to the items (while walking around corners)
                    // So we can't use any ID's but rather have to use some data which never changes (actorSNO, position, type, worldID)
                    GenericBlacklist.AddToBlacklist(new GenericCacheObject()
                    {
                        Key = CurrentTarget.ObjectHash,
                        Value = null,
                        Expires = DateTime.Now.AddSeconds(60)
                    });
                }
 
Would be better to check it with rrrix
 
ok i find smthing in Weighting.cs

what i need to edit? or just comment it all ;)

Code:
{
                TrinityCacheObject cTarget = (TrinityCacheObject)GenericCache.GetObject(targetMd5Hash).Value;
                bool isEliteLowHealth = cTarget.HitPointsPct <= 0.75 && cTarget.IsBossOrEliteRareUnique;
                bool isLegendaryItem = cTarget.Type == GObjectType.Item && cTarget.ItemQuality >= ItemQuality.Legendary;
                if (!cTarget.IsBoss && cTarget.TimesBeenPrimaryTarget > 15 && !isEliteLowHealth && !isLegendaryItem)
                {
                    Logger.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "Blacklisting target {0} ActorSNO={1} RActorGUID={2} due to possible stuck/flipflop!",
                        CurrentTarget.InternalName, CurrentTarget.ActorSNO, CurrentTarget.RActorGuid);

                    hashRGUIDBlacklist60.Add(CurrentTarget.RActorGuid);

                    // Add to generic blacklist for safety, as the RActorGUID on items and gold can change as we move away and get closer to the items (while walking around corners)
                    // So we can't use any ID's but rather have to use some data which never changes (actorSNO, position, type, worldID)
                    GenericBlacklist.AddToBlacklist(new GenericCacheObject()
                    {
                        Key = CurrentTarget.ObjectHash,
                        Value = null,
                        Expires = DateTime.Now.AddSeconds(60)
                    });
                }


If you disable or remove this logic, I guarantee your bot is going to get stuck. If you notice, "cTarget.TimesBeenPrimaryTarget > 15" means the bot has targeted this item, then targeted something else (or moved) more than 15 times, and still wasn't able to pick up the item. Typically, an item is targeted less than 3-4 times and picked up.

You can increase that (maybe 30, 45?)

Or disable it completely by deleting the contents between the if(...) { ... }

Code:
                if (!cTarget.IsBoss && cTarget.TimesBeenPrimaryTarget > 15 && !isEliteLowHealth && !isLegendaryItem)
                {
                    Logger.Log(TrinityLogLevel.Normal, LogCategory.UserInformation, "Blacklisting target {0} ActorSNO={1} RActorGUID={2} due to possible stuck/flipflop!",
                        CurrentTarget.InternalName, CurrentTarget.ActorSNO, CurrentTarget.RActorGuid);

                    hashRGUIDBlacklist60.Add(CurrentTarget.RActorGuid);

                    // Add to generic blacklist for safety, as the RActorGUID on items and gold can change as we move away and get closer to the items (while walking around corners)
                    // So we can't use any ID's but rather have to use some data which never changes (actorSNO, position, type, worldID)
                    GenericBlacklist.AddToBlacklist(new GenericCacheObject()
                    {
                        Key = CurrentTarget.ObjectHash,
                        Value = null,
                        Expires = DateTime.Now.AddSeconds(60)
                    });
                }
 
Back
Top