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

Serverside Curing Theory

NemutaurNemutaur GermanyMember Posts: 1,068
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)



YaeHeguaFendoKyrraJhuiWysteriaTeghaineAdaSanekSarathai
«13

Comments

  • ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
    edited April 2014
    I'm assuming Vadi will be releasing a server-side curing client-side system, soon.

    I also have been developing a client-side system to work alongside server curing.  Ironically, it's not really much smaller, or even better.  The only reason server curing is better is

    1) It ignores lag
    2) It ignores illusion (and consequently the entire serpent class)
    3) It sees all sorts of things that it shouldn't, like health/mana in blackout, etc.
    4) It works while DC'd and lagging out (the reason I use it)

    However it has some serious drawbacks, so far, to include:

    1) You can't see your afflictions, so you don't know when to use active abilities like fitness, restore, etc.  This essentially requires you to have an entire curing system designed to track all of your afflictions and curing, in order to know what you have at any given moment, in order to use these abilities when they're needed.  *

    2) It doesn't catch a -lot- of the symptoms (or lack of symptoms) that it should.  I'm assuming these are going to be fixed over time.

    3) There is no way to "tell" the server-curing system that you have an affliction.  This means that if you have something like recklessness, but server curing hasn't "diagnosed" it yet, the only way to cure recklessness (before other afflictions) is to pause server curing (CURING OFF) and manually issue the command.

    4) You can't modify curing priorities and settings stunned, which is silly.

    5) Did I mention there's no way to see your afflictions?  Massive, -massive- turnoff.

    * @Makarios This problem, alone, pretty much defeats the entire point of server curing.  As of now, to use server curing, you still need to have a client side system.  Not only do you need a system, but it's actually a bit trickier than ever, because you have to find ways to "guess" what the server thinks you have.   Affliction tracking not only has to now be tracked, but you also have to test and track every ability and NPC in the game to see which afflictions it ignores, and track symptom messages to know what the server "thinks" you have.  Without doing this, you have no way of knowing that you're about to be venomlocked, vicisected, etc.

    Please create an output command for afflictions, add it to gmcp, or add it as a prompt option.

    "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


          Manda  |  Godzilla  |  SLC
      1. NemutaurNemutaur GermanyMember Posts: 1,068
        edited April 2014
        Getting started with Serverside curing

        The easiest thing to do when getting used to working with the serverside curing is allowing it to do defence keepup for you. Everything that isn't reliant on a curing balance such as blindness/deafness (herb) or caloric (salve) can be handled by serverside curing without messing up anything with clientside curing.

        To do that you follow these steps:

        1. CURING ON (turns on serverside curing)
        2. CURING AFFLICTIONS OFF (won't use serverside curing to heal afflictions)
        3. CURING DEFENCES ON (will user serverside curing based on your Defence Priority list)
        4. CURING TRANSMUTATION ON|OFF (ON if you use Alchemic cures, OFF if you use forestal/herbals)
        5. CURING SIPHEALTH 0
        6. CURING SIPMANA 0
        7. CURING MOSSHEALTH 0
        8. CURING MOSSMANA 0 (5 through 8 makes sure you don't use serverside curing to sip health and eat moss)

        All the steps above will make sure that Serverside curing only handles defences. Now lets start off with something simple like the 'levitating' defence. It does not interfere with any balance so it's a nice easy one to start off with.

        Use the command CURING PRIORITY DEFENCE LEVITATING 25 . That's it, you're done. Levitating will now always be kept up by serverside curing, so you can go ahead and remove it from whatever system you are using now. For Svo you can do VSHOW KEEPUP and uncheck 'levitation'. For Omni you will need to OSHOW KEEPUP <profile> (initial, combat, bashing) and then uncheck the levitation defence. If you're on your own system, well figure it out!

        You can check DEFENCE LIST for other stuff, it will take some getting used to since what we know as sileris is called 'fangbarrier' by serverside. But the system itself is very forgiving since you can do CURING PRIORITY DEFENCE SILERIS 25 or CURING PRIORITY DEFENCE FANGBARRIER 25.

        You can check what you have set on defence keepup by doing CURING PRIORITY DEFENCE LIST. If you want to remove something from Serverside Defence Keepup do CURING PRIORITY DEFENCE <defencename> RESET.

        Here's a list of things you can remove from client side keepup and put on serverside without problems:

        speed - normal speed/haste elixir defence
        levitating
        skywatch
        nightsight - if you have it in vision
        dragonbreath - will only summon breath if you are in dform, won't spam you if you're in lesser.
        kola - yes it's still called kola even if you use minerals
        fangbarrier - this is sileris
        poisonresist - this is venom elixir or toxin tonic.
        temperance - the frost elixir def

        skywatch - very easy to keep up if you can afford the mana and you're paranoid about being hoisted etc.

        coldresist - cold resistance ring twist
        electricresist - same as above, only electric
        fireresist - see above
        magicresist - see above


        Now lets look at situational defences that you might want to toggle on and off. A few popular examples are rebounding, hold breath, metawake and softfocus. I will cover hold breath and metawake since those are the simplest ones and rebounding will require you do track skullcap puffs and refill your pipes.

        For holding breath you will need to make one script and one alias. In the script you will tell serverside curing to keep hold breath up or drop it and the alias will be our toggle. The following code and so on is done in mudlet, but if you understand the theory you can port this to any client you like.

        Code for the script:

        --Flag for the toggle, won't hold breath on login by default
        holdingBreath = false

        --the function to toggle holding breath which we'll put in our alias
        function holdBreathToggle()
          if not holdingBreath then
            --Turn on holding breath
            send("curing priority defence heldbreath 25")
          elseif holdingBreath then
            --Turn off holding breath
            send("curing priority defence heldbreath reset")
          end
        end

        Make an alias with the Title: Holding Breath Toggle
        Pattern would be: ^br$
        (Everyone is used to that pattern from Svo and Omni)
        Code for the alias is: holdBreathToggle()

        image
        Now since this is quite spammy you will need a gagging trigger for it. The 3 patterns (set to Exact match) are:
        [Curing]: HOLD BREATH
        You inhale deeply and begin holding your breath.
        You cease holding your breath and exhale loudly.

        And the code for it would be: deleteFull()
        image

        Metawake is a pretty much the same only that you will have to turn off the metawake defence yourself when you take it off Serverside keepup.

        Code for the script:

        --Flag for the toggle, won't keepup metawake by default
        metawakeKeepup = false

        --function to toggle metawake
        function metawakeToggle()
          if not metawakeKeepup then
            --Turn on metawake keepup
            send("curing priority defence metawake 25")
          elseif metawakeKeepup
            --Take metawake off keepup and manually turn it off
            send("curing priority defence metawake reset")
            send("metawake off")
          end
        end

        Make an alias with the Title: Metawake Toggle
        Pattern would be: ^mw$
        Code for the alias is: metawakeToggle()
        image


        [I know the screenshots are very pixely, Mudlet isn't optimised for Mac Retina displays yet]
        RomJhuiJacenSarathai
      2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean

        In addition to problem #3 (since I can no longer edit it):

        Server curing doesn't (and probably can't) use logic to track afflictions.  People (and systems) can, but currently can't apply it when using server curing.  For top-tier fighters this is pretty important.

        A simple example:

        I have 3,500/5000 health.

        I get bit with loki, and instantly have 5000/5000 health.
        (at this point, I obviously know that I have recklessness, from loki, but the server doesn't)

        After this, I get kicked in the face by a monk.  My health stays at 5,000 health.
        (another dead give-away for recklessness, still not caught by server).

        It makes no sense, from either an OOC or in-character perspective, to not be able to "tell" the server curing system that I have indepedantly diagnosed an affliction.  Ignoring focus for simplicity's sake, if I got this affliction in combat, and I put recklessness at priority 1, I would never cure it, even manually, without pausing server curing.  This makes no sense.  If I -know- that I have recklessness, it shouldn't take an act of god for me to add it to my "known afflictions list" within server curing. 


        There are dozens, if not hundreds of situations where logic can help diagnose afflictions, which simply can't be taken advantage of, due to the lack of input/output for server curing's "known afflictions list".   This definitely needs to be looked at.

        "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


              Manda  |  Godzilla  |  SLC
          1. NemutaurNemutaur GermanyMember Posts: 1,068
            Iocun said:
            Ernam said:
            I'm assuming Vadi will be releasing a server-side curing client-side system, soon.
            It would be so hilariously ironic if, to efficiently use server-side curing, you'd have to buy a client-side script to manage it :P
            Well you do still need some client side affliction tracking to properly manage priorities when you are getting close to being truelocked or get stuffed in retardation. But for a pretty basic but good system you don't need to move any priorities around.

            As for afflictions from NPC's, I don't care about that. I deleted every single bashing trigger, if I get jumped while bashing I'll move away from the afflicting denizen and I'll be fine.
          2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
            edited April 2014
            @Makarios

            Suggestions:

            CURING AFFLICTIONS <ADD|REMOVE> <affliction>
            Adds or removes an affliction to/from server curing's "known" affliction list  (or removes 
            it from the "ignore" list, depending on how you wrote it).
            This should work with or without the actual affliction, to prevent taking advantage of the command.

            CURING AFFLICTIONS [affliction]
            Outputs a list of afflictions in a single line message.  Optional affliction tag only outputs the affliction, if the server thinks you have it.
            Also, add "known" affliction list to gmcp and/or prompt options.

            CURING TRANSMUTATIONS <TRANSMUTATIONS|CONCOCTIONS> <ONLY|PREFERRED>

            Also, add options for using abilities (including class abilities) for defenses instead of herbs (insomnia, etc.)




            "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                  Manda  |  Godzilla  |  SLC
                Teghaine
              1. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
                Iocun said:
                Ernam said:
                I'm assuming Vadi will be releasing a server-side curing client-side system, soon.
                It would be so hilariously ironic if, to efficiently use server-side curing, you'd have to buy a client-side script to manage it :P
                It is both ironic and true.

                "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                      Manda  |  Godzilla  |  SLC
                  1. NimNim Member Posts: 2,015 @@ - Legendary Achaean
                    I dislike the lack of CURING TRANSMUTATION BOTH. :c
                  2. NemutaurNemutaur GermanyMember Posts: 1,068
                    Ah bugger, this is why you proof read or test code. I didn't change the toggle variables in the Metawake and Hold Breath scripts earlier, here's the proper versions:

                    Hold Breath Script:
                    --Flag for the toggle, won't hold breath on login by default
                    holdingBreath = false

                    --the function to toggle holding breath which we'll put in our alias
                    function holdBreathToggle()
                      if not holdingBreath then
                        --Turn on holding breath
                        send("curing priority defence heldbreath 25")
                        holdingBreath = true
                      elseif holdingBreath then
                        --Turn off holding breath
                        send("curing priority defence heldbreath reset")
                        holdingBreath = false
                      end
                    end

                    Metawake script:
                    --Flag for the toggle, won't keepup metawake by default
                    metawakeKeepup = false

                    --function to toggle metawake
                    function metawakeToggle()
                      if not metawakeKeepup then
                        --Turn on metawake keepup
                        send("curing priority defence metawake 25")
                        metawakeKeepup = true
                      elseif metawakeKeepup
                        --Take metawake off keepup and manually turn it off
                        send("curing priority defence metawake reset")
                        send("metawake off")
                        metawakeKeepup = false
                      end
                    end
                    Jacen
                  3. JarrodJarrod Member, Seafaring Liason Posts: 3,060 @@ - Legendary Achaean
                    Another suggestion for utilizing server-side curing (Please keep complaints about the system to another thread, this thread is to help people utilize the system):

                    Creating a Defence Set:

                    Basic functionality of curing systems includes a very nice setup for def'ing up a set of defences. There are two strategies for this.

                    1) Adding all defences to your queue at priority 25, and using a second alias to remove them when defup completes.

                    2) Adding all defences to a higher priority, as well as adding an 'anchor' defence to signify you've finished def'ing up.

                    This will be an example of automatically disabling on completion.

                    First step: We want a list of things that will be def'd up. This is how I did it, in a script:

                    image

                    This allows me to later add other defence sets if necessary. The idea here is that all defences get added to priority 24, and the 'anchor' defence gets added to priority 25, meaning it will always come last. For me, I used secondsight as my 'anchor' defence.

                    Second: A way to call this. A simple alias will do:

                    image

                    Now with this enabled, all I need to do is 'defup basic' to add all my basic defences to the list. The last step is removing them from the list, to prevent them being spammed in combat when you don't need to re-def them. This is where the anchor defence comes in.

                    Finally:

                    image

                    This is the line when secondsight is used. Since it is the only defence from the list in priority 25, when it is used every other defence is up. It's important to use a defence here that requires both balance and equilibrium, so it isn't put up early.

                    From here, it's a simple matter of gagging lines such as:

                    You have set the 'thirdeye' defence to the 24 priority.

                    and

                    You have set the 'thirdeye' defence to the 0 priority.

                    To keep yourself from getting spammed when you use this. You can use the examples Nemutaur provided above for gagging them, or you can use a simple regex pattern of:

                    ^You have set the '\w+' defence to the \d+ priority\.$

                    Which will catch all defence priority changes.
                    image
                    Cascades of quicksilver light streak across the firmament as the celestial voice of Ourania intones, "Oh Jarrod..."

                    NemutaurJhuiJacen
                  4. JarrodJarrod Member, Seafaring Liason Posts: 3,060 @@ - Legendary Achaean
                    If people want a copy/paste version of the script above:

                    defenses = {


                    ["basic"] = {"thirdeye",

                    "alertness",

                    "cloak",

                    "deathsight",

                    "mindseye",

                    "hiding",

                    "scales",

                    "pacing",

                    "lipreading",

                    "weaving"

                    },

                    anchor = "secondsight",


                    current = "basic"


                    }


                    function addDefenses(type)

                    for i,v in ipairs(defenses[type]) do

                    send("curing priority defence "..v.." 24")

                    end

                    send("curing priority defence "..defenses.anchor.." 25")

                    defenses.current = type

                    end


                    function removeDefenses()

                    for i,v in ipairs(defenses[defenses.current]) do

                    send("curing priority defence "..v.." reset")

                    end

                    send("curing priority defence "..defenses.anchor.." reset")

                    end


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

                    Jacen
                  5. NemutaurNemutaur GermanyMember Posts: 1,068
                    Next: Health and Mana Serverside Curing

                    If you want to let Serverside curing handle your health and mana sipping (with or without moss usage) that's easy enough to set up as well.

                    1. CURING ON (turns on serverside curing)
                    2. CURING AFFLICTIONS OFF (won't use serverside curing to heal afflictions)
                    3. CURING DEFENCES OFF (turn off Def keepup if you don't want that stuff)
                    4. CURING TRANSMUTATION ON|OFF (ON if you use Alchemic cures, OFF if you use forestal/herbals)

                    Now you can sip health or mana when your health hits a certain percentage of your max health. Currently the server allows you to set it from 0% (you'll be dead, basically never sip) to 90%. Hopefully they will implement up to 99% in the future so we can mimick Fullhealth (FL in Svo) to board ships and enter the text editor mode in the future.

                    Alright, so pick when you want to start sipping health and mana. I'd suggest 80%, so do: CURING SIPHEALTH 80 and CURING SIPMANA 80.

                    If you don't want to use moss to restore health and mana just do CURING MOSSHEALTH 0 and CURING MOSSMANA 0 and you're set. If you want to use it then set the threshold at 10% lower than your sipping threshold, since that's about what it will cure for and you don't want to waste moss if you hit 90% mana because of mana draining defences or a rather small damage attack for example. So with the values from before it would be CURING MOSSHEALTH 70 and CURING MOSSMANA 70.


                    By default Serverside curing will prioritise restoring health over mana. In some situations you will want to prioritise mana though. Fighting a priest who is just sapping your health is one example, moss will be more than enough to keep your health up so you need to be sipping mana. So we'll be making another toggle that switches between Health and Mana priority (using CURING PRIORITY HEALTH|MANA).

                    Code for Script:

                    --Prioritise health sipping by default
                    healthPriority = true

                    function healthManaToggle()
                      if healthPriority then
                        --switch to mana priority
                        send("curing priority mana")
                        healthPriority = false
                        cecho("\nUsing MANA sipping priority")
                      elseif not healthPriority then
                        --switch to health priority
                        send("curing priority health")
                        healthPriority = true
                        cecho("\nUsing HEALTH sipping priority")
                      end
                    end

                    Make a new alias called: Health/Mana Priority Toggle
                    Pattern is: ^hm$
                    Code is: healthManaToggle()
                    image


                    Now for something a little more advanced. We will be moving up the moss health and moss mana thresholds if you are off sip balance. This will ensure that you are using your moss balance effectively. If you are below 90% health and off sip balance you will want to switch moss thresholds up to 90% for health and 85% (my personal preference) for mana. This moss threshold change ensures that your health stays as high as possible without wasting moss if you dip below 90% health and have sip balance.

                    For this you will need two triggers and a few more functions.

                    First off you will have to turn on Serverside reporting so that we can capture what was sipped. Do this with CURING REPORTING ON .

                    Then make a trigger with the pattern:
                    ^\[Curing\]\: SIP (\w+)$ (perl regex)
                    You take a drink from (begin of line substring)

                    Check the 'multiline / AND Trigger' checkbox and set the 'line delta' to 1. This will make sure the trigger only fires if both those lines show up one after the other.

                    The code will be:
                    sipped(string.lower(multimatches[1][2]))

                    string.lower just makes everything lowercase since the command will look like this SIP HEALTH.
                    image


                    The second trigger will be Sip balance regain.

                    Make a trigger with the pattern:
                    You may drink another health or mana elixir or tonic. (exact match)

                    The code will be:
                    hmbal()
                    image


                    Now to the functions, you can put these in the same script as the Health/Mana Priority function since these are all Health and Mana functions.

                    --Increase the Moss Threshold
                    function mossTreshholdUp()
                      send("curing mosshealth 90")
                      send("curing mossmana 85")
                    end

                    --Decrease the Moss Threshold
                    function mossTreshholdDown()
                      send("curing mosshealth 70")
                      send("curing mossmana 70")
                    end

                    --What you sipped function, this increases the moss threshold
                    --If you are using Transmutation cures replace "health" with "vitality" and "mana" with "mentality"
                    function sipped(elix)
                      if elix == "health" or elix == "mana" then
                        --checks for health or mana sip, so it won't change things on immunity or other sips
                        mossTreshholdUp()
                      end
                    end

                    --Sip balance regain function
                    --This moves the moss threshold down again
                    function hmbal ()
                      mossTreshholdDown()
                    end -- if


                    Now there will be a little bit of moss threshold change spam when you sip and regain sip balance. If you want this gagged just make a trigger with the pattern:
                    ^Moss (?:health|mana) curing threshold set to \d+\%\.$ (perl regex)

                    Code is: deleteFull()
                    image


                    Note: Yes this is susceptible to illusions, but honestly if someone wants to waste time illusioning this they are really running out of things to illusion.
                    JacenSarathai
                  6. DecanDecan Member Posts: 112 ✭✭ - Stalwart
                    Lol, I'm happy to see that novices can now pk without a client side system. Idiots.
                    image
                  7. DecanDecan Member Posts: 112 ✭✭ - Stalwart
                    edited April 2014
                    Iocun said:
                    Ernam said:
                    I'm assuming Vadi will be releasing a server-side curing client-side system, soon.
                    It would be so hilariously ironic if, to efficiently use server-side curing, you'd have to buy a client-side script to manage it :P
                    You miss understand me, Im really happy people can do without a client side system, now can we get back on topic of posting client side scripts to manage serverside curing?
                    image
                  8. StrataStrata United States of DerpMember Posts: 1,753 @ - Epic Achaean
                    This is awesome stuff though, I have to agree with @Ernam that without GMCP afflictions, one still requires too much code on the client-side to make it viable for anything beyond casual hunting and low-tier combat.

                    How 'bout it, @Makarios? The silent majority already agrees that illusion should be removed from the game. Delete it already and then add afflictions to GMCP please. Personally, I have calmed down now and have resigned to the likelihood that the serpent class will be in a rut for some time after classleads are finished. Getting some of these things suggested in this thread added to server-side curing will give me something to work on while I'm sitting around in Ashtan interviewing novices and otherwise being retired from the combat scene until serpent gets fixed later on.

                    image
                    ErnamMako
                  9. AchimrstAchimrst NatureMember Posts: 3,608 @@ - Legendary Achaean
                    Strata said:
                    This is awesome stuff though, I have to agree with @Ernam that without GMCP afflictions, one still requires too much code on the client-side to make it viable for anything beyond casual hunting and low-tier combat.

                    How 'bout it, @Makarios? The silent majority already agrees that illusion should be removed from the game. Delete it already and then add afflictions to GMCP please. Personally, I have calmed down now and have resigned to the likelihood that the serpent class will be in a rut for some time after classleads are finished. Getting some of these things suggested in this thread added to server-side curing will give me something to work on while I'm sitting around in Ashtan interviewing novices and otherwise being retired from the combat scene until serpent gets fixed later on.

                    @Strata is to blame for this. Bad Strata for being such a bad ass serpent.
                  10. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean

                    I wish @Sarapis, @Tecton, and @Makarios weren't so damn cryptic about what they have in store for things as major as server side curing and multi-class.

                    I (and we) really want to know where this ship is sailing so we can decide if we want to stay on or jump while we still have a chance.

                    "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                          Manda  |  Godzilla  |  SLC
                      1. JacenJacen Member Posts: 2,304 @@ - Legendary Achaean
                        image
                        image
                      2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
                        Tecton said:
                        (pic)

                        Zing.  Well played.

                        "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                              Manda  |  Godzilla  |  SLC
                            Alcinae
                          1. NemutaurNemutaur GermanyMember Posts: 1,068
                            Hi, its been a while but in order for me to cover Pipe refilling there's a few other things that need to be dealt with first.

                            First it would be pre-caching and keeping track of what herbs you have in your inventory.
                            To do that I have to keep track of what defences you currently have since you don't get gmcp.Char.Item.Add events while blind and don't have mindseye deffed up.
                            And to properly track defences I also need you to track your stats properly, because when you die you lose all defences. So lets get to stat tracking, which is really simple, and then we'll move on to the rest.

                            For this to work you need to have Gmcp enabled in Mudlet (or whatever client you use). This is a checkbox somewhere in your Settings. Once you have that turned on you will need to restart mudlet.

                            Then make a new script called "Stats" and paste this code in:

                            -- STATS TABLE
                            stats = {

                             h = 5000,
                             m = 5000,
                             e = 20000,
                             w = 20000,
                             maxh = 5000,
                             maxm = 5000,
                             maxw = 20000,
                             maxe = 20000,
                             oh = 5000, --old health
                             om = 5000, --old mana
                             xp = 0,
                             oxp = 0, --old xp
                            }

                            function stat()
                             
                              stats.oh = stats.h or 5000
                              stats.om = stats.m or 5000
                              stats.oxp = stats.xp or 0

                              stats.h = tonumber(gmcp.Char.Vitals.hp)
                              stats.m = tonumber(gmcp.Char.Vitals.mp)
                              stats.e = tonumber(gmcp.Char.Vitals.ep)
                              stats.w = tonumber(gmcp.Char.Vitals.wp)

                              stats.maxh = tonumber(gmcp.Char.Vitals.maxhp)
                              stats.maxm = tonumber(gmcp.Char.Vitals.maxmp)
                              stats.maxe = tonumber(gmcp.Char.Vitals.maxep)
                              stats.maxw = tonumber(gmcp.Char.Vitals.maxwp)
                            end -- func

                            registerAnonymousEventHandler("gmcp.Char.Vitals", "stat")


                            What that code up there does is update local variables in the stats table whenever there is a new gmcp.Char.Vitals event. We are using gmcp instead of the prompt for two reasons, first you can't be fooled by illusions and secondly this information arrives just before a prompt does.


                          2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean

                            I suggested that relapsing not be magically visible to server curing, which was apparently approved.

                            Now, when bit with scytherus, there's no way to actually tell server curing that you have it, without diagnosing.  Ugh.

                            "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                                  Manda  |  Godzilla  |  SLC
                              1. JarrodJarrod Member, Seafaring Liason Posts: 3,060 @@ - Legendary Achaean
                                Investigation != implementation.

                                Also != topic of this thread.
                                image
                                Cascades of quicksilver light streak across the firmament as the celestial voice of Ourania intones, "Oh Jarrod..."

                              2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
                                Jarrod, we already have a Silas, we don't need two.

                                "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                                      Manda  |  Godzilla  |  SLC
                                  1. AntoniusAntonius Member Posts: 4,848 @@ - Legendary Achaean
                                    Seriously, @Ernam, just shut up and take it elsewhere. This is a useful thread for helping people who want to try out the server-side curing, it doesn't need random shit mixed in with it.
                                    JarrodCooperKyrraOhm
                                  2. ErnamErnam Member Posts: 2,416 ✭✭✭✭✭ - Grand Achaean
                                    edited April 2014
                                    So far, every single post I've made has been entirely on topic, aside from replying to Jarrod's ubiquitous personal jab, which admittedly was a mistake.  Sorry?

                                    Do keep in mind the thread is "Theory" not "Newbie helping", although there's nothing wrong with doing both.  I am discussing theory.

                                    I have been doing massive amounts of testing and playing with server curing, but until several of the aforementioned problems are addressed, it's nowhere near being a standalone curing system, and frankly, I don't recommend that it be used by novices until it is.

                                    Don't you find it a little ironic that you're essentially creating a Mudlet only lua client-side system, without which, server-side curing can't be effectively used?  I'm leaning towards having these things implemented within the system, not in mudlet, to avoid defeating the entire point of its existence.

                                    "Our lives are not our own. We are bound to others, past and present. And by each crime and every kindness, we birth our future."


                                          Manda  |  Godzilla  |  SLC
                                      1. JarrodJarrod Member, Seafaring Liason Posts: 3,060 @@ - Legendary Achaean
                                        You're not discussing theory, you're discussing what the system doesn't have. This is a thread for discussing how best to use server-side curing, not a thread to bitch and moan about what it's lacking, which is all you have been doing. Server-side curing is -great- for novice curing, and with a basic priority (which Nemutaur already gave in its entirety) it will cure them through bashing and intro-level combat effectively.

                                        This thread is designed to give them a basis for how to get started, as well as scripts to expand functionality. None of this is necessary to get a working, effective system, this thread is about optimizing the system that's in place to have it account for the most possible situations. You have not been constructive or on topic, and it'd be nice if you spent your time in Nim's thread instead of posting here about how much you dislike it.
                                        image
                                        Cascades of quicksilver light streak across the firmament as the celestial voice of Ourania intones, "Oh Jarrod..."

                                        Ohm
                                      Sign In to Comment.