Mercurial > hg > batmud > ggrtf
changeset 349:49996a1b406f
v0.5.10.10: Bugfixes in state-saving; Added new module GgrTF::PartyPlacer
courtesy of Aloysha with some cleanups by Ggr (this module requires PSSMangler);
Additional changes in PSSMangler required for PartyPlacer.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 10 Mar 2006 21:54:53 +0000 |
parents | 9ba5345c4f53 |
children | 43f28b64c8b5 |
files | ggrtf-pplacer.tf ggrtf-pssmangle.tf ggrtf.tf |
diffstat | 3 files changed, 84 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ggrtf-pplacer.tf Fri Mar 10 21:54:53 2006 +0000 @@ -0,0 +1,71 @@ +;; +;; GgrTF::PartyPlacer - Automagic party formation saving and restoring +;; (C) Copyright 2006 Aloysha & Matti Hämäläinen (Ggr) +;; +;; This file (triggerset) is Free Software distributed under +;; GNU General Public License version 2. +;; +;; NOTICE! This file requires GgrTF (version 0.5.10 or later) to be loaded. +;; +/loaded GgrTF::PartyPlacer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Find position of a player in party formation +/def gparty_getpos =\ + /let _crow=3%;\ + /while (_crow>0) \ + /let _ccol=3%;\ + /while (_ccol>0) \ + /let _gps=%{_crow}_%{_ccol}%;\ + /eval /set gtestpos=$$[replace(" ","",gparty_%{_gps}_s)]%;\ + /if (gtestpos=~{1}) \ + /return _gps%;\ + /endif%;\ + /let _ccol=$[_ccol-1]%;\ + /done%;\ + /let _crow=$[_crow-1]%;\ + /done%;\ + /return + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Save currently known party formation +/def ppsave =\ + /msq Saving party current party formation ...%;\ + /set gparty_gag=1%;\ + /def gparty_save=1%;\ + @@party status short + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Restore party formation (correct execution requires that you have +;; recently invoked party status so GgrTF knows current party formation) +/def ppreset =\ + /msq Restoring saved party formation ...%;\ + /let _crow=3%;\ + /while (_crow>0) \ + /let _ccol=3%;\ + /while (_ccol>0) \ + /let _gps=%{_crow}_%{_ccol}%;\ + /eval /set gcurpos=$$[replace(" ","",gparty_%{_gps}_s)]%;\ + /eval /set gwantpos=$$[replace(" ","",gparty_%{_gps}_fs)]%;\ + /if (gcurpos!~gwantpos) \ + /if (gcurpos!~"" & gwantpos!~"") \ + @@party swap %{gcurpos} %{gwantpos}%;\ + /let _gfpos=$[gparty_getpos(gwantpos)]%;\ + /set gparty_%{_gfpos}_s=%{gcurpos}%;\ + /set gparty_%{_gps}_s=%{gwantpos}%;\ + /elseif (gwantpos!~"") \ + @@party place %{gwantpos} %{_crow},%{_ccol}%;\ + /let _gfpos=$[gparty_getpos(gwantpos)]%;\ + /set gparty_%{_gfpos}_s=%;\ + /set gparty_%{_gps}_s=%{gwantpos}%;\ + /endif%;\ + /endif%;\ + /let _ccol=$[_ccol-1]%;\ + /done%;\ + /let _crow=$[_crow-1]%;\ + /done%;\ + /set gparty_gag=1%;\ + @@party status short +
--- a/ggrtf-pssmangle.tf Fri Mar 10 18:57:51 2006 +0000 +++ b/ggrtf-pssmangle.tf Fri Mar 10 21:54:53 2006 +0000 @@ -44,14 +44,6 @@ /echo `-----------------------------------------------------------------------' -/def -i gparty_show2 =\ - /echo ,-----------------------------------------------------------------------.%;\ - /msw |$[gparty_sc1(1,1)]|$[gparty_sc1(2,1)]|$[gparty_sc1(3,1)]|%;\ - /msw |$[gparty_sc1(1,2)]|$[gparty_sc1(2,2)]|$[gparty_sc1(3,2)]|%;\ - /msw |$[gparty_sc1(1,3)]|$[gparty_sc1(2,3)]|$[gparty_sc1(3,3)]|%;\ - /echo `-----------------------------------------------------------------------' - - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Utility and grabbing triggers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -103,11 +95,19 @@ /def -i -F -p9999 -msimple -t'`-----------------------------------------------------------------------------\'' pss_getend =\ /if (gparty_gag)\ /substitute -ag%;\ + /set gparty_gag=0%;\ /gparty_show1%;\ - /set gparty_gag=0%;\ + /endif%;\ + /if (gparty_save)\ + /msq saving!%;\ + /set gparty_save=0%;\ + /for _ccol 1 3 \ + /for _crow 1 3 \ + /let _gps=%%%{_crow}_%%%{_ccol}%%%;\ + /eval /set gparty_%%%{_gps}_fs=$$$$[gparty_%%%{_gps}_s]%;\ /endif /def -i -F -p9999 -msimple -t'You are not in a party.' pss_noparty =\ - /set gparty_gag=0 + /set gparty_gag=0%;/set gparty_save=0
--- a/ggrtf.tf Fri Mar 10 18:57:51 2006 +0000 +++ b/ggrtf.tf Fri Mar 10 21:54:53 2006 +0000 @@ -1,8 +1,8 @@ ;; -;; GgrTF v0.5.10.9-svn - TinyFugue script for BatMUD +;; GgrTF v0.5.10.10-svn - TinyFugue script for BatMUD ;; (C) Copyright 2004-2006 Matti Hämäläinen (Ggr Pupunen) ;; -/set ggrtf_ver=0.5.10.9-svn +/set ggrtf_ver=0.5.10.10-svn ;; ;; This triggerset is Free Software distributed under ;; GNU General Public License version 2. @@ -373,7 +373,7 @@ /return%;\ /endif%;\ /endif%;\ - /eval /set _gsa=/eval /set %{gsave_varpref}%{1}=%%{%{gsave_varpref}%{1}}%;\ + /eval /set _gsa=/set %{gsave_varpref}%{1}=%%{%{gsave_varpref}%{1}}%;\ /if (tfwrite(gsave_file,_gsa) < 0)\ /gerror Error writing to file '@{Cyellow}%{gsave_filename}@{n}'!%;\ /return%;\