view ggrtf-ptracker.tf @ 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
children a5da7723ab2f
line wrap: on
line source

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