Welcome to the Achaea Forums! Please be sure to read the Forum Rules.

Mudlet Blademaster Coding

AliezeAlieze Member Posts: 15 ✭✭ - Stalwart
I'm trying to figure out how to work with blademaster combat and wonder how other people handle their striking and infusions. I feel like there's a better way than what I'm currently doing for striking (using a variable and an alias similar to targeting) and I sort of feel like I should learn how to make an alias to toggle the different strikes, so I don't have to type the whole thing depending on what I need. Could anyone help teach me how or show me how they work with theirs?
«1

Comments

  • AthoremAthorem Member Posts: 81 ✭✭✭ - Distinguished
    edited January 2013
    I just make tons of short aliases for every combo. But I don't know much about blademaster combat coding at all so I might be saying something stupid right now.
  • AliezeAlieze Member Posts: 15 ✭✭ - Stalwart
    Well we tie a strike to a twoarts attack and I suppose I could do that for every variation of twoarts I have but it's a massive effort for a ton of aliases. I sort of like the variable deal because I can set it to nil for retardation, so I can do twoarts attacks normally. It's just a pain to actually set the variables.
  • JacenJacen Member Posts: 2,306 @@ - Legendary Achaean
    I sell a striking system that stores predefined sequences of strikes. Hitting a hotkey selects a sequence, and then the system cycles through the sequence as you do your slashes, automatically pairing strikes with slashes.

    It doesn't do anything with infusions though.
    image
  • EldEld Member Posts: 3,946 @@ - Legendary Achaean
    I have an alias to set the slash type (compass, leg/arm/centre, pommel), one to set the strike, and one to set the infusion. Then several to send the combo, depending on which limb I'm hitting. It kind of works, but it's a pain to switch things quickly, and the times when I need to switch things quickly are also the times when I'm most likely to mistype my aliases, so it screws me over a fair bit. I've been meaning to come up with something better since...well, probably since I put this system together two years ago, but haven't gotten around to it yet. I have at least made a few short aliases for common combos (pommel/knee, legslash/knee, etc), which helps.

    One possibility, which is a type of thing I think is fairly common, would be to have macros on, for example, the F# keys to set a strike, on the alt-F# keys for infusions, and then some other macro for sending the combo (10-key number pad is a common choice for that part, if you have one).
    Hegua
  • ElowinElowin Member Posts: 206 ✭✭✭ - Distinguished
    This is how I did it.

  • EldEld Member Posts: 3,946 @@ - Legendary Achaean
    Elowin said:
    This is how I did it.

    Yeah, that's pretty much what I've got, except I use aliases instead of macros.
  • ElowinElowin Member Posts: 206 ✭✭✭ - Distinguished
    I just use aliases for pommelstrikes paired with a strike and... everything besides *slash.
  • PanpardusPanpardus Member Posts: 86 ✭✭✭ - Distinguished
    One thing I did in my system - its not BM is have macros that assign a value to something to which I push another button to execute the command which would probably work for BM combat as well

    It sort of depends  on what your going to do though

    for instance depending on what I want to do I have a few aliases - Asthma, Paralysis, Free

    If I hit my G7 Key and I am in Asthma mode it will go Asthma/Weari; If paralysis then it will go Paralysis weari if its free then it sets the first to weari and then when I press the next key say g8 then it set that as the second then I just f12 to execute the command.

    If I press another key by mistake it will lock it out with a big alert and I just press f11 to wipe the previous setting if its on free mode.

    -- 

    The other thing that you could do is use a alias like ^e(\w)(\w)$  (The e can be any letter you want) 

    send("deadeyes "..target.." "..deadeyes[matches[2]:lower()].." "..deadeyes[matches[3]:lower()])

    Then in a script you can have what the values are

    deadeyes = {}

    deadeyes.a = "anorexia"

    deadeyes.b = "breach"

    deadeyes.c = "confusion"

    deadeyes.d = "sleep"


    that way when you do eab it sends deadeyes anorexia breach or ebc would send deadeyes breach confusion


    You could adapt that sort of thing pretty easily.


    In the end its going to be what ever you are comfortable doing.

  • IocunIocun Member Posts: 3,506 @@ - Legendary Achaean
    edited January 2013
    I always recommend binding as much as possible to key combinations. Aliases are great for secondary abilities you don't use quite so frequently, but combat tends to be much more... relaxing if you don't have to type super fast and correct spelling mistakes in your aliases. And the less energy and brain power you have to spend on finger-movement, the more you can concentrate on strategy and observing your opponent.

    I use extremely few aliases in mid-combat. Sometimes I don't press enter a single time during an entire fight.
    Eld
  • AthoremAthorem Member Posts: 81 ✭✭✭ - Distinguished
    @Iocun I saw your GUI. We don't really play the same game );
    XerIphisPraxides
  • SidoniaSidonia Member Posts: 408 ✭✭✭✭ - Eminent
    Iocun said:
    I always recommend binding as much as possible to key combinations. Aliases are great for secondary abilities you don't use quite so frequently, but combat tends to be much more... relaxing if you don't have to type super fast and correct spelling mistakes in your aliases. And the less energy and brain power you have to spend on finger-movement, the more you can concentrate on strategy and observing your opponent.

    I use extremely few aliases in mid-combat. Sometimes I don't press enter a single time during an entire fight.
    For some reason I feel more in control with aliases than key bindings/macros, and once you get used to them spelling mistakes are rare.
    Sylvance
  • AthoremAthorem Member Posts: 81 ✭✭✭ - Distinguished
    Exactly how I feel. Mashing on macros makes me feel more nervous
  • AliezeAlieze Member Posts: 15 ✭✭ - Stalwart
    Same...suppose maybe I could just make aliases to set the different strikes. That may work for me too.
  • ZeonZeon Member Posts: 757 @ - Epic Achaean
    I've used hundreds of aliases for my many years of achaean combat, I don't mess them up after getting used to them (though I admit that can take a while when changing class). Usually I try to keep my aliases the same, for example WA has been my bashing attack for several different classes, simply because I used to be an occie and WA was my warp attack.

    As to the OP:

    I use cs (rl|ll|ra|la|h|t) for my compassslashes.
    as(r|l) for armslash left/right
    ls(r|l) for legslash left/right
    cen(h|t) for centreslash head/torso
    pom for pommel
    imp for impale
    bs for brokenstar
    bt for bladetwist
    is for impaleslash, etc etc.

    As to striking, I've only been blademaster a couple days and I haven't done all that much coding yet, so I'm still mostly manual. Most all my strikes call a default_strike() function that I set using a set_default_strike() function via the alias DS <strike>. Legslashes are an exception that always knees or feet a mounted opponent (if they have hamstring). I have some aliases for explicit slash/strikes such as POH which pommels with hamstring as opposed to default.

    I also suggest putting a hamstring timer and making your default_strike function override the set strike and repeat hamstring when it's down or about to go down.

    Infusions are pretty weird and I don't have a good system for handling them yet, since they don't seem to always go off and then need to be reapplied. I had a little something where I checked player.shin and used default_infusion() when I had enough shin saved up. If you understand python and are interested in seeing what I have @Alieze, let me know. Otherwise I can help you via messages in game or via forums. I'm familiar with lua and use mudlet, though I don't code my system in it.

                   Party right, party hard,

                                            Sing and dance, perfect bard.

                                                                     Prefarar loop, accentato whore,

                                                                                             Buy a new rapier, get nerfed some more.

    Mizik
  • AliezeAlieze Member Posts: 15 ✭✭ - Stalwart
    edited January 2013
    I'm currently working infusions to trigger when I recover balance and gain shin (to ensure I always get positive shin even when I'm infusing) but I don't know how smart that is for actual combat. 

    I don't even have feet and hamstring yet and I'm not quite sure how to work those in but the issue is that I'm not really a good coder and I'm not sure how to even work on those things you mentioned to me @Zeon.
  • ZeonZeon Member Posts: 757 @ - Epic Achaean
    I wouldn't worry about automating all that stuff. At least not yet. Blademaster is a pretty primitive class, you don't need much scripting to get the hang out it. Try making simple aliases for your attacks, that should go a long way. Also hit me up in Storm Riders, I'll set you up with some stuff in there.

                   Party right, party hard,

                                            Sing and dance, perfect bard.

                                                                     Prefarar loop, accentato whore,

                                                                                             Buy a new rapier, get nerfed some more.

  • JacenJacen Member Posts: 2,306 @@ - Legendary Achaean
    The #1 thing with blademasters is getting used to prepping limbs. Once you can double break reliably, you can a lot of kills only utilizing limb slashes, pommelstrike, and striking knees.

    Of course, you'll have to get more advanced with your attacks as you fight more difficult opponents (higher mana pools, mounted, intelligent running) but you need to nail the basics first. Once you nail the basics, you might find a completely different way to integrate fists and infusions, negating whatever work you do now.
    image
  • RugnarRugnar Member Posts: 29 ✭✭ - Stalwart
    I have both my current strikes and infuses saved in a table. And then use aliases to change those tables for the less used strikes, and keys for the ones I use often. Using a table allows you to put sequences in it as well, in stead of just single strikes/infuses. 

    Have all my attacks bound to my keypad, and in every attack, I call a strike- and infuse-method which returns the next strike and infuse in the table, and starts at the front when it's had the last one.

    Other things I added in were the ability to add in knee strikes to the front of the table, without clearing the rest, striking hamstring every fourth strike, preventing hamstring from being used if the current strike would've been knees, since well, you won't want that.
  • DornDorn Member Posts: 100 ✭✭✭ - Distinguished
    ...Huh. Miz, that's way better than the way I do it.

    I just have Knees on mounted triggered to strike feet, and vice versa. I could easily set a check if I've hamstrung the target, then do the appropriate strike.

    As for how to manage strikes - however you do it, I seriously advise not marrying strikes and slashes together. Even if all you do is set up keys/aliases to switch the strike you use, don't have any given slash always use a given strike, it removes flexibility, and flexibility is one of our strong points.
    Eld
  • CaladbolgCaladbolg Campbell County TNMember Posts: 1,126 ✭✭✭✭✭ - Grand Achaean
    edited February 2013
    I copied Karai's monk combo script and kinda converted it over to blademaster

    I have keybinds to switch my infuse then I have w a d z x for compass ws as ds zs xs sw for leg/arm/centre and then at the end I put the letter for the strike I want to use


    So pretty much I end up like 1zsr for legslash+hands 1xsq for legslash+knees 1eh for pommel/hamstring 1rp for raze/para

    The 1 I kinda just stuck there to keep my aliases from interfering with other alias's..Works out pretty well for me.

    Things like impale is f2 impaleslash f3 btwist f4 bstar f5 vitiate f6 shin heal all f7 1 voidfist 2 airfist 3 flamefist 4 icefist

  • RulfRulf Member Posts: 41 ✭✭✭ - Distinguished
    edited February 2013

    I actually just wrote a new custom combo script today while I was on my lunch break.

    Basically it uses a series of three - or in some cases four - letter aliases to call a type of slash (including raze, pommelstrike, etc.), a compass or slash direction, and ends with a/an letter(s) that call a strike to fire as well.

    The reason some of them are four letters is due to the number of strikes.

    All in all it's a great starter script for basic blademaster combat, provided you practice it first and get used to all the different combinations.  If you're like me, and have a better than average memory, a couple of spars and you'll have it down.

    It does have elseifs for certain cases, and in cases where you'd pommelstrike or raze, it still requires a direction letter to fire the alias.  Something that I couldn't code a fix for in the short time I had.

    If anyone wants to provide me some input later when I'm off work, and help me fine tune the script, I'd be really grateful, although I'l probably just lean on Nemutaur for an answer like usual.

  • RulfRulf Member Posts: 41 ✭✭✭ - Distinguished
    edited February 2013

    Update for the above post, I was able to fix the problem with having to enter a direction for nondirectional slashes simply by creating another alias for pommelstrike, balanceslash, and raze.

    Currently the two aliases (directional slashes and nondirectional slashes) work very well together.  I'm still getting used to the change myself, but I am rather enjoying being able to swap my strikes at any time.

    Here are some examples of what would be sent to mudlet on certain alias letter combos:

    llk - sends (legslash left and strike knees)

    lrn - sends (legslash right and strike neck)

    als - sends (armslash left and strike sternum)

    tui - sends (centreslash up and strike kidneys)

    Just a few examples.  For the non directional attacks, the first two letters signify the attack you're using, and the third or third and fourth letter(s) signify what strike will be used. Some examples:

    rzk - sends (raze and strike knees)

    pmn - sends (pommelstrike and strike neck)

    blsh - sends (balanceslash and strike shoulders)

    It's a very baseline combo system right now, as confusing and complex as the letter combinations may sound, it actually works very well for me.

    Let me know if you guys have any ideas to improve it.

  • XithXith Member Posts: 2,602 @@ - Legendary Achaean
    Alias recommendations:

    1. Should be long enough to be unique, but short enough to not spend lots of time typing.
    Most of the time you have 2-3 seconds to type your next 2-6 characters while you recover eq.

    2. Don't use things that are used by popular systems (Svo uses 'ss' for smoke skullcap/rebounding). 'ss' can't be used for staffstrike, shadowstrike, etc. despite being easy to remember.

    3. Split aliases between fingers and practice to ensure fluidity. For example, 'jmp' would be bad for jump, because your index finger has to type two consecutive letters, j and m. (bad example, but you get the point)

    Because I have some combos that use venoms, I've set aliases like this:
    ^(cur|del|kal|sli|gek)(cur|del|kal|sli|gek)(cur|del|kal|sli|gek)$
    and use a table or whatever to match 'cur' with curare, etc. (shortened the groups for purposes here, actually have more venoms)
    So when I type 'curkalgek' I assign those venoms to each dagger and set off a chain of jugglethrows.

    I know there are serpents who use 2 or even 1 letter combinations to name their venoms, but that worries me because it's easier to spell another 4 letter alias if you only use 4 instead of 6.

    Similar to the venoms, if you have a two-balance attack together like twoarts-striking, you could set your patterns that way. The important thing is to be able to remember them.
    Maybe 'zs' = raze speed, and 'a' is to strike asthma. Then 'zsa' could be raze speed strike asthma. Or you may use 'k' for faster typing of 'zsk' (kalmia). Just some suggestions.
    I like my steak like I like my Magic cards: mythic rare.
  • ZeonZeon Member Posts: 757 @ - Epic Achaean
    curkalgek is an absurdly long alias to be typing, imo.

                   Party right, party hard,

                                            Sing and dance, perfect bard.

                                                                     Prefarar loop, accentato whore,

                                                                                             Buy a new rapier, get nerfed some more.

    SothantosIphisCaladbolg
  • XithXith Member Posts: 2,602 @@ - Legendary Achaean
    Zeon said:
    curkalgek is an absurdly long alias to be typing, imo.
    Yeah I hardly use those anymore because I usually throw my venoms in an auto combo. But since it's probably following something with longer balance and I Command+V it to put it back in, doesn't actually phase me that much. And any alias you get used to becomes a lot faster to type. My time/give web bomb is ^gbw (\d+)$
    I really don't even notice the time taken anymore.

    But if Xith shields in the middle of the fight for no apparent reason, he's probably typing something long :P
    So by the time shield eq is back, pslowlock3, Cmd+A, Cmd+X, gbw 5 and we're ready to roll.
    I like my steak like I like my Magic cards: mythic rare.
  • RulfRulf Member Posts: 41 ✭✭✭ - Distinguished
    edited February 2013

    Ok so the general consensus is to alias the slashes with the limb, eg. crl cll lsl lsr blah blah.  After that you'd have the strikes triggered and in a rotation based on what strike you would need.

    My question is how would I code this to work for strikes, I've no idea how to put things in a rotation and call them out.

    Would it be a counter system, like:

    On trigger:

    if not strikecount then strikecount = 0 end

    if strikecount == 1 then send("strike " ..target.. " knees")

    elseif strikecount == 4 then send("strike " ..target.. " hamstring")

    if strikecount == 4 then strikecount = 0 else strikecount = strikecount + 1 end

     

    Would that be the right thing to do, or is there a better/more correct way?

  • EldEld Member Posts: 3,946 @@ - Legendary Achaean
    edited February 2013

    Rulf said:

    Ok so the general consensus is to alias the slashes with the limb, eg. crl cll lsl lsr blah blah.  After that you'd have the strikes triggered and in a rotation based on what strike you would need.

    My question is how would I code this to work for strikes, I've no idea how to put things in a rotation and call them out.

    Would it be a counter system, like:

    On trigger:

    if not strikecount then strikecount = 0 end

    if strikecount == 1 then send("strike " ..target.. " knees")

    elseif strikecount == 4 then send("strike " ..target.. " hamstring")

    if strikecount == 4 then strikecount = 0 else strikecount = strikecount + 1 end

     

    Would that be the right thing to do, or is there a better/more correct way?

    For a strike rotation, a counter like that would probably be easiest. I would probably put the strikes in a table, like
        strikes = {'strike1','strike2','strike3',...}
    and then have your trigger do
        strikecount = strikecount or 1
        send("strike "..target.." "..strikes[strikecount])
        strikecount = strikecount + 1
        if strikecount>#strikes then strikecount = 1 end

    Or those last two lines could just be replaced with
        strikecount = (strikecount + 1)%#strikes
    I think.

    An advantage to using the table approach instead of the sequence of if statements is that you can change the rotation on the fly. So if you wanted to switch to a kelp rotation or something, you could have an alias that would just do
        strikes = {'chest','ears','shoulder','throat'}
    for example.
    Personally, I just send the strike command at the same time as the slash, so I would probably just trigger the counter off of the line for the strike going through, rather than incrementing it when I send the command (that way you also don't keep going through the table if the command doesn't go through for some reason - not sure if that's what you'd want or not). But then, I also don't use that kind of automatic rotation, so I haven't really thought through the best way to do it. I guess triggering the strike off of the slash might have the advantage of working better in retardation, but I'm so hopeless in retard anyway that I haven't worried much about that aspect, either.

    Caladbolg
  • CaladbolgCaladbolg Campbell County TNMember Posts: 1,126 ✭✭✭✭✭ - Grand Achaean
    Just out of curiosity is using scripts for striking better than doing it all manually.

    Personally I typically just use one strike over and over and over and over and over again unless im going for a lock and even then it seems easier in my mind to do


    Voidfist Para then knees
    If he stands up then para = gone so repara
    asthma if he hasn't stood up and eats broot then prio = para over asthma.
    if he eats kelp then asthma over para
    slickness if he smokes asthma = gone if he still hasn't stood up then para is still there.

    Which seems easy enough to code but I guess in my mind I can type the alias out and spam enter before the .9 seconds is up. and seems less failable because im not relying on client to do so other then alias's.

    On other people it's just 1zsr (Legslash right strike hands) x6 then 1zsq (legslash knees)


    On the other hand I did set my infuses to switchable keybindings and they seem to work out better.  and I did set my discern to trigger off the line so I didn't accidently discern when he writhed.

    But asking opinions because I don't want to have to code the entire thing if it's not better.

  • RulfRulf Member Posts: 41 ✭✭✭ - Distinguished

    @Caladbolg

    I mean as with all things, preference is probably gonna be the final factor in whether or not it's "better" to code it or do it manually.  If you have a way of doing things which involves typing it out, you like it, and it works 80% of the time(or however much, just guessing), then I'd say it'd be "better" for you to stick to that.

    That being said, I'm experimenting with every possible scenario of calling strikes and slashes just to get a feel for what I like best.  Currently I'm really liking the auto strike rotation with a "prepped" variable and a "mounted" variable set by aliases/keybinds to overried for knees/feet.  Granted I do forget to change the variable back after a successful knee strike sometimes, which can probably be remedied by a trigger setting the variable back to false on a knee strike, but that's the whole reason I'm trying these things out.

    Even then, I'm really unsettled when it comes to things like this, so I could use this system for a week and then decide I want to code it completely different all of a sudden, which has been the case two or three times so far.

Sign In to Comment.