• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [A3 Inferno] Ultimate SkyHigh Farm

    Discussion in 'Archives' started by Magi, Dec 15, 2012.

    1. Crazyhead

      Crazyhead New Member

      Joined:
      Dec 10, 2012
      Messages:
      71
      Likes Received:
      0
      Trophy Points:
      0
      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.)
       
    2. samuraih

      samuraih New Member

      Joined:
      Dec 3, 2012
      Messages:
      60
      Likes Received:
      0
      Trophy Points:
      0
      350 gph + 30 mill eph after 6 hours with my wd @ mp2
       
    3. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    4. Mammon

      Mammon New Member

      Joined:
      Jun 16, 2012
      Messages:
      413
      Likes Received:
      0
      Trophy Points:
      0
      Looking forward to the Trifecta run :)

      Mind sharing dev version?
       
    5. Tinnvec

      Tinnvec Member

      Joined:
      Sep 29, 2012
      Messages:
      535
      Likes Received:
      10
      Trophy Points:
      18
    6. SHERMORTER

      SHERMORTER New Member

      Joined:
      Dec 1, 2012
      Messages:
      4
      Likes Received:
      0
      Trophy Points:
      0
    7. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
    8. bladerunner

      bladerunner New Member

      Joined:
      Nov 10, 2012
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      I can confirm that old v.45 + extended cut v.02 with TrinityMoveTo's works fine. So far so good.
       
    9. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    10. JustAFarmer

      JustAFarmer New Member

      Joined:
      Jul 21, 2012
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      How can i add to kill Azmodan or isn't possible?
       
    11. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    12. junkers

      junkers New Member

      Joined:
      Nov 12, 2012
      Messages:
      16
      Likes Received:
      0
      Trophy Points:
      0
      Great profile with good xp and gph!
       
    13. dandinidan

      dandinidan New Member

      Joined:
      Dec 14, 2012
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      0
      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?
       
    14. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    15. Jahla

      Jahla New Member

      Joined:
      Dec 9, 2012
      Messages:
      18
      Likes Received:
      0
      Trophy Points:
      0
      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
       
    16. JustAFarmer

      JustAFarmer New Member

      Joined:
      Jul 21, 2012
      Messages:
      57
      Likes Received:
      0
      Trophy Points:
      0
      Magi why u didn`t update first page with v0.2 ? anyway thx for the newest version.
       
    17. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    18. dandinidan

      dandinidan New Member

      Joined:
      Dec 14, 2012
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      0
      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!
       
    19. Magi

      Magi New Member

      Joined:
      Oct 12, 2012
      Messages:
      1,242
      Likes Received:
      7
      Trophy Points:
      0
      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.
       
    20. bladerunner

      bladerunner New Member

      Joined:
      Nov 10, 2012
      Messages:
      40
      Likes Received:
      0
      Trophy Points:
      0
      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?
       

    Share This Page