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

Profile tag requests? Post them here!

Nesox

Well-Known Member
Joined
Jan 15, 2010
Messages
1,563
Reaction score
48
As the title says, if you have a suggestion for a new tag please post it here, Also include a detailed explanation why you think it should be added and what the tag should do ( obviously )
 
I requested this in Giles forum, but would be a nice addition to the base DB features
Hi again!

I have another suggestion for the new xml tags, Giles.

Code:
<!-- Beginig of the profile -->
<TrinityZoneControl id="Azmodan" enable="1">
<TrinityZoneControl id="KeepsLvl3" enable="1">

<!-- Awful lot of code -->

<TrinityZone id="Azmodan">
     <!-- Azmodan code-->
</TrinityZone>
<TrinityZone id="KeepsLvl3">
     <!-- KeepsLvl3code-->
</TrinityZone>

I think this should be easy enough to implement, and allowing to choose at the start of the profile if you want to do some optional zones or not, will simplify a lot the customization of big/complex profiles for the end users, specially for profiles with a single file, or the ones with variations of a zone.
EDIT: The code inside the zone should be skipped by default if not <TrinityZoneControl id="xxx" enable="1"> is found, so multi-file profiles won't bug if the profile is started from any other file than the one containing the enables (the START_HERE)
 
Add a tag for custom monster power level for setting them into specific profiles please.
 
I'd like to have the option on ExploreArea to limit the backtracking that goes on. The exploration is working well now but the backtracking behavior seems strange to me.

I would like two new attributes on the tag

The first attribute would set a maximum backtracking distance.
The second would disable backtracking until a dead end was hit.

The reason I'd like these options is while running Keeps 2 with ExploreArea with ExitFound enabled, I frequently run right near the exit (not close enough to detect) then turn around and start exploring other areas.
 
I 2nd MP selection on profile. And ability to not back track and full explore.

Using the explore act 4 profile. He spends way too much time just running around.
 
Maybe something like the following would be nice:

<GameParams quest="57337" step="26" act="A2" difficulty="Inferno" resumeFromSave="False" isPrivate="True" numGames="-1" mpLevel="5" />

The green color text is what needs to be added. mpLevel = Monster Power Level
 
Oh got another idea.
A force vendor and/or repair. Like SWTOR BuddyWing has.
So can do at end of run. Force vendor/repair. Ready to go for next run.
 
1. <Checkpoint>
Whenever bot died will start from last check point in the profile, not very first of the profile.
2.
<FUNC Name=BetrayerCave > </FUNC>
To call the function
<Callfunc Name=BetrayerCave >
Now i have a problem for cave detection. It'll make my script very long due to every possible spawn point i need to put a similar thing like this to check and completed the cave.
<FUNC Name=BetrayerCave >
<TrinityIfSNOInRange snoid="176003" range="150" >
<WaitTimer questId="1" waitTime="500" />
<TrinityUseOnce id="777">
<TrinityMoveToSNO questId="1" snoid="176003" pathPrecision="12" />
<WaitTimer questId="1" waitTime="1000" />
<TrinityInteract snoid="176003" />
<WaitTimer questId="1" waitTime="5000" />
<TrinityIf questId="1" condition="ZetaDia.CurrentWorldId==189259" >
<TrinityLog questId="1" output="Cave Level 1" />
<ExploreArea questId="101758" stepId="1" boxTolerance="0.40" boxSize="18" until="ExitFound" exitNameHash="151580180" />
</TrinityIf>
<TrinityIf questId="1" condition="ZetaDia.CurrentWorldId==189910" >
<TrinityLog questId="1" output="Cave Level 1" />
<ExploreArea questId="101758" stepId="1" boxTolerance="0.40" boxSize="18" until="ExitFound" exitNameHash="-802596186" />
</TrinityIf>
</TrinityUseOnce>
</TrinityIfSNOInRange>
</FUNC>
If there's 7 possible spawn point, the script will look very messy and possible missed out when editing.
I would suggest add in function/module call tag.
So i will tag my dungeon activities, just call the module when i need to use them.

I have one more idea but i have no time atm. Will be back to post that third tag.
 
3.
<ExploreArea questId="101758" stepId="1" boxTolerance="0.40" boxSize="18" until="FullyExplored" leaveWhenExplored="False" explorex="x,y" explorey="x,y" />

Only check the boxes within the x,y to explore, this can improve the ExploreArea function. We can avoid some narrow part of the map and edge of the map.
Edge of map normally less mobs, and always turned back and wasting time.
Example is whenever we ExploreArea in Rakkis Cross, it can avoid climb up to stair case which improve the whole profiles, same to Field of slaughter.

