• Visit Rebornbuddy
  • No Shiphand Event Tracking

    Discussion in 'Wildbuddy Developers' started by Lukov, Apr 3, 2015.

    1. Braken

      Braken Member

      Joined:
      Dec 3, 2011
      Messages:
      84
      Likes Received:
      4
      Trophy Points:
      8
      Error

      Alright so I figured out I open up PEC and put that line in. I even changed wildbuddy folder to not be read only. However when I do that I get this code:
      Code:
      System.MissingMemberException: attribute 'PublicQuest' of 'namespace#' object is read-only
         at IronPython.Runtime.Binding.PythonGetMemberBinder.NamespaceTrackerDelegate.Target(CallSite site, Object self, CodeContext context)
         at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
         at Microsoft.Scripting.Interpreter.DynamicInstruction`3.Run(InterpretedFrame frame)
         at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
         at Microsoft.Scripting.Interpreter.LightLambda.Run1[T0,TRet](T0 arg0)
         at IronPython.Compiler.PythonCallTargets.OriginalCallTarget0(PythonFunction function)
         at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
         at Buddy.Wildstar.PythonExecConsole.‎
*
*​‎‏‪‏*
‪‎​‏*‎*‏​​‫‫‏‏*(Object , RoutedEventArgs )
       
    2. dotbydot

      dotbydot Member

      Joined:
      Sep 29, 2011
      Messages:
      54
      Likes Received:
      0
      Trophy Points:
      6
      You need to put the plugin file in its own folder. Plugins always needs to be in their own folder.
       
    3. Braken

      Braken Member

      Joined:
      Dec 3, 2011
      Messages:
      84
      Likes Received:
      4
      Trophy Points:
      8
      Hmm I see. Forgive my noobiness I am learning :)
      Edit: Making headway now I get an error when enabling plugins.
       
      Last edited: Apr 9, 2015
    4. dotbydot

      dotbydot Member

      Joined:
      Sep 29, 2011
      Messages:
      54
      Likes Received:
      0
      Trophy Points:
      6
      You don't need to enable anything as you can't enable it anyways. All you need to do is download the file in the first post. Then make a folder called "PublicQuest" for example and put it in. Then put that folder in the plugins folder. Lastly once wild buddy is loaded open the PEC and paste in that log code and hit run. It should then dump all the names/numbers in the wildbuddy window if you have a event active(you are in a shiphand for example).
       
    5. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Check the examples in the first post, it doesn't change any implementations of ProfileBot, so all the WB hotkeys are useless. If you want a print out of your Shiphand (consider it one giant quest), use the PEC Dump method (also in the first post)
       
    6. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      Have been working on the Outpost M-13 shiphand. Unfortunately, due to major meshing issues, there isn't a way to complete it. Basically there is a spot with NPCs that spawn in random locations, which necessitates the use of the Collect tag. The same area contains significant meshing issues. (invisible wall in a hallway, bot tries running through walls and a window, etc). That with the collect tag not working properly (it ignore the radius you give it) I won't be able to finish it until the mesh gets fixed.

      I'm going to attempt making a profile for another shiphand, Infestation.
      Here's the issue with this one however.
      The optional objective spawns Hull Breaches in randomly chosen pre-determined locations.

      When one spawns, the bot ideally should run/jump up to it then use the interact function.
      Unfortunately, there isn't a way to check if a npc(creatureID) has spawned in a given location.

      The logic I would need would be something like bool hasSpawned(creatureID, mapId, x, y, z, radius)
      creatureID: NPC the conditional is looking for
      mapID: map it's located on
      x,y,z: location of the NPC
      radius: distance from the x,y,z coordinates it will look for said npc.

      I would then run a While loop with nested if statements that will cycle through all the locations.

      I will need an alternative solution as I haven't seen any pre-existing logic that can do this.
       
    7. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Can hook you up with one pretty quick, hold please. ;)
       
    8. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Updated with new method:

      bool Buddy.PublicQuest.ActorExists(int creatureId, float x, float y, float z, float radius)
       
    9. dotbydot

      dotbydot Member

      Joined:
      Sep 29, 2011
      Messages:
      54
      Likes Received:
      0
      Trophy Points:
      6
      You might not even be able to interact with the Hull Breaches, the mesh was messed up in there as well. Well maybe I shouldn't say messed up, they just aren't meshed since they are up on walls and stuff. I'm not sure if you can ignore the mesh on interact or if it would still interact anyways if you are right by it. The next issue you are going to run into is on the final part where you need to use the special ability to heal the shiphands.
       
      Last edited: Apr 10, 2015
    10. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Hm, if you NoPathfind="true" moveto somewhere, and InteractTag to that same position, it'll default interact with the closest actor to it. I'm not sure if that second move in the InteractTag is pathfinding, or just the default movement from the game option. Worth a try?
       
    11. dotbydot

      dotbydot Member

      Joined:
      Sep 29, 2011
      Messages:
      54
      Likes Received:
      0
      Trophy Points:
      6
      Nvm I just tested it, it appears to work. As long as you use the same XYZ of the moveto, it should interact if you are close enough. Didn't think it would from my experience using Buddywing, had to ignore mesh or use a high interact range there.
       
    12. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      CastObjectiveAbility is what you use for the NPC's, granted I haven't yet attempted using it. It may not work considering it is used for Quest objectives and not event objectives.

      The Hull Breaches will require some use of moveto's and the jump tag.
       
    13. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      CastObjectiveAbility works, but requires a target for certain objects, meaning a Interact RunOnce'd beforehand to establish said target.
       
    14. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      CastObjectiveAbility seems really bugged out at the moment. Chucking out NullReferenceException and freezing everything up.

      Have use use
      <InputAction Action="CastObjectiveAbility" />

      Obviously you have to do interact beforehand to get the target first.


      Edit: <CastObjectiveAbility RequireTarget="true" IgnoreCombat="false" CreatureId="34022" InteractRange="10" X="-28228.83" Y="-727.0941" Z="-28947.8164" MapId="1658" /> is bugged, doing the input action however works perfectly
       
      Last edited: Apr 10, 2015
    15. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Try it with a wait timer afterwards, fairly sure it was errorless when I utilized it for the questing profile. :)

      If not, I'll make you one. ;)

      EDIT: Nevermind, just reread what you typed, lol
       
    16. dotbydot

      dotbydot Member

      Joined:
      Sep 29, 2011
      Messages:
      54
      Likes Received:
      0
      Trophy Points:
      6
      Oh wow nice, didn't know there was that InputAction tag.
       
    17. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      One other issue, it's not spawning the Hull breaches, it just merely making them interactable. The logic would need to be adjusted to see if the CreatureID can be interacted with.
       
    18. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Updated first post with:

      bool Buddy.PublicQuest.CanInteract(int creatureId, float x, float y, float z, float radius)
       
    19. Lukov

      Lukov New Member

      Joined:
      Apr 3, 2015
      Messages:
      63
      Likes Received:
      2
      Trophy Points:
      0
      Now the last issue that I don't think there is an easy way to fix.
      In the middle of the room where you have to interact with the hull breaches, there are some hostile NPC's that attack you.
      You're supposed to interact with the hull breaches in combat. Which is why taking damage for example, doesn't interrupt the cast for fixing the hull breach.

      The bot will run in, attack the mobs. Then by the time you're out of combat, the optional has already failed.
      I don't know if there's any way to get around this problem.
       
    20. Deathdisguise

      Deathdisguise Community Developer

      Joined:
      Mar 7, 2015
      Messages:
      678
      Likes Received:
      6
      Trophy Points:
      0
      Unfortunately this is where my magic voodoo skill can't help. The way the current ProfileBot is set up won't allow me to use external coroutines in this fashion, and since I'm unable to creature custom tags, I can't make an alternate implementation that ignores combat. :(

      Additionally the InteractTag's inherited class HAS a 'CanRunDuringCombat' field, but it's set to ignore, thus returning to the issue above. ;)

      I'm afraid silvers are the norm on that one without a custom botbase that allows for more control (for now, anyways)
       

    Share This Page