Label.tf: Difference between revisions
Appearance
/label grabs information from identify and labels an item |
seperated identify, spams less, is pluggable |
||
| Line 1: | Line 1: | ||
To see the results without actually labeling just use "/label <item>" while not standing at Edmuntrillion the ent. When you're confident, go to the ent and do something like "remove all.acitem" and "/for c 1 16 /label %c.acitem" ;) | To see the results without actually labeling just use "/label <item>" while not standing at Edmuntrillion the ent. When you're confident, go to the ent and do something like "remove all.acitem" and "/for c 1 16 /label %c.acitem" ;) | ||
<BR><BR> | <BR><BR> | ||
New version: | |||
* seperated identify stuff into [[identify.tf]] so you'll need that too, | |||
* uses [[verbose.tf]] to /echo stuff to the screen so you'll need that too | |||
* kinda supports treasure/light | |||
* produces less spam in the room, it uses a get instead of a say to grab the keyword | |||
* implements a -x<command on exit> option much like the identify script to make it useful for other scripts. | |||
<pre> | You should have TINYPREFIX set in your config file, pointing at the directory with tf scripts like | ||
<pre>/set TINYPREFIX=~/tinyfugue/</pre> | |||
Probable issue: If your identify lag is less than 0.3 second the script will mess up in loops. So no Imm support here ;p | |||
; | |||
<pre> | |||
;Bug reports, suggestions and/or diffs are appreciated, '''sulfar''' _AT_ ''inbox'' +DOT+ ''com'' | |||
; label.tf | |||
/ | /loaded __SULFAR__/label.tf | ||
/ | /eval /require -q %{TINYPREFIX}identify.tf | ||
/eval /require -q %{TINYPREFIX}verbose.tf | |||
/ | /echo -aCyellow %% /label <item> Label item | ||
/echo -aCyellow %% [-x<command>] execute command after label | |||
;Current label format: | |||
; | |||
;armor: l<level> b<base> [<enchant>] [<etch>] | |||
;weapon: l<level> <min>-<avg>-<max> <hr>/<dr> w<weight> [<etch>] | |||
;bow: l<level> <min>-<avg>-<max> [<hr>hr] [ds<drawstrength>] [<etch>] | |||
;container: l<level> c<capacity> w<weight> [<etch>] | |||
;light: l<level> [<etch>] | |||
;treasure l<level> [<etch>] | |||
;Set to 0-3 to override system verbosity level | |||
;Set to -100 to disable script verbosity level and keep system verbosity level | |||
;see verbose.tf | |||
/verbose -s-100 label | |||
/def -i | /def -i label_init = \ | ||
/set label_keyword=%;\ | |||
/set label_string= | |||
/ | /label_init | ||
/def -i | /def -i label = \ | ||
/if (!getopts("x:", "")) /return 0%; /endif%; \ | |||
/set label_post %{opt_x}%;\ | |||
/verbose -o%{verbosity_label} -l1 - -aCcyan %%% /%0: Labeling. Post command is %{label_post}%;\ | |||
/identify -e"get %1labeleok" -x/label_identify_done %1 | |||
/def -i -p900 -F -mregexp | ;Setting global variable identify_grab to make /label work in loops | ||
;That's ok because the last identify comes after this trigger and sets | |||
; identify_grab to 0 anyways. | |||
/def -i -p900 -F -mregexp -t"I see no ([^ ]+)labeleok here." label_keyword = \ | |||
/set identify_grab 1%;\ | |||
/label_init%;\ | |||
/set label_keyword %{P1}%;\ | |||
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Got keyword, %{label_keyword} | |||
/def -i - | /def -i label_identify_done = \ | ||
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Compiling label string and labeling.%;\ | |||
/ | /label_compile%;\ | ||
/do_label%;\ | |||
/if (label_post !~ "") /eval %{label_post}%; /endif | |||
/def -i - | /def -i label_compile = \ | ||
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Compiling label string... %;\ | |||
/if (identify_type =~ "armor")\ | |||
/set label_string l%{identify_level}%;\ | |||
/set label_string %{label_string} b%{identify_armor_class}%;\ | |||
/if (identify_enchant_armor<0) \ | |||
/set label_string %{label_string} %{identify_enchant_armor}%;\ | |||
/endif%;\ | |||
/elseif (identify_type =~ "weapon")\ | |||
/set label_string l%{identify_level}%;\ | |||
/set label_string %{label_string} %{identify_dam_min}-%{identify_dam_avg}-%{identify_dam_max}%;\ | |||
/if ((identify_hr>0)|(identify_dr>0))\ | |||
/set label_string %{label_string} $[identify_hr+identify_enchant_weapon]/$[identify_dr+identify_enchant_weapon]%;\ | |||
/endif%;\ | |||
/set label_string %{label_string} w%{identify_weight}%;\ | |||
/elseif (identify_type =~ "bow")\ | |||
/set label_string l%{identify_level}%;\ | |||
/set label_string %{label_string} %{identify_dam_min}-%{identify_dam_avg}-%{identify_dam_max}%;\ | |||
/if (identify_hr>0)\ | |||
/set label_string %{label_string} $[identify_hr+identify_enchant_bow]hr%;\ | |||
/endif%;\ | |||
/if (identify_ds !~ "") \ | |||
/set label_string %{label_string} ds%{identify_ds}%;\ | |||
/endif%;\ | |||
/elseif (identify_type =~ "container")\ | |||
/set label_string l%{identify_level}%;\ | |||
/set label_string %{label_string} c%{identify_capacity}%;\ | |||
/set label_string %{label_string} w%{identify_weight}%;\ | |||
/elseif (regmatch("light|treasure", identify_type))\ | |||
/set label_string l%{identify_level}%;\ | |||
/endif%;\ | |||
/if (identify_etch !~ "") \ | |||
/set label_string %{label_string} %{identify_etch}%;\ | |||
/endif | |||
/def -i | /def -i do_label = \ | ||
/if (regmatch ("armor|weapon|bow|container|light|treasure", identify_type))\ | |||
/verbose -o%{verbosity_label} -l1 - -aCcyan %%% /%0: Labeling %{label_keyword} %{label_string}%;\ | |||
label %{label_keyword} %{label_string}%;\ | |||
/else /verbose -o%{verbosity_label} -l1 - -aCyellow %%% /%0: I have no idea how to label %{label_keyword} of type %{identify_type}, sorry.%;\ | |||
/endif | |||
/ | |||
</pre> | </pre> | ||
[[Category: TinyFugue Scripting]] | [[Category: TinyFugue Scripting]] | ||
Revision as of 03:58, 11 October 2008
To see the results without actually labeling just use "/label <item>" while not standing at Edmuntrillion the ent. When you're confident, go to the ent and do something like "remove all.acitem" and "/for c 1 16 /label %c.acitem" ;)
New version:
- seperated identify stuff into identify.tf so you'll need that too,
- uses verbose.tf to /echo stuff to the screen so you'll need that too
- kinda supports treasure/light
- produces less spam in the room, it uses a get instead of a say to grab the keyword
- implements a -x<command on exit> option much like the identify script to make it useful for other scripts.
You should have TINYPREFIX set in your config file, pointing at the directory with tf scripts like
/set TINYPREFIX=~/tinyfugue/
Probable issue: If your identify lag is less than 0.3 second the script will mess up in loops. So no Imm support here ;p
;Bug reports, suggestions and/or diffs are appreciated, '''sulfar''' _AT_ ''inbox'' +DOT+ ''com''
; label.tf
/loaded __SULFAR__/label.tf
/eval /require -q %{TINYPREFIX}identify.tf
/eval /require -q %{TINYPREFIX}verbose.tf
/echo -aCyellow %% /label <item> Label item
/echo -aCyellow %% [-x<command>] execute command after label
;Current label format:
;
;armor: l<level> b<base> [<enchant>] [<etch>]
;weapon: l<level> <min>-<avg>-<max> <hr>/<dr> w<weight> [<etch>]
;bow: l<level> <min>-<avg>-<max> [<hr>hr] [ds<drawstrength>] [<etch>]
;container: l<level> c<capacity> w<weight> [<etch>]
;light: l<level> [<etch>]
;treasure l<level> [<etch>]
;Set to 0-3 to override system verbosity level
;Set to -100 to disable script verbosity level and keep system verbosity level
;see verbose.tf
/verbose -s-100 label
/def -i label_init = \
/set label_keyword=%;\
/set label_string=
/label_init
/def -i label = \
/if (!getopts("x:", "")) /return 0%; /endif%; \
/set label_post %{opt_x}%;\
/verbose -o%{verbosity_label} -l1 - -aCcyan %%% /%0: Labeling. Post command is %{label_post}%;\
/identify -e"get %1labeleok" -x/label_identify_done %1
;Setting global variable identify_grab to make /label work in loops
;That's ok because the last identify comes after this trigger and sets
; identify_grab to 0 anyways.
/def -i -p900 -F -mregexp -t"I see no ([^ ]+)labeleok here." label_keyword = \
/set identify_grab 1%;\
/label_init%;\
/set label_keyword %{P1}%;\
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Got keyword, %{label_keyword}
/def -i label_identify_done = \
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Compiling label string and labeling.%;\
/label_compile%;\
/do_label%;\
/if (label_post !~ "") /eval %{label_post}%; /endif
/def -i label_compile = \
/verbose -o%{verbosity_label} -l2 - -aCyellow %%% /%0: Compiling label string... %;\
/if (identify_type =~ "armor")\
/set label_string l%{identify_level}%;\
/set label_string %{label_string} b%{identify_armor_class}%;\
/if (identify_enchant_armor<0) \
/set label_string %{label_string} %{identify_enchant_armor}%;\
/endif%;\
/elseif (identify_type =~ "weapon")\
/set label_string l%{identify_level}%;\
/set label_string %{label_string} %{identify_dam_min}-%{identify_dam_avg}-%{identify_dam_max}%;\
/if ((identify_hr>0)|(identify_dr>0))\
/set label_string %{label_string} $[identify_hr+identify_enchant_weapon]/$[identify_dr+identify_enchant_weapon]%;\
/endif%;\
/set label_string %{label_string} w%{identify_weight}%;\
/elseif (identify_type =~ "bow")\
/set label_string l%{identify_level}%;\
/set label_string %{label_string} %{identify_dam_min}-%{identify_dam_avg}-%{identify_dam_max}%;\
/if (identify_hr>0)\
/set label_string %{label_string} $[identify_hr+identify_enchant_bow]hr%;\
/endif%;\
/if (identify_ds !~ "") \
/set label_string %{label_string} ds%{identify_ds}%;\
/endif%;\
/elseif (identify_type =~ "container")\
/set label_string l%{identify_level}%;\
/set label_string %{label_string} c%{identify_capacity}%;\
/set label_string %{label_string} w%{identify_weight}%;\
/elseif (regmatch("light|treasure", identify_type))\
/set label_string l%{identify_level}%;\
/endif%;\
/if (identify_etch !~ "") \
/set label_string %{label_string} %{identify_etch}%;\
/endif
/def -i do_label = \
/if (regmatch ("armor|weapon|bow|container|light|treasure", identify_type))\
/verbose -o%{verbosity_label} -l1 - -aCcyan %%% /%0: Labeling %{label_keyword} %{label_string}%;\
label %{label_keyword} %{label_string}%;\
/else /verbose -o%{verbosity_label} -l1 - -aCyellow %%% /%0: I have no idea how to label %{label_keyword} of type %{identify_type}, sorry.%;\
/endif