;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; kbh_tracker.tf ;; ;; ;; ;; Hair@BATmud ;; ;; ;; ;; Because it was always a pain not knowing exactly where you ;; ;; stood in regards to how far along you are with kbh. I ;; ;; decided to write this. I had some help from Favorit@BAT ;; ;; with ideas to figure out how to display the percentages for ;; ;; each song correctly, and help from the TF mailing list ;; ;; with how to save variables in an external file and recall ;; ;; them when needed. ;; ;; To set up the external save file, be sure to cd to your ;; ;; TF scripts directory and do a: ;; ;; touch bard-save.tf ;; ;; then scroll down and change the directory appropriately ;; ;; in both the save and load sections to allow proper tracking. ;; ;; Of course, no warranties or guarantees are implicit or ;; ;; implied by your use of this script. I might be able to ;; ;; help you out with any questions that you have. ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; /REQUIRE textutil.tf ;; Lets set up the total number of successful casts needed for ;; KBHing each song. Added decimal places to force floating ;; point math later on /SET ae_kbh=350.00 /SET ctu_kbh=140.00 /SET cs_kbh=95.00 /SET cth_kbh=280.00 /SET cf_kbh=230.00 /SET db_kbh=400.00 /SET jt_kbh=85.00 /SET kf_kbh=100.00 /SET me_kbh=325.00 /SET mom_kbh=295.00 /SET ma_kbh=100.00 /SET ndl_kbh=202.00 /SET nds_kbh=39.00 /SET pf_kbh=333.00 /SET ssh_kbh=139.00 /SET sso_kbh=220.00 /SET sos_kbh=195.00 /SET su_kbh=200.00 /SET sl_kbh=65.00 /SET um_kbh=165.00 /SET vw_kbh=90.00 /SET vm_kbh=105.00 /SET we_kbh=295.00 /SET kbh_failure=0 ;; Lets save the number of successes to a file. Change the line ;; to make sure you are saving/restoring from the correct location /DEF -i save_kbh = \ /LISTVAR *_success %| /WRITEFILE /users/users2/hair/tf-dir/bard-save.tf ;; Load up saved data /LOAD /users/users2/hair/tf-dir/bard-save.tf ;; Shortened /SUBSTITUTE to make things look prettier in code listing /DEF -i wko = \ /SUBSTITUTE -p %{*} /SET failmsg=(You are disturbed by something, your spell misfires|Your concentration fails and so does your spell|Your concentration drifts away as you think you feel a malignant aura|poke yourself in the eye and your spell |You stumble and lose your concentration|Your spell just sputters|You lose touch with the magic and the spell fizzles|You fail miserably in your spell|You stutter the magic words and fail the spell|Your spell just sputters|Your mind plays a trick with you and you fail in your spell|Something touches you and spoils your concentration ruining the spell|The spell fails) ;; Get the ratio of successes/kbhed and convert to percentage ;; and tack on to the end of the progress statement (doing well, etc) /DEF -i get_kbh_percent = \ /IF (%{2}>0) \ /SET kbh_ratio=$[%{1}/%{2}] %; \ /SET kbh_percent=$[trunc(100.00/%{kbh_ratio})] %; \ /ELSEIF (%{2}==0) \ /SET kbh_percent=0 %; \ /ENDIF %; \ /SET kbh_progress=%{-2} (%{kbh_percent}\%) ;; Whole bunch of IF statements (alas, for lack of a CASE statement) ;; to figure out which song we have a kbh status for /DEF -i display_kbh_percent = \ ;; Send the number for kbh, number of success and progress to get_kbh_percent /IF (%{PL} =~ " Achromatic eyes ") \ /get_kbh_percent %{ae_kbh} %{ae_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Campfire tune ") \ /get_kbh_percent %{ctu_kbh} %{ctu_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Catchy singalong ") \ /get_kbh_percent %{cs_kbh} %{cs_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Clandestine thoughts ") \ /get_kbh_percent %{cth_kbh} %{cth_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Con fioco ") \ /get_kbh_percent %{cf_kbh} %{cf_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Dancing blades ") \ /get_kbh_percent %{db_kbh} %{db_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Jesters trivia ") \ /get_kbh_percent %{jt_kbh} %{jt_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Kings feast ") \ /get_kbh_percent %{kf_kbh} %{kf_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Melodical embracement ") \ /get_kbh_percent %{me_kbh} %{me_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Melody of the misadventu ") \ /get_kbh_percent %{mom_kbh} %{mom_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Musicians alm ") \ /get_kbh_percent %{ma_kbh} %{ma_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Noituloves deathlore ") \ /get_kbh_percent %{ndl_kbh} %{ndl_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Noituloves dischord ") \ /get_kbh_percent %{nds_kbh} %{nds_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Pathfinder ") \ /get_kbh_percent %{pf_kbh} %{pf_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Singing shepherd ") \ /get_kbh_percent %{ssh_kbh} %{ssh_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Soothing sounds ") \ /get_kbh_percent %{sso_kbh} %{sso_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Sounds of silence ") \ /get_kbh_percent %{sos_kbh} %{sos_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Strength in unity ") \ /get_kbh_percent %{su_kbh} %{su_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Sweet lullaby ") \ /get_kbh_percent %{sl_kbh} %{sl_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Uncontrollable mosh ") \ /get_kbh_percent %{um_kbh} %{um_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Venturers way ") \ /get_kbh_percent %{vw_kbh} %{vw_success} %{P0} %; \ /ELSEIF (%{PL} =~ " Vigilant melody ") \ /get_kbh_percent %{vm_kbh} %{vm_success} %{P0} %; \ /ELSEIF (%{PL} =~ " War ensemble ") \ /get_kbh_percent %{we_kbh} %{we_success} %{P0} %; \ /ENDIF ;; End of display_kbh_percent ;; Here is where we substitute in our percentages /DEF -i -F -mregexp -t"not even started " kbh_progress1 = \ /display_kbh_percent %{*} %; \ /wko -aCblack,Cbgred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"no hope " kbh_progress2 = \ /display_kbh_percent %{*} %; \ /wko -aCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"little progress " kbh_progress3 = \ /display_kbh_percent %{*} %; \ /wko -aCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"will take forever " kbh_progress4 = \ /display_kbh_percent %{*} %; \ /wko -aCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"needs more practice " kbh_progress5 = \ /display_kbh_percent %{*} %; \ /wko -aBCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"6000X = rememberance " kbh_progress6 = \ /display_kbh_percent %{*} %; \ /wko -aBCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"one fifth soon! " kbh_progress7 = \ /display_kbh_percent %{*} %; \ /wko -aBCred $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"far far, far away " kbh_progress8 = \ /display_kbh_percent %{*} %; \ /wko -aCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"one fourth someday " kbh_progress9 = \ /display_kbh_percent %{*} %; \ /wko -aCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"keep on trying.. " kbh_progress10 = \ /display_kbh_percent %{*} %; \ /wko -aCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"this is sick, hehe " kbh_progress11 = \ /display_kbh_percent %{*} %; \ /wko -aCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"won't tell you! ;\) " kbh_progress12 = \ /display_kbh_percent %{*} %; \ /wko -aBCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"not even halfway " kbh_progress13 = \ /display_kbh_percent %{*} %; \ /wko -aBCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"someday, my friend " kbh_progress14 = \ /display_kbh_percent %{*} %; \ /wko -aBCyellow $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"seek the knowledge! " kbh_progress15 = \ /display_kbh_percent %{*} %; \ /wko -aCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"on the better side " kbh_progress16 = \ /display_kbh_percent %{*} %; \ /wko -aCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"courage, doing well " kbh_progress17 = \ /display_kbh_percent %{*} %; \ /wko -aCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"dreams do come true " kbh_progress18 = \ /display_kbh_percent %{*} %; \ /wko -aCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"1,000,000X and you see it " kbh_progress19 = \ /display_kbh_percent %{*} %; \ /wko -aBCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"Gm's fax: \+358 0 577795 " kbh_progress20 = \ /display_kbh_percent %{*} %; \ /wko -aBCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"PING! THE magic number! " kbh_progress21 = \ /display_kbh_percent %{*} %; \ /wko -aBCblue $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"still far away " kbh_progress22 = \ /display_kbh_percent %{*} %; \ /wko -aCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"good progress " kbh_progress23 = \ /display_kbh_percent %{*} %; \ /wko -aCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"getting there " kbh_progress24 = \ /display_kbh_percent %{*} %; \ /wko -aCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"warm already " kbh_progress25 = \ /display_kbh_percent %{*} %; \ /wko -aBCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"not so far anymore " kbh_progress26 = \ /display_kbh_percent %{*} %; \ /wko -aBCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"getting hot " kbh_progress27 = \ /display_kbh_percent %{*} %; \ /wko -aBCgreen $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"almost there! " kbh_progress28 = \ /display_kbh_percent %{*} %; \ /wko -aCmagenta $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"on the verge " kbh_progress29 = \ /display_kbh_percent %{*} %; \ /wko -aCmagenta $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"any play now " kbh_progress30 = \ /display_kbh_percent %{*} %; \ /wko -aCmagenta $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -mregexp -t"SooOO CLOSE! " kbh_progress31 = \ /display_kbh_percent %{*} %; \ /wko -aBCmagenta $[pad(%{PL},-27)]$[pad(%{kbh_progress},-27)]%{PR} /DEF -i -F -aCblack,BCbgmagenta -t"You learn the song by heart." kbh_done = \ /BEEP ;; Spell definitions ;; Here is where we set up hooks for the spells. They should work just ;; like command aliases on Batmud. You should be able to just type ;; for example: dis pigeon to cast Noituloves dischord at a pigeon or ;; just type: dis to cast Noituloves dischord with no argument. ;; Arches favour is listed here simply for completeness. Since you ;; only need 1 success to KBH it, it does not call any of the KBH ;; tracking stuff, only here to have all the spells listed. ;;;;;;;;; Achromatic eyes /DEF -ag -h"send {ach}*" spl_achromatic_eyes = \ /SET cast_status=AEYES %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing achromatic eyes at %{-1} %; \ /ELSE /ECHO This song requires a target %; \ /ENDIF %; \ /DEF -F -i -t"*Stand confused with lack*" test_sing = \ /SET ae_success=$$[%%{ae_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET ae_success=$$[%%{ae_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Arches favour /DEF -ag -h"send {af}*" spl_arches_favour = \ /SET cast_status=AFAV %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing arches favour at %{-1} %; \ /ELSE /ECHO This song requires a target %; \ /ENDIF ;;;;;;;;; Campfire tune /DEF -ag -h"send {ct}" spl_campfire_tune = \ /SET cast_status=CTUNE %; \ /SEND @sing campfire tune %; \ /DEF -F -i -t"You sing: \'What child is this*" test_sing = \ /SET ctu_success=$$[%%{ctu_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET ctu_success=$$[%%{ctu_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Catchy singalong /DEF -ag -h"send {cs}*" spl_catchy_singalong = \ /SET cast_status=CS %; \ /SEND @sing catchy singalong %; \ /DEF -F -i -t"You sing a merry song \'Shooting Star\'" test_sing = \ /SET cs_success=$$[%%{cs_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET cs_success=$$[%%{cs_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Clandestine thoughts /DEF -ag -h"send {cth}*" spl_clandestine_thoughts = \ /SET cast_status=CTH %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing clandestine thoughts at %{-1} %; \ /ELSE /ECHO This song requires a target %; \ /ENDIF %; \ /DEF -F -i -t"You sing: \'To all the eyes around me*" test_sing = \ /SET cth_success=$$[%%{cth_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET cth_success=$$[%%{cth_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Con fioco /DEF -ag -h"send {con}*" spl_con_fioco = \ /SET cast_status=CONF %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing con fioco at %{-1} %; \ /ELSE /SEND @sing con fioco %; \ /ENDIF %; \ /DEF -F -i -t"*AeaH*Gdg*" test_sing = \ /SET cf_success=$$[%%{cf_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET cf_success=$$[%%{cf_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Dancing blades /DEF -ag -h"send {db}*" spl_dancing_blades = \ /SET cast_status=DB %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing dancing blades at %{2} use %{-2} %; \ /ELSE /ECHO This spell requires a target %; \ /ENDIF %; \ /DEF -F -i -t"You sing \'Dance my little blades*" test_sing = \ /SET db_success=$$[%%{db_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET db_success=$$[%%{db_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Jesters trivia /DEF -ag -h"send {jt}" spl_jesters_trivia = \ /SET cast_status=JEST %; \ /SEND @sing jesters trivia %; \ /DEF -F -i -t"You sing \'Green skins, white skins*" test_sing = \ /SET jt_success=$$[%%{jt_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET jt_success=$$[%%{jt_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Kings feast /DEF -ag -h"send {feast}" spl_kings_feast = \ /SET cast_status=FEAST %; \ /SEND @party report Singing Kings Feast %; \ /SEND @sing kings feast %; \ /DEF -F -i -t"You sing \'If you look behind a spider web" test_sing = \ /SET kf_success=$$[%%{kf_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET kf_success=$$[%%{kf_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Melodical embracement /DEF -ag -h"send {mele}" spl_melodical_embracement = \ /SET cast_status=MELE %; \ /SEND @party report Singing Melodical Embracement %; \ /SEND @sing melodical embracement %; \ /DEF -F -i -t"You sing \'Once there were two knights*" test_sing = \ /SET me_success=$$[%%{me_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET me_successes=$$[%%{me_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Melody of the misadventurer /DEF -ag -h"send {mom}*" spl_melody_of_the_misadventurer = \ /SET cast_status=MOM %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing melody of the misadventruer at %{-1} %; \ /ELSE /ECHO This spell requires a target %; \ /ENDIF %; \ /DEF -F -i -t"*Young bard he saw*" test_sing = \ /SET mom_success=$$[%%{mom_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET mom_success=$$[%%{mom_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Musicians alm /DEF -ag -h"send {ma}*" spl_musicians_alm = \ /SET cast_status=MALM %; \ /SEND @sing musicians alm %; \ /DEF -F -i -t"You are finished and say*" test_sing = \ /SET ma_success=$$[%%{ma_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET ma_success=$$[%%{ma_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Noituloves deathlore ;;;;;;;;; Noituloves dischord /DEF -ag -h"send {dis}*" spl_noituloves_dischord = \ /SET cast_status=NDIS %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing noituloves dischord at %{-1} %; \ /ELSE /SEND @sing noituloves dischord %; \ /ENDIF %; \ /DEF -F -i -t"You sing: \'dIsCHoRD\'" test_sing = \ /SET nds_success=$$[%%{nds_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET nds_success=$$[%%{nds_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Pathfinder /DEF -ag -h"send {path}*" spl_pathfinder = \ /SET cast_status=PATH %; \ /IF /TEST $[%{-1} !~ ""] %; \ /THEN /SEND @sing pathfinder at %{-1} %; \ /ELSE /SEND @sing pathfinder %; \ /ENDIF %; \ /DEF -F -i -t"You sing: \'Fo fu fe fum*" test_sing = \ /SET pf_success=$$[%%{pf_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET pf_success=$$[%%{pf_success}-1] %%%%;\ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Singing shepherd /DEF -ag -h"send {shep}" spl_singing_shepherd = \ /SET cast_status=SHEP %; \ /SEND @sing singing shepherd %; \ /DEF -F -i -t"You sing \'Squirrel in the dirt*" test_sing = \ /SET ssh_success=$$[%%{ssh_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET ssh_success=$$[%%{ssh_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Soothing sounds /DEF -ag -h"send {sso}" spl_soothing_sounds = \ /SET cast_status=SSOUN %; \ /SEND @party report Singing Soothing Sounds %; \ /SEND @sing soothing sounds %; \ /DEF -F -i -t"You sing \'Now that two decades gone by*" test_sing = \ /SET sso_success=$$[%%{sso_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET sso_success=$$[%%{sso_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Sounds of silence /DEF -ag -h"send {sos}" spl_sounds_of_silence = \ /SET cast_status=SOS %; \ /SEND @sing sounds of silence %; \ /DEF -F -i -t"You sing \'Hear this charm*" test_sing = \ /SET sos_success=$$[%%{sos_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET sos_success=$$[%%{su_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Strength in unity /DEF -ag -h"send {unity}" spl_strength_in_unity = \ /SET cast_status=UNITY %; \ /SEND @party report Singing Strength in Unity %; \ /SEND @sing strength in unity %; \ /DEF -F -i -t"You sing: \'You say you don't believe*" test_sing = \ /SET su_success=$$[%%{su_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET su_success=$$[%%{su_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Sweet lullaby /DEF -ag -h"send {camp}" spl_sweet_lullaby = \ /SET cast_status=CAMP %; \ /SEND @party report Singing Sweet Lullaby %; \ /SEND @sing sweet lullaby %; \ /DEF -F -i -t"You sing \'There is nothing you can do*" test_sing = \ /SET sl_success=$$[%%{sl_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET sl_success=$$[%%{sl_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing /DEF -F -t"You wake up!" camp_interrupted = \ /ECHO -aBCbgblue,Cyellow *** CAMPING INTERRUPTED *** %; \ /SEND look ;;;;;;;;; Uncontrollable mosh /DEF -ag -h"send {mosh}" spl_uncontrollable_mosh = \ /SET cast_status=MOSH %; \ /SEND @sing uncontrollable mosh %; \ /DEF -F -i -t"You roar: \'III want to ROAR*" test_sing = \ /SET um_success=$$[%%{um_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET um_success=$$[%%{um_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Venturers way /DEF -ag -h"send {vway}" spl_venturers_way = \ /SET cast_status=VWAY %; \ /SEND @sing venturers way %; \ /DEF -F -i -t"You sing: \'..a few steps to earthen might*" test_sing = \ /SET vw_success=$$[%%{vw_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET vw_success=$$[%%{vw_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; Vigilant melody /DEF -ag -h"send {vm}" spl_vigilant_melody = \ /SET cast_status=VMEL %; \ /SEND @party report Singing Vigilant Melody %; \ /SEND @sing vigilant melody %; \ /def -F -t"You sing \'Lost I am not but knowledge*" test_sing = \ /SET vm_success=$$[%%{vm_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET vm_success=$$[%%{vm_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing ;;;;;;;;; War ensemble /DEF -ag -h"send {warez}" spl_war_ensemble = \ /SET cast_status=WAREZ %; \ /SEND @party report Singing War Ensemble %; \ /SEND @sing war ensemble %; \ /DEF -F -i -t"You sing: \'War is TOTAL massacre*" test_sing = \ /SET we_success=$$[%%{we_success}+1] %%; \ /EVAL /DEF -F -i -mregexp -aBCred -t"%%%{failmsg}" failchk = \ /SET we_success=$$[%%{we_success}-1] %%%%; \ /UNDEF failchk %%; \ /save_kbh %%; \ /UNDEF test_sing