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

Bad news with Rifts

NoWayLol

New Member
Joined
Apr 30, 2012
Messages
557
Reaction score
2
Edit: Removed this post because people keep replying to it thinking it's still current news/information. You can check my description for a link to my mostly working Rift bot. :)
 
Last edited:
Figured I'd add this in, for anyone else wanting to mess about with it or try to find more info on this. I don't know much about profiling so I might have overlooked something or just plain don't know.

This little code will create a rift and enter it:
Code:
	<If condition="Me.IsInTown ">
		<MoveToActor questId="312429" stepId="2" x="594" y="508" z="3" actorId="364715" interactRange="11" name="x1_OpenWorld_LootRunObelisk_B-596"  pathPrecision="5" pathPointLimit="250" statusText="Moving to Nephalem Obelisk" isPortal="True"/> 
		<!--<MoveToActor questId="312429" stepId="2" x="594" y="508" z="3" actorId="345935" interactRange="9" name="X1_OpenWorld_LootRunPortal-1589" isPortal="True" destinationWorldId="" pathPrecision="5" pathPointLimit="250" statusText="" />  -->
			<WaitTimer questId="1" stepId="1" waitTime="1000" />
		<MoveToActor questId="312429" stepId="2" x="594" y="508" z="3" actorId="345935" interactRange="9" name="X1_OpenWorld_LootRunPortal-1589" isPortal="True" pathPrecision="5" pathPointLimit="250" statusText="" />  
	</If>

This is what I was using to track doors, you can just keep adding to it more and more, but you will get the issue I explained in the original post:
Code:
	<AWTrinityExploreDungeon questId="312429" stepId="2" until="ObjectFound" objectDistance="300" actorId="176001" boxTolerance="0.55" boxSize="10" ignoreMarkers="False">
		<AlternateActors>
			<AlternateActor actorId="256728" objectDistance="300" />
			<AlternateActor actorId="176002" objectDistance="300" />
			<AlternateActor actorId="176038" objectDistance="300" />
		</AlternateActors>
	</AWTrinityExploreDungeon>

And lastly this little bit, which will always put you in Act5 town, which is easy enough to figure out on your own, but figured I'd make it easy for people:
Code:
	<If condition="Me.IsInTown ">
	<If condition="CurrentWorldId == 332336">
		<UseWaypoint questId="1" stepId="1" actorId="223757" x="401.7305" y="555.0093" z="24.90835" waypointNumber="46"/>
	</If>
	<If condition="CurrentWorldId == 161472">
		<UseWaypoint questId="1" stepId="1" actorId="6442" x="324.8699" y="291.0312" z="1.645629" waypointNumber="46"/> 
	</If>
	<If condition="CurrentWorldId == 172909">
		<UseWaypoint questId="1" stepId="1" actorId="6442" x="402.5403" y="414.342" z="1.5338" waypointNumber="46"/> 
	</If>
	<If condition="CurrentWorldId == 304235">
		<UseWaypoint questId="1" stepId="1" actorId="6442" x="557.5455" y="525.3394" z="2.796465" waypointNumber="46"/> 
	</If>
	<WaitTimer questId="1" stepId="1" waitTime="1000" />
	</If>

As stated, I am out of Fragments to open anymore Rifts, but I will try some more once I get more. Though I really don't think we have any options with what is currently available to us.
 
Isnt it possible to use the level and the portal id? so for example if you enter 17001 lvl 2 its impossible to enter 17001 lvl 1 again ? Some kind of code so it always chooses the higher level number.

Btw i know nothing about doing profiles im just trying to come up with ideas.
 
Isnt it possible to use the level and the portal id? so for example if you enter 17001 lvl 2 its impossible to enter 17001 lvl 1 again ? Some kind of code so it always chooses the higher level number.

Btw i know nothing about doing profiles im just trying to come up with ideas.
What I was saying was say you some how got the full list of portal IDs, every single one. Sometimes those portal IDs can be entrances and sometimes exits. So you could enter in 17001 on one Rift, but on a different Rift that could be an exit, meaning your bot will go from Level 1 to Level 2 then back to Level 1, over and over and over.

Also you have been a member for 2 years, and your first post is on my topic, I'm honored. :D
 
Couldn't you blacklist the very first Portal "object" it finds when it enters a level, so that it will not use that object anymore and has to find a different one?

Same as above poster by the way, just trying to come out with ideas, I haven't done any DB profiles yet.

