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

[Plugin] Profile Switcher - keep your Nephalem Buffs!

Haley

New Member
Joined
Feb 1, 2010
Messages
152
Reaction score
3
[Plugin] Profile Switcher - keep your Nephalem Buffs - even if you die!!


Profile Switcher
(resumes from savepoints and randomizes your profiles!)

Hi,

as we (sfj and me) found it very annoying that we're forced to logout with 5 Nephalem Buffs as soon as we die. So we decided to code a little workaroud for this.


THE IDEA:
- the profile is seperated in smaller profles - every area is one profile. So we could switch between them like we want.
- When one profile is done - we're doing the next one - the last profile logs out and the run starts again.
- When our character dies - WE DO NOT LOG OUT - we just skip this profile and go to the next one. (so it's possible to skip "unkillable" elite packs and also skip 10 minutes running to the next waypoint, while all mobs are already dead.)


HOW IT WORKS:
- a deathhandler in our ProfileSwitcher Plugin switches the profile to the next in the list when the character dies "1" times (can be changed)
- with <nextProfile/> the Plugin switches automatically to the next Profile (alphabetical order - except you've a random.txt) (INSIDE OF THE PROFILE Folder)
- you can use <nextProfile name="Test.xml"/> to load a specific profile on the end of the profile


settings.webp

HOW TO USE:
- download and install ProfileSwichter
- change settings to fit your needs
- download any compatible Profile Pack (Ciggarc's stuff is fully compatible)
- probably download a random.txt or create one by yourself to fit your needs
- Load one of the Profiles
- In the Settings tab - set death Handling to Ignore!
- Hit Start


SOME FACTS FOR RANDOMIZATION
- If you turn on randomization in settings it will randomize all the profiles in the profiles folder - unless there is a file called random.txt in the profiles directory
- In each line of random.txt there is a value (profile priority) for each profile. priority can be a number from 1 to 99
- random.txt should have exact as many lines with priorities as there are profiles in the profiles directory
- If priority for two (or more) profiles is the same, they will be randomized
- just download our predefined random files to see how it works.

Example:

This will randomize the first 3 profiles:
random.webp


DOWNLOAD LINKS:

Plugin:
View attachment ProfileSwitcher1.0.zip - Stable Release 1.0
View attachment ProfileSwitcher1.1.7.zip - Beta Realease 1.1b7


Profiles:
As if the new Beta supports the <continue> tag no more modification is needed to radonic's profiles!

Don't install the plugin from Radonic if you are using ProfileSwitcher - it will likely produce stucks if 2 death handlers are active :)
Please note - the randomization file has to be named random.txt - you've probably to rename it, if you want to use one of our predefined random files.
ACT 1:
http://www.thebuddyforum.com/demonb.../act-1/62658-a1-inferno-champion-hunting.html
View attachment random_A1.txt Act 1 in predefined Order
View attachment random_A1random.txtAct1 randomized


ACT 2 (credits to Gardettos): http://www.thebuddyforum.com/demonb...827-act-2-champion-hunting-death-support.html
View attachment random_A2.txt Act 2 in predefined Order
View attachment random_A2Random.txtAct 2 randomized

ACT 3: http://www.thebuddyforum.com/demonb...arc-act-3-champion-farming-death-support.html
View attachment random_A3CoreOnly.txtAct 3 in predefined Order (without Azmodan)
View attachment random_A3WithAzmodan.txtAct 3 in predefined Order (with Azmodan - can cause stucks)
View attachment random_A3RealRandom.txtAct 3 randomized (without Azmodan)


Changelog:
----- 1.1 Beta 7 ----
  • Various bugfixes
  • Added some error handling in xml parsing and creation
----- 1.1 Beta 6 ----
  • A randomization priority of 0 now means that the profile will be ignored
  • Re added Profiles Path as an optional setting (to fix a problem with DRelog and maybe others)
  • Some small improvements
----- 1.1 Beta 5 ----
  • Added profile randomization!
  • Removed Profiles Path setting - it's no longer needed
  • Should now work with Reloggers
  • Added running log (in Plugins directory)
  • Fixed some small bugs
----- 1.1 Beta 4 ----
  • fixed typo: death detection didn't work correctly in b3 - sry for that
----- 1.1 Beta 3 ----
  • Added compatibility to Radonic's <continue> tag and the attribute 'profile = "profilename.xml"'; 'exitgame' attribute will be ignored (our plugin logs out if last profile (alphabetically!) is finished or death limit is reched)
  • Bugfix - now ensures that first profile gets loaded when idle timer logs you out
  • Bugfix - readded lastDeath checking so no more retrys should be left out :)
  • some Code Cleanup
----- 1.1 Beta 2 ----
  • XML Creation should now work also if closest waypoint is in <if> tags
  • fixed an logout issue when retries is set > 1 & profiles path doesn't end with /
----- 1.1 Beta 1 ---- (thanks to secretbear for integrate settings menu)
  • Code Cleanup
  • Settings menu added
  • Complete new Deathhandling - when toon dies we parse the profile xml for the nearest waypoint and generate a new temporary profile witch let you continue the profile normally - as a real player would do (without TP back and restart completely new - if safe points occur within the profile its even much faster!)
  • added "stuck on death" detection - just set the maximal revive timer in the settings menu (time vary ?1s from the game - DB gives me no information for that - so i work with timers witch isn't as accurate)
----- 1.0 Stable ---- (thanks to Rakurai for help with coding)
  • Code Cleanup
  • DeathRetry added
  • adjustable Settings (in the PluginSwitcher.cs)
  • minor Bugfixes

PREVIOUS RELEASES:
View attachment ProfileSwitcher1.1.6.zip - Beta Realease 1.1b6
View attachment ProfileSwitcher_1.1.5.zip - Beta Realease 1.1b5
View attachment ProfileSwitcher1.1b4.zip - Beta Realease 1.1b4
View attachment ProfileSwitcher1.1b3.zip - Beta Realease 1.1b3
View attachment ProfileSwitcher1.1b2.zip - Beta Realease 1.1b2


KNOWN BUGS:
  • Radonic's A / B Profiles aren't integrated yet - just delete one profile of them (doesn't matter if you keep A or B)

sry for my bad english ;)
 
Last edited:
Hey just giving it a test now, also just had an idea - since you're segmenting the profiles. What about maybe adding an option to randomize the next profile it proceeds to? If properly segmented it should work out pretty well atleast in my head it seems like a good idea.

edit:
keep getting this error:

*edit2: It seems to fix the below error in the ProfileSwitcher.cs file

Look for:
Code:
		public void OnPulse()
        {
            if (initialized)
            {
                     }
	    }
	}

and replace it with

Code:
		public void OnPulse()
        {
            if (initialized)
            {
	    }
	}

I believe you left out some edits on the upload version of the file - hopefully you could update it as it looks unfinished and my fix is just a bandaid fix I think.
Code:
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(44,9) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(49,16) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(52,49) : error CS1003: Syntax error, ']' expected
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(61,16) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(69,16) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(73,16) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(75,44) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(76,44) : error CS1518: Expected class, delegate, enum, interface, or struct
[23:17:15.449 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(77,42) : error CS1518: Expected class, delegate, enum, interface, or struct
 
Last edited:
UPLOADED Version 0.2
- fixed reported Bug
- fixed stuck on Vendorrun
 
Hey just giving it a test now, also just had an idea - since you're segmenting the profiles. What about maybe adding an option to randomize the next profile it proceeds to? If properly segmented it should work out pretty well atleast in my head it seems like a good idea.

We have also thinked about this - a problem would be that the Butcher profile changes the stepId of the Quest. We are checking this for problems - so far no problems occurred. Also their must be found a way to replace or better remove the <RunCode> tags from the profile.

Other Ideas we have:
-Death Counter/Statistics
-Run Counter/Statistics
-Settings menu for maybe retry profile etc...
and Code CleanUp / Bug fixing
 
Last edited:
Sounds like a fairly awesome project/plugin. Gonna give it a whirl when I finish work as losing the neph buff is something that's been niggling at me. Thanks for the work so far :)
 
Great concept. Act 1 is pretty survivable but Act 2/3 deaths can't be prevented. This plugin could be invaluable
 
Brilliant idea... just brilliant! I hope all the other genius coders around here take notice, because this would be a huge step in the right direction. It's a feature many have requested.

A small suggestion, if I may: In a future version, perhaps you could let the user define how many attempts they wish to make on a particular area. I know that a lot of times my bot can beat a certain pack, but he just does something dumb and dies once. If he could try to redo it once or twice, that would be perfect.

Example:
  • User configures options, sets the bot to retry areas one time after a death occurs.
  • Bot completes areas 1 and 2 successfully.
  • Bot dies in area 3.
  • The setting for retry triggers.
  • Bot reloads area 3 and tries to clear it again.
  • Bot dies in area 3 again and moves on to area 4.
 
This truly is an amazing plugin you have here, currently i am trying to adapt it to make the profiles it loads do such at random (kinda). If i am correct with the use of demonbuddy enhancements plugin you also have if condition random 1-100.. i am going to try and make part one have a 80% chance to go to part 2, 10% chance to go to part 3, 5% chance to go to part 4, 3% chance to go to part 5, and 2% chance to go to part 6. Then profile 2 has a 90%-3, 5%-4, 3%-5, 2%-6.... and so on.

This should create a crazy amount of variation on your runs :D If anyone is interested i will post this when i am finished (if it works of coarse XD)
 
Heh I had actually PM'd a couple of plugin writers on here with an almost identical idea. I've been baby sitting my bot for the last couple of days trying to get things tweaked so that it is efficient, and as a result I would say add a death counter before switching profiles. From what I've seen so far I've died more to "luck" than the pack being over powering. I've also seen a couple times of having only one mob of the pack remaining on death, and then the bot relogs :(
 
This truly is an amazing plugin you have here, currently i am trying to adapt it to make the profiles it loads do such at random (kinda). If i am correct with the use of demonbuddy enhancements plugin you also have if condition random 1-100.. i am going to try and make part one have a 80% chance to go to part 2, 10% chance to go to part 3, 5% chance to go to part 4, 3% chance to go to part 5, and 2% chance to go to part 6. Then profile 2 has a 90%-3, 5%-4, 3%-5, 2%-6.... and so on.

This should create a crazy amount of variation on your runs :D If anyone is interested i will post this when i am finished (if it works of coarse XD)

I personally would be totaly interested in this!
 
After watching this run for a while I noticed that my bot is not avoiding ground effects such as desecrate and arcane. It was running fine earlier doing a solid job of avoiding stuff. I' am going to try disabling DB enhancements and see if it will work
 
Brilliant idea... just brilliant! I hope all the other genius coders around here take notice, because this would be a huge step in the right direction. It's a feature many have requested.

A small suggestion, if I may: In a future version, perhaps you could let the user define how many attempts they wish to make on a particular area. I know that a lot of times my bot can beat a certain pack, but he just does something dumb and dies once. If he could try to redo it once or twice, that would be perfect.

Example:
  • User configures options, sets the bot to retry areas one time after a death occurs.
  • Bot completes areas 1 and 2 successfully.
  • Bot dies in area 3.
  • The setting for retry triggers.
  • Bot reloads area 3 and tries to clear it again.
  • Bot dies in area 3 again and moves on to area 4.

This.


The Idea behind this is absolutely wonderful, and you guys are the $hit for pushing on with this.

But the truth it, the applications of this are fairly limited: unless the bot can pick up where it left off when it died, the amount of time it would take for the profile to start from the beginning to the point where you died -- which with five stacks could be pretty far-- you may lose the benefit of this altogether.
 
Update!


We're planning to add something like a RETRY - Counter to enable you to do more trys in a single error. But like Chief posted before - it's possible that the Bot runs some minutes without killing any mob until you find the group you died before - but we've an idea how to fix this as well.

Regards
 
Hey just wanted to update got it working right on all 3 bots and hopefully I'll be able to run it overnight and let you know how much of an improvement it is tomorrow morning being able to keep going with 5 stacks each game instead of resetting. *edit: just saw my bot die on 5 stacks and it loaded up the next profile upon death perfectly and continued. Quite impressed!*

**Bug: One of my bots was starting a new run and in my version (1.9.1) it starts off in Leorics manor. It killed an elite then used the orange portal in the manor to head to the courtyard. It died outside and since it was the first profile of the 7 segments it tried loading the next profile but it was saying this "[21:43:25.301 N] [ProfileSwitcher] I died, loading next profile: C:\workingDRBackup\DR\Demonbuddys\Profilf.xml
[21:43:25.301 N]" repeatedly




Oh I currently use DB 185 as the random nav versions never seemed to work well for me and as such I was required to modify Rad's 1.9.1 profile (pre butcher and random nav release). Attached are the edited profiles

Please note that I hastily edited them and as such when it loads each segment in DB itll say it might have loaded "[21:27:03.317 N] Loaded profile [Act1 - Inferno] Champion-Hunting 2.0.2 Save The World - Fields of Misery" but it might load Drowned Temple - Just know it is working correct and loading the right order as according to Rad's 1.9.1

Also this is using version 0.2 of this plugin **if you use the newer version with the new profile tag format make sure to edit the files at the end and change the way it loads the next profile.
 

Attachments

Last edited:
Bazingaw - please try the newest released version and don't forget to edit your customized profiles (delete RunCode and add <nextProfile /> instead.
this should fix your problems
 
Looks very awesome, gonna try it out with with my profiles :)
 
Getting the following error on the new release

[23:12:11.409 N] Compiler Error: c:\workingDRBackup\DR\Demonbuddys\Plugins\ProfileSwitcher\ProfileSwitcher.cs(42,35) : error CS1501: No overload for method 'IndexOf' takes 1 arguments
 
please try to load the first profile by hand - and restart your demonbuddy after this and report back to us please.

It seems the plugin can't load the current profile - but demonbuddy does always support a current profile (except a fresh installation)


edit: and be sure that the FolderName "PluginSwitcher" has no typos in it
 
Back
Top