changeset 678:08b7e9b65c9e

New module GgrTF::ProtTracker, a party prots tracker.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 05 Oct 2007 03:54:43 +0000
parents 2fc2262c0e3a
children a5da7723ab2f
files ggrtf-pssmangle.tf ggrtf-ptracker.tf
diffstat 2 files changed, 214 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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=
--- /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"