1#savefile-version 1 2#("We use an old version number to force creation of sane default #binds") 3 4#init ={#(@oldxp=0);mapend;#option +compact -info -echo} 5 6#("Connect to MUME") 7#host mume.pvv.org 4242 8 9#("Some aliases to use labeled #actions") 10#alias ac=#action $0 11#alias <=#action <$0 12#alias \==#action =$0 13#alias >=#action >$0 14#alias +=#action +$0 15#alias -=#action -$0 16 17#("Some variables") 18#(@emergency = 1, @xp = -0) 19#($E_col = "bold") 20#($Elbereth = "Grima Slinket Crug Camaro") 21#($S_col = "inverse") 22#($Sauron = "Homie Aridhol Quigley Mournblade ") 23 24#("Some useful binds -- they all are on numeric keypad") 25#alias ?=#history 1 26#alias ??=#history $0 27#bind * ^[Oj=stat 28#bind + ^[Ol=open honeycomb 29#bind - ^[Om=close honeycomb 30#bind . ^[On=sneak 31#bind / ^[Oo=! 32#bind 0 ^[Op=? 33#bind 1 ^[Oq=hide 34#bind 2 ^[Or=s 35#bind 3 ^[Os=d 36#bind 4 ^[Ot=w 37#bind 5 ^[Ou=exits 38#bind 6 ^[Ov=e 39#bind 7 ^[Ow=look 40#bind 8 ^[Ox=n 41#bind 9 ^[Oy=u 42 43#alias plusminus={#bind +=open $1;#bind -=close $1} 44#action >+close The $1 is open={#print;plusminus $1} 45#action >+open2 The $1 seems to be closed={#print;plusminus $1} 46#action >+open1 The $1 is closed={#print;plusminus $1} 47 48#("Bindings for function keys") 49#alias HELP=#alias HELP={remove ring;narrate HELP! EMERGENCY TRANSFER! rings off!} 50#bind F01 ^[OP=HELP 51#alias wi=change wimpy $0 52#alias wq=wi 100 53#alias ww=wi 1000 54#bind F02 ^[OQ=ww 55#bind F03 ^[OR=wq 56#bind F04 ^[OS=examine 57#bind F05 ^[m=now 58#bind F06 ^[[17~=#option compact 59#bind F07 ^[[18~=listen all 60#bind F08 ^[[19~=listen none 61#alias ck=change mood berserk 62#alias ca=change mood aggressive 63#alias cb=change mood brave 64#alias cn=change mood normal 65#alias cp=chan mood prudent 66#alias cw=change mood wimpy 67#bind F09 ^[[20~=cw 68#bind F10 ^[[21~=ca 69#alias pi={remove sword;draw} 70#alias sla={sheath;wield sword} 71#bind F11 ^[[23~=pi 72#bind F12 ^[[24~=sla 73 74#("Two nice aliases") 75#alias ,e=emote leaves east 76#alias emsay=emote says '$0' 77 78#("Teleporting") 79#alias ll=cast 'locate life' $0 80#alias tp=cast 'teleport' $0 81#alias portal=cast 'portal' $0 82#alias go={#if (!*\$0:>2) #(\$0+="tp"); #else #if (\$0:>2=="portal") #(\$0+=" u"); #exe (\$0:>2+" "+\$0:1)} 83 84#alias loc={#var $talias=$1; #action +tkey; ll $2} 85#action >tkey Key: '$1'={#print; #action -tkey; #alias ${talias}=go $1 \$0} 86 87#alias zharlond=go whicewhile $0 88#alias zmichdelv=go sillelega $0 89#alias zbree=go dorwhimile $0 90#alias 1=zHarlond 91#alias 2=zMichDelv 92#alias 3=zBree 93 94#("An emote for enchanting weapons") 95#alias ench=cast 'enchant weapon' $0 96#alias enchant={, makes a swift gesture and the $0 starts floating in mid air...;EnchSet +;ench $0} 97#alias EnchSet={#action $1EnchSucc;#action $1EnchFail;#action $1BackFire} 98#action >-BackFire Your spell backfired!={#print;, starts swearing loudly;EnchSet -} 99#action >-EnchFail You lost your concentration!={#print;, frowns and exclaims, 'This cannot be! I failed!';EnchSet -} 100#action >-EnchSucc $1 glows blue.={#print;, gestures again, and arcane runes flare on the $1!;EnchSet -} 101 102#("Keep count of game time and also put it in the prompt") 103 #mark Game time =underline 104#("length of a game tick in milliseconds :") 105 #(@tick = 61500) 106#("this is to synchronize") 107 #action >+clock ^The current time is $1:$2 $3.={#print;#if (\@0=$1*@tick+$2*@tick/60, \$3=="pm" ^^ $1==12) #(\@0+=12*@tick); #settimer (\@0);settick} 108#("print time") 109 #alias time={#if ((\@1=timer%@tick*60/@tick) < 10) #(\$1=":0"); #else #(\$1=":");#print ("Game time "+%(timer/@tick%24)+\$1+%\@1)} 110#("manually set time") 111 #alias now={#if (*\$1) #(\@0=$1*@tick+0$2*@tick/60); #else #if ((\@0=timer-(\@1=timer%@tick)), \@1 >= @tick/2) #(\@0+=@tick); #settimer (\@0)} 112#("put time into the prompt. works for MUME.") 113#("change to use appropriate patterns for other MUDs") 114 #prompt %+empty ^[o\\*]>={#isprompt -1; timeprompt} 115 #prompt %+full ^[o\\*] [^>]*>={#isprompt -1; timeprompt} 116 #alias timeprompt={#if ((\@1=timer%@tick*60/@tick) < 10) #(\$1=":0"); #else #(\$1=":");#($prompt=$prompt.1+" "+%(timer/@tick%24)+\$1+%\@1+$prompt.>2)} 117#("automatically print time at every tick. type `settick' to activate") 118#("or change #alias `now' and #action `clock' to run it") 119 #alias settick=set tick 0 time 120 #alias set=#exe ("#in $1 ("+%((-timer-1)%@tick+2)+") {"+\$0:>3+";#in $1 ((-timer-1)%@tick+2)}") 121 122#("Code to help mapping mazes -- keeps track of room number") 123#("using binary numbers -- 1 copper == 1, 2 coppers == 0") 124#("doesn't work anymore as you now get `six pile of coins' etc. tough luck.") 125#alias d1=drop 1 copper 126#alias d2=drop 2 copper 127#alias m=#for (\@1=$1; \@1; \@1/=2) #if (\@1&1) d1; #else d2 128#alias mapend={- copper-penny;- pile-of-coins;#(@map=0)} 129#alias mapstart={+ copper-penny;+ pile-of-coins;#(@map=0);#in map-timeout (-1) {#print ("Room: "+%@map);#(@map=0)}} 130#alias mapcount={#(@map*=2, @map+=$1);#in map-timeout (100)} 131#action >-pile-of-coins ^A pile of coins=mapcount 0 132#action >-copper-penny ^One miserable copper penny=mapcount 1 133 134#("Spells and fight") 135#($self = "Cosmos") 136#alias self=#($self=$(0)) 137#alias k=kill $0 138#alias f=flee 139#alias ff=order followers assist ${self} 140#alias fw=order followers assist waran 141#alias of=order followers $0 142#alias ol=of k lord 143#alias on=of k noble 144#alias he={#if (!*$(0)) #($(0)=$self);#send ("cast 'heal' "+$(0))} 145#alias in={#if (!*$(0)) #($(0)=$self);#send ("cast 'invisibility' "+$(0))} 146#alias rp={#if (!*$(0)) #($(0)=$self);#send ("cast 'remove poison' "+$(0))} 147#alias sct={#if (!*$(0)) #($(0)=$self);#send ("cast 'sanctuary' "+$(0))} 148#alias str={#if (!*$(0)) #($(0)=$self);#send ("cast 'strength' "+$(0))} 149#alias ar={#if (!*$(0)) #($(0)=$self);#send ("cast 'armour' "+$(0))} 150#alias sspell=#exe ("#alias $1={#if (!*$(0)) #($(0)=$self);#send (\\"cast '"+\$0:>2+"' \\"+$(0))}") 151#alias sto=cast 'store' $0 152#alias stb=sto fireball 153#alias stl=sto call lightning 154#alias stp=sto teleport 155#alias stq=sto earthquake 156#alias sty=sto colour spray 157#alias bd=cast 'block door' $0 158#alias bl=cast 'blindness' $0 159#alias bob=cast 'breath of briskness' 160#alias ch=cast 'charm' $0 161#alias cwt=cast 'control weather' $0 162#alias b=cast 'fireball' $0 163#alias j=cast 'lightning bolt' $0 164#alias li=cast 'call lightning' $0 165#alias sl=cast 'sleep' $0 166#alias sle=sl $0 167 168#($target = "assassin") 169#alias .=$0 ${target} 170#alias bl.=bl ${target} 171#alias b.=b ${target} 172#alias j.=j ${target} 173#alias k.=k ${target} 174#alias li.=li ${target} 175#alias sl.=sl ${target} 176#alias blo=bl orc 177#alias blt=bl troll 178#alias jo=j orc 179#alias jt=j troll 180#alias ka=k assassin 181#alias kw=k wolf 182 183#alias tr=track $0 184#alias to=tr orc 185#alias tt=tr troll 186#alias tr.=tr ${target} 187 188#alias bs=backstab $0 189#alias bs.=bs ${target} 190#alias nn=$0 Necromancer 191 192#("Misc stuff") 193#($water = "skin") 194#alias dw=drink water 195#alias dk=drink ${water} 196#alias lk=look in ${water} 197#alias po=pour water ${water} 198#alias sk=sip ${water} 199#alias cv=cast 'create water' $0 200#alias cvk=cv ${water} 201 202#($pack = "backpack") 203#alias gp=get $0 ${pack} 204#alias pp=put $0 ${pack} 205#alias lp=look in ${pack} 206 207#($light = "lantern") 208#alias hl=wear ${light} 209#alias rl=remove ${light} 210#alias vl=cover ${light} 211#alias ul=uncover ${light} 212#alias cl=cast 'create light' $0 213#alias cll=cl ${light} 214 215#alias lg=look in moneybag 216#alias gg=get $1 gold moneybag 217#alias pg=put $1 gold moneybag 218#alias ggj=get ruby moneybag 219#alias pgj=put ruby moneybag 220 221#alias cf=cast 'create food' 222#alias gf=get food 223#alias ef=eat food 224#alias food={cf;gf;ef} 225 226#alias bc=#if (*$(1)) butcher $1.corpse; #else butcher corpse 227#alias lc=#if (*$(1)) look in $1.corpse; #else look in corpse 228#alias ga=#if (*$(1)) get all $1.corpse; #else get all corpse 229#alias gc=#if (*$(1)) get coins $1.corpse; #else get coins corpse 230#alias gx=#if (*$(2)) get $1 $2.corpse; #else get $1 corpse 231#alias xc={hl;gc $0;rl} 232#alias gl=get all 233#alias glc={get all.coins;get all.copper} 234#action >-greed is dead! R.I.P.={#print;gc} 235 236#alias ldh=#if (*($1)) lead $1.horse; #else lead horse 237#alias rdh=#if (*$(1)) ride $0.horse; #else ride horse 238#alias ldp=#if (*($1)) lead $1.pony; #else lead pony 239#alias rdp=#if (*$(1)) ride $1.pony; #else ride pony 240#alias ds=dismount 241#action >-Ct ^Clip-clop...the riding horse= 242#action >-Cp ^Clip-clop...a pony= 243#action >-Cb ^The Horse= 244#action >-At ^A riding horse= 245#action >-Ap ^A cute and docile pony= 246#action >-Ab ^A beautiful horse= 247 248#alias re=t Alsbreth $0 249#action >+reply ^$1 tells you '={#print;#alias re=t $1 \$0} 250#action >-xeval ^$1 tells you 'calc &2'={#print;#alias re=t $1 \$0;if (\$2?";" || \$2?"$" || \$2?"@") {tell $1 *grin*;#()}; #else #send ("t $1 "+%($2))} 251 252#alias rep={+ report;score} 253#action >-report $1 hit, $2 mana and $3 moves.={#print;, has $1 hit, $2 mana and $3 moves.;- report} 254#alias rd={#opt +speedwalk;4ensenwdnenne;#opt -speedwalk} 255#alias fd={#opt +speedwalk;wsswsuwwdww;#opt -speedwalk} 256 257#alias lr={look n;look s;look e;look w;look u;look d} 258#alias x=#alias $0 259#alias kk=#bind $0 260#alias l=examine $0 261#alias gr=group $0 262#alias le=group ${self} 263#alias mm=#mark $0 264#alias sa=#save 265#alias se=search $0 266#alias mo=help month 267#alias ng=, nods gravely. 268#alias nh=, nods happily. 269#alias ns=, nods sadly. 270#alias p=' open 271#alias rf=rem staff 272#alias rn=read next 273#alias rs=rem stone 274#alias rt=rem ticket 275#alias sms=, smiles sadly. 276#alias ss=spam 277#alias fade=emote quickly wraps in his cloak and vanishes. 278#alias matz=emote unwraps his cloak and materializes. 279#alias fun={fade;$0;matz} 280#alias tele={fade;tp $0;matz} 281#alias title=chan title the Hungry 282#alias tm=t Meryaten $0 283#alias wavall=, waves good-bye to you. 284#alias wf=weather fog 285#alias wg=weather global 286#alias wh=where human 287#alias wk={wake;st} 288#alias wl=weather local 289#alias wr={wake;rest} 290#alias grz=na --- === *** C O N G R A T U L A T I O N S !! *** === --- 291#alias lin={#lines $0;chan height $0} 292#alias lv=na --- === *** L E V E L !! *** === --- 293#alias macintosh={#bind ~home ^[OH=eq;#bind ~~home ^[O@=eq;#bind ~F01 ^[OP=#key F01;#bind ~F02 ^[OQ=ww;#bind ~F03 ^[OR=wq;#bind ~F04 ^[OS=examine;#bind ~F05 ^[m=now;#bind ~+ ^[Ok=open patch;#bind ~~F05 ^[[16~=now} 294 295 296#alias listadd=#for (\@0=1; *$$1:\@0 && $$1:\@0!=*13; \@0++) #exe ("#mark "+$$1:\\@0+"="+$$2)} 297#alias listclear={#for (\@0=1; *$$1:\@0 && $$1:\@0!=*13; \@0++) #exe ("#mark "+$$1:\\@0+"=");#($$1="")} 298#alias elb={listclear Elbereth;#ac +elbereth;t elbereth list} 299#alias elblist=#print ("Elf Enemies: "+$Elbereth) 300#alias sauronclean={#for (\@0=1; *\$-1:\@0; \@0++) #($-1=$-1:<\\@0<.2+" "+$-1:>(\\@0+1))} 301#alias pk={listclear Sauron;#ac +sauron0;#ac +sauron1;t sauron list} 302#alias pklist=#print ("PKillers: "+$Sauron) 303#action >-elbereth ^Elbereth Gilthoniel tells you 'Elf Enemies: &1'={#($Elbereth=\$1);listadd -5 -6;#ac -elbereth;#print} 304#action >-sauron2 ^ &1more to come.'={#($Sauron+=$-1=\$1<.3+",");sauronclean;#ac -sauron2;listadd -3 -4;#($Sauron+=$-1, $-1="");#print} 305#action >-sauron1 ^Sauron tells you 'My Envoys: &1={#($Sauron=$-1=\$1<.2+",");sauronclean;#ac -sauron0;#ac -sauron1;#ac +sauron2;listadd -3 -4;#($Sauron=$-1);#print} 306#action >-sauron0 ^Sauron tells you 'My Envoys: &1more to come.'={#($-1=\$1<.3+",");sauronclean;#ac -sauron0;#ac -sauron1;listadd -3 -4;#($Sauron=$-1);#print} 307 308#action >+disappear disappears into nothing.= 309#action >+exp ^Needed: $1 xp={#print;#if (\@1=-$1, !@oldxp) #(@oldxp=@xp=\@1);#print ("Exp: "+%(\@1-@xp)+" from last score, "+%(\@1-@oldxp)+" from start of session");#(@xp=\@1)} 310#action >+hunt *&1* leaves $2={#mark $2=bold;#print;#mark $2=} 311#action >+save Saving=#print ("---> "+\$0+" <---") 312#action >-someone ^Your blood freezes as you hear $1 =#if (\$1!="The" && \$1!="the" && \$1!="A" && \$1!="a" && \$1!="An" && \$1!="an") #print 313#action >+Willow A sudden drowsiness overcomes you, you yawn and...={#print;wk} 314 315#mark sitting=bold 316#mark resting=bold 317#mark sleeping=bold 318#mark Room: =bold 319#mark tells you=underline 320#mark YOU=bold red 321#mark is dead! R.I.P.=bold 322#mark glows with a bright light!=bold 323#mark victim shocked=bold 324#mark You feel a watchful eye=bold 325 326#mark The corpse of *&*=bold 327#mark *an Orc*=bold yellow on red 328#mark *$ the Orc*=bold yellow on red 329#mark *a Troll*=bold cyan on yellow 330#mark *$ the Troll*=bold cyan on yellow 331#mark *a Human*=blue on cyan 332#mark *$ the Human*=blue on cyan 333#mark *$ the Numenorean*=blue on cyan 334#mark *$ the Black Numenorean*=blue on cyan 335#mark *a Dwarf*=bold cyan on magenta 336#mark *$ the Dwarf*=bold cyan on magenta 337#mark *an Elf*=blue on green 338#mark *$ the Elf*=blue on green 339#mark *a Hobbit*=bold yellow on blue 340#mark *$ the Hobbit*=bold yellow on blue 341#alias mumecolor={change col all default;change col shout bold yellow;change col damage bold red;change col hit bold blue} 342#alias nocolors={#mark *an Orc*=inverse;#mark *$ the Orc*=inverse;#mark *a Troll*=inverse;#mark *$ the Troll*=inverse;#mark *a Human*=inverse;#mark *$ the Human*=inverse;#mark *$ the Numenorean*=inverse;#mark *$ the Black Numenorean*=inverse;#mark *a Dwarf*=inverse;#mark *$ the Dwarf*=inverse;#mark *an Elf*=inverse;#mark *$ the Elf*=inverse;#mark *a Hobbit*=inverse;#mark *$ the Hobbit*=inverse} 343#alias colors={#mark *an Orc*=bold yellow on red;#mark *$ the Orc*=bold yellow on red;#mark *a Troll*=bold cyan on yellow;#mark *$ the Troll*=bold cyan on yellow;#mark *a Human*=blue on cyan;#mark *$ the Human*=blue on cyan;#mark *$ the Numenorean*=blue on cyan;#mark *$ the Black Numenorean*=blue on cyan;#mark *a Dwarf*=bold cyan on magenta;#mark *$ the Dwarf*=bold cyan on magenta;#mark *an Elf*=blue on green;#mark *$ the Elf*=blue on green;#mark *a Hobbit*=bold yellow on blue;#mark *$ the Hobbit*=bold yellow on blue} 344 345#bind >del ^[[P=&del-char-right 346#bind A-bs ^[[071q=&clear-line 347#bind A-del ^[[M=&kill-to-eol 348#bind A-left ^[[160q=&begin-of-line 349#bind A-return ^[[100q=&to-history 350#bind A-right ^[[169q=&end-of-line 351#bind M-B ^[b=&prev-word 352#bind M-D ^[d=&del-word-right 353#bind M-F ^[f=&next-word 354#bind M-backsp ^[=&del-word-left 355#bind M-bs ^[^H=&del-word-left 356#bind M-tab ^[^I=&complete-line 357#bind ^2 ^[[186q={s;hide} 358#bind ^3 ^[[194q={d;hide} 359#bind ^4 ^[[174q={w;hide} 360#bind ^6 ^[[192q={e;hide} 361#bind ^8 ^[[182q={n;hide} 362#bind ^9 ^[[190q={u;hide} 363#bind ^A ^A=&begin-of-line 364#bind ^B ^B=&prev-char 365#bind ^D ^D=&del-char-right 366#bind ^E ^E=&end-of-line 367#bind ^F ^F=&next-char 368#bind ^K ^K=&kill-to-eol 369#bind ^L ^L=&redraw-line 370#bind ^N ^N=&next-line 371#bind ^P ^P=&prev-line 372#bind ^Q ^Q=&clear-line 373#bind ^S ^S=#capture 374#bind ^T ^T=&transpose 375#bind ^V ^V=#stop 376#bind ^W ^W=&to-history 377#bind ^X ^X=#exe ("#capture emergency"+%@emergency++) 378#bind ^Z ^Z=&suspend 379#bind ^bs ^[[085q=&del-word-left 380#bind ^del ^[[142q=&del-word-right 381#bind ^left ^[[159q=&prev-word 382#bind ^right ^[[168q=&next-word 383#bind ^tab ^[[072q=&complete-line 384#bind backsp =&del-char-left 385#bind bs ^H=&del-char-left 386#bind del ^[[3~=jo 387#bind down ^[OB=&next-line 388#bind end ^[[4~=jt 389#bind enter ^[OM=flee 390#bind home ^[[1~=stat 391#bind ins ^[[2~=time 392#bind left ^[OD=&prev-char 393#bind lf ^J=&enter-line 394#bind pgdwn ^[[6~=jh 395#bind pgup ^[[5~=score 396#bind return ^M=&enter-line 397#bind right ^[OC=&next-char 398#bind tab ^I=&complete-word 399#bind up ^[OA=&prev-line 400#bind ~^Q ^[~q=&clear-line 401#bind ~^S ^[~s=#capture 402