# HG changeset patch # User Matti Hamalainen # Date 1191556483 0 # Node ID 08b7e9b65c9e81bcfe71b54c25029470d8507087 # Parent 2fc2262c0e3a4d7ac0ff78f9d13233112f3c6e26 New module GgrTF::ProtTracker, a party prots tracker. diff -r 2fc2262c0e3a -r 08b7e9b65c9e ggrtf-pssmangle.tf --- a/ggrtf-pssmangle.tf Fri Oct 05 03:54:10 2007 +0000 +++ b/ggrtf-pssmangle.tf Fri Oct 05 03:54:43 2007 +0000 @@ -1,6 +1,6 @@ ;; ;; GgrTF::PSSMangle - 'pss' output parser/mangler -;; (C) Copyright 2005-2006 Matti Hämäläinen (Ggr) & Jarkko Vääräniemi (Jeskko) +;; (C) Copyright 2005-2007 Matti Hämäläinen (Ggr) & Jarkko Vääräniemi (Jeskko) ;; ;; This file (triggerset) is Free Software distributed under ;; GNU General Public License version 2. @@ -78,8 +78,10 @@ /eval /set gparty_%{_gps}_oepm=$$[gparty_%{_gps}_epm]%;\ /if (regmatch("^([A-Z][a-z]+)",{2}))\ /set gparty_%{_gps}_s=%{P1}%;\ + /set gparty_mtmp=%{gparty_mtmp} %{P1}%;\ /else \ /set gparty_%{_gps}_s=%{2}%;\ + /set gparty_mtmp=%{gparty_mtmp} %{2}%;\ /endif%;\ /set gparty_%{_gps}_pl=%{3}%;\ /set gparty_%{_gps}_hp=%{4}%;\ @@ -91,9 +93,10 @@ /def -i gparty_clear =\ + /set gparty_mtmp=%;\ /for _ccol 1 3 \ - /for _crow 1 3 \ - /gparty_set %%%{_crow}.%%%{_ccol} + /for _crow 1 3 \ + /gparty_set %%%{_crow}.%%%{_ccol} /def -i -F -Egparty_gag -ag -p9999 -msimple -t',-----------------------------------------------------------------------------.' gpss_getbegin =\ @@ -108,6 +111,7 @@ /def -i -F -Egparty_gag -ag -p9999 -msimple -t'`-----------------------------------------------------------------------------\'' gpss_getend =\ /set gparty_gag=0%;\ + /set gparty_members=%{gparty_mtmp}%;\ /gparty_show1%;\ /prexecfuncs %{event_pss_once}%;\ /set event_pss_once= diff -r 2fc2262c0e3a -r 08b7e9b65c9e ggrtf-ptracker.tf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ggrtf-ptracker.tf Fri Oct 05 03:54:43 2007 +0000 @@ -0,0 +1,207 @@ +;; +;; GgrTF::ProtTracker - Party-wide prot tracker +;; (C) Copyright 2007 Matti Hämäläinen (Ggr) based on ideas by Aloysha +;; +;; This file (triggerset) is Free Software distributed under +;; GNU General Public License version 2. +;; +;; NOTICE! This file requires GgrTF (version 0.6.2.1 or later) to be loaded. +;; +/loaded GgrTF::ProtTracker + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Bindings +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +/def -i -F -p9999 -mregexp -t"^([A-Z][a-z]+) tugs eagerly on your sleeve.$" gpprot_tug =\ + /gpprots_show @@emoteto %{P1} + +/prdefgbind -s"pprots" -c"/pprots" + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Main functions +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +/set lst_pprots= + + +/def -p9999 -F -mregexp -t"^([A-Z][a-z]+) [\[\{\(](party|report)[\]\)\}]\: ([A-Za-z _-]+) (on|up|active|activat|ON|UP|ACTIVE|ACTIVAT|On|Up|Active|Activat)" gpprot_on =\ + /let _pplayer=%{P1}%;\ + /let _pstr=$[tolower({P3})]%;\ + /let _pname=$[gpprot_getn(_pstr)]%;\ + /if (_pname!~"")\ + /set pprot_%{_pplayer}_%{_pname}=1%;\ + /set pprot_%{_pplayer}_%{_pname}_t=$[time()]%;\ + /msq PPROTTER: %{_pplayer} -> %{_pname} ON!%;\ + /endif + + +/def -p9999 -F -mregexp -t"^([A-Z][a-z]+) [\[\{\(](party|report)[\]\)\}]\: ([A-Za-z _-]+) (off|down|expires|expired|gone)" gpprot_off =\ + /let _pplayer=%{P1}%;\ + /let _pstr=$[tolower({P3})]%;\ + /let _pname=$[gpprot_getn(_pstr)]%;\ + /if (_pname!~"")\ + /set pprot_%{_pname}=%{_plzn}%;\ + /set pprot_%{_pplayer}_%{_pname}=0%;\ + /set pprot_%{_pplayer}_%{_pname}_t=0%;\ + /msq PPROTTER: %{_pplayer} -> %{_pname} OFF!%;\ + /endif + + +/def -i prdefpartyprot =\ + /if (!getopts("i:n:A:","")) /gerror Invalid prot tracker definition!%;/break%;/endif%;\ + /set lst_pprots=%{lst_pprots} %{opt_i}%;\ + /set pprot_%{opt_i}_n=%{opt_n}%;\ + /set pprot_%{opt_i}_A=$[tolower(opt_A)] + + +/def -i gpprot_getn_do =\ + /let _tms=%{1}%;/shift%;\ + /while ({#})\ + /eval /set _tzqp=^($$[pprot_%{1}_A])$$$%;\ + /if (regmatch(_tzqp,_tms)) /return {1}%;/endif%;\ + /shift%;\ + /done%;\ + /return "" + +/def -i gpprot_getn =\ + /gpprot_getn_do %{1} %{lst_pprots} + + +/def -i gpprot_reset_do =\ + /let _tms=%{1}%;/shift%;\ + /while ({#})\ + /set pprot_%{_tms}_%{1}=0%;\ + /set pprot_%{_tms}_%{1}_t=0%;\ + /shift%;\ + /done + +/def -i gpprot_reset =\ + /while ({#})\ + /gpprot_reset_do %{1} %{lst_pprots}%;\ + /shift%;\ + /done + + +/def -i prgetstimeclock =\ + /if ({1} >= 0)\ + /let _jtime=$[trunc(time()-{1})]%;\ + /let _jtimeh=$[_jtime/3600]%;\ + /let _jtimeq=$[mod(_jtime,3600)]%;\ + /let _jtimem=$[_jtimeq/60]%;\ + /let _jtimes=$[mod(_jtimeq,60)]%;\ + /if (_jtimeh > 0)\ + /let _jstr=%{_jtimeh}:%;\ + /else \ + /let _jstr=%;\ + /endif%;\ + /if (_jtimes < 10)\ + /let _jtimespre=0%;\ + /else \ + /let _jtimespre=%;\ + /endif%;\ + /let _jstr=%{_jstr}$[_jtimeq/60]:%{_jtimespre}$[mod(_jtimeq,60)]%;\ + /return _jstr%;\ + /else \ + /return ""%;\ + /endif + +/def -i gpprots_print_header =\ + /let _pprot_nam=%;\ + /set _pprot_div=%;\ + /while ({#})\ + /eval /set _qtmw=$$[pprot_%{1}_n]%;\ + /let _pprot_nam=%{_pprot_nam}%{_pprot_col_name}$[pad(_qtmw,7)]%{_pprot_col_n}|%;\ + /set _pprot_div=%{_pprot_div}-------+%;\ + /shift%;\ + /done%;\ + /eval %{_pprot_cmd} .--------------+%%{_pprot_div}%;\ + /eval %{_pprot_cmd} | |%%{_pprot_nam}%;\ + /eval %{_pprot_cmd} +--------------+%%{_pprot_div} + + +/def -i gpprots_print_player =\ + /let _zplr=%{1}%;/shift%;\ + /let _zsp=| %{_pprot_col_pname}$[pad(_zplr,-12)]%{_pprot_col_n} |%;\ + /while ({#})\ + /eval /set _qtm=$$[pprot_%{_zplr}_%{1}]%;\ + /eval /set _qtmt=$$[pprot_%{_zplr}_%{1}_t]%;\ + /if (_qtm > 0)\ + /let _tst=$[prgetstimeclock(_qtmt)]%;\ + /else \ + /let _tst=%;\ + /endif%;\ + /let _zsp=%{_zsp}$[pad(_tst,7)]|%;\ + /shift%;\ + /done%;\ + /eval %{_pprot_cmd} %%{_zsp} + + +/def -i gpprots_print_members =\ + /while ({#})\ + /gpprots_print_player %{1} %{lst_pactive}%;\ + /shift%;\ + /done + + +/def -i gpprots_update_member =\ + /let _zplr=%{1}%;/shift%;\ + /while ({#})\ + /eval /set _ztm=$$[pprot_%{_zplr}_%{1}]%;\ + /if (_ztm > 0) /test prlist_insert("lst_pactive",{1})%;/endif%;\ + /shift%;\ + /done + +/def -i gpprots_update_active =\ + /set lst_pactive=%;\ + /while ({#})\ + /gpprots_update_member %{1} %{lst_pprots}%;\ + /shift%;\ + /done + + +/def -i pprots =\ + /if ({#} > 0)\ + /set _pprot_cmd=%{1}%;\ + /set _pprot_col_n=%;\ + /set _pprot_col_name=%;\ + /set _pprot_col_pname=%;\ + /else \ + /set _pprot_cmd=/echo -p%;\ + /set _pprot_col_n=@{n}%;\ + /set _pprot_col_name=@{BCwhite}%;\ + /set _pprot_col_pname=@{Cgreen}%;\ + /endif%;\ + /gpprots_update_active %{gparty_members}%;\ + /gpprots_print_header %{lst_pactive}%;\ + /gpprots_print_members %{gparty_members}%;\ + /eval %{_pprot_cmd} `--------------+%{_pprot_div} + + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Define prots and patterns +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +/prdefpartyprot -i"unstun" -n"Unstun" -A"Unstun|uns" +/prdefpartyprot -i"warez" -n"WarEs" -A"War Ensemble|warez|war" +/prdefpartyprot -i"fabs" -n"Fabs" -A"Force Absorption|fabs|force absorbsion" +/prdefpartyprot -i"aoa" -n"AoA" -A"Armour of Aether|AoA|aether armour|Armor of Aether|GPhys" +/prdefpartyprot -i"fsh" -n"FSh" -A"Force Shield|fsh|fshield" +/prdefpartyprot -i"hw" -n"HW" -A"heavy weight|heavyweight|hw" +/prdefpartyprot -i"pfg" -n"PfG" -A"protection from good|pfg" +/prdefpartyprot -i"unp" -n"Unpain" -A"Unpain|unp" +/prdefpartyprot -i"pfe" -n"PfE" -A"protection from evil|pfe" +/prdefpartyprot -i"flex" -n"Flex" -A"flex shield|flex" +/prdefpartyprot -i"mel" -n"EMelo" -A"Embracing melody|melodical embracement|melody" +/prdefpartyprot -i"sop" -n"SoP" -A"Shield of protection|sop" +/prdefpartyprot -i"macid" -n"MAcid" -A"Acid Shield|GAcid" +/prdefpartyprot -i"mpois" -n"MPois" -A"Shield of detoxification|poison prot|detox|GPoison" +/prdefpartyprot -i"melec" -n"MElec" -A"Lightning Shield|GElec" +/prdefpartyprot -i"masph" -n"MAsph" -A"Aura of Wind|GAsph" +/prdefpartyprot -i"mfire" -n"MFire" -A"Flame Shield|GFire" +/prdefpartyprot -i"mmana" -n"MMana" -A"Repulsor Aura|GMana" +/prdefpartyprot -i"mpsi" -n"MPsi" -A"Psionic Phalanx" +/prdefpartyprot -i"mcold" -n"MCold" -A"Frost Shield|GCold" +/prdefpartyprot -i"displ" -n"Displ" -A"Displacement|blur image" +/prdefpartyprot -i"aoh" -n"AoH" -A"aura of hate|aoh" +/prdefpartyprot -i"sshield" -n"SShld" -A"soul shield|soul_shield|soulshield" +/prdefpartyprot -i"suppr" -n"Suppr" -A"suppress magic|magic suppression|suppress"