Could you also compare it to my new script? Its posted on the same spot as the other Crazy one.. ( not posting it here, im not that lame against Magi.)
Thanks for the comparison guys! Feel free to post comparison profiles here, I don't mind. We're here to find the BEST profile. Also, be sure to include items per hour in comparisons as well if you can, and let me know if you're running the Big 6 version, or the Extended version. Also, Tinnvec and I are testing his next version (0.5) which we hope should be the tri-fecta for exp, gold & loot. A shorter profile can certainly produce a bit more gold/exp, but not as much loot. I was averaging about 1100+ items per hour with the new profile. Lastly, since Tinnvec and I decided to keep our work in Tinnkaiser, I'm going to keep this profile to the "original" SkyFarm. I have also replaced every MoveTo tag with a TrinityMoveTo so we can skip ahead. This speeds up profile areas like Skycrown, Fos and Rakki quite a bit. I'm still waiting on the last spawn point for Caverns of Frost, but if you want to beta-test my latest extended cut with TrinityMoveTo's, download below: https://www.dropbox.com/s/sd5e0z7vzqhw7z2/Ultimate SkyHigh Extended v0.2.xml Trinity CE IS required for this because they modified the original TrinityMoveTo XML to accommodate pathing which is necessary for these runs. If you're using an older version, replace the entire TrinityMoveTo function with this (if it gives you an error, please let me know what it is, but there was minimal stuff to change) Code: // **************************************************************************************************** // ***** TrinityMoveTo moves in a straight line without any navigation hits, and allows tag-skips ***** // **************************************************************************************************** [XmlElement("TrinityMoveTo")] public class TrinityMoveToTag : ProfileBehavior { private bool m_IsDone; private float fPosX; private float fPosY; private float fPosZ; private float fPathPrecision; private float fRandomizedDistance; private string sDestinationName; private string sNoSkip; private string sUseNavigation; private Vector3? vMainVector; protected override Composite CreateBehavior() { Composite[] children = new Composite[2]; Composite[] compositeArray = new Composite[2]; compositeArray[0] = new Zeta.TreeSharp.Action(new ActionSucceedDelegate(FlagTagAsCompleted)); children[0] = new Zeta.TreeSharp.Decorator(new CanRunDecoratorDelegate(CheckDistanceWithinPathPrecision), new Sequence(compositeArray)); ActionDelegate actionDelegateMove = new ActionDelegate(GilesMoveToLocation); Sequence sequenceblank = new Sequence( new Zeta.TreeSharp.Action(actionDelegateMove) ); children[1] = sequenceblank; return new PrioritySelector(children); } private RunStatus GilesMoveToLocation(object ret) { // First check if we can skip ahead because we recently moved here if (!GilesTrinity.settings.bEnableBacktracking && (NoSkip == null || NoSkip.ToLower() != "true")) { if (GilesTrinity.hashSkipAheadAreaCache.Any()) { // Loop through all the skip ahead zones and see if one of them is within radius of our intended destination to skip ahead foreach (GilesTrinity.GilesObstacle thisObject in GilesTrinity.hashSkipAheadAreaCache) { if (thisObject.vThisLocation.Distance(Position) <= thisObject.fThisRadius) { Logging.WriteDiagnostic("[GilesTrinity] Skipping ahead from moveto " + Position.ToString() + " to next moveto."); GilesTrinity.bSkipAheadAGo = true; return RunStatus.Success; } } GilesTrinity.hashSkipAheadAreaCache = new HashSet<GilesTrinity.GilesObstacle>(); } } else { GilesTrinity.hashSkipAheadAreaCache = new HashSet<GilesTrinity.GilesObstacle>(); } // Now use Trinity movement to try a direct movement towards that location if (sUseNavigation == null || sUseNavigation.ToLower() != "true") Navigator.PlayerMover.MoveTowards(Position); else Navigator.MoveTo(Position); return RunStatus.Success; } private bool CheckDistanceWithinPathPrecision(object object_0) { // First see if we should skip ahead one move because we were already at that location if (GilesTrinity.bSkipAheadAGo) { GilesTrinity.bSkipAheadAGo = false; return true; } // Ok not skipping, now see if we are already within pathprecision range of that location return (ZetaDia.Me.Position.Distance(Position) <= Math.Max(PathPrecision, Navigator.PathPrecision)); } private void FlagTagAsCompleted(object object_0) { m_IsDone = true; } public override void ResetCachedDone() { m_IsDone = false; base.ResetCachedDone(); } public override bool IsDone { get { if (IsActiveQuestStep) { return m_IsDone; } return true; } } [XmlAttribute("navigation")] public string Navigation { get { return sUseNavigation; } set { sUseNavigation = value; } } [XmlAttribute("noskip")] public string NoSkip { get { return sNoSkip; } set { sNoSkip = value; } } [XmlAttribute("name")] public string Name { get { return sDestinationName; } set { sDestinationName = value; } } [XmlAttribute("pathPrecision")] public float PathPrecision { get { return fPathPrecision; } set { fPathPrecision = value; } } public Vector3 Position { get { if (!vMainVector.HasValue) { if (UnsafeRandomDistance == 0f) { vMainVector = new Vector3(X, Y, Z); } else { float degrees = new Random().Next(0, 360); vMainVector = new Vector3?(MathEx.GetPointAt(new Vector3(X, Y, Z), (float)(new Random().NextDouble() * UnsafeRandomDistance), MathEx.ToRadians(degrees))); } } return vMainVector.Value; } } [XmlAttribute("unsafeRandomDistance")] public float UnsafeRandomDistance { get { return fRandomizedDistance; } set { fRandomizedDistance = value; } } [XmlAttribute("x")] public float X { get { return fPosX; } set { fPosX = value; } } [XmlAttribute("y")] public float Y { get { return fPosY; } set { fPosY = value; } } [XmlAttribute("z")] public float Z { get { return fPosZ; } set { fPosZ = value; } } } I do believe it is worth trying this out. I'm seeing successful results.
No problem, just be warned that its in progress so there very well may be bugs that haven't been squished yet. https://www.assembla.com/code/ultimate-skyhigh-farm/git/nodes In the developer branch
yeah give it a whirl, the more testers the better. Dev branch link if you have trouble finding it: https://www.assembla.com/code/ultimate-skyhigh-farm/git/nodes/developer
cool. Yeah I'm actively tweaking v2 so feel free to frequently re-download it from my dropbox link. Mainly just caverns of frost. Had to tweak the while statements (town run was breaking it) and boxSize/tolerance.
the only issue with killing azmo is it screws up the "resume game" The idea is to start right outside azmo's door so we can work out way BACK to the waypoint so we can instantly warp to our next profile for speed. Killing azmo would remove the checkpoint.
I am trying the extended V2 with caverns of frost but bot still goes back and forwards in lvl 1 even after finding the entrance to lvl 2. Is it possible for me to exclude caverns completely by deleting that section in the code?
yeah you can re-download it if you want. I killed caverns. I tried every possible combo of boxSize/tolerance and it just isn't consistent in finding the exit/entrance unfortunately. Even with extremely tight tolerances which makes exploring take even longer, it still didn't always work That said, my latest file can be downloaded here: https://www.dropbox.com/s/sd5e0z7vzqhw7z2/Ultimate SkyHigh Extended v0.2.xml Keep an eye on Fields of Slaughter. I created some new way points last night and am still working on them. There may be a possible stuck with some random dungeons that I haven't encountered yet but Caverns of Frost are gone. I'll probably replace with something else perhaps, we'll see.
Impressive profile. Used Tinnkaizer's where i had 29-31m xp/h. Without changing build or items I'm up to 35?m xp/h! Ty Magi
I'm still ensuring FoS is working perfectly I just fixed a stuck point literally 10 minutes ago, so re-download the file from Dropbox above...I want to ENSURE it's as flawless as possible I really think the TrinityMoveTo's help tremendously on these profiles which is probably the biggest difference between Tinnkaiser and I, though for Tinnkaiser no plugin is required, and you literally have zero teleports. Unfortunately there is really no way of doing Skycrown effectively without a TP...and I believe the speed increase from trinity's movements make it that much more effective. At some point someone put pathing into trinity CE for the MoveTo's and I never noticed....that person deserves a hug.
Ty for the link. I agree in theory caverns is a nice place for loot but it's such a minor thing in a half an hour long profile. Awesome profile!
yeah sometimes the caverns worked out nicely...you can usually nab 4 elites in there real quick. Not great for XP/Gold, but it was killer loot. However it's no good if you spend 10 minutes walking in circles looking for an exit 10 feet in front of you. I'm hell bent to get some typically ignored random dungeons in for some reason, but they don't want to play nicely. Ah well, perhaps as DB improves the exploreArea tag I might be able to resurrect it. V2 seems to be working well though, I think I will post to the OP in a few.
Magi, why are you using TP from Skycrown to City and portal from there to Tower of the Damned Level 1 when in Skycrown TP is next to you? Or is this TP random placed?