Medic!, a free system for Mudlet

Introducing Medic!, a FirstAid curing system for Mudlet!

This is a basic system intended for people who mostly bash or are just getting started in combat. The idea is to remove the burden of curing afflictions so that you can focus on the other things that are killing you killing the other guy. Medic! is intended as an introductory system, to help you figure out what you need to work on. It works much better than I ever expected it to, so you might never get to a point where you need something more complicated. If you do, you can use Medic! as a base to start from. The code is all visible and very easy to adjust. It is also free, because I think it's important for everyone to be able to dive into combat if they want. That said, I will not turn away small tips. I have given Medic! to several people over the course of its development, and I use it myself 90% of the time.

Features:
  • Makes use of the FirstAid queue to track and cure afflictions. This means the bulk of the work is done server side, so you (and I) don't have to think about it. It is also future proof! When a new skill or ability is introduced, if it has an affmessage, Medic! will know what to do with it. If it gives an affliction, it gives an affmessage. (If it doesn't, bug it, it's supposed to.)
  • Autosipper with customizable sipping levels and priorities. Very flexible.
  • The sipper includes burst vessel curing, and basic deepwound curing.
  • Healing scroll and sparkleberry use are also included.
  • A do queue with functions to add to the queue depending on the balances it needs/uses. This is very useful for creating defup aliases, and setting up bashing. Can be used to do an action once, or repeat it indefinitely.
  • Assumes deepwound levels based on afflictions received.
Drawbacks:
  • Hardly has any failsafes for illusions. The best it can do is realize you don't have the affliction you just tried to cure, and that doesn't work for everything. I will add in failsafes where I can, but true anti-illusion is extremely complex.
  • Does not work in aeon/sap. Right now it turns itself off and only attempts to cure aeon. No guarantees it will work.
  • Unreliable cleanse curing. Firstaid doesn't cure all cleanse afflictions, and when it does, it only rubs cleanse. Medic! does allow you to choose how you want to cleanse, but you will still attempt to rub. If you don't want to use the enchantment, it adds cleansing to Medic!'s queue instead of FirstAid's so it's possible you'll cleanse more than once. There is a failsafe to keep this from happening, but it is not 100%.
  • Does not assume wound levels after (most) warrior hits. You have to manually check using WOUNDS SIMPLE or WS.

Instructions:
  • Right click here, chose save as. Import this file with the package manager.
  • Turn on affmessages (CONFIG AFFMESSAGES ON) and disable the game's wrapping (CONFIG WRAPWIDTH 0).
  • Enable gmcp. This is on the General tab of Mudlet's settings.
  • Restart Mudlet.
  • Set up the sipper. It comes with default settings of 75% for everything and a priority of health, mana, ego. To see the current settings, use 'medic sipper'. Medic!'s sipper uses potions, sparkleberry, and healing scrolls. To change the level for one type of healing for all three stats, use 'medic <type> <#>'. The number should be the percentage. Omitting the number will show you the current levels. Setting a type to 0 will disable it completely.
    • medic scroll 60: Read healing scroll when any stat drops to 60%
    • medic potion: Show the current levels for sipping each potion.
  • Each stat can be set individually as well. hps <#>, mps <#>, and eps <#>, will set the sipping levels for health, mana, and ego, respectively. Adding 's' to the front will set it for scroll, and adding 'b' will set it for sparkleberry. Again, anything set to 0 will be disabled.
    • hps 75: Sip health at 75% health
    • bmps 50: Eat sparkleberry at 50% mana
    • seps 70: Read healing scroll at 70% ego
  • To change the priorities, use 'sp<#> <potion>'
    • sp1 health: Make health the first priority
    • sp2 bromides: Make bromides the second priority
    • WARNING! There is currently no easy way to switch two priorities. If you change health from first to second, your new priority will be health health ego, and you won't sip/sparkle/scroll for mana at all. So don't forget to make sure you've got all three set right!

