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

[Plugin] Demon Buddy Enhancements

This IF tags would look lovely if i can find out how to execute ELSE.

Can it be stored somewhere until next random? I mean one tag to randomize number, let it be N, and one tag to compare it. So it can look like this:

<Random(N)>
<If condition="N < 50">
<!--Option1 here goes-->
</If>
<If condition="N => 50">
<!--Option2 here goes-->
</If>

<Random(N)>
<!--here we compare with new options with freshly randomed N-->

hope i explained it understandable enough) But with such way you can make even 10 different ways to choose from, like N < 10, 10 <= N < 20, ...

I was thinking about something like:
<Switch variable="Random(1,10)">
<Branch value="1">
</Branch>
<Branch value="2">
</Branch>
...
</Switch>
When I find the time I'm going to implement something like that :)
 
Been using this plugin for some time with no problems - I think version 1.0.0.0 is what I have been using. Updated to the latest version last night and started running into problems. Attached are 2 log files, one using the latest version of DBE, the second using the old version. No other plugins are used, DBE is not enabled, and the profile is a Queen run, none of the DBE tags are used. When using the old version, the profile loads and starts no problem - I only let the run continue for a few seconds just to show it was running. When using the new version of DBE, the profile loads and begins to run, but the bot stops almost immediately after joining the game.

I've tried a few other profiles downloaded from the forum and have seen the same behavior. Any ideas?

View attachment Latest Version.txt
View attachment Old Version.txt
 
Been using this plugin for some time with no problems - I think version 1.0.0.0 is what I have been using. Updated to the latest version last night and started running into problems. Attached are 2 log files, one using the latest version of DBE, the second using the old version. No other plugins are used, DBE is not enabled, and the profile is a Queen run, none of the DBE tags are used. When using the old version, the profile loads and starts no problem - I only let the run continue for a few seconds just to show it was running. When using the new version of DBE, the profile loads and begins to run, but the bot stops almost immediately after joining the game.

I've tried a few other profiles downloaded from the forum and have seen the same behavior. Any ideas?

View attachment 49201
View attachment 49200

I can see the bug, was missing a test :) will be fixed in 1.0.0.9
 
Sweet! Looking forward to the new functions, much better than my current profiles loading each other in a 'quasi random' mess.

Like the idea of the switch statement as well. One use case I would love to see solved by this would be in a profile like the champion farming one, where several waypoints are taken. Would be very nice to have each waypoint/area as a branch and use the switch statement to randomize the order, but would need a way to ensure each branch is taken only once - and that all branches are eventually taken. Would need a way to get/set variables in a profile - or some weird switch/while hybrid - to really make that work though.

Anyway - thanks for looking into my problem. Cheers!
 
Fixed the bug that removed existing shortcuts for the condition evaluation :) was a bit more messy than expected.
 
Works great - thanks for the update.

One thing of note - I found I have to encode the less than sign in the condition string to work properly:

Code:
<If condition="Random(1,100) &lt; 25" >
 
Sweet! Looking forward to the new functions, much better than my current profiles loading each other in a 'quasi random' mess.

Like the idea of the switch statement as well. One use case I would love to see solved by this would be in a profile like the champion farming one, where several waypoints are taken. Would be very nice to have each waypoint/area as a branch and use the switch statement to randomize the order, but would need a way to ensure each branch is taken only once - and that all branches are eventually taken. Would need a way to get/set variables in a profile - or some weird switch/while hybrid - to really make that work though.

Anyway - thanks for looking into my problem. Cheers!

Invested some time yesterday the current status is:
Code:
<RunCode code="Helpers.ConditionAdditions.ResetOrders(10);" />
		<While condition="OrderAvailable()">
			<If condition="CurrentOrder(1)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 1 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(2)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 2 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(3)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 3 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(4)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 4 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(5)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 5 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(6)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 6 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(7)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 7 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(8)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 8 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(9)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 9 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
			<If condition="CurrentOrder(10)">
				<RunCode code="Zeta.Common.Logging.Write(&quot;Order 10 executed.&quot;);" />
				<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
			</If>
		</While>

Currently I have a problem that the If tag doesn't reset the condition when used in a While tag. It is reported maybe we have a fix in the next DB Version :)
 
I like this. Opens up lots of possibilities.

Using the champion farming profile example again, currently each of the inner 'If' sections would need to contain all of the commands for a given waypoint/area. That is a big 'If' section, hard to read and maintain the OrderAvailable block. Is there any way to support some sort of 'execute tag' or an 'include' type command?

