Autosipper

by Unknown

Back to Mechanic's Corner.

Unknown2008-08-03 21:58:36
I've been trying to learn how to make an autosipper in Lusternia. I went to Achaea and dug up one made by someone else and tried to modify it. Only, I'm not sure how to go about completely doing it because of bromides and Achaea doesn't have that. Any input would be much appreciated.

QUOTE
#CLASS {Autosip}
#ALIAS sip_priority {#IF (%lower( %1)="health" or %lower( %1)="mana" or %lower( %1)="bromides") {#SAY Sip priority modified to sip %proper( %1) first.;#VAR sip_priority %lower( %1)} {#SAY Improper sip value.}}
#ALIAS check_autosip {#if (@balance_potion!=1 & @sipping_status=1 & @health>0) {#if (@sip_priority=mana) {#if (@mana<(@maxmana-(@maxmana/6))) {sip mana} {#if (@health<(@maxhealth-(@maxhealth/6))) {sip health}}} {#if (@health<(@maxhealth-(@maxhealth/6))) {sip health} {#if (@mana<(@maxmana-(@maxmana/6))) {sip mana}}}}}
#ALIAS autosip {#IF (%lower(%1)="off") {#var sipping_status 0;#SAY Autosipping has been disabled!} {#var sipping_status 1;#SAY Autosipping has been enabled!;check_autosip}}
#TRIGGER {You may drink another health, mana, or bromide potion.} {#var balance_elixir 0;check_autosip}
#TRIGGER {{The potion heals and soothes you.|Your mind feels stronger and more alert.|The potion flows down your throat without effect.|Ah, the soothing bromides help strengthen your ego.}} {#var balance_elixir 1;check_autosip}
#CLASS 0
Esano2008-08-04 00:28:10
This is mine, I've gone through and stripped everything but the autosipped out:

CODE
#CLASS {prompt}
#VAR temp {}
#VAR health {}
#VAR mana {}
#VAR ego {}
#VAR healthheal {}
#VAR manaheal {}
#VAR egoheal {}
#VAR sipe {1}
#VAR siph {1}
#VAR sipm {1}
#VAR elix {0}
#TRIGGER {(%d)h, (%d)m, (%d)e, (%d)p (%w)-} {#SAYP {%ansi( bright, white)};health=%1;#if (@health != @temp) {#ECHOP {%ansi( red)}};temp = @mana;mana=%2;#if (@mana != @temp) {#ECHOP {%ansi( high, purple)}};temp = @ego;ego=%3;#if (@ego != @temp) {#ECHOP {%ansi( high, yellow)}};temp = @power;power=%4;#if (@power != @temp) {#ECHOP {%ansi( high, cyan)}};temp = @health;#if ((@health < @healthheal) AND (@elix = 1) AND (@siph = 1)) {sip health;elix=0};#if ((@mana < @manaheal) AND (@elix = 1) AND (@sipm = 1)) {sip mana;elix=0};#if ((@ego < @egoheal) AND (@elix = 1) AND (@sipe = 1)) {sip bromides;elix=0}} "prompt" {nocr|prompt|notrig}
#TRIGGER {You may drink another health, mana, or bromide potion.} {elix=1}
#CLASS 0


Just remember to set egoheal, manaheal and healthheal. Sipe siph and sipm are whether or not you want to sip those. It always sips health->mana->bromide. And you might need to edit the prompt trigger, if you have endurance/willpower on prompt.

EDIT: I haven't actually used zmud for a while, so it might be a bit outdated. Don't think there's been any major changes, though.

And here's a more legible version:
CODE
#CLASS {prompt}
#VAR temp {}
#VAR health {}
#VAR mana {}
#VAR ego {}
#VAR healthheal {}
#VAR manaheal {}
#VAR egoheal {}
#VAR sipe {1}
#VAR siph {1}
#VAR sipm {1}
#VAR elix {0}
#TRIGGER {(%d)h, (%d)m, (%d)e, (%d)p (%w)-} {
  #SAYP {%ansi( bright, white)}
  health=%1
  #if (@health != @temp) {#ECHOP {%ansi( red)}}
  temp = @mana
  mana=%2
  #if (@mana != @temp) {#ECHOP {%ansi( high, purple)}}
  temp = @ego
  ego=%3
  #if (@ego != @temp) {#ECHOP {%ansi( high, yellow)}}
  power=%4
  temp = @power
  #if (@power != @temp) {#ECHOP {%ansi( high, cyan)}}
  temp = @health
  #if ((@health < @healthheal) AND (@elix = 1) AND (@siph = 1)) {
    sip health
    elix=0
    }
  #if ((@mana < @manaheal) AND (@elix = 1) AND (@sipm = 1)) {
    sip mana
    elix=0
    }
  #if ((@ego < @egoheal) AND (@elix = 1) AND (@sipe = 1)) {
    sip bromides
    elix=0
    }
  } "" {nocr|prompt|notrig}
#TRIGGER {You may drink another health, mana, or bromide potion.} {elix=1}
#CLASS 0
Unknown2008-08-05 04:40:29
How absolutely wonderful. Thank you. As for setting the healthheal, etc, how would I do that if I wanted to sip at -500? Would just using -500 work for that?