Comments

  • edited June 2013
    Important Aliases:

    pp
    • Pause curing. This turns off affliction curing and the sipper.
    medic ignore <affliction>
    • Ignore an affliction. Use the same alias to remove it from the ignore list.
    • To see the current list of ignored afflictions, use 'medic ignore'.
    • WARNING! Do not remove aeon from the ignore list. You will never ever cure it and you will die a horrible death.
    • It's up to you to make sure the affliction name you use is correct. Check the FirstAid database if you're not sure. For example, WHATCURES DIZZY will tell you there's no affliction called dizzy. The correct name is dizziness.
    reset
    • Pretty self explanatory. Clear the queue, reset all healing balances. You'd use this at the end of a spar, or if something has gone majorly wrong.
    medic cleanse <type>
    • How you would like Medic! to cleanse. The choices are rub, cast, and scrub, with rub as the default.
    • Use 'medic cleanse' to see what the current setting is.
    do <action>
    • Adds the action to the do queue, to be done as soon as you have both balance and equilibrium. This alias adds things to the 'free' queue, which means it will happen before other things in the queue.
    • There is a function you can use that can customize the balances something needs and consumes, which I've demonstrated in the 'defup' alias. More on that below.
    • You can add aliases to the queue just fine.
    • Put medic.chaser.chase() anywhere you want the chaser to fire immediately, like at the end of the defup alias.
    dor <action>
    • Adds the action to the do queue, to be done as soon as you have both balance and equilibrium, and will repeat until disabled.
    • You can also set up repeating within an alias or function, as long as you don't set them as free actions. Just set medic.chaser.repete = true and the first action (not in the free queue) will be repeated until you clear the queue or set medic.chaser.repete = false. Perfect for bashing! Yes, it's spelled wrong, I know. Repeat is a lua keyword, so I couldn't use it; repete will have to do. Don't judge me.
    undo
    • Removes everything from the do queue.
    • Putting medic.chaser.clear() in the code for a trigger or alias will also clear the queue.
    defup
    • There are a few examples in here, to show you how to use the chaser script to add things to the queue.
    • The first thing you should do is move this alias out of the Medic! folder, so it doesn't get deleted when you update.
    • Then you add your defenses according to whether they require eq/bal and if they use eq/bal.
    • Don't forget to double click when you're down to activate it!
  • How to use for bashing.

    Most of the time, you will get an affmessage if a mob afflicts you. Occasionally, it will just say, "You are afflicted with an unknown ailment." But of course, this isn't true, you know exactly what that thing just hit you with, you've been fighting these things long enough to know what attacks do what, geeze! And sometimes you don't get an extra message at all, but you know you got afflicted. This is when you open up the handy "bashing" folder in the "Curing" section of Medic!'s triggers. There's plenty of triggers already in there, but I don't bash near as many things as most people, so you'll probably need to add your own at some point. It's fairly simple, you just add the attack message to one of the triggers already there, or make a new one with medic.addaff("affname") as the code. Affnames are always one word, no spaces: brokenleftleg, blackedout, etc. You can check the FirstAid database for the right name. There is no such thing as a 'prone' aff; the name is sprawled.

    You will probably want to move the bashing folder out of the Medic! folder, so the things you add don't get deleted when you update.

    Quirks to watch out for.
    • When you die, Medic! pauses itself. Do not unpause until you're alive again, or you will spam healing so much Mudlet crashes. Once you are alive, don't forget to unpause! Oh, the number of times I have died because I went back to fight still paused…
    • If you don't check WS every now and then, you will not cure deep wounds. Only wounds simple will work, the fancy man you see using WOUNDS won't do anything.
    When I work on Medic! I always save the changes, so the link above will always contain the most recent version. I make small tweaks too often to post every time, but if I make a major change, I will say something. So if you notice something slightly off, and you haven't updated in a week or so, download the newest version. If that doesn't fix it, let me know. For any major problems, let me know, either here on the forums, or in game through Tulemrah. Feel free to contact me if you have any questions!
  • There's been a change to the official name of hemiplegylower, it's now paralysislower. Make sure you update or you'll still be trying to use the old name!
  • This is really good, I can vouch for how useful her curing system is (Mudlet on the other hand...).
    A masked taurian exclaims, "Sugoi! Gorlois-kun is kawaii, uguu~!"
  • edited June 2013
    Important update! Burst vessel curing is handled by the autosipper, bypassing the firstaid queue, so the recent change that gives affmessages to burstvessels will cause you to attempt curing them in ways that will interfere with your sipping. This is an easy fix however, you just need to 'medic ignore burstvessels' and things will go right on curing like they used to! New downloads will have it ignored by default, but current users will need to add it manually. Please spread the word to anyone you know who might be using Medic! and doesn't check the forums.

    I also added documentation for the dor alias, which lets you repeat actions in the queue. See the second post for the details.
  • This seems to work pretty well, but I do have an issue with the chaser where it concerns arm balances. I have a trigger to queue taking a corpse (and gold if present) following a kill, but it seems to roll the second the trigger fires as opposed to when arm/leg balances are recovered. The triggers previously worked with general balance, but throwing the arms in seems to have broken it beyond my understanding.
  • KaimanahiKaimanahi The One True Queen
    I don't actually know how this system works (and too lazy to import and poke at it), but maybe CONFIG PROMPT ARMBALANCE ON will solve your problem.
    image
  • Have done, same result sadly. For now I just disabled the chaser and wrote my own quick little vomitscript in, though I really wish I had the know-how to fix it instead of just paving over completely  :-S
  • UshaaraUshaara Schrödinger's Traitor
    @Stefan I haven't tested this for your example, but this might fix it as it just adds an arm balance check to where medic.bal gets set to true. Press the Scripts button and find the 'sipper_vitals' script. Change the second if statement to
    
    if gmcp.Char.Vitals.balance == '1' and gmcp.Char.Vitals.left_arm == '1' and gmcp.Char.Vitals.right_arm == '1' then
            medic.bal = true
    else
            medic.bal = false
    end
     
  • And that did it! Thank you so much!
  • Belated, I know, but how do I update?  Download again and simply install over the old one?

    image
  • ALSO- it is seemingly spamming attempts at springup, even though I am not sprawled.  I sat to try to make it happen, thinking it would make it stop.  Instead, I springup'd and it still spams it >.>
    image
  • NEVERMIND!  For anyone having similar issues-

    find the Sprawled affliction in the Afflictions folder, obviously found under 'S'.
    Add in the exact lines for springing up, and not being on the ground.
    Save Item, Save Profile.
    Fixed.
    image
  • Be wary about using this- Firstaid isn't supporting the changes afflictions in the overhaul yet. @Ieptix is working on them, I believe.
    image
  • It's fine. 

    I just at the point of wondering how to involve herb balance in the DEFUP alias, right now.

    This is will do until I purchase the MM system from @Vadi

    image
  • When I was working on bringing it up to a 'proper' system standard, I didn't use the medic.chaser() function for it, but rather just using tempTimers as part of the defup. Worked well enough.
    image
  • What the flying Heffalump! It appears that I cannot "read healing" everytime my Medic! system tries I get a "That is not a valid command" line even if I type in "Read Scroll" or "Read <scroll number>" I still get that is not a valid command. I so hate this overhaul, Its completely screwed with everything even my basic healing abilities like being able to sip health or read a freaking scroll. stupid overhaul....
  • TarkentonTarkenton Traitor Bear
    I'd just use the inbuilt sipping/hme curing from AB CURING for maintaining your vitals. No lag, makes it a good deal better IMO.
    image
  • Tarkenton said:
    I'd just use the inbuilt sipping/hme curing from AB CURING for maintaining your vitals. No lag, makes it a good deal better IMO.
    That doesnt change that I can't seem to read a scroll without getting a "that's an invalid command" even if I type it in myself not using a system
  • ShaddusShaddus , the Leper Messiah Outside your window.
    Try READ HEALSCROLL or something similar.
    Everiine said: The reason population is low isn't because there are too many orgs. It's because so many facets of the game are outright broken and protected by those who benefit from it being that way. An overabundance of gimmicks (including game-breaking ones), artifacts that destroy any concept of balance, blatant pay-to-win features, and an obsession with convenience that makes few things actually worthwhile all contribute to the game's sad decline.
Sign In or Register to comment.