Code:
<Profile>
  <Name>Demo</Name>
  <GameParams quest="72801" step="2" act="A1" difficulty="Inferno" resumeFromSave="False" isPrivate="True" numGames="-1"  />
  <Order>
     <RunCode code="Helpers.ConditionAdditions.ResetOrders(10);" />
     <While condition="OrderAvailable()">
	<If condition="CurrentOrder(1)">
		<RunCode code="Zeta.Common.Logging.Write(&quot;Order 1 executed.&quot;);" />
		[B]<!-- Load an external file containing various move/use.etc tags -->
		<Include path="LeoricsManor.xml" />[/B]
		<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
	</If>
	<If condition="CurrentOrder(2)">
		<RunCode code="Zeta.Common.Logging.Write(&quot;Order 2 executed.&quot;);" />
		[B]<!-- Run the named tag -->
		<RunTag tag="WeepingHollow" />[/B]
		<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
	</If>
	<If condition="CurrentOrder(3)">
		<RunCode code="Zeta.Common.Logging.Write(&quot;Order 2 executed.&quot;);" />
		<SomeotherideaIhaventthoughtof />
		<RunCode code="Helpers.ConditionAdditions.NextRandomOrder();" />
	</If>
     </While>
  </Order>
  <KillMonsters>True</KillMonsters>
  <PickupLoot>False</PickupLoot>
</Profile>
[B]<Tags>
  <WeepingHollow>
    <!-- WeepingHollow profile bits-->
  </WeepingHollow>
</Tags>[/B]

I see pro/cons to both, and both would probably require changes in DB itself to support, but I do like the concept...
 
Great plugin, love your random branchs enchancement.

One thing that borthers me is I'm using DRelog, since DRelog start from fresh env everytime, the compiled dll will lost, and DB load profile before load plugins, so the enhanced version of profile will not load since some tag are not recognized yet.
 
Great plugin, love your random branchs enchancement.

One thing that borthers me is I'm using DRelog, since DRelog start from fresh env everytime, the compiled dll will lost, and DB load profile before load plugins, so the enhanced version of profile will not load since some tag are not recognized yet.

That's something i can't change, the compilation of the plugins happen after everything else is initialized :/

btw. Updated to 1.0.0.12 feedback is appreciated :)
 
I'll give it a workout this weekend, just geared my barb for champion farming. Question about the .10 and .11 changes. To get it to work currently I'll need to replace all the If statements in the While loop to Branch statements?

Code:
<RunCode code="ConditionAdditions.ResetOrders(3)" />
<While condition="OrderAvailable()">
  <Branch condition="CurrentOrder(1)">
    <RunCode code="Logging.Write(&quot;Order 1 executed.&quot" /> 
  </Branch >
  <Branch condition="CurrentOrder(2)">
    <RunCode code="Logging.Write(&quot;Order 2 executed.&quot" />
  </Branch >
  <Branch condition="CurrentOrder(3)">
    <RunCode code="Logging.Write(&quot;Order 3 executed.&quot" />
  </Branch >
  <RunCode code="ConditionAdditions.NextRandomOrder()" />
</While>
 
I'll give it a workout this weekend, just geared my barb for champion farming. Question about the .10 and .11 changes. To get it to work currently I'll need to replace all the If statements in the While loop to Branch statements?

Code:
<RunCode code="ConditionAdditions.ResetOrders(3)" />
<While condition="OrderAvailable()">
  <Branch condition="CurrentOrder(1)">
    <RunCode code="Logging.Write(&quot;Order 1 executed.&quot" /> 
  </Branch >
  <Branch condition="CurrentOrder(2)">
    <RunCode code="Logging.Write(&quot;Order 2 executed.&quot" />
  </Branch >
  <Branch condition="CurrentOrder(3)">
    <RunCode code="Logging.Write(&quot;Order 3 executed.&quot" />
  </Branch >
  <RunCode code="ConditionAdditions.NextRandomOrder()" />
</While>
That's right. when you need some support just find me in irc :)
 
this new version upgraded my Demon Hunter does not use preparation, why?
 
An un-stucker. There isn't a good one out atm (grim doesn't have time for his and it has bugs), and the built-in one is garbage (no offense to whoever made it).

Ability to run profiles in a random order in a single game without recreating. Also being able to res and restart from whichever profile you die during (or skip to next profile after X deaths).
[random] //until all run once
<LoadProfile profile="Leorics Manor.xml" runOnce="True" />
<LoadProfile profile="Northern Highlands.xml" runOnce="True" />
<LoadProfile profile="Highland crossing.xml" runOnce="True" />
[/random]
<LoadProfile profile="Cemetary.xml" />
<LoadProfile profile="Butcher.xml" />
 
Last edited:
An un-stucker. There isn't a good one out atm (grim doesn't have time for his and it has bugs), and the built-in one is garbage (no offense to whoever made it).

Ability to run profiles in a random order in a single game without recreating. Also being able to res and restart from whichever profile you die during (or skip to next profile after X deaths).
[random] //until all run once
<LoadProfile profile="Leorics Manor.xml" runOnce="True" />
<LoadProfile profile="Northern Highlands.xml" runOnce="True" />
<LoadProfile profile="Highland crossing.xml" runOnce="True" />
[/random]
<LoadProfile profile="Cemetary.xml" />
<LoadProfile profile="Butcher.xml" />

Gonna think about something like that, but won't be too soon since belph needs my love :)
 
Gonna think about something like that, but won't be too soon since belph needs my love :)
I would rather just have an unstucker xP The other stuff is something we already can do within the file. And If you do loadprofile like that i would have to make alot of different file which sucks :S
 
Back
Top