4.
<Dungeon Name="Icefall" Hash="942020622" execute="active/passive" > </Dungeon>
This tag is using when i reach the map with possible spawn the cave called Icefall. It'll record the position of the portal when found specify Marker hash.
Hash ==> Hash of the portal
Execute ==> Active will go in on sight, Passive will record the coordinate of portal await for calling.
/Dungeon ==> Will be end the loop of seeking dungeon

<Calldungeon Name="Icefall" Timeout="60000"> </Calldungeon>
This could be use after i explore the fos using moveto / explorearea. In the progress i have found the cave via marker hash, i would like to go into cave as well.
So this Calldungeon will bring back the position saved and navigate to the portal, interact with it.
Timeout will skip this when not able to reach cave.
Example

<Profile>
<Name>[FOS+Caves]</Name>
<KillMonsters>True</KillMonsters>
<PickupLoot>True</PickupLoot>
<GameParams quest="101758" step="1" act="A3" difficulty="Hell" resumeFromSave="True" isPrivate="True" numGames="-1" />
<Order>
<UseWaypoint questId="1" pathPrecision="10" x="1162.295" y="693.0025" z="0.1" levelArea="1999503360" actorId="6442 " waypointNumber="4" />
<Dungeon Name="Icefall" Hash="942020622" execute="passive" >
<WaitTimer questId="1" WaitTime="1500" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<MoveTo questId="1" pathPrecision="10" x="x" y="y" z="z" />
<Calldungeon Name="Icefall" Timeout="60000">
<ExploreArea questId="101758" stepId="1" boxTolerance="0.40" boxSize="18" until="FullyExplored" leaveWhenExplored="true" />
</Calldungeon>
<LeaveGame reason="Route Completed" />
</Order>
</Profile>

Dungeon Mode
An improvement i would advice, i could script to check all the possible spawned dungeon, but it's not ideal to go in to dungeon on the spot. I need a variable to record the coordinate of dungeon and after i finished the ground then i will navigate to the dungeon and clear it. I would like to do this because sometimes the dungeon explore not perform as expected, the script could ended early due to stuck.
 
Last edited:
4.
<Dungeon Name="Icefall" Hash="942020622" execute="active/passive" > </Dungeon>
This tag is using when i reach the map with possible spawn the cave called Icefall. It'll record the position of the portal when found specify Marker hash.
Hash ==> Hash of the portal
Execute ==> Active will go in on sight, Passive will record the coordinate of portal await for calling.
/Dungeon ==> Will be end the loop of seeking dungeon

<Calldungeon Name="Icefall" Timeout="60000"> </Calldungeon>
This could be use after i explore the fos using moveto / explorearea. In the progress i have found the cave via marker hash, i would like to go into cave as well.
So this Calldungeon will bring back the position saved and navigate to the portal, interact with it.
Timeout will skip this when not able to reach cave.
Example



Dungeon Mode
An improvement i would advice, i could script to check all the possible spawned dungeon, but it's not ideal to go in to dungeon on the spot. I need a variable to record the coordinate of dungeon and after i finished the ground then i will navigate to the dungeon and clear it. I would like to do this because sometimes the dungeon explore not perform as expected, the script could ended early due to stuck.

I second this idea!
 
Hi Nesox,

So I've been building a bunch of my own XML tags for my full questing profile. I'm really liking the new changes you've been making in the latest beta, e.g. the improvements with UsePortal and MoveTo including an ActorSNO.

I've made all of the below functions available in my QuestTools plugin part of my full questing pack, but would love to see them built-in to Demonbuddy! http://www.thebuddyforum.com/demonb...4-full-questing-all-acts-complete-tested.html

