• Visit Rebornbuddy
  • [Plugin] MinionSupportPlugin

    Discussion in 'Archives' started by spliffermaster, Aug 26, 2015.

    1. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      OK Yea he's using Utility, it's a namespace issue.

      Open up MinionSupportPlugin.cs

      Line 21
      Code:
      using Utility = Loki.Bot.Logic.Bots.OldGrindBot.Utility;
      
      Change to
      Code:
      using MSPUtility = Loki.Bot.Logic.Bots.OldGrindBot.Utility;
      
      Then you have to do a replace
      Most editors you can press CTRL+H
      find
      Code:
      Coroutine.Sleep(Utility.LatencySafeValue
      replace with
      Code:
      Coroutine.Sleep(MSPUtility .LatencySafeValue
      And that should resolve it.
      LMK when you try it on new bot update.
       
    2. dbuddy2

      dbuddy2 New Member

      Joined:
      Mar 6, 2015
      Messages:
      206
      Likes Received:
      0
      Trophy Points:
      0
      any possibility to provide golem support in the next beta-builds?

      every update destroys golem combat routine
       
    3. spliffermaster

      spliffermaster Community Developer

      Joined:
      Mar 10, 2014
      Messages:
      56
      Likes Received:
      2
      Trophy Points:
      8
      Actually i want to look into that as well, Vaal Skills. But, since the BotRoutine uses them itself, might need to figure out how to block the default routine to cast it. Maybe the others have some idea about that.

      Have you downloaded the latest Upload?
       
    4. masterashh

      masterashh New Member

      Joined:
      Mar 15, 2014
      Messages:
      65
      Likes Received:
      0
      Trophy Points:
      0
      After change Utility to MSPUtility...I try Immortal Call... They are config with 5000 ms but when I run the bot they use Immortal Call infinitely, and walking stuck on everything, soo they spamming this:
      Thanks guys!
       
    5. spliffermaster

      spliffermaster Community Developer

      Joined:
      Mar 10, 2014
      Messages:
      56
      Likes Received:
      2
      Trophy Points:
      8
      Did you download the latest version? Seems like you have an older version, that has an error in it with namespaces. I am running the latest version without this error.

      EDIT: I see there is indeed still an error, let me fix that quickly. Will give you another version... damn debugging.. fix a bug, have 10 more - lol
       
      Last edited: Aug 31, 2015
    6. masterashh

      masterashh New Member

      Joined:
      Mar 15, 2014
      Messages:
      65
      Likes Received:
      0
      Trophy Points:
      0
      hahaha... no problem man...other thing...In the options, for me, they show two times Summon Ice Golem...Anyway...Thanks
      [​IMG]
       
    7. spliffermaster

      spliffermaster Community Developer

      Joined:
      Mar 10, 2014
      Messages:
      56
      Likes Received:
      2
      Trophy Points:
      8
      Updated the plugin, moved all logic to coroutine, renamed Chaos Golem. Please Download again.
      Immortal Call does not throw an error anymore. Doing some more testing this evening.
       
    8. masterashh

      masterashh New Member

      Joined:
      Mar 15, 2014
      Messages:
      65
      Likes Received:
      0
      Trophy Points:
      0
      Thanks man...Now working perfect!
       
    9. masterashh

      masterashh New Member

      Joined:
      Mar 15, 2014
      Messages:
      65
      Likes Received:
      0
      Trophy Points:
      0
      Just more one question...They use Immortal Call when have monster on screen right...Where I can change to use just when dont have monster on screen? I want test something... Thanks.
       
    10. spliffermaster

      spliffermaster Community Developer

      Joined:
      Mar 10, 2014
      Messages:
      56
      Likes Received:
      2
      Trophy Points:
      8
      Remove or comment line 209. Don't forget to remove "&&" on line 208..
       
    11. seankim

      seankim Member

      Joined:
      Dec 20, 2013
      Messages:
      115
      Likes Received:
      1
      Trophy Points:
      18
      WoW good work!
      Thx for Plugin!!
       
    12. roneo1

      roneo1 Member

      Joined:
      Mar 21, 2014
      Messages:
      480
      Likes Received:
      20
      Trophy Points:
      18
      Can this be updated? Bot doesn't fill these functions, very useful plugin

      It seems to be a namespace error from the log, something needs to be replaced?

      error CS0234: The type or namespace name 'Bot' does not exist in the namespace 'Loki.Bot.Logic' (are you missing an assembly reference?)
       
      Last edited: Jun 9, 2016
    13. widds

      widds Member

      Joined:
      Nov 12, 2014
      Messages:
      316
      Likes Received:
      3
      Trophy Points:
      18
      Not too hard to add some of the stuff yourself to OldRoutine.cs.

      Offering Spells

      Ctr+f -> // Auto-set, you do not have to change these.

      Add in this line:

      Code:
      private int _boneOfferingSlot = -1;
      Ctrl+f -> if (_needsUpdate)

      Add in this line:

      Code:
      _boneOfferingSlot = -1;
      Scroll down a little bit until you see the lines with "if (IsCastableHelper(xx))"

      Add in this line:

      Code:
      var bo = LokiPoe.InGameState.SkillBarHud.Skills.FirstOrDefault(s => s.Name == "Bone Offering");
      				if (IsCastableHelper(bo))
      				{
      					_boneOfferingSlot = bo.Slot;
      				}
      
      Scroll down to line 1800-1900ish where the Logic is.

      Add in this line:

      Code:
      // Bone Offering Support
      				if (_boneOfferingSlot != -1)
      				{
      					var skill = LokiPoe.InGameState.SkillBarHud.Slot(_boneOfferingSlot);
      					if (skill.CanUse() && !LokiPoe.Me.HasAura("Bone Offering"))
      					{
      						var target = BestDeadTarget;
      						if (target != null)
      						{
      							await DisableAlwaysHiglight();
      							await Coroutines.FinishCurrentAction();
      							Log.InfoFormat("[Logic] using {0} on {1}.", skill.Name, target.Name);
      							
      							var err1 = LokiPoe.InGameState.SkillBarHud.UseAt(_boneOfferingSlot, false, target.Position);
      						
      							if (err1 == LokiPoe.InGameState.UseResult.None)
      							{
      								await Coroutines.LatencyWait();
      								await Coroutines.FinishCurrentAction(false);
      								await Coroutines.LatencyWait();
      							
      								return true;
      							}
      							
      							Log.ErrorFormat("[Logic] UseAt returned {0} for {1}.", err1, skill.Name);
      						}
      						
      						
      					}
      				}
      				
      
      Now you have Bone Offering support. You can customize the check on the 5th line, right there it just checks if you can use the skill (there's a corpse around) and that you don't have the Bone Offering buff already. If you're not a Necromancer you can change it to check to see if you're minions have it instead.

      For Flesh Offering you'd just have to retype all of that but instead of like.. "private int _boneOfferingSlot = -1;" you could do "private int _fleshOfferingSlot = -1;" etc etc etc.
       
    14. roneo1

      roneo1 Member

      Joined:
      Mar 21, 2014
      Messages:
      480
      Likes Received:
      20
      Trophy Points:
      18

      Thanks, it seems to be working but I think it doesnt check if minions have flesh offering, it just seems to spam it until all corpses are gone :D

      What needs to be changed to have it cast only if the minions don't have the buff?
       
    15. spliffermaster

      spliffermaster Community Developer

      Joined:
      Mar 10, 2014
      Messages:
      56
      Likes Received:
      2
      Trophy Points:
      8
      Updated and rewritten for 2.3.
       
    16. Lay

      Lay Member

      Joined:
      Jul 6, 2015
      Messages:
      173
      Likes Received:
      6
      Trophy Points:
      18
      Code:
      Please read the following guide before using this program:
      https://www.thebuddyforum.com/exilebuddy-forum/247880-exilebuddy-beta-release-thread-2-3-0-a.html
      [Application_DispatcherUnhandledException] Unhandled exceptionSystem.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\leyzr\Desktop\extrastuff\exbud\3rdParty\Summoner\SettingsGui.xaml'.
         at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
         at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
         at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
         at System.IO.FileStream..ctor(String path, FileMode mode)
         at Summoner.Summoner.get_Control() in C:\Users\leyzr\Desktop\extrastuff\exbud\3rdParty\_CONFIGS_\Default\Summoner\Content-336932640\Summoner.cs:line 88
         at Exilebuddy.PluginTemplateGui.‎***‎​‪‎‪‪‏‪‎‏*​*‪‬*‏‪*(IPlugin )
         at Exilebuddy.NewSettingsWindow.‎‎*​​​‎‫**‪**​*‬**‏‏‫‬‫‎**​‏*‎​‪*(Object , RoutedPropertyChangedEventArgs`1 )
         at System.Windows.RoutedPropertyChangedEventArgs`1.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
         at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
         at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
         at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
         at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
         at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
         at System.Windows.Controls.TreeView.OnSelectedItemChanged(RoutedPropertyChangedEventArgs`1 e)
         at System.Windows.Controls.TreeView.ChangeSelection(Object data, TreeViewItem container, Boolean selected)
         at System.Windows.Controls.TreeViewItem.Select(Boolean selected)
         at System.Windows.Controls.TreeViewItem.OnGotFocus(RoutedEventArgs e)
         at System.Windows.UIElement.IsFocused_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
         at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
         at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
         at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
         at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
         at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
         at System.Windows.DependencyObject.SetValue(DependencyPropertyKey key, Object value)
         at System.Windows.Input.FocusManager.OnFocusedElementChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
         at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
         at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
         at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
         at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
         at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
         at System.Windows.Input.FocusManager.SetFocusedElement(DependencyObject element, IInputElement value)
         at System.Windows.Input.KeyboardNavigation.UpdateFocusedElement(DependencyObject focusTarget)
         at System.Windows.FrameworkElement.OnGotKeyboardFocus(Object sender, KeyboardFocusChangedEventArgs e)
         at System.Windows.Input.KeyboardFocusChangedEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
         at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
         at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
         at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
         at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
         at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
         at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
         at System.Windows.Input.InputManager.ProcessStagingArea()
         at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
         at System.Windows.Input.KeyboardDevice.ChangeFocus(DependencyObject focus, Int32 timestamp)
         at System.Windows.Input.KeyboardDevice.TryChangeFocus(DependencyObject newFocus, IKeyboardInputProvider keyboardInputProvider, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
         at System.Windows.Input.KeyboardDevice.Focus(DependencyObject focus, Boolean askOld, Boolean askNew, Boolean forceToNullIfFailed)
         at System.Windows.Input.KeyboardDevice.Focus(IInputElement element)
         at System.Windows.UIElement.Focus()
         at System.Windows.Controls.TreeViewItem.OnMouseLeftButtonDown(MouseButtonEventArgs e)
         at System.Windows.UIElement.OnMouseLeftButtonDownThunk(Object sender, MouseButtonEventArgs e)
         at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
         at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
         at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
         at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
         at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
         at System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
         at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
         at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
         at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
         at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
         at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
         at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
         at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
         at System.Windows.Input.InputManager.ProcessStagingArea()
         at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
         at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
         at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
         at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
         at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
         at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
         at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
         at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
         at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
      
      I'm getting this error. just letting you know :)

      Ah The way it's coded i have to extract it. alright then.

      EDIT: I am getting some issues with flesh offering flat out not working though. unable to provide log though. very easily repeatable
       
      Last edited: Jun 29, 2016
    17. lyvewyre

      lyvewyre Member

      Joined:
      Jan 3, 2013
      Messages:
      418
      Likes Received:
      12
      Trophy Points:
      18
      Just an update for anyone who is interested, I added the above to Old Routine and it is working flawlessly. Bear in mind, this only works because my character has Mistress of Sacrifice. Without it, you'd need to check a minion somehow, which the writer did not go into detail on how.

      Had to do this because this plugin was no longer working for me after 2.5 update.
       
    18. homie17

      homie17 Member

      Joined:
      Sep 25, 2016
      Messages:
      49
      Likes Received:
      1
      Trophy Points:
      8
      you can put the complete file?
       
    19. weenston

      weenston Member

      Joined:
      Apr 1, 2014
      Messages:
      87
      Likes Received:
      1
      Trophy Points:
      8
      I've tried putting this in 3.0 but it doesn't work, do you have any updated version of the code?

       

    Share This Page