Serverside Curing Theory

2

Comments

  • @jarrod I love server curing, I just want to see it come to completion.  Constructive suggestions are not "bitching".  Bitching is what you're doing.  Now, if you'll please stop hypocritically derailing the thread by demanding that I stop doing so, we -were- having a nice discussion.
  • Suggestions for what it's lacking are not on-topic to the thread, go elsewhere.
    image
    Cascades of quicksilver light streak across the firmament as the celestial voice of Ourania intones, "Oh Jarrod..."

  • NemutaurNemutaur Germany
    edited April 2014
    Alright. For those who don't care just download the Defences package at https://mega.co.nz/#!SJF1iRyY!_4lo1y_9MoQdm7Wv2MLoFlMVgw1QOVTDE7-WbbqKUSo . Then open your Trigger Editor in Mudlet, look for the Import button at the top and navigate to the Defences.xml.zip and import it. No need to unzip it at all.

    NOTE: You will need to have already made the 'Stats' script from my previous post in this thread.

    For those of you who are a little interested its basically set up like this:

    There's one 'def' table where all the possible def (not class defs, I listed the monk ones as an example) are defined. Then there's all the triggers with most of the relevant Def Gained (like Insomnia +), Def lost (Insomnia -) and DEF line (Insomnia (def)) triggers.

    It will also track blindness, deafness, kola and cloak defences off your prompt and if you die it will set all defences to false.

    You can use DEF or DF as aliases to check what defs are currently up.

    There's no fancy tricks here, not a single bit of Anti-Illusion protection (except for the prompt trigger stuff I guess). Since serverside curing can't be fooled into deffing something up that is already there you might be wondering why even bother with this?

    I only need to track two things to be able to move on, that is mindseye and the blindness defence. I will be releasing a pre-cache package next (which keeps minerals on hand in your inventory) and most of the legwork will be done via gmcp. So that means not a lot of triggers and the whole thing is very illusion proof. But it turns out that if you are blind and don't have mindseye up there is no gmcp.Char.Items.Add event which I will be using to track what you outrift. You do however see a line such as You remove 1 kelp, bringing the total in the Rift to 805. when blind. So if I don't have that trigger you'd loop a lot of outrifting on login until you touch your mindseye tattoo.
  • Thank you Nemu for panning this out.

    I know for a lot of us that have next-to-no knowledge of coding, you're putting in a ridiculous amount of effort for the sake of everyone's enjoyment of the game.

    You're a scholar and a gentlemen.

  • AktillumAktillum Philippines

    I'm using server-side alongside SVO but I wanted to make aff prios more easily configurable, so I used Nemutaur's script. But now I'm wondering about things like Paralysis > Asthma, or Slickness > Impatience.

    For example, say I want to cure slickness before impatience. In CURING PRIORITY LIST it shows impatience at slot 4, and slickness at slot 10.

    I have a feeling that making an alias to swap their positions (impatience at 10, slickness at 4) wouldn't work because then there would be 5 slots of affs ahead of impatience, which would probably get me wrecked in PvP.

    So uhh..what should I be doing for stuff like this?


  • NemutaurNemutaur Germany

    That's why I have slot 1 totally empty and slot 2 is just filled with two high priority affs. Make your 'swap' alias move them up to those slots and then restore them back down when you're done.

  • AktillumAktillum Philippines

    Okay I'm super noob so bear with me, but why teh fark did this just happen?


    Your defence priorities:

    blindness      : 20

    deafness       : 21

    insulation     : 14

    levitating     : 25

    fangbarrier    : 25

    speed          : 2

    mindseye       : 25

    nightsight     : 25

    kola           : 24

    poisonresist   : 25

    temperance     : 25

    lay            : 24

    tune           : 24

    deathsight     : 25

    cloak          : 25

    insomnia       : 10

    thirdeye       : 25

    gripping       : 24

    curseward      : 20


    5775h, 3497m, 26400e, 18900w cexkdb-curing priority blindness 25

    [Curing]: APPLY EPIDERMAL TO HEAD

    You take out some salve and quickly rub it on your head.

    You are no longer blind.

    5775h, 3497m, 26400e, 18900w cexkd-

    [Curing]: OUTR BAYBERRY

    You remove 1 bayberry bark, bringing the total in the Rift to 1064.

    5775h, 3497m, 26400e, 18900w cexkd-

    [Curing]: EAT BAYBERRY

    You eat some bayberry bark.

    Your eyes dim as you lose your sight.

    5775h, 3497m, 26400e, 18900w cexkdb-

    You may apply another salve or balm to yourself.

    5775h, 3497m, 26400e, 18900w cexkdb-

    [Curing]: APPLY EPIDERMAL TO HEAD

    You take out some salve and quickly rub it on your head.

    You are no longer blind.

    5775h, 3497m, 26400e, 18900w cexkd-

    You may eat another plant or mineral. (1.554s)

    5775h, 3497m, 26400e, 18900w cexkd-

    [Curing]: OUTR BAYBERRY

    You remove 1 bayberry bark, bringing the total in the Rift to 1063.

    5775h, 3497m, 26400e, 18900w cexkd-

    [Curing]: EAT BAYBERRY

    You eat some bayberry bark.

    Your eyes dim as you lose your sight.

    5775h, 3497m, 26400e, 18900w cexkdb-

    You may apply another salve or balm to yourself.

    5775h, 3497m, 26400e, 18900w cexkdb-

    [Curing]: APPLY EPIDERMAL TO HEAD

    You take out some salve and quickly rub it on your head.

    You are no longer blind.


  • It looks like you had blindness on both your curing and defence priority lists, making it want to reverse the previous action every time it was taken.

    image
    Cascades of quicksilver light streak across the firmament as the celestial voice of Ourania intones, "Oh Jarrod..."

  • AktillumAktillum Philippines
    edited May 2014

    Oh yeah I feel totally retarded now, I did "curing priority" instead of "curing priority defence", and I should've just left it alone to begin with because it was already at 20 on my defence list.

    Between configuring server-side to be more SVO friendly and recently going Bard, with very little coding knowledge, my brain is going to explode.


  • NemutaurNemutaur Germany

    By the way, move insomnia to #1 in your defence priority list. #2 at the very least. Because it uses cohosh/gypsum and not the insomnia ability (for now, changes are coming) you need that def higher up than any herb cure.

    Cohosh requires herb balance but does not consume it. So if it's not high up you'll never eat it. Example: Insomnia in #10 in def queue, paralysis at #3. If you are both paralysed and have insomnia stripped it will just eat bloodroot instead of eat cohosh;eat bloodroot.

    If you're using both Svo and Serverside I suggest leaving Insomnia to Svo for now. Even with my curing you can theoretically sleeplock me if you do it quickly between herb balances.

  • WeiWei Monterey, California

    So it seems that defence upkeep doesn't work unless you also have afflictions on, at least in my experience today trying to get the server-curing to keep up selfishness.

  • NemutaurNemutaur Germany

    Uh pretty sure it'll work if you have afflictions off.


    = S--@h99,H99,CE100%,W<-NE@12kts,C/S->N@0,IV

    6688h 7354m 100%e 100%w XX|EE (-2m, 0.0%)

    Automatic affliction curing disabled.

    = S--@h99,H99,CE100%,W<-NE@12kts,C/S->N@0,IV

    6688h 7354m 100%e 100%w XX|EE

    You snap your fingers and instantly you hear again.

    = S--@h99,H99,CE100%,W<-NE@12kts,C/S->N@0,IV

    6688h 7356m 100%e 100%w XX|EE D (+2m, 0.0%)

    [Curing]: OUTR CALAMINE

    You remove 1 calamine, bringing the total in the Rift to 2452.

    = S--@h99,H99,CE100%,W<-NE@12kts,C/S->N@0,IV

    6688h 7356m 100%e 100%w XX|EE D

    [Curing]: EAT CALAMINE

    You eat a calamine crystal.

    = S--@h99,H99,CE100%,W<-NE@12kts,C/S->N@0,IV

    6688h 7356m 100%e 100%w XX|EE D

    see?

  • WeiWei Monterey, California
    Hmm. Maybe it's just with selfishness, then?

    Or maybe something weird was happening.

  • NemutaurNemutaur Germany

    Don't know, sure you had CURING ON and CURING DEFENCES ON and then did CURING PRIORITY DEFENCE SELFISHNESS 10?

  • Nemutaur said:
    But it turns out that if you are blind and don't have mindseye up there is no gmcp.Char.Items.Add event which I will be using to track what you outrift. You do however see a line such as You remove 1 kelp, bringing the total in the Rift to 805. when blind. So if I don't have that trigger you'd loop a lot of outrifting on login until you touch your mindseye tattoo.

    Have you bugged this? Seems like there should be an associated GMCP message if you're still seeing output from the game when blind without mindseye.

  • NemutaurNemutaur Germany

    @Antonius‌ I think I did, not sure anymore. But if I did and it got rejected it's probably so that you can't figure out what was given to you by another person if you are blind without mindseye.

  • WeiWei Monterey, California
    edited May 2014
    Nemutaur said:

    Don't know, sure you had CURING ON and CURING DEFENCES ON and then did CURING PRIORITY DEFENCE SELFISHNESS 10?

    Yeah. @Keneanung‌ was assiting me, and we were struggling with it for a while, but when I turned on affliction curing, it suddenly worked.

    Well, actually I set it to 25, if that's relevant.

  • @Nemutaur It should be possible to send a GMCP message for outrifting specifically, without needing to send one for *any* item being added to your inventory from any means, while blind without mindseye. You're still seeing the output from the game so the GMCP message should still be there too. Though GMCP is incredibly (and annoyingly) inconsistent.

  • Nemutaur said:

    @Antonius‌ I think I did, not sure anymore. But if I did and it got rejected it's probably so that you can't figure out what was given to you by another person if you are blind without mindseye.

    Pretty sure I've either BUG or IDEA'd this in the past too and it was rejected.

  • NemutaurNemutaur Germany
    edited May 2014

    Mana Thresholds (not using mana abilities below a certain % of health)


    Welcome to another Serverside Curing Tutorial.


    Since I just implemented this in the beta version of the ServerSide System I will be releasing soon enough I thought I would outline the theory behind it as well as how to do it yourself if you want to build your own system.


    Now while abilities like Focus, Insomnia (instead of cohosh) and clotting are great, they do cost mana. Sometimes you need to stay above a certain mana threshold so you have to be able to stop using them without too much hassle on your end. An example would be 50% (or 60% so you can use some abilities of your own that need mana) against priests and apostates or just 10% so you still have around 300 to 500 mana to use an ability or two to hinder and maybe get out.


    So we will be toggling the use of Focus, Insomnia (versus curative use like cohosh) and clotting. Clotting is a weird one since it doesn't have a real way to toggle it off, but you can simply say that it should only clot at 'Your max hp' + 5000 (since you'd die if that happened) and the system won't clot. You can set it back to clot normally with CURING CLOTAT 20 or so.


    Requirements:

    You will need GMCP enabled as usual.

    You will need the stats package (https://dl.dropboxusercontent.com/u/6980966/ServersideSystem/Stats.xml.zip)


    First make a new trigger folder called 'Mana Threshold'


    In it make a prompt trigger called 'Prompt'

    Pattern: return isPrompt()      (set to Lua in the dropdown)

    Code is:

     if stats.h ~= stats.oh or stats.m ~= stats.om then
      checkManaThreshold()
     end -- if

    Then make a trigger for Focus being turned off

    Name: Serverside Focus Off

    Pattern: Automatic usage of focusing disabled. (exact match)

    Code: usefocus = false


    Same for Focus being turned on

    Name: Serverside Focus On

    Pattern: Automatic usage of focusing activated. (exact match)

    Code: usefocus = true


    Now for Insomnia off

    Name: Serverside Insomnia Off

    Pattern: You will now not use the insomnia ability. (exact match)

    Code: useinsomnia = false


    Insomnia On

    Name: Serverside Insomnia On

    Pattern: You will now use the insomnia ability. (exact match)

    Code: useinsomnia = true


    The clotting one is a little tricker:

    Name: Serverside Clotting On/Off

    Pattern: ^Will clot above (\d+) bleeding.$ (perl regex)

    Code:

    local clotNum = tonumber(matches[2])
    if clotNum < stats.maxh then
      useclot = true
    elseif clotNum > stats.maxh then
      useclot = false
    end


    And a default clotat trigger (happens if you do CURING CLOTAT 0)

    Name: Serverside Clotting Default On

    Pattern: Will clot at the default value of 100 bleeding. (exact match)

    Code: useclot = true




    Now for the script that makes this all work. I'm assuming you want to be clotting, focussing and using INSOMNIA by default here. Make a new Script called 'Mana Threshold' and paste the code below in it.


    usefocus = true
    useinsomnia = true
    useclot = true
    --how much % of max mana you want to use abilities to
    manaPercent = 10
    function manathreshold()
      return math.ceil(stats.maxm * manaPercent/100)
    end -- func
    function changemanathreshold(n)
      manaPercent = tonumber(n)
      cecho("<green>Minimum mana threshold changed to " .. manaPercent .. "%")
    end
    --check if you should be toggling mana abilities off (focus, clot etc)
    function checkManaThreshold()
      --toggle focus based on threshold
      if stats.m < (manathreshold() + 250) and usefocus then
        send("curing focus off")
      elseif stats.m >= (manathreshold() + 250) and not usefocus then
        send("curing focus on")
      end
      --toggle insomnia based on threshold
      if stats.m < (manathreshold() + 100) and useinsomnia then
        send("curing useinsomnia off")
      elseif stats.m >= (manathreshold() + 100) and not useinsomnia then
        send("curing useinsomnia on")
      end
      --toggle clot based on threshold
      if stats.m < (manathreshold() + 100) and useclot then
        send("curing clotat " .. tostring(stats.maxh + 5000))
      elseif stats.m >= (manathreshold() + 100) and not useclot then
        send("curing clotat 20")
      end
    end


    Lastly make one alias that you can use to change your manathreshold on the fly

    Name: Change Manathreshold

    Pattern: ^manause (\d+)$

    Code: changemanathreshold(matches[2])


    There you go, you might want to gag a few of those triggers by putting deleteFull() at the bottom of the code of each trigger if it gets too annoying.


  • edited May 2014


    Here's a pretty basic (but also very effective) lyre script for use with server curing.  To use it, simply use 'lr' alias to toggle "lyre mode" on and off.

    <a href="https://www.dropbox.com/sh/twlhm23es0ccy6f/AADqv-vR9LfbR-NfRogmjKvRa">https://www.dropbox.com/sh/twlhm23es0ccy6f/AADqv-vR9LfbR-NfRogmjKvRa</a>

  • LadrunLadrun Montana
    Nemutaur said:
    Hi there,

    since there's not that much info out and about about serverside curing right now I thought I'd post what I have found so far and maybe a few scripts or snippets to make life easier. Myself and @Dunn are already using this and won't be going back to client side curing at all, serverside curing is the future in my opinion as it cuts out a lot of work and with a little work is very customisable.

    First things first, understanding the priority system. Everything the serverside curing does (except for moss or health/mana sipping) is based on the 1-25 priority slot system. So while afflictions and defences might be seperate if you put blindness at position 2 in the defence list and have asthma at position 4 in the affliction list it will def up blindness before curing asthma.

    Another oddity is having slickness (usually a smoke cure) over asthma in the affliction list. If you do that it will eat bloodroot to cure the slickness (quite useful at time, but mostly not) and then eat kelp to cure asthma. If you have asthma over slickness in the affliction list then it will eat kelp and smoke, which is the more efficient curing route.

    Secondly, every single curing balance is combined on the same affliction list. So you might have paralysis, aeon, heartseed in the same high prio. You'll have to be able to figure that out yourself.

    Thirdly, while curing will work in aeon/retardation (CURING commands are -not- sluggish commands by the way) it will still go through the list from position 1 through to 25. So if you have slickness at position 3 and prone at 4 it will cure slickness first (usually not a good idea).

    Now lets look at what you will still have to script or code yourself, since serverside curing does NOT do it:

    -Refilling your pipes: you will need to do that yourself.
    -Precaching herbs: serverside will OUTR for you if you don't have anything outrifted, but it will not pre-cache for you.
    -Use of Fitness, Bloodboil, Dragonheal, Fool Tarot, Rage, Restore and other class specific active healing methods cannot be Queued (for now I believe, might come soon) so you will need to have a lock queue that checks stuff like that for you.
    -Intelligent priority switching: For more advanced tricks like moving confusion higher in the priority list if you have disrupt will have to be done client side.
    -Use of Insomnia, Thirdeye and a few other survival or vision abilities: Serverside curing will always use herbs to def up.
    -Mixing and matching Herbs and Transmutation cures: Time to pick a side, one or the other.
    -Deffing up: You will have to handle that yourself if you don't want to put certain defs into the defence priority list (such as deathsight, because who wants to lose equilibrium in the middle of a fight over a def that isn't that important)



    I just want to be sure of something. Nemutaur says serverside curing does NOT mix and match herbs and transmutation cures (ok got this part) if I'm using bloodroot I can't use Magnesium and vice versa but if I have a mending salve instead of Renewal is that handled differently?

  • NemutaurNemutaur Germany

    @Ladrun‌ No, if you use bloodroot you will need to stick to mending. All the cures need to be originate from the same type of skill. If you set serverside to herbal curing and don't have any mending (but you do have renewal) it won't cure anything mending related.

  • LadrunLadrun Montana

    I thought that would be the answer I just wanted to make sure before I went and bought a bunch of herbs or minerals. Thank you

  • AubreyAubrey in hot place
    Can all the afflictions/defences on affliction/defence list be manipulated?

  • NemutaurNemutaur Germany

    Any defence you can use on the defence list can be put on the defence priority list (keepup). 

    Not all afflictions can be added to the affliction priority list because there are no cures for them. Some of them are on a set timer and run out, like hamstring, pinshot or airfisted. Others cure themselves when the enemy stops using the ability, like isolation, but that still has a diagnose message. Some others only disappear if you cure certain other afflictions but have no cure themselves, like weakenedmind (Rixil from occultists).

  • hi. is there a reason why serverside curing keeps on using herbs to cure focusable affs? even though i have curing focus turned on and have focus balance and do not have any scripts to autotoggle it off in case of low mana.  it used to use focus first then herbs but now... i am wasting a lot of herbs when hunting. please help. thanks

    image
  • IsaiahIsaiah Georgia

    @Apolinario‌did u bug it?

    Eat like a caveman, train like a beast. Champions are not born, they are made. 

Sign In or Register to comment.