Label.tf

From AvatarWiki
Revision as of 22:02, 16 September 2008 by Sulfar (talk | contribs) (/label grabs information from identify and labels an item)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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" ;)

Bug reports, suggestions and/or diffs are appreciated, sulfar _AT_ inbox +DOT+ com

Probable issue: If your identify lag is less than half a second the script will mess up.

; Label.tf

;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>]

/echo -aCyellow %% /label <item>      Label item

/def -i label_init_vars = \
    /set label_keyword=%;\
    /set label_string=%;\
    /set id_etch=%;\
    /set id_weight=%;\
    /set id_value=%;\
    /set id_level=%;\
    /set id_object_type=%;\
    /set id_base_armor=%;\
    /set id_enchant_armor=%;\
    /set id_draw_strength=%;\
    /set id_hr=%;\
    /set id_dr=%;\
    /set id_enchant_weapon=%;\
    /set id_enchant_bow=%;\
    /set id_dam_min=%;\
    /set id_dam_max=%;\
    /set id_dam_avg=%;\
    /set id_container_capacity=%;\
    /set _do_label_pid=

/label_init_vars

/def -i label = \
    say %%% Identifying: %1%;\
    c identify %1

/def -i -p900 -F -mregexp -t"You say '%% Identifying: ([^ ]+)'" label_keyword = \
    /label_init_vars%;\
    /set labeling 1%;\
    /set label_keyword %{P1}%;\
    /repeat -0.5 1 /do_label%;\
    /set _do_label_pid=%?

/def -i -p900 -F -E(labeling) -t"You failed your identify due to lack of concentration!" id_failed = \
    /@test _do_label_pid & (kill(_do_label_pid), _do_label_pid:=0)%;\
    say %%% I lost my concentration identifying %{label_keyword}!  Retrying...%;\
    /label %{label_keyword}

/def -i -p900 -F -mregexp -E(labeling) -t"Object '.+ ([^ ]+)' type ([^ ]+), extra flags.+etched." id_object_etched = \
    /set id_object_type %{P2}%;\
    /set id_etch %{P1}%;\

/def -i -p900 -F -mregexp -E(labeling) -t"Object '.+' type ([^ ]+), extra flags*" id_object = \
    /set id_object_type %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"Weight ([^ ]+), value ([^ ]+), level ([^ ]+)." id_level = \
    /set id_weight %{P1}%;\
    /set id_value %{P2}%;\
    /set id_level %{P3}

/def -i -p900 -F -mregexp -E(labeling) -t"Armor class is ([^ ]+)." id_base_armor = \
    /set id_base_armor %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"Damage is ([^ ]+) to ([^ ]+) \(average ([^ ]+)\)." id_dam = \
    /set id_dam_min %{P1}%;\
    /set id_dam_max %{P2}%;\
    /set id_dam_avg %{P3}

/def -i -p900 -F -mregexp -E(labeling) -t"'enchant armor  'Modifies armor class by ([^ ]+) continuous." id_enchant_armor = \
    /set id_enchant_armor %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t" Modifies damage roll by ([^ ]+) continuous." id_dr = \
    /set id_dr %{P1}
/def -i -p900 -F -mregexp -E(labeling) -t" Modifies hit roll by ([^ ]+) continuous." id_hr = \
    /set id_hr %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"'enchant weapon 'Modifies damage roll by ([^ ]+) continuous." id_enchant_weapon = \
    /set id_enchant_weapon %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"'enchant bow    'Modifies hit roll by ([^ ]+) continuous." id_enchant_bow = \
    /set id_enchant_bow %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"Draw strength is ([^ ]+)." id_enchant_draw_strength = \
    /set id_draw_strength %{P1}

/def -i -p900 -F -mregexp -E(labeling) -t"Capacity is ([^ ]+) lbs." id_container_capacity = \
    /set id_container_capacity %{P1}

/def -i do_label = \
    /if (regmatch ("weapon", id_object_type))\
        /set label_string l%{id_level}%;\
        /set label_string %{label_string} %{id_dam_min}-%{id_dam_avg}-%{id_dam_max}%;\
;        /set label_string %{label_string} m%{id_dam_max}%;\
        /if ((id_hr>0)|(id_dr>0))\
            /set label_string %{label_string} $[id_hr+id_enchant_weapon]/$[id_dr+id_enchant_weapon]%;\
        /endif%;\
        /set label_string %{label_string} w%{id_weight}%;\
    /elseif (regmatch ("bow", id_object_type))\
        /set label_string l%{id_level}%;\
        /set label_string %{label_string} %{id_dam_min}-%{id_dam_avg}-%{id_dam_max}%;\
        /if (id_hr>0)\
            /set label_string %{label_string} $[id_hr+id_enchant_bow]hr%;\
        /endif%;\
        /if (id_draw_strength !~ "") \
            /set label_string %{label_string} ds%{id_draw_strength}%;\
        /endif%;\
    /elseif (regmatch ("armor", id_object_type))\
        /set label_string l%{id_level}%;\
        /set label_string %{label_string} b%{id_base_armor}%;\
        /if (id_enchant_armor<0) \
            /set label_string %{label_string} %{id_enchant_armor}%;\
        /endif%;\
    /elseif (regmatch ("container", id_object_type))\
        /set label_string l%{id_level}%;\
        /set label_string %{label_string} c%{id_container_capacity}%;\
        /set label_string %{label_string} w%{id_weight}%;\
    /endif%;\
    /if (id_etch !~ "") \
        /set label_string %{label_string} %{id_etch}%;\
    /endif%;\
    /if (regmatch ("armor|weapon|container|bow", id_object_type))\
        say %%% Labeling %{label_keyword} %{label_string}%;\
        label %{label_keyword} %{label_string}%;\
    /elseif (regmatch ("trash|treasure|key", id_object_type)) \
        say %%% I do not label %{label_keyword} of type %{id_object_type}.%;\
    /else say %%% I have no idea how to label %{label_keyword}, sorry.%;\
    /endif%;\
    /set labeling 0%;\
    /label_init_vars