Edit: Looking around at the profile and the tags that exist, I don't think a profile will be able to do what I suggested on it's own. I guess a plugin that stores the anchor in the caché and blacklists it for the remainder of the game once it has been used will have to be made to take this approach. Also an alternate anchor tag that allows to use a wildcard such as ****** to take any portal found.
 
Last edited:
Im glad to see your working on it NoWayLol, you might be new on profiles but i can tell you got potential, myself have a brain that is aewsome on every single bit about tech and computers, but it just cant handle coding. Hope the dev team can help you on this, or that you find a way! Keep it up bro, One love!
 
Couldn't you blacklist the very first Portal "object" it finds when it enters a level, so that it will not use that object anymore and has to find a different one?

Same as above poster by the way, just trying to come out with ideas, I haven't done any DB profiles yet.
Thought about that myself, but I came across a Rift that the Level 2 door and Level 3 door had the same ID. :<
 
Think I came up with a solution actually. It's really dirty but could serve for a workable first version.

The only problem is Trinity's "TrinityExploreDungeon" tag doesn't support Act5 maps, so it just runs into walls endlessly when it gets an RoS map.

But I'm also not sure if the bot supports my idea. What I was thinking was, if it finds a door to a new level, once it enters that level it won't activate any new objects for X delay while exploring. This way it will be far away from the door back to Level 1, by time it finds Level 3 door. I know there is "WaitTimer" but that makes the bot not do anything at all for X amount of time, what we need is a new version of that tag that still does everything but activate objects.

Maybe someone with more DB/Trinity/QuestTools knowledge knows of something that might work in place of that idea?
 
Thought about that myself, but I came across a Rift that the Level 2 door and Level 3 door had the same ID. :<

Damnation!

But we could achieve the same thing instead of using the anchors by blacklisting a location to which the bot cannot enter again... but again, this will probably need a plugin to get done. Hmph.
 
My english is not good,i'm Taiwanese......

I want XML can do this,then i can current write rift profiles.....
<TrinityExploreDungeon questId="1" stepId="1" boxTolerance="0.01" boxSize="10" until="ExitFound" exitNameHash="1938876094" exitNameHashTwo="1938876095">

※※※※※when Trinity find exitNameHash,then set a temp value(ex.ProtalType=1),find exitNameHashTwo,then set a temp value(ex.ProtalType=2)※※※※※

<If ProtalType=1>
<UsePortal ................ portalMarkerHash="1938876094" ........ />
</If>

<If ProtalType=2>
<UsePortal ................ portalMarkerHash="1938876095" ........ />
</If>

so...... who can help me to plan this?
 
Last edited:
I want XML can do this,then i can current write rift profiles.....
<TrinityExploreDungeon questId="1" stepId="1" boxTolerance="0.01" boxSize="10" until="ExitFound" exitNameHash="1938876094" exitNameHashTwo="1938876095">

※※※※※when Trinity find exitNameHash,then set a temp value(ex.ProtalType=1),find exitNameHashTwo,then set a temp value(ex.ProtalType=2)※※※※※

<If ProtalType=1>
<UsePortal ................ portalMarkerHash="1938876094" ........ />
</If>

<If ProtalType=2>
<UsePortal ................ portalMarkerHash="1938876095" ........ />
</If>

so...... who can help me to plan this?

What if the portal 1 and portal 2 have the same ID as NoWayLol pointed he has found?
 
Damnation!

But we could achieve the same thing instead of using the anchors by blacklisting a location to which the bot cannot enter again... but again, this will probably need a plugin to get done. Hmph.
We would have to get the cords for every single Rift Level start location. :S

I think I've got it figured out, just need 3 things to happen:
1) Trinity needs to support Act5 maps when using "TrinityExploreDungeon"
2) QuestTools needs to support using "Name" when using "MoveToActor" with only a partial name.
3) A delay that will only delay interacting with ActorIDs, but allow the bot to keep exploring and moving on.

If I could get those 3 things, I could get a working Rift profile, almost sure of it.
 
Last edited:
<TrinityExploreDungeon questId="1" stepId="1" boxTolerance="0.01" boxSize="10" until="ExitFound" exitNameHash="1938876094" exitNameHashTwo="1938876095">
Does "ExitFound" require an ActorID, or can it be used without one? Does it go to Level 2 without an ActorID?
 
