Mud Client Ideas

From Dyrdex.com
Jump to navigation Jump to search

So you think you're some kinda Power User huh? WTF does that even mean?!?!


Here's things the uber-nerds who play this game all day every day are doing, most of which is based in client-side scripting:


Quick Prep

Bring your own spell bots to runs.

Have an alias to quaff a tank set.

Have an alias to apply any class-specific skills/spells you get.

When its time to prep for a run, get all spells from your bots, quaff a tankset, apply anything else, and then log off. Your guys is 100% ready to rock and offline.

Have an alias to do all this for you, like have 'prep' do dispel all, say all, quaff all, apply all skills. Quit once its all complete.

Quick Reset

A full reset alias is helpful, that can be broken down into this component aliases you can fire individually if necessary as well:

repair - an alias to run you to your preferred repair mob, remove all, repair all, wear all, recall.
refavor - an alias to run to a'enari/vl'aresch to refavor back to praised, and recall. 
restock - an alias to buy you heals/manas and restock tank pots from a donation shelf. 

If you've done a kill on something and people say 'reset', its realllll nice to just type 'recall... reset' and then go get a drink while that all happens.

You can also get even more tricksy and make it recall you, reset you, and return you to wherever you were.

The restocking alias is the one that takes the most scripting. You'll need to establish a variable that keeps your desired stock levels of stuff, then, also set up a trigger that can be enabled when you examine your containers that will catch all the potion names and record how many you have into a 'current stock' variable. Then, the restock alias just uses some math to compare your desired levels to your actual current levels and gets the difference from your potion shelf.

MSDP

Use a modern client that can receive MSDP variables from the mud. You will automatically have variables for your hp, room names, stats, everything. It makes it very easy to script stuff based on all those values.

Autofight

You'll want to set up an autofight script. The basis of this should be a simple trigger that decides whether to hit the mob, or heal up to full. Does that, then repeats.

There are many ways to do this. Here's just one idea:

After EVERY action, be it hitting the mob, or quaffing to full, send an arbitrary command that essentially does nothing, and has minimal lag time, just to print some text to screen.

For example, a command that actually returns an error, like smoke asdfasdfsdf (returns 'smoke what?'), or 'version' (returns 'Smaug 2.4'), or 'hl' (returns generic usage message).

Set a trigger on the screen text of that arbitrary command to check your hp and decide to hit or heal. Send the mud the hit, or heal, and another of that arbitrary command.

The hit lag resolves, or you quaff all your potions, and then boom that arbitrary text prints to the screen and your trigger fires again. Over and over.

Build that hit/heal check out into a massive check that also accounts for:

  • Stomach fullness
  • truesight/blindness
  • poison
  • mana usage
  • blood usage
  • specific mob reactions
  • anything else you can think of


Equipment Damage Tracking

To prevent equipment from scrapping in a fight, you'll want to set up triggers to track hits to your gear and auto-remove gear that is down to 2 or 3 hits remaining.

This can be done by creating a local client-side variable(s) that stores your eq names, keywords, and AC values. Then, a trigger on the 'gets damaged' message can be used to regex whatever got hit against your locally stored information and adjust the AC variable. Include an #IF check to consult that AC value and if < 3 remove the item.

Here's an example snippet of my 'eqlist' variable that includes all wear slots, here is what one individual wear slot looks like:

#var eqlist {
    {waist}
    {
        {ac} {10}
        {acMax} {10}
        {dam} {0}
        {key} {Girth}
        {name} {the Ice Girth}
        {survey} {superb}
    }
}

So then a trigger for {* get's damaged!!} does something like: foreach item in the 'eqlist' var regex that item name against the * that got hit, upon match, reduce the items AC by 1, and if AC is now < 3 remove the item by its key word.