#alias === #nop === Pk-system and general triggers for Arctic.mud.org === All subsystems imported should be loaded in this order === Usable on tintin++1.84+ === lav@iki.fi === === See base.char for getting started === === Defined general aliases #var versiongeneral 11 === === - User settable variables === - Define these directly at least the first time using the system === $file - tintinrc-file (tsave) === $main - current main tank === $me - char name === $pass - password === $e - enemy === $p - reserved (for partner, unimplemented) === $bag - primary container === $chest - secondary container (less valuable stuff) === $bagf - food container (dumpable) === $bagc - component container (dumpable, support in cast-aliases) === $flask - Secondary emergency healing potion === $jet - Emergency WOR potion (if recalls unoperable) === $wepA,$wepB - Primary and secondary weapons === bash -alias- Primary method of attack (for pk-triggers) === === - semi-automagic (set by commands or system) === === $war - opposite of zoning mode, danger of pk === $hunt - pk_triggers active. Implies $war mode. === $afk - AwayFromKeyboard-mode, automatic escape-operations === $heal - Primary emergency healing potion === $ontick - Reports ticks if $ongroup === $pathfollow- Follow temp-path fast === $showstatus- Show enemies/etc above prompt-line === $c - charmie === $cc - secondary charmie === $leader - Leader allowed to command us in obey-mode === $obey - Automagic obey-leader mode === $r - secondary enemy === - === - system set variables (user queryable) === - === $rec* - Automatically stored events (shouts/tells/etc) === === - internal state variables === === $fight - we fighting currently === $act - If reset, certain actions temporarily off till next prompt === $giver - The last one who gave us something === $ongroup - We're member of a group === $resting - Position resting or standing === $isfly - Are we flying currently === $canfly - Do we have 'can_fly' item === === --- Global status & usage system --- === --- By default required by all components --- === --- assumed to be updated when ever a sub is changed -- #alias {nil} {#nop} #alias dobell {#bell} #alias dobellinf {dobell} #alias dobellwarn {#bell} #alias dobellafk {#if $afk dobell} #alias dobellpan {#bell} === === Some aliases are use in several components. === Many dummy aliases defined, that shold be overridden automagically by === the component providing the functionality === #alias offwar nil;#alias offhunt nil;#alias usehunt nil;#alias offgroup nil;#alias panoff nil;#alias offobey nil #alias offsteal nil;#alias settextwar nil;#alias settexthunt nil;#alias dofollow nil;#alias endpath nil;#alias hpcheck nil #alias endpath nil === #var versionmain 13 === --version control logic (doesn't work in startupfile)-- #alias errver {#showme ERROR: Subsystem %1 requires %2 %3!} #alias modrequire {#ifex %2 {#if {$%%2<%%3} {errver %%1 %%2 %%3}} {errver %%1 %%2 %%3}} === #alias condvar {#ifex %1 {#nop} {#var %%1 {%%2}}} condvar act 1 condvar afk 0 condvar fight 0 condvar obey 0 condvar war 0 condvar hunt 0 condvar e dummy;condvar r dummy;condvar c dummy;condvar p dummy condvar leader dummy #alias {resetvar} {#var e dummy;#var r dummy;#var giver dummy;#var c dummy;#var leader dummy;#var isfly 0;#var canfly 1;#var resting 0} #alias {resetstate} {poff;offwar;offhunt;panoff;offgroup;offobey;onact} #alias {resetcom} {usehunt} #alias {reset} {resetvar;resetstate;resetcom;;checkstatus} #alias stat {#alias statver;#alias statinfo;#alias statvar;#alias statobey;#alias statall} #alias statver {#var version*;#nop} #alias statinfo statver #alias statvar {#var ongroup;#var showstatus;#var isfly;#var canfly;#var obey;#var resting;#var ontick;#var leader;#var e;#var r;#var c;#var p;var bag;#var bagf;#var bagc;#var chest;#var jet;#var flask;#var heal;#var giver;#nop} #alias statobey {#var obey;#var leader} #alias statall {pkreport;#showme --- ;statdown;#showme ---;statvar;#showme ---;statobey;#var pathfollow} #alias bash BASH === System support aliases #alias on {#ifex %1 {#if !$%1 {#var %1 1}} {#var %1 1}} #alias off {#ifex %1 {#if $%1 #var %1 0} {#var %1 0}} #alias set {#ifstr {%%2 } { } {#ifex %1 {#nop} {#var %1 1}} {#var %0}} #alias unset {#ifex %1 #unvar %1} #alias toggle {#if {$%1} {#var %1 0} {#var %1 1}} #alias tog toggle #alias inc {#ifex %1 {#math %%1 {$%%%1+1}} {#var %%1 0}} #alias dec {#ifex %1 {#math %%1 {$%%%1-1}} {#var %%1 0}} === -- State and help system #alias addstate {listadd statelist %1} #alias state {listforeach statelist exec} === === === === -- Entering and initializing #var versionenter 2 === #action {^Welcome to the land of Krynn.} {doenter} {5} #alias doenter doenter1 #alias {doenter1} {reset;fly stop;score;syst;eq;mem} === #alias {dologging} {doinit;#log /tmp/nil_%0} #action {^You were last connected %1 %2 %3 %4 %5 %6} {dologging $me_%2_%3_%4} {5} #alias {doinit} {#mess var} === === ---------- === -- list support system === -- === -- For most list-commands only one instance may exist (so no nesting) === ---------- === --------------------------------------------------------------------------- #var versionlist 2 #func lastresult {#nop} #func listfind {#ifma {* %2 *} { $%1 } {#result 1} {#result 0}} #func listempty {#ifex %1 {#ifma {$%1} { } {#result 1} {#result 0}} {#result 1}} #func listgetfirst {#if @listempty{%%1} {#result {null}} {#geti zitgf 1 $%1;#result {$zitgf}}} #func listgetlast {#if @listempty{%%1} {#result {null}} {#getl zlen $%1;#geti zit {$zlen} $%1;#result {$zit}}} #func listpop {#var zitlp @listgetfirst{%%1};listremfirst %1;#result {$zitlp}} #func listpull {#var zitlpl @listgetlast{%%1};listremlast %1;#result {$zitlpl}} #func listlen {#if @listempty{%%1} {#result 0} {#getl zleng $%1;#result {$zleng}}} #alias listremfirst {#if !@listempty{%%1} {#var zlist $%1;#var %1 { };#getl zlen {$zlist};#if {$zlen>1} {#loop {2,$zlen} {#geti zit %0 $zlist;#var %1 $%1 $zit}}}} #alias listremlast {#if !@listempty{%%1} {#var zlist $%1;#var %1 { };#getl zlen {$zlist};#math zlen {$zlen-1};#if {$zlen>0} {#loop {1,$zlen} {#geti zit %0 $zlist;#var %1 $%1 $zit}}}} #alias listadd {#ifex %1 {#nop} {#var %1 { }};#var %1 ${%%1} %2} #alias listaddnew {#if @listfind{%%1 %%2} {#nop} {listadd ${%%1} %2}} #alias listremove {#var zlist $%1;#var %1 { };#getl zlen {$zlist};#loop {1,$zlen} {#geti zit %0 $zlist;#ifma {%2} {$zit} {#nop} {#var %1 $%1 $zit}}} #alias listrever {#var zlist $%1;#var %1 { };#getl zlen {$zlist};#loop {$zlen,1} {#geti zit %0 $zlist;#var %1 $%1 $zit}} #alias listforeach {#var zcom { };#getl zlen $%1;#loop {1,$zlen} {#geti zit %0 $%1;#var zcom {$${zcom};%%2 $$zit}};listexec {$zcom}} #alias listprocess {#var zarg @listpop{%%1};#ifstr {$zarg} {null} {#nop} {#var zexec %%2 $zarg;doexec zexec;listprocess %%0}} #alias listprocessx {#var %2 @listpop{%%1};#ifstr {$%%2} {null} {#nop} {doexec {%%%3};listprocessx %%0}} #alias listforeachx {#getl zlenem $%1;#loop {1,$zlenem} {#geti zitem %0 $%1;%2}} #alias listclear {#var %1 { }} #alias listinit {#ifex %1 {#nop} {listclear %%1}} #alias listexec {#nop $zcom} #alias listpush {#ifex %1 {#nop} {#var %1 { }};#var %1 %2 $%1} #alias listdelete {#ifex %1 #unvar %1} #alias doexec {#ifex %1 $%1} === List support commands === Use: listforeach list_name look //Forms a list of commands, then executes them === Use: listforeachx listname {tell $zitem here we go} === Use: listprocessx arg_list_name arg_name com_string_name === Use: listpush listname $value - Add to beginning === Use: listadd listname $value - Add to end/get from end === Use: @listpop{lista} - Get/remove first value === [TODO]: listrep listname $value - Add to list, but replace if already exists === ---------------------------------------------- === - Common commands (implemented with lists) modrequire listcom versionlist 2 #var listcom 1 #alias exec {#var zdo %0;doexec zdo} #alias foreach {#var {zflist} {%%1};listprocess zflist {%%2}} #alias foreachx {#var {zxlist} {%%2};#var {zxcom} {%%3};listprocessx zxlist {%%1} zxcom} === Use: foreach {$list} command / foreach {smile ponder} {exec} === Use: foreachx arg {$list} {tell $arg hi} === === -- Hooks -- === Can't pass interal '{}' to hook-alias === 'addhook prompt {smile;panic}' works ok #var versionhooks 5 === Usages: {addhook blah smile;addhook blah peer;remhook blah smile} === : dohook blah version hooks 3 #alias statehooks {#showme System hooks <$systemhooks>, waiting for execution:;#var *hookx*} addstate statehooks #alias do {%0} #alias sethook {delhook %1;addhook %1 {%%2}} #alias addhook {#ifex %1hookcount {#nop} {inithook %%1};addhookp %1 {%%2}} #alias dohook {#ifex {%%1hookcount} {#if {${%%%1hookcount}>0} {dec %%%1hookcount;exechook %%%1;dohook %%%1} {delhook %%1}}} #alias hooks {#var *hooks*;#var *hookx*} === Hook-implementation #alias addhookp {#var %1hookx${%%1hookcount} {%%2};inc %1hookcount} #alias remhook {#ifex {%%1hookcount} {#loop {0,${%%%1hookcount}} {#ifma {${%%%%1hookx%%0}} {%%%2} {#var {%%%%1hookx%%0} {#nop}}}}} #alias exechook {do ${%%1hookx${%%%1hookcount}};#unvar %1hookx${%%1hookcount}} #alias inithook {#var %1hookcount 0} #alias delhook {#unvar %1hook*} === ---------- === System hooks condvar {systemhooks} {prompt fight fightend norm ticked ticking memmed cry} #act {Your blood freezes as you hear someone's death cry.} {dohook cry} === === ---------- === -- list support for pksystem === ---------- modrequire lpk versionlist 1 #var versionlpk 1 #alias lpki {listinit lpklist} #alias lpkadd {#if !@listfind{lpklist %%1 dummy} {listadd lpklist %%1 dummy}} #alias lpkadd1 {lpkadd %1;#var lpkact%1 bash} #alias lpkadd2 {lpkadd %1;#var lpkact%1 %2} #alias lpkadd3 {lpkadd %1;#var lpkact%1 steal_%2} #alias lpkrem1 {#if !@listempty{lpklist} {listremove lpklist %%1 dummy};#ifex lpkact%1 #unvar lpkact%1} #alias lpkshow {lpki;#showme PKlist : $lpklist;lpkfindspecs;lpkshowspecs} #alias lpkfindspecs {#var lpkshowvar { };#if !@listempty{lpklist} listforeach lpklist lpkshowspec} #alias lpkshowspec {#ifex lpkact%1 {#ifstr ${lpkact%%1} {bash} {#nop} {#var lpkshowvar $lpkshowvar %1->${lpkact%%1}}} {#nop}} #alias lpkshowspecs {#showme PKspecs: $lpkshowvar} === #alias lpk {lpkshow} #alias lpkclear {#if !@listempty{lpklist} listforeach lpklist unpk;#unvar lpkact*} #alias pkclear lpkclear === ----------- === --- iota-pk_system (getting obsolote) === ----------- === === requires varsionlpk 1+ #ifex versionlpk {#nop} {#alias lpkadd1 nil;#alias lpkrem1 nil} #var versionpkill 13 === condvar hunt 0 condvar war 0 condvar act 1 condvar steal 0 condvar afk 0 #alias offwar {off war;settextwar} #alias onwar {on war;settextwar} #alias offhunt {off hunt;settexthunt} #alias onhunt {on hunt;on war;settexthunt} #alias {ebash} {#var e %1;bash %1} #alias eba ebash #alias dokill {#if ($hunt&&$act) {offhunt;onwar;rbash %1;#tabadd %1}} #alias dokillfight {#if ($hunt&&$act) {onwar;#var r %1;#alias + bash %1}} #alias dokillfight {dokill %1} #alias dosettarg {#act {^%%1 arrives from} dokill %1;#act {^%%1 flies in} dokill %1;#act {%%1%0 here.} dokill %1;#act { carrying %%1.} dokill %1;#action {^%%1 %0 here, fighting} dokillfight %1;lpkadd1 %1} #alias rempk1 {#unact *arrives from*;#unact *flies in*;#unact * here.*;#unact *carrying*;lpkrem1 %1} #alias pk1 {onhunt;dosettarg %1 dummy} #alias unpk1 {#unact *%1*;lpkrem1 %1} #alias pkreport pkreport2 #alias pkreport1 {#act *carrying*.;#alias bash;#var hunt;#var steal;#var war;#var fight;#var afk;#var act} #alias pkreport2 {lpkshow;#showme Hunt=$hunt, War=$war, Steal=$steal, Afk=$afk, Fight=$fight, Act=$act;#alias bash} === ----------- === --- kappa-pk_system, LISTS and targetting individuals ------------------- === ----------- === requires versionpk 13+, versionlpk 1+ #var versiontarget 1 modrequire target versionpk 13 modrequire target versionlk 1 #ifex versionlpk {#nop} {#lpkadd2 nil;#alias lpkrem2 nil} #alias _bash bash #alias dotarget {#if ($hunt&&$act) {offhunt;onwar;%2 %1;#tabadd %1;#var r %1;#nop}} #alias dotargetfight {dotarget %1 %2} #alias dosettarget {#act {^%%1 arrives from} dotarget %1 %2;#act {^%%1 flies in} dotarget %1 %2;#act {%%1%0 here.} dotarget %1 %2;#act { carrying %%1.} dotarget %1 %2;#action {^%%1 %0 here, fighting} dotargetfight %1 %2;lpkadd2 %1 %2} #alias pk2 {onhunt;dosettarget %1 %2 _bash _bash} #alias ppk pk2 #alias pkk pk2 === === === === -- Lampda pk-system, requires LISTS === -- Steal-system #var versionsteal 10 === requires versionlpk1 === === #alias doarrived docase %1 #alias doarrived nil #alias dostole nil #alias dofailedsteal son #ifex versionlpk {#nop} {#alias lpkadd3 nil;#alias lpkrem3 nil} === condvar steal 1 #act {^%1 %2 flies in} {nil} {6} #act {^%1 %2 arrives from} {nil} {6} #act {^%1 flies in} {doarrived %1} {7} #act {^%1 arrives from} {doarrived %1} {7} #act {^%1 flies in} {doarrived %1} {7} #act {^%1 arrives from} {doarrived %1} {7} #act {arrives from %1, carrying %2.} {doarrived %2} {7} #act {^A %0flies in} {nil} {5} #act {^A %0arrives from} {nil} {5} #act {^The %0flies in} {nil} {5} #act {^The %0arrives from} {nil} {5} #alias onsteal {on steal} #alias offsteal {off steal} #alias son onsteal #alias soff offsteal #alias dosteal {#if ($steal&&$act) {#var steal 0;steal %1 %2;#alias + bash %2;#tabadd %2}} #alias docase {#if ($steal&&$act) {#var steal 0;case %1;#var r %1;#alias + ebash %1;#alias 0 {steal %1 %%1}}} #alias dosetsteal {#act {^%%2 arrives from} dosteal %1 %2;#act {^%%2 flies in} dosteal %1 %2;#act {%%2%0 here.} dosteal %1 %2;#act {carrying %%2.} dosteal %1 %2;lpkadd3 %2 %1} #alias ps1 {#var steal 1;dosetsteal %1 %2 dummy dummy} #alias unps1 {#unact *%1*} #alias psreport pkreport #alias ps ps1 #alias pss psreport #alias unps {unps1 %1 dummy} #act {^Got it.} dostole #act {^Bingo} dostole #act {^You've been caught} dofailedsteal #act {notices you!} dofailedsteal === === === --- Prevent scan from triggering systems -- === === === requires versionmain 2+ #var versionscan 7 #act {^Looking %1:} {offact} #act {u utter the words, 'clairvoyance'} {offact} === -- Prevent corpses from triggering the system and === protect from fake-triggers -- === #var versionprevent 9 #act {;} {#nop} {1} #act {corpse of %1 lying here.} {nil} {2} #act {^*} {doemote} {2} #act { tells you '} {#nop} {3} #act { shouts '} {#nop} {3} #act { yells '} {#nop} {3} #act { says '} {#nop} {3} #alias dotold nil #alias doshouted nil #alias doemote nil #alias doyelled nil #alias dosaid nil === === === ---PK-Usage--- #var versionusage 5 === === #alias class.$class file sets usehunt/usechar etc === druid #alias k {kill %1;#var e %1} #alias onpk {onhunt} #alias offpk {offhunt;offsteal} #alias pon onpk #alias poff offpk #alias rempk rempk1 #alias pk pk1 #alias ppk pk2 #alias pke {pk %1;#var e %1} #alias unpk {unpk1 %1 dummy} #alias pks pkreport #alias pks1 pkreport1 #alias pks2 pkreport2 === === -- Support for secondary ($r)/primary ($e) targets #var versionsecond 3 #alias lr {look $r} #alias le {look $e} #alias ke {kill $e} #alias kr {kill $r} #alias er {targ $r $e} #alias rbash {bash %1;#var r %1;#alias + bash %1} #alias bashr {bash $r} #alias targ {targs %1 %2 dummy dummy} #alias targs {#ifstr {%%1} {dummy} {#nop} {#var e %%1};#ifstr {%%2} {dummy} {#nop} {#var r %%2}} #alias rtarg {#var r %1} === === -- Random/misc reactions (inc summon #var versionrand 8 #var versionsummon 3 === === #alias dolook dolook1 #alias dolook1 {#alias + bash %1;#var r %1} #alias dolook2 {#alias + bash %1;look %1} #alias dolook3 {#alias + bash %1;#var e %1} #act {^%1 disappears in a puff of smoke.} {nil} {4} #action {^%1 %2appears in a puff of smoke.} {dolook %1} {7} #action {^%1 %2appears in the middle of the room.} {dolook %1} {7} #act {%1 %2has entered the game.} {dolook %1} {7} #action {^Some smoke blows into the room and slowly forms into %1.} {dolook %1} #action {^A shimmering portal opens in front of you, and %1 steps from it.} {dolook %1} #action {'%1 has summoned you!} {nil} {2} #action {^'%1 has summoned you!} {nil} {2} #action {^%1 has summoned you!} {dosummoned} {4} #alias {dosummoned} {nil} condvar giver dummy #action {%1 %2gives you } {#var giver %1} {7} #alias ungive {give %0 $giver} === === === -- We're down -- modrequire versiondown versionhps 3 #var versiondown 24 condvar resting 0 condvar isfly 0 condvar canfly 1 condvar fight 0 condvar rising 0 #alias settextfly {#if (!$isfly&&!$canfly) #var textfly {!F};#if ($isfly||$canfly) #var textfly { }} #alias statdown {#var isfly;#var canfly;#var resting} #alias statfly statdown #alias setresting {on resting} #alias setcanfly {#if !$canfly {#var canfly 1;settextfly}} #alias setisfly {#if !$isfly {#var isfly 1;settextfly}} #alias unsetresting {off resting;off rising} #alias unsetcanfly {#if $canfly {#var canfly 0;settextfly}} #alias unsetisfly {#if $isfly {#var isfly 0;settextfly}} #alias setstanding unsetresting #alias dobashed dobashed1 #alias dobashed1 {setresting;dobellpan;#if !@ishplow dost} #alias dobashed2 {setresting;dost;dobellpan} #alias dost dost1 #alias dorise {#if !$rising {setresting;dost;#var rising 1}} #alias {st} {stand;#if ($canfly&&!$isfly&&!$fight) fly} #alias {dost1} {#if {$war == 0} st;#if {$war} dobellpan} #action {Come on! I'm relaxing!} {dorise} #action {are sent SPRAWLING as } {dobashed} {5} #action {are sent sprawling as } {dobashed} {5} #action {small whirlwind crashes into you, pummeling your entire body} {dobellwarn} {5} #action {momentum of your kick brings you crashing to the ground} {dobashed} {setresting;dost} #action {are thrown to the ground by the force of the earthquake} {setresting;dost} #action {knocks you back a few feet and you fall to the ground.} {setresting;dost} #action {u try to bash} {setresting;st} #action {can't do this sitting!} {dorise} #action {can't do that while sitting.} {dorise} #action {rest your tired bones but stay aloft.} {setresting;setisfly} #action {rise up off the ground.} {setisfly} #action {take a seat in mid-air.} {setresting;setisfly} #action {rest your tired bones.} {setresting;unsetisfly} #action {sit down and rest your tired bones.} {setresting;unsetisfly} #action {u jump up and flap your arms wildly, achieving nothing!} {unsetcanfly;unsetisfly} #action {u can't seem to stop flying} {unsetcanfly} #action {u sink gently to the ground.} {unsetcanfly;unsetisfly} #action {u feel much heavier.} {unsetisfly;#if $canfly fly} #action {u float slowly to the ground.} {setcanfly;unsetisfly} #action {u should probably stand up!} {setresting;dost} #action {u are resting.} {setresting} #action {u are standing.} {unsetresting} #action {u are flying.} {setisfly} #action {u're already flying!} {setisfly} #action {u sit down.} {setresting} #action {u stand up.} {unsetresting} #action {u are already standing} {unsetresting} #action {U STAND UP} {unsetresting} #action {u stop meditating and stand up.} {unsetresting} #action {u lift your arms skyward and begin to float.} {setcanfly;setisfly} #action {u end your flight, returning to the ground.} {setcanfly;FlY} === === -- Obey the leader -- #var versionobey 3 condvar obey 0 condvar leader dummy #alias stateleader {#showme Leader is $leader, obediance obey=$obey} addstate stateleader #alias led {setled %1 dummy} #alias setled {#var leader %1} #alias onobey {#if !$obey {#var obey 1};settextobey} #alias offobey {#if $obey {#var obey 0};settextobey} #alias doobey {#if {$obey && !$war} {%0;dobellinf}} #alias settextobey {#if $obey {#var textobey {OBEY}};#if !$obey {#var textobey { }}} #action {%1 is the new leader of $leader's group.} {led %1} #action {^You are now a member of %1's group.} {led %1} #action {$leader tells your group 'stand} {doobey st} {4} #action {$leader tells your group 'st'} {doobey st} {4} #action {$leader tells your group 'rest'} {doobey r} {4} #action {$leader tells your group 'mem'} {doobey r} {4} #action {$leader tells your group 'status} {doobey #if {$versionhealauto >= 5} gtellstatus} {3} #action {$leader tells you 'status} {doobey #if {$versionhealauto >= 5} tellstatus $leader} {1} #action {$leader tells you 'rest} {doobey r} {1} #action {$leader tells you 'mem} {doobey r} {1} #action {$leader tells you 'st} {doobey st} {2} #action {$leader says 'st'} {doobey st} {4} #action {$leader says 'stand'} {doobey st} {4} #action {$leader says 'mem'} {doobey r} {4} #action {$leader says 'rest'} {doobey r} {4} === === -- Fighting -- === Name is a bit misleading, rather a status/prompt logic #var versionfighting 29 === provided by later modules: #alias hpcheck #nop;#alias endpath #nop === condvar fight 0 condvar afk 0 condvar act 1 condvar texthunt { } condvar textwar { } condvar status 0 condvar showstatus 1 condvar textafk { } condvar textfly { } condvar textact { } === Requires Prompt: COND=on #act {^%1H %2V %3X %4C %5Mem%6>} {dopromptnorm %1} {8} #act {^%1H %2V %3X %4C %5Mem%6Exits:} {dopromptnorm %1} {8} #act {^%1H %2V %3X %4C%5>} {dopromptnorm %1} {8} #act {^%1H %2V %3X %4C%5Exits:} {dopromptnorm %1} {8} #act {^%1H %2V %3X %4C [Me:} {dopromptfight %1} {7} #alias doshowme #showme %1 %2 %3 %4 %5 %6 %7 %8 %9 #alias showstatus {#if ($afk|$hunt|$war|$showstatus) {doshowme $textfly $textwar $texthunt $textafk E:$e R:$r $secstotick}} #alias checkstatus {settextwar;settexthunt;settextact;settextfly} #alias dopromptnorm {dohook prompt;dohook norm;offfight;showstatus;onact;hpcheck %1} #alias dopromptfight {dohook prompt;dohook fight;onfight;dofight;showstatus;onact;dobellafk;endpath;hpcheck %1} #alias onfight {#if !$fight {#var fight 1;dofightbegin;dobellinf}} #alias offfight {#if {$fight} {#var fight 0;dofightend}} #alias onstatus {on showstatus} #alias offstatus {off showstatus} #alias onact {#if !$act {#var act 1;settextact}} #alias offact {#if {$act} {#var act 0;settextact}} #alias dofightbegin dofightbegin1 #alias dofightend {dohook fightend;dofightend1} #alias dofightend1 {#nop} #alias dofightbegin1 {#nop} #alias dofight dofight1 #alias dofight1 {dobellafk} === === #alias settext {#if $%1 {#ifstr {$text%%%1} {%%%2} {#nop} {#var text%%%1 {%%%%2}}} {#ifstr {$text%%%1} {%%%3} {#nop} {#var text%%%1 {%%%%3}}}} #alias settexthunt {#if $hunt {#var texthunt {-PK-}};#if !$hunt {#var texthunt { }}} #alias settextwar {settext war {-WAR-} { }} #alias settextact {settext act { } {-!ACT-}} === -- AFK-logic -- modrequire afk versionfighting 28 #var versionafk 24 condvar textafk { } condvar afk 0 #alias onafk {on afk;settextafk %1 $textafk --AFK--} #alias offafk {off afk;settextafk dummy} #alias settextafk {settext afk {%%1} { }} #alias afk onafk --AFK-- #alias afkon {panoff;onafk --AFK--} #alias afkoff {offafk --AFK--} === === -Recording functions === #var versionrecord 2 condvar record 1 #alias staterecord {#showme Recording set as record=$record for } addstate staterecord #alias dorecord {#if $record {#ifex %%1count {#nop} {#var %%1count 100};#var rec%%1${%%%1count} %%2%%3;#math %%1count {${%%%1count}+1}}} #alias recordclear {#ifex %1count {#unvar %1count;#unvar rec%1*} {#showme -- Record %1 was empty!}} #alias recordshow {#ifstr {%%1} {all} {#var rec*} {#var rec%1*}} #alias recs {recordshow all} === - Activated records: says/shouts/tells/decays/frags #act {%1 tells you '%2} {dotold {%%1: %%2}} {2} #act {%1 shouts '%2} {doshouted {%%1: %%2}} {2} #act {%1 yells '%2} {doshouted {%%1:Y %%2}} {2} #act {%1 says '%2} {dosaid {%%1: %%2}} {2} #act {%1 tells your group '%2} {dosaid {%%1:G %%2}} {2} #act {%1 >>>>>>>>>>>DECAYS<<<<<<<<< in your hands.} {dotick;dodecayed {%%1}} #act {%0 decays in your hands.} {dotick;dodecayed {%%1}} {5} #act {%1 is destroyed.} {dodestroyed {%%1}} {5} #alias dodecayed {dorecord decay {%%0}} #alias dodestroyed {dorecord dest {%%0} #alias doshouted {dorecord shouts {%%0}} #alias dosaid {dorecord says {%%0}} #alias dotold {dobellafk;dorecord tells {%%0}} === - Records use functions #alias {recdel} {recordclear shouts;recordclear says;recordclear tells;recordclear dest;recordclear decay} === #alias {stells} {recordshow tells;#nop} #alias {tells} {recordshow tells;recordclear tells;#nop} #alias {says} {recordshow says;recordclear says;#nop} #alias {ssays} {recordshow says;#nop} === #alias {yells} {shouts} #alias {shout} {sshouts} #alias {sshouts} {recordshow shouts;#nop} #alias {shouts} {recordshow shouts;recordclear shouts;#nop} === #alias {sdest} {sdests} #alias {sdests} {recordshow dest;#nop} #alias {dest} {dests} #alias {dests} {recordshow dest;recordclear dest;#nop} === #alias {decay} {sdecays} #alias {sdecays} {recordshow decay;#nop} #alias {decays} {recordshow decay;recordclear decay;#nop} === === #alias endpanic {#if {$afk} panoff} #alias {panon} {#alias dofightbegin {panic1};onafk --PANIC1--}} #alias {panon2} {#alias dofightbegin {panic2};onafk --PANIC2--}} #alias {panon3} {#alias dofightbegin {panic3};onafk --PANIC3--}} #alias {panic1} {recite recall me;ocami;ocarec;grec} #alias {panic2} {grec;qrec;crec} #alias {panic3} {poof;jet;st;#3 flee;qrec;grec;poof} #alias {panoff} {#alias dofightbegin dofightbegin1;#alias dofight dofight1;offafk}} #alias {panoff2} {panoff} #alias {panoff3} {panoff} #act {%1 focuses harshly on you and utters the words, 'dispel magic'.} {offact} {4} #act {You utter the words, 'dispel magic'} {offact} {4} #act {%1 focuses harshly on you and utters the words, '%2'.} {onfight;dofight} #act {%1 focuses harshly on you and utters some strange words.} {onfight;dofight} #act {You disappear.} {#if $afk {grec}} #act {find it!} {dobellafk} {6} #alias recite {#if $afk {panoff};offact;Recite %0} #alias backstab {endpanic;BackStab} #alias kill {endpanic;endpath;Kill} #alias cast {endpanic;endpath;CaSt} #alias bash {endpanic;endpath;BASH} === -- HitPoint watch === requires versionfighting 24+ and versionafk 16+ === modrequire hps versionfighting 24 modrequire hps versionafk 16 #var versionhps 3 condvar hpact 0 condvar afk 0 condvar hplimit 0 condvar hits 0 condvar hpcases 0;condvar hpcaselimit 2 #alias hpcheck {#var hits %1;#if {%1<$hplimit} {#if {$hpcases<$hpcaselimit} {#math hpcases {$hpcases+1}} {#if !$hpact {#var hpact 1;hplow}}} {#if $hpact {#var hpact 0};#if $hpcases {#var hpcases 0}}} #alias hplow {#if ($afk) {dohpafk};#if (!$afk) {dohpact}} #func ishplow {#if {$hits<$hplimit} {#result 1} {#result 0}} #alias dohpact {dohpact1} #alias dohpact1 {#bell;#showme -- -- -- -- NO LOW HPS ACTION -- -- -- --} #alias dohpafk {dohpafk1} #alias dohpafk1 {#bell;#showme -- -- -- -- HP AFK ACTIVATED -- -- -- --} === -- Deaths and such -- #var versiondeath 6 === #alias {peace} {nil} #action {R.I.P} {#if $act {dorip;offact}} #action {^You lost %1 experience} {#if $act {doloot;offact}} #action {^You receive %1 exp} {#if $act {doloot;offact}} #action {^You raise a level} {score} #action {will slowly die} {peace} {5} #alias doloot nil #alias dorip nil #alias doloot1 {ec} #alias doloot2 {gcc;ec} #alias doloot3 {gac} #alias setloot {#action {^%%1 is dead!} {get %%2 %%1} {4}} #alias loots {#act {*is dead*}} #alias unloot {#unact {*%%1 is dead*}} === === -- Weapons #var versionweapons 4 condvar wepA {sword} condvar wepB {dagger} condvar shield {shield} condvar nonlight {$wepB} condvar light {lantern} #alias bashoff bashoff1 #alias bashoff1 {rem $shield;ugrab $wepB} #alias bashoff2 {rem $shield;store $light;ugrab $wepB} #alias bashon bashon1 #alias bashon1 {store $wepB;wear $shield} #alias bashon2 {store $wepB;wear $shield;ugrab $light} #alias {env} {envenom $wepA;envenom $wepB} === act {^You start using the %1 as a secondary weapon.} {setoff %1} === act {^You start using the %1.} {setprim %1} #alias setprim setprim1 #alias setoff setoff1 #alias setprim1 {#var wepA %1} #alias setoff1 {#var wepB %1} #alias setprim2 nil #alias setoff2 nil #action {disarms your weapon.} {get $wepA;#if (!$war) wield $wepA} {5} === === -- miscellaneous #var versionmisc 15 #var fight 0 === === === #alias {dest} {#var dest} #substitute {%1decays%2} {%1>>>>>>>>>>>DECAYS<<<<<<<<<%2} #action {A piece of bread} {nil} {4} #action {^%0 >>>>>>>>>>>DECAYS<<<<<<<<< in your hands.} {#var lastdecay %0;dotick} {5} #action {^%0 decays in your hands.} {#var lastdecay %0;dotick} {5} #action {^%1 is destroyed.} {#var dest %1} {5} #action {You notice some movement in the room} {donotice} #alias donotice look #alias donotice1 {bash $e} #alias decay {#var lastdecay;#nop} #alias dest {#var dest;#nop} condvar dest {dummy} condvar lastdecay {dummy} === -- Time/repop related things -- condvar uptime {0 days 0 hours 0 mins} #act {^Uptime : %0 mins} {#var uptime %0 mins} #act {^You have been playing for %1 day(s), %2 hour(s) and %3 minute(s).} {#var playtime %1d%2h%3m} #alias {mark} {#ifstr {%%1 } { } {marks;#nop} {#ifex time%1 {#var time%1 ${time%%1} - $uptime} {#var time%1 $uptime}}} #alias {unmark} {#ifex time%1 {#unvar time%1} {#nop}} #alias {marks} {#var time*;#var uptime;#nop} === #alias jet2 {remove medallion.earth;get medallion.earth $bag;shatter medallion.earth;get recall $bag;give recall elemental;order elemental recite recall $me;#var c elemental} #alias jet3 {remove medallion.earth;get medallion.earth $bag;shatter medallion.earth;order elemental get recall;order elemental recite recall $me;#var c elemental} === condvar lasttell dummy #act {You tell your group} {nil} {4} #act {^You tell %1 '} {#var lasttell %1} #alias {retell} {tell $lasttell %0} #alias ctell retell === === Link test === #alias link {say Link-test 1} #action {You say 'Link-test 1'} {say Link-test 2} #action {You say 'Link-test 2'} {say Link-test 3} #action {You say 'Link-test 3'} {say Link-test 4} #action {You say 'Link-test 4'} {say Link-test 5} === === -- Bags : heals, recalls, etc === #var versionbags 7 === bag -primary container, chest -secondary, discardable, bagf -food === condvar heal vial.pink condvar flask clear.flask condvar jet yellow.potion condvar chest chest condvar bag backpack condvar bagf large.sack condvar food bread #alias statebag {#showme Containers set: chest=$chest, bag=$bag, bagf=$bagf.;#showme Also food=$food, heal=$heal, flask=$flask, jet=$jet} addstate statebag === #alias {qrec} {get recall $bag;recite recall %0 me} #alias {grec} {get glowing.recall $bag;recite recall %0 me} #alias {crec} {get recall $chest;recite recall %0 me} #alias {jet} {get $jet $bag;quaff $jet} #alias {rabbit} {offafk;break rabbit.wand;get rabbit.wand $bag} #alias {bane} {break bane;get bane $bag} #alias {poof1} {offafk;rabbit} #alias {poof2} {offafk;bane} #alias {poof3} {offafk;#9 push device.button} #alias {poof4} {offafk;throw sandstone.rock} #alias poof poof1 === === #action {You are %1 years old.} {offact} #action {^You are thirsty} {#ifex drinking {#nop} {setdrinking;dodrinking;dotick}} #action {^You are hungry} {#ifex eating {#nop} {seteating;doeating;dotick} #action {^You drink } {offact;#unvar drinking} #action {^You eat } {offact;#unvar eating} #alias {score} {eatreset;Score} #alias {eatreset} {#ifex eating #unvar eating;#ifex drinking #unvar drinking} #alias setdrinking {#var drinking 1;addhook ticking {#unvar drinking}} #alias seteating {#var eating 1;addhook ticking {#unvar eating}} #alias doeating doeating1 #alias doeating1 {addhook norm doeat} #alias dodrinking dodrinking1 #alias dodrinking1 {addhook norm dodrink} #alias doeat doeat1 #alias {doeat1} {get 1*\$food \$bagf;eat 1*\$food;tack} #alias {doeat2} {#if (!$fight&&!$war&&!$hunt) {#if $resting dost;cast 'sustenance' me}} #alias dodrink dodrink1 #alias {dodrink1} {#2 drink water} #alias {dodrink2} {nil} #alias {tack} nil === #alias {ff} {quaff $flask} #alias {fff} {get $flask $bag} #alias {ffff} {fff;ff} #alias {qq} {quaff $heal} #alias {qqq} {get $heal $bag} #alias {qqqq} {qqq;qq} #alias {bark} {get white.bag $chest;throw white.bag %0 $me} === #alias {udisp} {get blue.potion $chest;quaff blue.potion} === #alias {bput} {put all.%1 $bag} #alias {bget} {get %1 $bag} #alias {sort} {get all.%0 $bag;put all.%0 $bag} #alias {cget} {get %1 $chest} #alias {cput} {put all.%1 $chest} #alias {csort} {get all.%1 $chest;put all.%1 $chest} #alias {fget} {get %1 $bagf} #alias {fput} {put all.%1 $bagf} #alias {fsort} {get all.%1 $bagf;put all.%1 $bagf} #alias pput {put all.%1 $bagc} #alias pget {get %1 $bagc} #alias psort {get all.%1 $bagc;put all.%1 $bagc} #alias {store} {remove %1;put %1 $bag} #alias {sack} {chest %1} #alias {chest} {remove %1;put %1 $chest} #alias {food} {food1} #alias {food1} {#ifstr {%1 } { } {put all.$food $bagf} {#var food %%1;buy 5*%%1;put all.%%1 $bagf}} #alias {food2} {get all.bread $bagf;ccf;put 6*bread $bagf;drop all.bread} #alias {bbuy} {buy 5*%0;put 5*%0 $bag} #alias {cbuy} {buy 5*%0;put 5*%0 $chest} #alias {fbuy} {buy 5*%0;put 5*%0 $bagf} === #alias {unstore} {get %0 $bag;wear %0} #alias {unsack} {get %0 $chest;wear %0} #alias {uwield} {get %1 $bag;wield %1} #alias {ugrab} {get %1 $bag;Grab %1} #alias {ugive} {get %1 $bag;give %1 %2} #alias {udrop} {get %0 $bag;drop %0} #alias {cgrab} {get %1 $chest;Grab %1} #alias {cstore} {rem %1;put %1 $chest} #alias {drop} {#ifma {%%1} {all} {#showme -- You tried to DROP ALL} {Drop %0}} #alias {give} {#ifma {%%1} {all} {#showme -- You tried to GIVE ALL} {Give %0}} #alias {showinfo} {dobellinf;#showme %0} === #alias {uopen} {unlock %0;open %0} #alias {uclose} {close %0;lock %0} #alias {uget} {unlock %0;open %0;get all %0} #alias {uexa} {uopen %0;exa %0} === #alias {rid} {get identify $chest;recite identify %0} === === -- grouping #var versiongroup 11 condvar ongroup 0 condvar splitday 0 #alias {bold} {bold1} #alias {bold1} {#high bold { %%1 }} #alias unsetgrouped {off ongroup} #alias setgrouped {on ongroup} #alias offgroup unsetgrouped #alias ongroup setgrouped #action {^You are not a member of a group.} unsetgrouped #action { is now a member of your group.} setgrouped #action {^Your group of } {setgrouped} #action {^But you belong to no group.} unsetgrouped #action {^You are now a member of} {setgrouped;dogrouped} #action {^There were %1 %2coins.} {#if $ongroup dosplit %1} #action {A pile of steel coins.} docoins condvar tosplit 2 condvar skim 8 #alias stategroup {#showme Tenths to split to group with 'sps' set as skim=$skim, inwaiting $tosplit coins} addstate stategroup #alias dogrouped {#if $war group} #alias docoins docoins1 #alias docoins1 {#if {!$war&&$act} {get all.coins;offact}} #alias {dosplit} {dosplit3} #alias {dosplit1} {split %1} #alias {dosplit2} {deal %1;dealsplit} #alias {dosplit3} {#var tosplit %1} #alias {dealsplit} {split $sum} #alias sp {split $tosplit;#var tosplit 1} #alias sps {#var tosplit} #alias ssp {deal $tosplit;dealsplit;#var tosplit 1} #alias {deal} {#math sum {$skim * %1 / 10}} #alias {splitcount} {#math splitday {$splitday + $1}} #alias {comp} {#alias rec%1 recite recall %2;#alias r%1 rescue %2;#alias m%1 mc1 %2;bold %2;#tabadd %2} #alias {uncomp} {#unalias rec%1;#unalias r%1;#unalias m%1;unbold %2} #alias {tp} {#tell $p %0} #alias lp {look $p} #alias {recp} {recite recall $p} #alias {recm} {recite recall $main} === === -- board handling (bulletin&wanted) #var versionboarded 4 #alias {offboard} {off checkboard} #alias {onboard} {on checkboard} condvar checkboard {0} #alias {doboard} {onboard;look board;} #alias {docheckboard} {#if $checkboard Who %1} #action {) -- %1} {docheckboard %1} #action {No matches for} {offboard} === === condvar reading 0 #act {^Message%0:} dobeginread #alias {doendread} {#if ($reading) {#ignore;#alias q qscan;setdirsnorm;#var reading 0}} #alias {dobeginread} {#if (!$reading) {#ignore;setdirsread;#var reading 1}} #alias setdirsread {#alias n {doendread;n};#alias e {doendread;e};#alias s {doendread;s};#alias w {doendread;w};#alias d {doendread;d};#alias u {doendread;u}} #alias setdirsnorm {#unalias n;#unalias e;#unalias s;#unalias w;#unalias d;#unalias u} === === -- ticks #var versiontick 12 condvar ontick 0 #alias ontick {on tick} #alias offtick {off tick} === condvar {tickdefault} {61} #var {tick} {$tickdefault} #alias statetick {#showme Ticks: tickdefault=$tickdefault, varifying tick=$tick, secstotick=$secstotick} addstate statetick #alias {dotick} {#if $act {tick_reset;offact}} #alias {inctick} {#math tick {$tick+1}} #alias {dectick} {#math tick {$tick-1}} #alias {domemmed} {nil} #alias {dt} {dotick} #alias {tick_reset} {#ticksize $tick} #alias {doticking} {doticking1} #alias {doticking1} {#if {$ongroup&&$ontick} gt Ticking in some 10 seconds.} #action {^What is your character's name?} {doinittick} {4} #alias {doinittick} {#tickon;#var tick $tickdefault;tick_reset} #alias {doticked} {#nop} #action {#10 SECONDS TO TICK} {dohook ticking;doticking} {5} #action {TICK!!!} {dohook ticked;doticked} {5} #action {#OK NEW TICKSIZE} {dohook ticked} {5} #action {Your studies complete} {dohook memmed;domemmed;dotick} #action {clouds block} {dotick} {6} #action {The darkness marks the end of another day.} {dotick} {6} #action {The rain has stopped} {dotick} {6} #action {content look} {dotick} {6} #action {The rising sun} {dotick} {6} #action {It starts to snow.} {dotick} {6} #action {u feel less righteous.} {dotick} {6} #action {Your detect invisibility wears off.} {#var whopgo 0;dotick} {6} #action {air around you loses} {dotick} {6} #action {dust and blows away.} {dotick} {6} #action {you feel weaker} {dotick} {6} #action {looks really sick, and shivers uncomfortably.} {dotick} {6} #action {The white aura around your body fades.} {dotick} {6} #action {The sun disappears behind the cloudy skies of Krynn.} {dotick} {6} #action {Darkness descends upon the mortals of Krynn.} {dotick} {6} #action {Solinari laughs as his light is obscured from Krynn by clouds.} {dotick} {6} #action {Lunitari is laughing as her light is obscured from Krynn by clouds.} {dotick} {6} === === -- Automatic periodic who-list viewer modrequire whop versionhooks 1 #var versionwhop 3 condvar lines 40 condvar whop 1 condvar whopping 0 #alias {domemmed1} {#if !$afk dost;whopdo;dobellafk} #alias {whopdo} {#var whopgo 1;addhook prompt {#if \$whop&&\$whopgo whop}} #alias {wp} {whop} #alias {whop} {whop1} #alias {whop1} {#if (!$fight&&!$hunt) {whoprep;who;;;;;}} #alias {whop2} {#if (!$fight&&!$hunt) {opt lines 255;whoprep;who;opt lines $lines}} #alias {whoprep} {#var whopping 1} #alias {who} {syst;Who} #alias {whopoff} {#if $whopping {{#var whopping 0}} #alias {whopon} {#if !$whopping {#var whopping 1}} === #action {Mortals} {whogag} #action {Immortals} {whogag} #alias remgag {#ungag {%1}} #alias setgag {#gag {%1}} #alias {whogag} {#if $whopping {setgag;addhook prompt {remgag;#var whopping 0}}} #antisubstitute {%1H %2V %3X %4C} #antisubstitute {Exits} === === === -- charmies #var versioncharmies 8 === - Requires fighting==23+ (with $act support) === - Requires hooks==5+ #alias {ac} {assist $c} #alias {arm} {get %0 $chest;give %0 $c;oca hold %0} #alias {haste} {cha $c} #alias {oca} {order $c %0} #alias {ocam} {get milky $chest;give milky $c;oca quaff milky} #alias {rela} {release $c;offact};#alias relas {release $c;release $cc;#offact} #alias {relap} {release $c;unprep} #alias {prep} {get 2*recall $bag;give 2*recall $c;get milky $chest;give milky $c} #alias {unprep} {get all.milky;get all.dagger;get all.glowing} #alias {et} {#var c $cc;#var cc $c} #alias {doeye} {nil} #alias {doeyein} {doeye %1} #alias {doeyeinif} {doeyeinif2 %1 %2} #alias {doeyeinif1} {#if ($act&&$eye) {doeyein %1;offact}} #alias {doeyeinif2} {#if ($eye) {#var eyemess $eyemess %1};#if ($act&&$eye) {offact;addhook prompt {doeyetell %%2}}} #alias {doeyeout} {nil} #alias {doeyeoutif} {doeyeoutif2 %1 %2} #alias {doeyeoutif1} {#if ($act&&$eye) {doeyeout %1;offact}} #alias {doeyeoutif2} {#if ($eye) {#var eyemess $eyemess %1};#if ($act&&$eye) {offact;addhook prompt {doeyetell2 %%2}}} #alias {doeyetell} {gt Eye enter %1: $eyemess;#var eyemess { };onact} #alias {doeyetell2} {gt Eye left %1: $eyemess;#var eyemess { };onact} #alias {rembi} {get glass.eyedropper $chest;squeeze glass.eyedropper} #action {You wave your hand, and a wizard eye appears from the ether!} {nil} {4} #action {---------: %1 %2has arrived %3 the %4 exit} {doeyeinif %1 %4} {5} #action {---------: %1 %2has left %3 the %4 exit} {doeyeoutif %1 %4} {5} #action {---------: %1 %2teleports away} {doeyeoutif %1 away} {5} #action {---------: %1 %2teleports in} {doeyeinif %1 in} {5} #action {---------: %1 %2teleports out} {doeyeoutif %1 out} {5} #substitute {%1Through your wizard's eye:%2} {%1---------:%2} condvar eye {1} condvar eyemess { } #act {An invisible stalker starts following you.} {#var c stalker} #act {A pech starts following you.} {#var c pech} #act {A sylph starts following you.} {#var c sylph} #act {A fire snake starts following you.} {#var c red.snake} #act {A sandling starts following you.} {#var c sandling} #act {A fire salamander starts following you.} {#var c fire.salamander} #act {A troll starts following you.} {#var c troll} #act {A water weird starts following you.} {#var c water.weird} #act {A nereid starts following you.} {#var c nereid} #act {A manticore starts following you.} {#var c manticore} #act {A grey wyvern starts following you.} {#var c grey.wyvern} #action {stops following you} {#if $act dobellinf} === #alias {ocaa} {oca assist %0} #alias {oa} {ocaa} #alias {ocat} {oca st} #alias {ocab} {oca bash %0 $e} #alias {ocabe} {oca st;oca bash $e} #alias {ocag} {oca get all %0corpse} #alias {ocares} {oca rescue %0 $me} #alias {ocar} {ocares} #alias {ocarec} {oca recite recall %1 $me} #alias {ocarib} {oca recite ribbon %1 $me} #alias {ocaret} {oca retreat} === #alias {o} {oca bash $e} #alias {oo} {oca kill $e} #alias {ooo} {oca assist $main} #alias {pp} {oca rescue $main} #alias {ppp} {oca rescue $me} === === -- pathing === #var versionpath 3 #pathdir {d} {u} #pathdir {e} {w} #pathdir {n} {s} #pathdir {s} {n} #pathdir {u} {d} #pathdir {w} {e} #pathdir {D} {u} #pathdir {E} {w} #pathdir {N} {s} #pathdir {S} {n} #pathdir {U} {d} #pathdir {W} {e} #action {^Alas, you cannot go that way...} {#unpath} {5} #action {^Your mount refuses to move there.} {#unpath} {5} #action {^You are too exhausted.} {#unpath} {5} === === -- Temp path follower -- === === - Requires fighting==18 === === With hooks #var versionpath 6 #var pathfollow 0 #var pathtell 0 modrequire path versionfighting 27 modrequire path versionhooks 3 === condvar pathgodir dummy #alias onpath {#if !$pathfollow {#var pathfollow 1;setdirspath;look}} #alias offpath {#if $pathfollow {#var pathfollow 0;setdirsnorm}} #alias endpath {offpath} #act {An arrow pointing %1 floats nearby} {dopath %1} #act {Your victim's tracks lead %1.} {dopath %1} #{#if $pathtell {addhook norm {pathtell %%%1}}} #alias dopath {#if $pathfollow {addhook norm {#if $pathfollow %%%1}};#if $pathtell {addhook norm {pathtell %%%1}}} #alias pathtell {#if $pathtell gt dirs lead to %1} #alias setdirspath {#alias n {endpath;N};#alias e {endpath;E};#alias s {endpath;S};#alias w {endpath;W};#alias d {endpath;D};#alias u {endpath;U}} #alias setdirsnorm {#unalias n;#unalias e;#unalias s;#unalias w;#unalias d;#unalias u} === === -- Enchant display / warnings-- === #var versiondisplay 15 #alias {bold} {bold1 %1 dummy} #alias {ubold} {ubold1 %1 dummy} #alias {bold1} {#high bold { %%1 }} #alias {ubold1} {#unhigh {*%%1*}} #subs {%1decays%2} {%1>>>>>>>>>>>DECAYS<<<<<<<<<%2} #subs {A possession went missing while you were sleeping.} {-------------A possession went missing while you were sleeping.-----------------} #subs {%1 is blinded %2} {--- %1 is BLINDED %2 ---} #subs {%1 seems to be blinded.%2} {--- %1 is BLINDED %2 ---} #subs {%1 freezes in place.} {--- %1 FREEZES in place. ---} #subs {%1 is stunned!%2} {--- %1 is STUNNED %2 ---} #act {%1 is stunned!} {#var r %1} #act {%1 %2 is stunned!} {nil} {2} #high reverse {You forgot something!} #high reverse {You feel your mind slip away.} #subs {%1 suddenly becomes very quiet.} {--- %1 is SILENCED ---} #subs {%1 focuses on %2 and utters the words, 'cure critical'.} {-- %1 CURED -- %2 --} #subs {%1 focuses on %2 and utters the words, 'heal'.} {-- %1 HEALED -- %2 --} #subs {%1 crashes into %2 in a thundering collision, knocking %3 to the ground!} {%1 CRASHES into -- %2 -- in a thundering collision, knocking %3 to the ground!} #subs {%1crash into %2 in a bone crunching bash, sending %3 sprawling to the ground%4} {%1CRASH into -- %2 -- in a bone crunching bash, sending %3 sprawling to the ground%4} #subs {%1are sent sprawling as%2} {%1are sent SPRAWLING as%2} #subs {%1are thrown to the ground by the force of the earthquake%2} {-DOWN- %1are thrown to the ground by the force of the earthquake%2} #high {bold} {You are sent sprawling as%1.} #high {bold} {The room grows colder as a dark shadow descends upon you.} #high {bold} {%1small whirlwind crashes into you%2} #high {reverse} {You freeze in place, unable to move} #subs {%1 stands up%2} {-- %1 -- STANDS UP%2} #subs {You stand up.%1} {-- YOU STAND UP --%1} #subs {%1 is thrown to the ground by the force of the earthquake.%2} {-- %1 -- is DOWNED, thrown to the ground by the force of the earthquake.%2} #subs {%1The momentum of your kick brings you crashing to the ground%2} {%1 -DOWN- The momentum of your kick brings you crashing to the ground%2} #subs {%1u can't remember how to cast that spell%2} {%1u -- CAN'T REMEMBER -- how to cast that spell%2} #subs {%1obliterates%2} {%1OBLITERATES%2} #subs {%1annihilates%2} {%1ANNIHILATES%2} #subs {A barrier of %1 completely blocks off the %2 exit.} {-- %2 -- barrier of %1 -- %2 --} #high {bold} {annihilate} #high {bold} {obliterate} #high {bold} {ANNIHILATE} #high {bold} {OBLITERATE} #high {bold} {%1knocks you back%2} #high {bold} {obliterates} #high {bold} {OBLITERATES} #high {bold} {%1as you parry%2} #high {bold} {%1go back on the offensive.%2} #high {bold} {The lightning bolt hits%0} #high {bold} {Your lightning bolt%0} #high {bold} {%1your lightning -- bullseye%2} #high {bold} {You feel especially skillful today.} #high {bold} {You feel enlightened.} #high {bold} {in pain as inky black tentacles constrict.} #high {bold} {u scream in pain as inky black tentacles constrict you.} #high {bold} {tentacles constricting you weaken and drop away.} #high {bold} {%0throws webbing all over you!} #high {bold} {u sense the protective magic about you fade away.} #high {reverse} {%1feel your mind slip away.%2} #act {You feel your mind slip away.} {dobellpan} #act {u sense the protective magic about you fade away.} {dotick;dobellinf} {6} === FAILURES #high {reverse} {%1 fails in hitting %0 with a lightning bolt.} #high {reverse} {Your aim is going from bad to worse and the lightning bolt %0} #high {reverse} {%1ur acid spray misses %2} === WARNS #high {reverse} {You sense a presence attempting to spy on you magically.} #act {You sense a presence attempting to spy on you magically.} {dobellwarn} #high {bold} {You feel %1 magically searching%0} #act {You feel %1 magically searching} {dobellwarn} #act {You sense %1 using you for a magical anchor} {dobellinf} #high reverse {You sense %1 summoning you.} #act {You sense %1 summoning you.} {dobellpan} #high {reverse} {You sense %1 attempting to%2} #act {You sense %1 attempting to} {dobellwarn} === COMMUNICATION #high {bold} {shouts} #high {reverse} {tells you } #high {bold} {tracks lead%1} #high {bold} {Your victim's tracks end here.} === Highlighting system === **BROKEN ATM** === Types: trust, friend, ally, neutral, susp, target, enemy === Variables: hilittype$name hilitinfo$name #alias hiadd {#ifstr {%%2 } { } {hiusage} {#ifex hitype%2 {hidoadd %0} {hiusaget %2}} #alias hidoadd {#var hilitinfo%1 %2 $me:%3 %4 %5 %6 %7 %8 %9;hidolit %1 $hitype%2} #alias hidolit {#highlight {%%2} {%%1 }} #alias hiusage {echo Usage: hiadd name type [comment]} #alias hiusaget {echo No type <%1>: trust friend ally neutral susp target enemy} condvar hitypetrust {light green} condvar hitypefriend {yellow} condvar hitypeally {green} condvar hitypesusp {red} condvar hitypetarget {red} condvar hitypeenemy {reverse} #alias hinfo {#var hilitinfo%1;#nop} === Remote highlighting, assures system script ./eon produces enemies/unenemies === === temporary notes: === New useful commands to be utilized slowly: === #revs gotherehere {$goherethere} === #(pre/post)pad targ {$len} {$text} === lists === #ifma {*.txt} {$listing} {yep} {nope} === getl {len} {$list} === geti {item} {$count} {$list} === rand res {$scale} === #func rnd {#random tmp %1;#result $tmp;#unvar tmp};echo @rnd(6) #END ## Local Variables: ## mode: fundamental ## make-backup-files: t ## End: