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

[Plugin] Profile Switcher - keep your Nephalem Buffs!

Would be a bit difficult to implement. If you have finished 1 and get to 3 - when do you want to do 2? Thinking about whats the best way to implement randomization :)




we won't release any modified profiles any more, so we will release an updated version that is compatible with <continue> tags and radonics profiles should work out of box - just finishing testing it :)

the <forceRepair> tag has nothing to do with our plugin - this belongs to DBEnhancements. You can use it if you want to but it's not a must have. If u use the tag you have to have also the plugin installed!

What I mean is you said if you don't use the plugin you have to remove the forcerepair tag from the profile. I can't find a forcerepair text in radonics profile or am i going wrong somewhere?
 
What I mean is you said if you don't use the plugin you have to remove the forcerepair tag from the profile. I can't find a forcerepair text in radonics profile or am i going wrong somewhere?

Was in the previous version of his profile (Version 2.0.2). It's not in 2.1 anymore!

Also a new Beta 3 with <continue> tag support and some small fixes is out!
 
Was in the previous version of his profile (Version 2.0.2). It's not in 2.1 anymore!

Also a new Beta 3 with <continue> tag support and some small fixes is out!

Alright..was just wondering..
 
Would be a bit difficult to implement. If you have finished 1 and get to 3 - when do you want to do 2? Thinking about whats the best way to implement randomization
Upon completion of a profile section parse it to a seperate document, then read the document upon trying to load the next profile. If that name exists in the parsed compleated log then move to the next one. When all profiles return a compleated tag then reset.
 
Upon completion of a profile section parse it to a seperate document, then read the document upon trying to load the next profile. If that name exists in the parsed compleated log then move to the next one. When all profiles return a compleated tag then reset.

I'd be easier to do this with an array - it no problem to find out witch profile was finished in witch not!

Will add a b4 witch fixes a major bug (death not detected) in a few minutes
 
I'd be easier to do this with an array - it no problem to find out witch profile was finished in witch not!

Will add a b4 witch fixes a major bug (death not detected) in a few minutes
Yep, this would be totally awesome. Here's a proof-of-concept in pseudo code (though this actually works in a certain scripting language):

Code:
  /* Variable declaration with a test case of 5 files in the directory */
  var %i = total_number_of_files_in_dir
  var %j = %i
  var %Random_Profile
  array %Completed_Profiles
 
 /* Loop through to find unused profiles */
 while (%i)
 {
    
    /* %Random_Profile will always be a number of 1 through the total number of files in the directory (in this case, 1-5) */
    %Random_Profile = random(1,%j)

    /* If the %Random_Profile # is not found in the array of %Completed_Profiles, then continue */
    if ( %Random_Profile isNotInArray %Completed_Profiles )
    {
      
      /* Give output, decrement the total number of remaining profiles, and add the newly found %Random_Profile to the %Completed_Profiles array */
      print <nextProfile name="act1elite ++ %Random_Profile ++ .xml" />
      decrement %i
      %Completed_Profiles += %Random_Profile
    }
  }

Output is:
Code:
<nextProfile name="act1elite3.xml" />
<nextProfile name="act1elite4.xml" />
<nextProfile name="act1elite2.xml" />
<nextProfile name="act1elite1.xml" />
<nextProfile name="act1elite5.xml" />

