• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • How to avoid "prime" and "superior" mobs?

    Discussion in 'Wildbuddy Developers' started by gf779sgf9sfugsgf9sgg, Jan 27, 2015.

    1. gf779sgf9sfugsgf9sgg

      gf779sgf9sfugsgf9sgg New Member

      Joined:
      Jan 25, 2015
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      0
      Hi.

      I am trying to level an engineer with the bot.
      At the moment, I am lvl 11 in Ellevar and have the problem that somewhere is running around a "prime" spider mob always killing me.
      The bot resurrects and tries to reach its destination, on its way again facing this "prime" mob and being killed again and again (eventually destroying my complete equipment).
      Before that I had the problem with another mob, a mini boss or something: Venomfang : WildStar NPC creatures & objects at Jabbithole, the database built by cupcakes for cupcakes
      Ingame venomfang was displayed as "superior".

      Now my question is: Is there a way to avoid these "prime" and "superior" mobs altogether?
      I think for leveling a character with the bot it is essential to avoid these mobs as leveling progress is sometimes completely blocked by them.
      Normal mobs in this area are no problem for my character, so I do not think he is too weak or something.

      Thank you
       
    2. gf779sgf9sfugsgf9sgg

      gf779sgf9sfugsgf9sgg New Member

      Joined:
      Jan 25, 2015
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      0
      So I am trying to build a plugin that detects these prime and superior mobs.
      This is what I got so far:
      Code:
              public void OnButtonClicked(object sender)
              {
                  var filteredActors = FilterActorsForDifficulty("Prime");
                  foreach (Actor actor in filteredActors)
                  {
                      Log.Info(actor);
                  }
              }
      
              private IEnumerable<Actor> FilterActorsForDifficulty(string difficulty)
              {
                  return from actor in GameManager.Actors.Values
                         where actor.CreatureInfo.Difficulty.Title == difficulty
                         select actor;
              }
      It should show all the prime mobs around me in the log window when I press the button of the plugin in the UI.
      But I get this error:
      Code:
      Error handling plugin button press for plugin Avoid Mobs (version 0.0.1) by UserSystem.Exception: Nur ein Teil der ReadProcessMemory- oder WriteProcessMemory-Anforderung wurde abgeschlossen, at addr: 82A9B00010, Size: 38C0
         bei GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
         bei GreyMagic.MemoryBase.Read[T](IntPtr addr)
         bei Buddy.Wildstar.Engine.PerCachedValue`1.get_Value()
         bei Buddy.Wildstar.Game.Actors.Actor.‏‏*‪‫
***‬
*
​‎‏*‎‫‫‬‎*​‬*‬‏
*()
         bei Buddy.Wildstar.Engine.PerCachedValue`1.get_Value()
         bei Buddy.Wildstar.Game.Actors.Actor.get_CreatureInfo()
         bei Buddy.Wildstar.Plugins.AvoidMobs.AvoidMobs.<>c__DisplayClass1.<FilterActorsForDifficulty>b__0(Actor actor) in d:\Spiele\Wildbuddy 0.1.460.195\Plugins\AvoidMobs\AvoidMobs.cs:Zeile 93.
         bei System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
         bei Buddy.Wildstar.Plugins.AvoidMobs.AvoidMobs.OnButtonClicked(Object sender) in d:\Spiele\Wildbuddy 0.1.460.195\Plugins\AvoidMobs\AvoidMobs.cs:Zeile 84.
         bei Buddy.Wildstar.MainWindow.HandlePluginButtonPress(Object sender, RoutedEventArgs e)
      What is my mistake?
       
    3. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Well, your first mistake, is that you should use Actor.Rank to detect if something is Prime, etc. (Note: the enum reflects the Lua enum they use, not the display string in-game. I try to match to the client itself when possible, and avoid changing things to match localizable text)

      Secondly, you need to check if CreatureInfo is even valid before you access it. For example; it's not valid for Players, "Simple" objects, etc. Basically, anything that isn't a "creature".



      With that said, Actor.Rank does some extra things to ensure you get the correct rank returned. There are about 25 different "ranks" internally in the game, but they do modulus 6 to determine which one to display. Just use Actor.Rank to get the info, it's easier on everyone :)

      With that said, I have been working on mob avoidance the last few days to address your issue directly. There has been progress, but fleshing out the API to make sure it's easy to use, is currently my issue.
       
      Last edited: Feb 1, 2015

    Share This Page