My rift profiles like this

<TrinityExploreDungeon questId="1" stepId="1" boxTolerance="0.01" boxSize="10" until="ExitFound" exitNameHash="1938876094">
</TrinityExploreDungeon>
<WaitTimer questId="1" stepId="1" waitTime="10000"/>
<UsePortal questId="1" stepId="1" interactRange="5" portalMarkerHash="1938876094" destinationWorldId="288685" />
<WaitTimer questId="1" stepId="1" waitTime="5000"/>

it can be work, but if rift only one floor...... it well stuck......

so i need Trinity or db to decide which portalMakerHash has found in this map..
 
The portalMarkerHash and WorldIds are correlated.

WorldID 288454 is always level 1 of any rift and has exit Hash 1938876094 if there is another level
WorldID 288685 is always level 2 of any rift and has exit Hash 1938876095 if there is another level
etc...

detecting if there is in fact another level available and making sure UsePortal navigates correctly to the exit has been tricky from my implementation.

edit: also, exploring to exitFound has caused me to run out of rift levels without getting enough kills to kill boss a couple of times so I have been using FullyExplored instead.
 
The portalMarkerHash and WorldIds are correlated.

WorldID 288454 is always level 1 of any rift and has exit Hash 1938876094 if there is another level
WorldID 288685 is always level 2 of any rift and has exit Hash 1938876095 if there is another level
etc...

detecting if there is in fact another level available and making sure UsePortal navigates correctly to the exit has been tricky from my implementation.

edit: also, exploring to exitFound has caused me to run out of rift levels without getting enough kills to kill boss a couple of times so I have been using FullyExplored instead.

This would be good news if it is true.

I had thought of making a profile for rifts, but I could not think of an efficient way to do it. If the above is true, here is some psudo-code that I think would get the job done.

while(true) {
if(rift portal does not exist) openRift();
else if(town portal exists) takeTownPortal();
else takeRift();
TrinityExploreDungeon(Explore Dungeon, decent size boxes);
If(worldID == one with another level) MoveToMapMarker();
else click portal thing
Town Portal
Talk with Nuak (or w/e his name is)
Wait 30 seconds until rift would close if we finished
}
 
Could you not simply:

while in rift:
explore until portal found
Use portal
disable all movement/interactions
when new zone loaded pull coordinates
use coordinates to blacklist a box the size of the portal at player origin to prevent object interaction
enable all movement/interactions
continue rift exploring
repeat until exit conditions met


also, in the event the bot moves through the levels faster than it needed to and clears the last rift level without summoning the boss you can:
Keep a counter & a two dimensional array that stores the count number of the floor and its coordinate for the blacklisted portal.
floor 1=0
floor2=1
floor2=2
floor2=3
...
if exit tablet/stone found && monsters not killed in x seconds.
smart navigate towards current floor's blacklisted portal.
unblacklist portal zone and take portal.
counter -1, we are now on an old level, use some smart navigation to fight more monsters, etc.... until boss found & killed.

anyways I'm not certain the power behind the scripting language used as I am only familiar with c++. I'm sure, if anything, a plugin might actually handle the rift botting concept much more elegantly.
 
Last edited:
Is it not possible to blacklist the X,Y,Z coordination from which you enter and exit?
 
Kudos to everyone working on developing this thank you. from a User who does not make profiles.
 
This would be good news if it is true.

I had thought of making a profile for rifts, but I could not think of an efficient way to do it. If the above is true, here is some psudo-code that I think would get the job done.

while(true) {
if(rift portal does not exist) openRift();
else if(town portal exists) takeTownPortal();
else takeRift();
TrinityExploreDungeon(Explore Dungeon, decent size boxes);
If(worldID == one with another level) MoveToMapMarker();
else click portal thing
Town Portal
Talk with Nuak (or w/e his name is)
Wait 30 seconds until rift would close if we finished
}

This is pretty much the idea, however there is no guarantee that a worldId will contain the next level vs being the end. i.e. Floor 1 is ALWAYS 288454 but could be the one and only floor and thus have an exit stone (markerHash = 732643260) instead of a portal. The only pattern I've found is that the portals, if they exist [hash = 1938876093 + floorNumber] and the town exit no matter which floor it ends up being (I think) is [hash = 732643260] and the worldId for floor number is always the same but doesn't index by 1 like the exit hash does so you just need a list of worldIds for each floor.
 
Back
Top