Sometime in the next month I'll actually start writing stuff for DemonBuddy instead of the language I'm focused on at work right now. :(
 
Last edited:
got a problem with the 1.1.4beta at the end of the first profile of act 2: he teleports to town and then stands there and doing nothing

[17:22:29.621 V] Using power UseStoneOfRecall clickPos:<308.2124, 273.393, 0.1000003> worldDynamicId:1999503360 targetACDGuid:-1
[17:22:29.864 D] Replaced hook [ProfileOrderBehavior_Hook] 15323507-08f3-4403-b9e4-584fb8d3d870
[17:22:29.867 D] System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ProfileSwitcher.Helpers.profileHandler.getNextProfilePath(String currentPath)
at ProfileSwitcher.Helpers.profileHandler.wasLastProfile(String profile)
at ProfileSwitcher.Helpers.profileHandler.LoadNextProfile(String name, String path)
at ProfileSwitcher.Helpers.nextProfileTag.<CreateBehavior>b__0(Object ret)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.Common.HookExecutor.Run(Object context)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.Common.HookExecutor.Run(Object context)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.CommonBot.BotMain.()

got these plugins: DBE, gilescombatreplacer, gilesstashreplacer, gilesworldobjecthandler and the profileswitcher all newest versions

is here anything incompatible or did i something else wrong?
p.s.: love ur plugin ;-) running stable v1 till i know what happened, it even happens with a fresh install and fresh restart of d3 and db
 
for sure we've full compativility with all your plugins!

Seems the logout didn't work for you. Could you please post the full log? - this is the only way to find out what happened!
 
got a problem with the 1.1.4beta at the end of the first profile of act 2: he teleports to town and then stands there and doing nothing

[17:22:29.621 V] Using power UseStoneOfRecall clickPos:<308.2124, 273.393, 0.1000003> worldDynamicId:1999503360 targetACDGuid:-1
[17:22:29.864 D] Replaced hook [ProfileOrderBehavior_Hook] 15323507-08f3-4403-b9e4-584fb8d3d870
[17:22:29.867 D] System.IndexOutOfRangeException: Index was outside the bounds of the array.
at ProfileSwitcher.Helpers.profileHandler.getNextProfilePath(String currentPath)
at ProfileSwitcher.Helpers.profileHandler.wasLastProfile(String profile)
at ProfileSwitcher.Helpers.profileHandler.LoadNextProfile(String name, String path)
at ProfileSwitcher.Helpers.nextProfileTag.<CreateBehavior>b__0(Object ret)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.Common.HookExecutor.Run(Object context)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.Common.HookExecutor.Run(Object context)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..MoveNext()
at (Object )
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.CommonBot.BotMain.()

got these plugins: DBE, gilescombatreplacer, gilesstashreplacer, gilesworldobjecthandler and the profileswitcher all newest versions

is here anything incompatible or did i something else wrong?
p.s.: love ur plugin ;-) running stable v1 till i know what happened, it even happens with a fresh install and fresh restart of d3 and db

Have you set the profiles path in the plugins settings to the right directory? Does this directory also have other xml files inside (witch doesn't belong to the profile)? The error itself mean that our plugin couldn't find the next profile in the profiles directory.

Are u using Gargettos profiles? They should work as they are!
 
Last edited:
Have you set the profiles path in the plugins settings to the right directory? Does this directory also have other xml files inside (witch doesn't belong to the profile)? If you have modified the name of the profile files you also have to change (or better delete!) the profile= attribute from <Continue> tag

u are right, the directory was incorrect, very bad fault of me...sorry 4 disturbing and thanks for your help :D
 
u are right, the directory was incorrect, very bad fault of me...sorry 4 disturbing and thanks for your help :D

no problem! will try to add a check for this in upcoming versions :)
 
After some testing - this is fully compatible with DB .215 and all GILES Plugins aviable.

Also this works out of the Box with Radonics Profiles!

But be sure, that you only install one ProfileSwitcher - this one OR Radonics - not both!
 
Atm it is really desperate to teleport after it have died which makes it look really bot like if there are elites attacking it. Forexample a champion pack of act 2 bee was attacking it after it had died and it kept on trying to teleport everytime the bees just went 5 yd away.


My suggestion for a fix would be something like: Only teleport when there have been 5 seconds since last combat action.
 
I use the Plugins
GilesMonsterPriorityChanger
GilesStashReplacer
GilesWorldObjectHandler
ProfileSwitcher

Act 2 - Champion Hunting v1.02

why lot of time stuck standing in the town?
 
sounds interessting - i'm using exact the same setup as you do - without any problem or stuck in the town.. are you sure you've the right profile path in the settings?

you're stuck after completing a profile? or after completing all of them?

need more info

thx
 
Couple of problems:

1 of my bots completed the first part of Radonic's Act 2 profile and left the game.

The other bot running Act 1 Champions(Greyhound) by Radonic died in Leroic's Courtyard and got stuck after reviving.
 
sounds interessting - i'm using exact the same setup as you do - without any problem or stuck in the town.. are you sure you've the right profile path in the settings?

you're stuck after completing a profile? or after completing all of them?

need more info

thx


this is my settings

0001.webp
0002.webp
0003.webp
0004.webp
0005.webp
0006.webp
0007.webp

i am stuck after 1 or 2,3 map ,when i use wp back in the town or when i dead come back town maybe can stuck here ,but not 100%.
I don't know what's the problem .Help me ,plz .
 
Have you maybe downloaded the old version (b3)? Their was a bug in death detection. Otherwise - can you upload us a Logfile?

@BBD90 we need more informations like settings (correct profiles path?). Also a log file would be a big help :)
 
Last edited:
Have you maybe downloaded the old version (b3)? Their was a bug in death detection. Otherwise - can you upload us a Logfile?

@BBD90 we need more informations like settings (correct profiles path?). Also a log file would be a big help :)

what's your mean old version(b3)? i use DB 215 now .same stuck here.find a new stuck place-town .
and find a new place is A1 - Inferno]Champion-Hunting 2.1 Greyhound when he go out the Leorics Room...got stuck.just standing there,do nothing.

Code:
[22:54:13.723 N] Demonbuddy v1.0.940.215 started
[22:54:15.802 N] Logging in...
[22:54:16.400 N] Attached to Diablo III with pid: 10736
[22:54:16.405 N] Flashing window
[22:54:23.291 N] Current bot set to Order Bot
[22:54:23.291 N] Loaded profile [A2 - Inferno] Champion-Hunting w/ Death Support: Mine
[22:54:23.291 N] [ProfileSwitcher] Enabled.
[22:54:23.292 N] [ProfileSwitcher] Initialized.
[22:54:23.321 N] [GilesMonsterPriorityChanger 1.5.6] ENABLED: Giles monster priority changer now in effect!
[22:54:23.323 N] [GilesStashReplacer 1.9.7.2] ****************************
[22:54:23.323 N] [GilesStashReplacer 1.9.7.2] Locked and Loaded!
[22:54:23.323 N] [GilesStashReplacer 1.9.7.2] DB's item handling now replaced
[22:54:23.323 N] [GilesStashReplacer 1.9.7.2] ****************************
[22:54:23.343 N] [GilesWorldObjectHandler 1.6] ENABLED: Giles World Object Handler is now in effect!
[22:54:25.214 N] Loaded profile [A2 - Inferno] Champion-Hunting w/ Death Support: Mine
[22:54:57.415 N] Loaded profile [Act1 - Inferno] Champion-Hunting 2.1 Greyhound part1
[22:55:06.190 N] Chose Belphegor All-in-One as your combat routine.
[22:55:06.197 N] [Belphegor All-in-One 1.0.940.215] Building method list
[22:55:06.201 N] [Belphegor All-in-One 1.0.940.215] Added 62 methods
[22:55:06.203 N] [Belphegor All-in-One 1.0.940.215] InvalidWrapper is a match!
[22:55:06.203 N] [Belphegor All-in-One 1.0.940.215] Using InvalidWrapper for Combat (Priority: 0)
[22:55:06.213 N] [Belphegor All-in-One 1.0.940.215] InvalidWrapper is a match!
[22:55:06.213 N] [Belphegor All-in-One 1.0.940.215] Using InvalidWrapper for Buff (Priority: 0)
[22:55:06.213 N] [Belphegor All-in-One 1.0.940.215] Movement support for Invalid is not currently implemented.
[22:55:06.222 N] [Belphegor All-in-One 1.0.940.215] Behaviors created
[22:55:06.691 N] Loaded profile [Act1 - Inferno] Champion-Hunting 2.1 Greyhound part1
[22:55:06.908 N] Waiting 8.1 seconds before next game...
[22:55:15.045 N] Creating new game, Params: <Act:A1 Difficulty:Inferno Quest:72801 QuestStep:36 ResumeFromSave:False IsPrivate:True>
[22:55:20.157 N] GameChanged. Clearing actors
[22:55:20.409 N] ========== Grid segmentation resetting!!! ============
[22:55:20.409 N] Game joined, Reloading profile.
[22:55:20.911 N] Loaded profile [Act1 - Inferno] Champion-Hunting 2.1 Greyhound part1
[22:55:20.962 N] [Belphegor All-in-One 1.0.940.215] BarbarianCombat is a match!
[22:55:20.962 N] [Belphegor All-in-One 1.0.940.215] Using BarbarianCombat for Combat (Priority: 0)
[22:55:22.566 N] [Belphegor All-in-One 1.0.940.215] BarbarianBuffs is a match!
[22:55:22.566 N] [Belphegor All-in-One 1.0.940.215] Using BarbarianBuffs for Buff (Priority: 0)
[22:55:22.567 N] [Belphegor All-in-One 1.0.940.215] BarbarianMovement is a match!
[22:55:22.567 N] [Belphegor All-in-One 1.0.940.215] Using BarbarianMovement for Movement (Priority: 0)
[22:55:22.568 N] [Belphegor All-in-One 1.0.940.215] Behaviors created
[22:55:23.693 N] Using Waypoint Waypoint_Town-135 Number:13
[22:55:28.537 N] ========== Grid segmentation resetting!!! ============
[22:56:32.349 N] Interacting with object g_Portal_Ladder_Orange-1182
[22:56:32.488 N] ========== Grid segmentation resetting!!! ============
[22:56:53.810 N] Shrine_Global_Blessed-1487 is a shrine with id 2097086516.
[22:56:53.810 N] Using shrine Shrine_Global_Blessed-1487 2097086516
[22:56:54.319 N] Blacklisted True
[22:58:20.304 N] Blacklisting lootable (trOut_Highlands_LogStack_Trap-2363) after 10 seconds
[22:58:26.447 N] Shrine_Global_Frenzied-2489 is a shrine with id -2132213676.
[22:58:26.447 N] Using shrine Shrine_Global_Frenzied-2489 -2132213676
[22:58:26.993 N] Blacklisted True
[22:59:26.202 N] Shrine_Global_Fortune-2917 is a shrine with id -2104164322.
[22:59:26.202 N] Using shrine Shrine_Global_Fortune-2917 -2104164322
[22:59:26.730 N] Blacklisted True
[22:59:49.119 N] [ProfileSwitcher] Profile not found - check your Profile XML!
[22:59:49.160 N] Profile completed
[22:59:49.160 N] Number of games completed:1
[22:59:49.190 N] [ProfileSwitcher] Profile not found - check your Profile XML!

I am stucking here now . 0 Deaths/hour
0008.webp
 
Last edited:
Im getting this ] Exception while enabling plugin ProfileSwitcher: System.ArgumentException: The path is not of a legal form.
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler)
at System.IO.Directory.GetFiles(String path, String searchPattern)
at ProfileSwitcher.Helpers.profileHandler.updateProfiles() in c:\Users\carl\Desktop\DB\Plugins\ProfileSwitcher\Helpers\profileHandler.cs:line 37
at ProfileSwitcher.Helpers.profileHandler.getFirstProfilePath() in c:\Users\carl\Desktop\DB\Plugins\ProfileSwitcher\Helpers\profileHandler.cs:line 57
at ProfileSwitcher.ProfileSwitcher.OnEnabled() in c:\Users\carl\Desktop\DB\Plugins\ProfileSwitcher\ProfileSwitcher.cs:line 218
at Zeta.Common.Plugins.PluginContainer.set_Enabled(Boolean value)
 
Back
Top