• Visit Rebornbuddy
  • Customizing Combat Routine

    Discussion in 'Archives' started by cyberbot, Jul 26, 2014.

    1. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      Has the guide to customize the new combat system in the beta been posted?

      I really want to be able to modify simple things such as number of mobs, distance requirement etc. like before.

      Thanks.
       
      Last edited: Jul 26, 2014
    2. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      ExilebuddyRoutine is not setup like Release's Exile routine is. The design of ExilebuddyRoutine is to allow people to use some simple CR logic to assign skills based on various categories, and not have to actually change any code to do simple things like use skills in a different order, or remove conditions for casting skills because they aren't using anymore. It's basically a really simple routine that offers limited functionality in exchange of ease of use. Exile was meant to do the same, but it turned out to to be the monster it is now due to not building around a GUI (which Beta was rewritten with easier GUI stuff in mind).

      As a result, if you need CR logic that does more than ExilebuddyRoutine offers, or want more control, then you will use our API to do so in a custom CR. If you look at Routines\ExampleRoutine\ExampleRoutine.cs, you'll see a simple example of how a custom CR would look in terms of casting skills in a similar manner to how Exile was setup. The only difference is that 95% of the stuff people didn't use in Exile is not present, and won't be. Small, concise CRs are going to be the preferred way to go about customizing combat for EB, as there's too much to do on a broad scale. ExilebuddyRoutine already shows this, as if you wanted to allow for more options to customize using a skills, you have to add even more GUI stuff and logic handlers, and things can quickly bloat out of control.

      If you look through the ExampleRoutine code, I think you should find everything you're looking for. You just implement your linear checks of conditions in which you want to use skills, and then use the Cast helper function to cast a spell.

      You can refer to ExilebuddyRoutine for various example logic like some of the new kite and avoid surround stuff, but all that code can be added to your own routine pretty easily as well.

      When the guide for Routines is added, it'll mostly cover more abstract topics such as ways to design routines rather than how to do X, Y, or Z. If you have any questions on how you'd go about doing something ,feel free to ask! :) The only things we can't really help you with is more advanced logic such as trying to make the routine seem more human like and move around with spatial awareness. Stuff like that is up to the user if you want to go that route, but anything regarding how to use the API or how the IRoutine interface works is fine.
       
    3. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      I would like to see an example for using curses, which are not shown in the ExampleRoutine.

      Also, in the "Aura" and "Buff" types, could you add at least one example as well?

      Thanks.
       
    4. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      ExilebuddyRoutine contains code for the things you mentioned, but I'll add them to the ExampleRoutine as well. Aura and Buff logic is pretty much a copy/paste and you just have to change a few minor things since you're not using skillids.

      Using a curse is the same as using any other skill; you just make a condition and then cast it.
      You need to register and have one post to see spoilers!
      For aura logic, there's a SmartCastAuraCoroutine coroutine you can use:
      You need to register and have one post to see spoilers!
      _auras is a list of aura names you want to cast, and then you have some state tracking logic via _needsToAura so you don't sit around casting aura logic each time. Since auras go away on death, you also want to reset the state flag on player death as well. I also do area changes to handle chickening, which is another case.

      For buff logic, there's a SmartCastBuffCoroutine coroutine you can use:
      You need to register and have one post to see spoilers!
      _buffs is a list of buff names you want to cast. The buff logic runs each tick when something else doesn't execute, so if you want to only cast some things in combat, and some things only out of combat, check to see how I did that in ExilebuddyRoutine. You can also add various timer logic to make sure the routine doesn't spend too much time buffing as well, as that can happen if you use molten shell and are getting attacked by archers.

      The ExampleRoutine.cs file will now look like this:
      You need to register and have one post to see spoilers!
       
    5. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      That is very helpful. Thanks.
       

    Share This Page