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