• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • strix's Ultimate Interrupter

    Discussion in 'Archives' started by strix, Sep 1, 2011.

    Thread Status:
    Not open for further replies.
    1. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      strix's Ultimate Interrupter


      I couldn't sleep so i upgraded my Interrupter :)

      For people not knowing it's a plugin that will interrupt enemy spellcast, working for any class and if you successfully add into database also for any PvE encounter.

      How it works:
      • Waiting BasicDelay when enemy starts casting, optionally check if it's casting right spell,
      • Waiting 0 to SimulatePlayerDelay,
      • Making sure enemy is still casting same spell and interrupts,
      Settings:
      • PlayingByHand (true) - if it should prevent HB from doing anything else than interrupting, if doesn't help use it with LazyRider
      • BasicDelay (500 ms = half sec) - interruption delay to prevent interrupting fake casts
      • SimulatePlayer (true) - simulate player's reflex (using next settings or not)
      • SimulatePlayerDelay (0 to 300 ms = 0 to 0,3 sec) - additional time to wait, randomly chosen between 0 and what you set in milliseconds
      • InterruptAll - should it interrupt all spells or only chosen? true if you want it to work like old one.
      • Interrupt{Offensive/Defensive/Restoration/CControls} - should it interrupt spells tagged as ...?
      • InterruptCustomTag - should it interrupt spells with custom tags?
      • InterruptEveryone - should it interrupt everyone or just current target? seems like it's not working just keep it false.
      • If you want choose only few spells, disable all tags but custom and mark ones you want.
      To make sure no spell goes through, both delays summed up should not extend (or even be too close to) fastest spell's casting time.

      Installation:
      • extract into Honorbuddy\Plugins\
      • check settings

      Files explanation:
      • InterrupterUltimate.cs - core file, don't ever touch this
      • InterrupterUltimate.Settings.cs - portable - settings for avarage HB user
      • InterrupterUltimate.Database.cs - portable - spell database, basic explanation on editing included
      • InterrupterUltimate.Spells.cs - portable - interrupting spells, file to keep up with WoW patches
      • split into so many files so you can keep multiple "profiles" to swap with or even share your personalized settings with others! Just remember to rar/zip those other profiles as they will interfere even if file name is changed.

      Unless some bugs emerge i consider v1.0 complete and final release.

      Support Me:
      Best form of aid is always posting any bug reports and improvement suggestions.
      I won't try to convince you. If you feel like it there is possibility to donate.
      [​IMG]
       

      Attached Files:

      Last edited: Sep 2, 2011
    2. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      Adding new spell walkthrough:

      Go to Wowhead.com

      [​IMG]

      [​IMG]

      [​IMG]

      Now open InterrupterUltimate.Database.cs:

      [​IMG]

      [​IMG]

      Don't ask why i made this ;D
       
      Last edited: Sep 1, 2011
    3. Zacharybinx34

      Zacharybinx34 New Member

      Joined:
      May 11, 2011
      Messages:
      672
      Likes Received:
      6
      Trophy Points:
      0
      Nice! Will try it out this afternoon!.

      in the old version, we could simply put the spell name in the plugin's config. Can we no longer do that?

      Changing options from config options through HB would make this even better!

      Thanks for your work
      + rep!
       
    4. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      First i have no idea how can i get spell ID having just spell name, probably because there could be few IDs to one name and would cause issues or maybe i just cant find a way ;d

      In my opinion in-HB GUI config would only make it problematic, you would have to keep HB opened for editing, while you can still quickly "Recompile All" plugins after changing settings in notepad. Also editing in notepad is quite simple as it is now.
       
      Last edited: Sep 1, 2011
    5. Zacharybinx34

      Zacharybinx34 New Member

      Joined:
      May 11, 2011
      Messages:
      672
      Likes Received:
      6
      Trophy Points:
      0
      I don't think I understand your post.

      Why would making this plugin have options and spells to add be problematic? That would make this easier to use and a better plugin wouldn't it?
       
    6. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      To make it short: it's simple enough as it is now, creating GUI would be overkill.

      Imaginative:
      Making GUI for it would be like employing dragon(GUI) to carry travelers(users) over the bridge(adding new spells) instead of letting them walk through it on feet(use notepad). Would take you longer to find that dragon than you would gain on it.


      PS: Well actually as i saw Fpsware's dynamically created GUI i might look into it when i have time, but that is least priority for now, probably when i'm done with Apsalar.
       
    7. Zacharybinx34

      Zacharybinx34 New Member

      Joined:
      May 11, 2011
      Messages:
      672
      Likes Received:
      6
      Trophy Points:
      0
      Apsalar?
       
    8. Versus

      Versus New Member

      Joined:
      Aug 23, 2011
      Messages:
      32
      Likes Received:
      0
      Trophy Points:
      0
      Hi, this looks great! Maybe someone can help me out - I want to use this in battlegrounds and whatnot while I'm playing so it will interrupt casters (and hopefully eventually my focus!) almost immediately if I have enough energy. Is there a way to run this plugin without a CC taking control of my character? I can't figure it out for the life of me.
       
    9. Zacharybinx34

      Zacharybinx34 New Member

      Joined:
      May 11, 2011
      Messages:
      672
      Likes Received:
      6
      Trophy Points:
      0
      Will this interrupt focus targets and anyone standing close enough who is casting?
       
    10. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      Did you read settings? it's the one explained first.

      I tried finding out how to use focus target, but HB has no way of retrieving it.
      Might add interrupting anyone standing close enough as an option.

      EDIT: Added interrupting anyone standing close enough as an option, let me know how it works.
      EDIT2: hmm seems like it doesnt work, just set it back to false. Will try making it work later.
       
      Last edited: Sep 2, 2011
    11. Versus

      Versus New Member

      Joined:
      Aug 23, 2011
      Messages:
      32
      Likes Received:
      0
      Trophy Points:
      0
      I guess I'm not sure how to run this plugin without actually running a profile or custom class, is that possible? I just want to run it when I'm playing the game myself and it doesn't seem to work if I enable it and don't hit Start, and I can't hit Start unless I choose a CC and profile.. Sorry, can't find the answer elsewhere!
       
    12. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
    13. Versus

      Versus New Member

      Joined:
      Aug 23, 2011
      Messages:
      32
      Likes Received:
      0
      Trophy Points:
      0
      Thanks strix, I'll give that a shot!
       
    14. fonzy

      fonzy New Member

      Joined:
      Jan 15, 2010
      Messages:
      67
      Likes Received:
      2
      Trophy Points:
      0
      Hey if you could add focus to this it would be great, I know its possible to use focus with HB because Instancebuddy can use your focus as your tank (I believe).
       
    15. theoriginalaks

      theoriginalaks New Member

      Joined:
      Mar 5, 2011
      Messages:
      15
      Likes Received:
      0
      Trophy Points:
      0
      This has gotten so long it now needs a small preface: I started writing this over two hours ago and I hope you read this and give me feedback, because even if you feel like this is to much work or I am offending you by appearing to try to take over your work while providing nothing in return (I obviously hope I don't offend you because thats not what I want) I would like these ideas out here as I think they answer a very common flaw in the pvp aspect of bots and in the idea of an interrupter plug in in general. I believe trying to make an interrupter is folly as something so definitively simple will never be useful for anything more than random bgs. Interrupting is so important that it can not be left up to a simple, if casting X then do Y. To be done effectively requires a couple more variables, and if you are willing to follow along and maybe think about adding my suggestions you won't have an interrupter anymore, you will have a PvP Response Plugin that can respond to actions based off a series of variables, with one of the possible responses being interrupting a spell.


      I want to start this off by saying that I, like most people, do not have the slightly clue how to program but I have provided examples in PSEUDO code based on how you have formatted your work. Second, while I don't plan to use this as is, I could be tempeted to use it after a few modications. I have quite a lot of experience in the top end of PvP for both arenas and rbgs (25-2600 in both currently on a class I just started this season). So while I don't know a lick about coding I do have a pretty good grasp on whats important to use and when in pvp. So for example I know that while your interrupter is leagues ahead of others, if only for the ability to not have to use your current target, I can think of several things that if implemented will make interrupt bots more than just a novelty for random BGs. Because that's really what most of them are, novelties.

      So then strix I noticed two things that could possibly work together and add a dimension to your interrupter that I have not seen before in any other interrupter and would make yours the single best pvp tool made to date. Specifically I noticed you have already went and added categories for spells that could be considered CC, Damage, Defensive, Etc. I also noticed you already have various variable checks before casting interrupts. I, naturally was curious if it was possible to call those CC, Damage, etc variables when checking to cast the spell AND if we could then add in a few more variables.

      For an initial example:

      This example shows two checks to see if your target is casting a spell marked as dmg or cc and then checking if he is close enough to be effected by the grounding totem or intimidating shout radius. However, even now this is not very effective, but what if we could check for something else?

      Now the pseudo code checks if your target is targeting you before casting the grounding totem. Adding the ability to check if you are the target adds so many more options to expand on the concept of what an "interrupt" is. Now you include things like AMS, Cloak, Vanish, Divine Shield, Divine Protection, Power Word: Shield, etc etc and so forth as potential interrupts. Which they are, high end pvp is about responding to events with every tool you have not the abilities that actually say interrupt. But still, what if we could make it even better? After all in pvp you need to be concerned with more than yourself.

      Now we are cooking with portals, if it is possible to check against a person casting against your party or raid all of a sudden we can transform even the newest of players into Talbadar class battlefield controllers. However, a lot of abilities aren't as straight forward to use as grounding totem so we would need a way to fit them in. Hmm, what if instead of casting spells we could cast in game macros? That idea is so powerful I will need multiple examples of Pseudo nonsense to fully explain just how much awesome it would add.

      Alright, now I am starting to regret this post because I would be terrified to play against a person with this kind of power. Why would I be terrified? Because if you can call macros the complexity you have instant access to goes up immensely. In a 3v3 game and a mage is about to sheep your healer? The line checks Sheep, sees its marked as a CC, finds he is about to cast on a party member, sees you want to call a macro called "Shadow Step Kick Macro" and that it needs to be used only once and then you have in a puff of smoke you have kicked that mage at the speed of Reckful. So then, if more complexity and specificity is good what else would be important to check?

      Holy mackeral now we can target the spell casters target! So now in theory the plugin could check who the spell caster is targeting and allow you to interrupt their spell by doing something to their target. Shielding a target about to get shattered? Why not!
      Warrior hit recklessness? Why not BoP the target he is on? Hunter just scattered your healer? Intervene him because you know a trap is coming. Now then, all of these are amazing additions but they are missing something. Even more specificity!


      For reference 19503 is the spell id for scatter shot. If the other ideas are doable then adding this could turn men into gladiators. Categories are nice, but why separate what would work better together? If you combine the database of spells with the rules for interrupts you can customize responses on the per ability level. I don't think I need to explain why that would be so powerful. So now in the end the line checks that it should only cast intervene if someone has used scatter shot on a member of your party, that its going to have to call a macro and run it three times and that it should cast it on the target the person cast it on. I only have two more examples, I saved them for last because my gut reaction as limited that is says they would be the most difficult to implement for the smallest gains.

      What if we could only react at a certain point in the casting of the spell? This would be beneficial in a few capacities; prioritization of kicking channeled spells between ticks, using non-targeting pre-emptive measures late enough that they can't be wasted (i.e not dropping a grounding totem too soon), and allowing priests to shadow word death polymorph.



      In example one this would wait 2000 milliseconds after the hunter has casted Scatter Shot before using intervene. This means that you don't have to worry about doing it early and having the hunter simple holding on to his trap CD. In the second example the target is casting 47540, or Penance, which ticks once instantly then again in one second, and then once again at two seconds. In the third example if a mage is casting polymorph on you it will only respond with SW:D 1 second after the cast has started.
      Because a kick becomes less effective every tick after the first this would tell the bot to only try to kick it within the first second it is casting because after the second tick you will have used an entire kick to stop 75% of a spell. This option is useful when you want to stop it and you are using either a low interrupt kick like wind shear or a non-traditional one like charge or intimidating shout or Hammer of Justice.

      Both of these examples assume that pulling the actual casting time of the spell is something that is very hard to determine for the bot, but if it was something you could figure out being able to also use percentages of a spells cast time would be amazing to help counteract the effects of haste.

      My last example/request is what I would assume to be the most difficult and intrusive option. Being able to determine a players current or last known location. How is this helpful? Its useful in a couple of ways, though mainly involving rogues and priests. What if the plugin could check when a rogue uses stealth or vanish and then immediately use an aoe on top of his location (Such as a mage pet freeze, rooting him in vanish). Or a rogue smoke bombs and a priest can immediately drop a power word: barrier over the rogue if he is targeting an ally within 5 yards of him. A mage ice blocks or a paladin uses Divine Protection and a priest could immediately target his location with mass dispel and remove it. Time for more pseudo code.

      This would cast Power Word Barrier if a target casts smoke bomb, then checks if the rogues target is within five yards and that target is your ally and then it will cast the barrier on the rogues position within five yards. This seems obscenely difficult to add, though I know its possible because all the information requested in available in the bot. But the benefit seems small compared to amount of work possibly required.



      On target vs. focus and other musings on effectiness

      Obviously just checking the person the spell caster has targeted is dangerous, almost destructive in a lot of these cases. However, hopefully in majority of cases if the caster is targeting someone in your party even if he is using a focus macro he will be casting on someone else in your party. This is obviously always going to be true in arena but then you could run into problems with them targeting you, but casting on someone else. If I remember correctly its not possible to tell with 100 certainty who a person is casting on until the spell lands because the should bot have no way to pull that information as it most likely all happens out of reach in the other client and on the server. However, there is still merit in rbgs where focus targets are not AS common, or at least there are so many targets that people are forced to cast on their target much more often. Also, responding to spells with abilities similar to grounding totem and responding to instant cast CC and abilities (such as my recklessness example) would still benifet amazingly. Scatter shot should still also be possible as while the hunter could have used it as a focus the target information is available in the combat log.

      In fact, on continued introspection it would seem prudent to include a zone check as well, for example in pseudo code.

      OR

      These are just two possible implementations, I would imagine that maintaining multuple lists to be checked and called based on the zone you are (such as Arena, BG, and World) would be the most efficient option and the one that allows for the most customization. This way you can maintain the highest level of complexity without having to worry about one response not being as effective in other places. Entering a zone in the world category for example could call a list where everything checks that only you are targeted. Zone based lists allow you to maintain different target and response priorities across situations for the same spell without having to change the list every time you wanted to duel, or do arenas, or rbgs.

      That became so much longer than I thought it would be. I tried to format it as well as possible and I hope reading it at least gave you some ideas as I certainly don't know the practicality of these suggestions or maybe you had already thought of them yourself. But I think I can justify the lost time by saying now these ideas are out there for others to use if they are viable and you simply don't want too, which is so within your rights I am almost violating it by posting this giant wall of text.
       
      Last edited: Sep 3, 2011
    16. weischbier

      weischbier Guest

      Wall of text inc Oo

      dude nobody will read this. Not even I got the patience to read through this^^

      greetz

      Weischbier

      PS: I will read this but not at once
       
    17. theoriginalaks

      theoriginalaks New Member

      Joined:
      Mar 5, 2011
      Messages:
      15
      Likes Received:
      0
      Trophy Points:
      0
      I couldn't possibly ask for more!
       
    18. strix

      strix New Member

      Joined:
      Feb 13, 2010
      Messages:
      442
      Likes Received:
      18
      Trophy Points:
      0
      I did read this :)

      Actually everything you wrote about is doable with HB Api, most even without any changes to core file (if you know how to retrieve proper functions).
      Just needs proper wrapping (so it's understandable for average user) and documentation of useful options as average non-coder won't know how to browse HB Api.

      Will take a look into this when i find time.
       
    19. theoriginalaks

      theoriginalaks New Member

      Joined:
      Mar 5, 2011
      Messages:
      15
      Likes Received:
      0
      Trophy Points:
      0
      I think that's the best case scenario for me right there. I mean you could have also waved your hands mystically, chanted a bit in a dead language of your choosing, and *poofed* exactly what I asked for into existence. Though, whoever wants exactly what they asked for? I don't need me no Monkey's Paw scenario up in here.
       
    20. Undignation

      Undignation Member

      Joined:
      May 29, 2011
      Messages:
      90
      Likes Received:
      0
      Trophy Points:
      6
      This seems like a Great Idea. Intervening your healer instantly as he gets scattered etc.
       
    Thread Status:
    Not open for further replies.

    Share This Page