Thanks again.
Esano2008-08-05 04:51:29
Healthheal is an actual value, not a modifier. If you were to insert maximum health tracking, you could use @maxhealth-500, I suppose, but right now just do it manually (e.g. if you had 1750 health, healthheal=1250).
Laysus2008-08-07 16:25:55
CODE
#alias sipcheck {#var heal_priority "";#priority {#forall {%sort( %concat( %repeat( 0, %eval( 6-%len( @health_pcent)))@health_pcent, _health)|%concat( %repeat( 0, %eval( 6-%len( @mana_pcent)))@mana_pcent, _mana)|%concat( %repeat( 0, %eval( 6-%len( @ego_pcent)))@ego_pcent, _ego)|%concat( %repeat( 0, %eval( 6-%len( @head_pcent)))@head_pcent, _head)|%concat( %repeat( 0, %eval( 6-%len( @chest_pcent)))@chest_pcent, _chest)|%concat( %repeat( 0, %eval( 6-%len( @gut_pcent)))@gut_pcent, _gut)|%concat( %repeat( 0, %eval( 6-%len( @rleg_pcent)))@rleg_pcent, _rleg)|%concat( %repeat( 0, %eval( 6-%len( @lleg_pcent)))@lleg_pcent, _lleg)|%concat( %repeat( 0, %eval( 6-%len( @larm_pcent)))@larm_pcent, _larm)|%concat( %repeat( 0, %eval( 6-%len( @rarm_pcent)))@rarm_pcent, _rarm))} {#if (%ismember( %word( %i, 2, "_"), "health|mana|ego")) {#if (%eval( %word( %i, 1, "_")<000090)) {#additem heal_priority %db( @healing, %word( %i, 2, "_"))}} {#if (%eval( %word( %i, 1, "_")<000100)) {#additem heal_priority %db( @healing, %word( %i, 2, "_"))}}}};#priority {#forall @heal_priority {#exec %i}}}
#addkey healing health dohealth
#addkey healing mana domana
#addkey healing ego dobromide
#addkey healing gut aphg
#addkey healing chest aphc
#addkey healing head aphh
#addkey healing rarm apha
#addkey healing larm apha
#addkey healing lleg aphl
#addkey healing rleg aphl
#function health_pcent %eval((@current_stats.health*100)/@ref_stats.maxhealth)
#function mana_pcent %eval((@current_stats.mana*100)/@ref_stats.maxmana)
#function ego_pcent %eval((@current_stats.ego*100)/@ref_stats.maxego)
#function head_pcent %eval(((3200-@wounds.head*100)/3200)
#function chest_pcent %eval(((3200-@wounds.chest*100)/3200)
#function gut_pcent %eval(((3200-@wounds.gut)*100)/3200)
#function rarm_pcent %eval(((3200-@wounds.rarm)*100)/3200)
#function larm_pcent %eval(((3200-@wounds.larm)*100)/3200)
#function rleg_pcent %eval(((3200-@wounds.rleg)*100)/3200)
#function lleg_pcent %eval(((3200-@wounds.lleg)*100)/3200)


Here's mine, as I feel like showing off. The thingies in the "healing" record variable should be changed to suit your health sipping/applying aliases, if you want to use them, and you should check & set balance in those aliases.
Esano2008-08-08 08:21:24
Just briefly scanning over that: Critter, if you plan to use it, add sipcheck to your prompt trigger, and remove my stuff. Not to mention ... does that track balances? I can't see any triggers at all....
Laysus2008-08-08 18:15:00
I didn't include triggers. It's so the person can make their own triggers and use their own vars and whatever.
papraki2008-12-14 05:59:45
Any one out there use MM2k
in know
how to set up a auto sipper in it

useing Mushclient
but dislike alias and trigger set ups


Unknown2008-12-14 15:44:32
Necromaniac dazed.gif
Unknown2008-12-21 05:56:59
QUOTE (Kialkarkea @ Dec 14 2008, 04:44 PM) <{POST_SNAPBACK}>
Necromaniac dazed.gif



*pokes kail*

gona need to burrow your brain once more.

My treant didn't come with sippies suspicious.gif

can't make heads or tails out the the coding ither....
Unknown2008-12-21 09:21:22
Aes, AUTOS will show you the things you can configure. AUTO SIPPING ON will enable sipping for Treant.
Unknown2008-12-21 16:20:09
QUOTE (Alacardael! @ Dec 21 2008, 10:21 AM) <{POST_SNAPBACK}>
Aes, AUTOS will show you the things you can configure. AUTO SIPPING ON will enable sipping for Treant.


whatthe.gif

Ahhh! <333333333

dazed.gif wahoo.gif

Unknown2008-12-23 00:01:15
Was that code for Nexus? Because I am trying to get an auto sipper in Nexus and its bleah..I can't figure it out...
Unknown2008-12-23 01:46:10
It's for zMUD. I think there's another thread around here somewhere for a Nexus autosipper.