Difference between revisions of "Affects.tf"
Jump to navigation
Jump to search
(one regexp triggers wasnt really a regexp, anchored some others, and fixes 2 harmless bugs) |
m (small fix for /aff and got_sanc) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
* Spellup ticker on the status line | * Spellup ticker on the status line | ||
− | The tickers grab the duration of sanctuary and holy aura from the affects list, colors them and puts them in a status variable. It then uses [[tick.tf]] to make the tickers count down on the tick. | + | The tickers grab the duration of sanctuary and holy aura from the affects list, colors them and puts them in a status variable. It then uses [[tick.tf]] to make the tickers count down on the tick. That also means that if the tick counter isn't running yet it won't count down ;) |
This script uses [[prompt.tf]] and [[tick.tf]] so you'll need those too. Also, you should have TINYPREFIX set in your config file, pointing at the directory with tf scripts like | This script uses [[prompt.tf]] and [[tick.tf]] so you'll need those too. Also, you should have TINYPREFIX set in your config file, pointing at the directory with tf scripts like | ||
Line 43: | Line 43: | ||
/def -i aff = \ | /def -i aff = \ | ||
/def -t"You are affected by:" _aff_affected = \ | /def -t"You are affected by:" _aff_affected = \ | ||
− | /def -p900 -mregexp -t"^Spell: '%{ | + | /def -p900 -mregexp -t"^Spell: '%{*}.*" _aff_spell%%;\ |
/def -p899 -ag -mregexp -t"^Spell: '" _aff_gag_other_affects%%;\ | /def -p899 -ag -mregexp -t"^Spell: '" _aff_gag_other_affects%%;\ | ||
/repeat -0.3 1 /undef _aff_affected _aff_spell _aff_gag_other_affects%;\ | /repeat -0.3 1 /undef _aff_affected _aff_spell _aff_gag_other_affects%;\ | ||
Line 84: | Line 84: | ||
gtell %%% I am *not* affected by %chkaff_list | gtell %%% I am *not* affected by %chkaff_list | ||
− | ; | + | ;Sanc and spellup tickers on the status line |
− | /def -i -p999 -F -t"You are affected by:" = \ | + | /def -i -p999 -F -t"You are affected by:" tickers_init = \ |
/set sanctuary_duration=%;\ | /set sanctuary_duration=%;\ | ||
/set spellup_duration=%;\ | /set spellup_duration=%;\ | ||
/sanctuary_status%;\ | /sanctuary_status%;\ | ||
/spellup_status | /spellup_status | ||
+ | |||
+ | /tickers_init | ||
/def -i -p999 -F -mregexp -t"^Spell: 'sanctuary' for ([0-9]+) hours.$" aff_sanc = \ | /def -i -p999 -F -mregexp -t"^Spell: 'sanctuary' for ([0-9]+) hours.$" aff_sanc = \ | ||
Line 114: | Line 116: | ||
/elseif (sanctuary_duration <= 5) \ | /elseif (sanctuary_duration <= 5) \ | ||
/set status_attr_var_status_sanctuary Cyellow%;\ | /set status_attr_var_status_sanctuary Cyellow%;\ | ||
− | /else \ | + | /else \ |
/set status_attr_var_status_sanctuary=%;\ | /set status_attr_var_status_sanctuary=%;\ | ||
/endif | /endif | ||
− | /def -i -t"You are surrounded by a white aura." got_sanc = | + | /def -i -t"You are surrounded by a white aura." got_sanc = /aff sanc|holy aura |
;Do the same for holy aura to have a spellup ticker | ;Do the same for holy aura to have a spellup ticker | ||
Line 134: | Line 136: | ||
/spellup_status | /spellup_status | ||
− | /def spellup_status = \ | + | /def -i spellup_status = \ |
/set status_spellup s%{spellup_duration}%;\ | /set status_spellup s%{spellup_duration}%;\ | ||
/if (spellup_duration =~ "") \ | /if (spellup_duration =~ "") \ | ||
Line 144: | Line 146: | ||
/elseif (spellup_duration <= 3) \ | /elseif (spellup_duration <= 3) \ | ||
/set status_attr_var_status_spellup Cyellow%;\ | /set status_attr_var_status_spellup Cyellow%;\ | ||
− | /else \ | + | /else \ |
/set status_attr_var_status_spellup=%;\ | /set status_attr_var_status_spellup=%;\ | ||
/endif | /endif |
Latest revision as of 19:44, 16 November 2008
Provides
- custom colors of affects list
- /aff <spell> shows affects list just for <spell>
- /sick shows how sick you are
- /chkaff shows which spells you are *not* affected by
- Sanctuary ticker on the satus line
- Spellup ticker on the status line
The tickers grab the duration of sanctuary and holy aura from the affects list, colors them and puts them in a status variable. It then uses tick.tf to make the tickers count down on the tick. That also means that if the tick counter isn't running yet it won't count down ;)
This script uses prompt.tf and tick.tf so you'll need those too. Also, you should have TINYPREFIX set in your config file, pointing at the directory with tf scripts like
/set TINYPREFIX=~/tinyfugue/
;Bug reports, suggestions and/or diffs are appreciated, '''sulfar''' _AT_ ''inbox'' +DOT+ ''com'' /require -q lisp.tf /eval /require -q %{TINYPREFIX}prompt.tf /eval /require -q %{TINYPREFIX}tick.tf /echo -aCyellow %% /aff <spell> Shows affects list for <spell> /echo -aCyellow %% /sick Shows how sick you are /echo -aCyellow %% /chkaff Shows which spells you are *not* affected by ;I set my status line in a single command in my config file, this is what it ; looks like with the right variables for this script: ;/status_add -c @more:8:Br @world:9 :1 status_sanctuary:3 :1 status_spellup:3 :1 status_position insert:2 :1 @clock:16 ;Custom color the affects list.. ;Paint all of the affects list green /def -i -p999 -F -PCgreen -mregexp -t"^Spell: '.*" affects_green ;yellow for some spells i might want to check more than others /def -i -p998 -F -PCyellow -mregexp -t"^Spell: '(steel|iron|bark|pass|fly|water|heigh|conc).*" affects_yellow ;white for spells i most probably want to find quickly /def -i -p998 -F -PCwhite -mregexp -t"^Spell: '(sanc|regen|scramble|hand).*" affects_white ;You can "/aff sanc" and it'll only show the sanctuary line ;or use a regexp, "/aff sanc|fren" /def -i aff = \ /def -t"You are affected by:" _aff_affected = \ /def -p900 -mregexp -t"^Spell: '%{*}.*" _aff_spell%%;\ /def -p899 -ag -mregexp -t"^Spell: '" _aff_gag_other_affects%%;\ /repeat -0.3 1 /undef _aff_affected _aff_spell _aff_gag_other_affects%;\ affects ;Just a /sick macro. /def -i sick = \ /set sick_poison 0%;\ /set sick_disease 0%;\ /def -t"You are affected by:" _sick_affected = \ /def -p900 -mregexp -t"^Spell: '(poison|toxin|biotoxin|venom)'.*" _sick_poison = /test $$$[++sick_poison] %%;\ /def -p900 -mregexp -t"^Spell: '(virus|plague)'.*" _sick_disease = /test $$$[++sick_disease]%%;\ /def -p899 -ag -mregexp -t"^Spell: '" _sick_gag_other_affects%%;\ /repeat -0.3 1 \ /undef _sick_affected _sick_poison _sick_disease _sick_gag_other_affects%%%;\ gtell %%%%% I am affected by: %%%sick_poison poisons and %%%sick_disease diseases%;\ affects ;/chkaff will show you the spells from the chkaff_list by which ;you're *not* affected. /def -i chkaff = \ /set chkaff_list= |BR| sanctuary |R| awen foci fortitudes \ invincibility barkskin steel_skeleton iron_skin |W| protection_evil bless holy_aura \ holy_armor armor water_breathing energy_shield displacement body_brace \ mental_barrier calcify_flesh biofeedback anticipate adrenaline_pump concentrate \ pass_door fly shield stone_skin giant_strength |G| frenzy |B| heighten_senses%;\ /set chkaff 1%;\ affects /def -i -E(chkaff) -p100 -F -t"You are affected by:" chkaff_affected = \ /set prompt_exe chkaff /def -i -E(chkaff) -p100 -F -mregexp -t"^Spell: '(.+)' .+" chkaff_spell = \ /let affect=$[replace(" ", "_", {P1})]%;\ /set chkaff_list=$(/remove %affect %chkaff_list) /def -i -E(chkaff) -p991 -mglob -h'send PROMPT_EXE chkaff' chkaff_PROMPT_EXE = \ /set prompt_exe=%;\ /set chkaff 0%;\ gtell %%% I am *not* affected by %chkaff_list ;Sanc and spellup tickers on the status line /def -i -p999 -F -t"You are affected by:" tickers_init = \ /set sanctuary_duration=%;\ /set spellup_duration=%;\ /sanctuary_status%;\ /spellup_status /tickers_init /def -i -p999 -F -mregexp -t"^Spell: 'sanctuary' for ([0-9]+) hours.$" aff_sanc = \ /test sanctuary_duration:=strip_attr({P1})%;\ /sanctuary_status /def -i -p999 -F -t"The protective aura fades from around your body." sanctuary_fades = \ /set sanctuary_duration= /def -i -p991 -F -mglob -h'send TICK_EXE' sanctuary_tick = \ /if (sanctuary_duration > 0) /test --sanctuary_duration%;\ /else /set sanctuary_duration=%;\ /endif%;\ /sanctuary_status /def -i sanctuary_status = \ /set status_sanctuary \$%{sanctuary_duration}%;\ /if (sanctuary_duration =~ "") \ /set status_attr_var_status_sanctuary=%;\ /elseif (sanctuary_duration == 0) \ /set status_attr_var_status_sanctuary BCred%;\ /elseif (sanctuary_duration <= 2) \ /set status_attr_var_status_sanctuary Cred%;\ /elseif (sanctuary_duration <= 5) \ /set status_attr_var_status_sanctuary Cyellow%;\ /else \ /set status_attr_var_status_sanctuary=%;\ /endif /def -i -t"You are surrounded by a white aura." got_sanc = /aff sanc|holy aura ;Do the same for holy aura to have a spellup ticker /def -i -p999 -F -mregexp -t"^Spell: 'holy aura' modifies armor class by -[0-9]+ for ([0-9]+) hours.$" aff_spellup = \ /test spellup_duration:=strip_attr({P1})%;\ /spellup_status /def -i -p999 -F -t"Your Aura of Holiness fades..." spellup_fades = \ /set spellup_duration= /def -i -p991 -F -mglob -h'send TICK_EXE' spellup_tick = \ /if (spellup_duration > 0) /test --spellup_duration%;\ /else /set spellup_duration=%;\ /endif%;\ /spellup_status /def -i spellup_status = \ /set status_spellup s%{spellup_duration}%;\ /if (spellup_duration =~ "") \ /set status_attr_var_status_spellup=%;\ /elseif (spellup_duration == 0) \ /set status_attr_var_status_spellup BCred%;\ /elseif (spellup_duration <= 1) \ /set status_attr_var_status_spellup Cred%;\ /elseif (spellup_duration <= 3) \ /set status_attr_var_status_spellup Cyellow%;\ /else \ /set status_attr_var_status_spellup=%;\ /endif