Here's some of the shortfalls that I've had to workaround:


  • UseObject will "get stuck" if it can't find the ActorId. Can we have an "optional" XmlAttribute? E.g. <UseObject actorId="1234" x="1" y="2" z="3" optional="True" /> - if it can't find the actor at XYZ, keep moving...
  • UseObject does not use the ActorId that is closest to X,Y,Z, nor the ActorID that is closest to the DiaActivePlayer. It will use a random ActorID that matches anywhere that is found.
  • I have built a "MoveToActor" tag which duplicates the functionality of UseObject - but has a "maxSearchDistance" attribute. What this does is only search for the ActorSNO within "maxSearchDistance" from the given X,Y,Z, and then picks the first actor sorted ascending from position X,Y,Z. Ideally we could use <UseObject actorId="1234" x="1" y="2" z="3" optional="True" maxSearchDistance="50" /> to ONLY find the actorId that's within 50 distance units of XYZ. My tag is also failsafe in that if it can't find the actor, it will continue with the profile.
  • I have built a "MoveToMapMarker" tag that is fail-safe - e.g. If it can't find either the nameHash nor the given ActorSNO after moving to, and within a certain range of position X,Y,Z, then it will just set IsDone to true, and continue with the profile. This is a shortcut for ActorExistsAt() and MarkerExistsAt(), which is a bit painful to write in profiles. Ideally this could be added to <UsePortal />
  • A built-in <ReloadProfile /> tag would be great. Just reload the current profile. Useful for catching profile bugs when added at the end of the profile. Could potentially cause an infinite loop, so I've added a check in QuestTools to make sure it's not called twice within 2 seconds.
  • MoveTo/UseObject/UsePortal will ALWAYS fail when given an XYZ that is greater than ~ 250-300 distance - it either stucks with "PathGenerating" MoveResult or "PathGenerationFailed" MoveResult. What I've done to circumvent this is use a "RayCastDistance" (i'm still not sure if that's the right term) that will find a point maybe 175-250 distance away and dynamically keep updating the point, so the local navigation always will work. The only time this *hasn't* worked is usually in a random dungeon where the actual path to get there is more of a big circle, rather than a straight-ish line. This functionality could optionally be included in any profile tag that performs movement and has to move anywhere where XYZ distance is greater than 250-300 and has to generate a path.
  • I have added a ConfirmOK tag in QuestTools. Presses OK when prompted for changing acts, or using dungeon teleport stones.
  • The plugin QuestTools itself always skips CutScenes and Conversations. <SkipCutscene /> and <SkipConversation /> will get stuck either if 1) Demonbuddy can't recognize there's a cutscene playing or 2) there's no Cutscene.
  • All profile tags should have a "timeout" attribute. This would be a maximum amount of time in seconds/milliseconds that the tag should run for - e.g. UseObject should never sit for 5 minutes... This would fix problems with SkipCutscene never finishing because there's no CutScene, SkipConversaion never finishing when there's no Conversation, UseObject/UsePortal/TalkTo when it can't find the object or tries too many times and causes the InactivityTimer to be triggered, and MoveTo when it gets stuck or can't move to where it wants to go.

I guess if you're up for it you can check out QuestTools to see how I've implimented these. I'm new to TreeSharp so hopefully you can understand it. I've added documentation in the code so hopefully that helps anyone else looking as well.

Cheers,

rrrix
 
Propose an update to Moveto tag,
<Skip=True>
With this tag, should finish the Moveto tag while battle or reach while any tasks on going.
With this we could prevent a lot of turn back path. Saved time and efficient.
This may cause some stuck when chasing on monster, so we'll do this when i'm confirm that's a wide spot that won't have this problem.
 
I would like the ability to detect quest Sub-Steps from within an <If> tag.

http://www.thebuddyforum.com/demonb...uest-sub-steps-within-profile.html#post752172

#1 Much like this, but within an ExploreArea tag i.e.

Code:
<ExploreArea>
   <Encoutered actor=sno###">
        <!-- do sub quest or enter cave or in general go through an area not part of the main area then return and resume -->
    </EncounterActor>
</ExploreArea>

In general allow more use of ExploreArea and still allow doing side quests etc...

#2 Also, does LoadProfile have an exit option? I don't like having to depend on other plugins etc how can I ExitGame and load a profile?

#3 I may write a plugin for this, but:

Code:
<If condition=" not SavedVariable[clearedCrypts]=True">
   <!-- do crypts -->
   <SaveVariable name="clearedCrypts" value="True" />
</SavedVariable>

Simply put it allows a state bag to be used to store small bits of data that can be used as flags...
 
Last edited:
From highest need to lowest:

Maybe something like the following would be nice:

<GameParams quest="57337" step="26" act="A2" difficulty="Inferno" resumeFromSave="False" isPrivate="True" numGames="-1" mpLevel="5" />

The green color text is what needs to be added. mpLevel = Monster Power Level

and

An actor blacklist with size/radius to facilitate random dungeon exploration, so we could manually configure all types of obstacles.

and

profile tags should have a "timeout" attribute

To that I would add a "continue" attribute that would be: reload profile, exit game, next node.

and

Access to a list,array from profiles to store strings.

Father%20Christmas.jpg
 
Last edited:
I would like to have a tag, allowing beep or melody ( Sound_1, Sound_2, Sound_3, Sound_4) from the Sounds folder on a specified condition.
example

< Sound = Sound_1 / >

or

<If condition="......" >
< Sound = Sound_1 / >
</If>

as Sound 1 Sound 2 .. Sound 4 users will be able to use your sound or melody.
sound beep would be useful for example in an emergency stop bot end profile (optional), as well as in many other situations.
4 .. 6 .. 10 sounds will be more than enough.
 
Last edited:
I would like to see new tag: "RandomWaitTimer"

<RandomWaitTimer questId="1" waitTime="(200, 1400)" />

Because no Human can wait exactly 1400 ms, every time in 24h :P
 
If inactive for 30 sec, teleport to base and continue to next profile instead of logging off for inactivity.
 
Back
Top