Page 4 of 5

Re: Vtank Expressions

Posted: February 20th, 2015, 7:37 pm
by Dmdtt
is there a way to detect if a character has vitea with vtank? trying to refine my DT meta's and being able to tell how much VP I have would be quite useful.

Re: Vtank Expressions

Posted: February 22nd, 2015, 6:14 pm
by Dmdtt
Last night had the idea of adding a readout at the end of each room in Colosseum for the time remaining, I have to say im quite pleased with the result.

basic idea is this start with a stopwatch when the run begins

Code: Select all

ExprAct setvar[StopwatchSecond, stopwatchcreate[]];stopwatchstart[getvar[StopwatchSecond]]
throughout the run in default states 5,7,9 whenever

Code: Select all

Expr stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]>=60 
ExprAct setvar[Counter, getvar[Counter]+60]
this will allow you to get the remaining seconds with 60-StopwatchSecond-Counter

then in default3 you will want something similar to defaut 5,7,9 except it will also set state back to default3 incase you need to do it again before the readout

Code: Select all

Expr stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]>=60 
All: {Expr setvar[Counter, getvar[Counter]+60], Set Meta State: Default3}
then when you see the door message ^A Door appears or ^Congratulations! you use this for the readout, you may want to limit this action to your leader only using inventory item count.

Code: Select all

ExprChat \/f\ Time\ Remaining\ +cstrf[59-stopwatchelapsedseconds[getvar[StopwatchSecond]]/60, \F\0]+m\ +cstrf[60-(stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]), \F\0]+s
the result will be something like this [Fellowship] You say, "Time Remaining 51m 30s"

Re: Vtank Expressions

Posted: February 22nd, 2015, 8:46 pm
by yaroz
Great.. I was gonna suggest this.

Re: Vtank Expressions

Posted: February 23rd, 2015, 4:21 pm
by Dmdtt
just a friendly warning, if you copy/paste a meta expression from this forum that is fairly long for example

ExprChat \/f\ Time\ Remaining\ +cstrf[60-stopwatchelapsedseconds[getvar[StopwatchSecond]]/60, \F\0]+m\ +cstrf[60-(stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]), \F\0]+s

make sure to paste it first into the AC chat first then copy again before you post it into the meta. For some reason if you do not it will cause an error with the metas format and be unloadable until you go into the meta using notepad and remove it.

Re: Vtank Expressions

Posted: February 26th, 2015, 1:35 pm
by Immortalbob
Dmdtt wrote:just a friendly warning, if you copy/paste a meta expression from this forum that is fairly long for example

ExprChat \/f\ Time\ Remaining\ +cstrf[60-stopwatchelapsedseconds[getvar[StopwatchSecond]]/60, \F\0]+m\ +cstrf[60-(stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]), \F\0]+s

make sure to paste it first into the AC chat first then copy again before you post it into the meta. For some reason if you do not it will cause an error with the metas format and be unloadable until you go into the meta using notepad and remove it.
have you tried using the code tag?

Code: Select all

ExprChat \/f\ Time\ Remaining\ +cstrf[60-stopwatchelapsedseconds[getvar[StopwatchSecond]]/60, \F\0]+m\ +cstrf[60-(stopwatchelapsedseconds[getvar[StopwatchSecond]]-getvar[Counter]), \F\0]+s

Re: Vtank Expressions

Posted: February 26th, 2015, 2:34 pm
by Dmdtt
I'll give it a try later if it works I will go back and make the proper edits.

Edit: works perfectly thanks for the suggestion bob!

Re: Vtank Expressions

Posted: March 8th, 2015, 5:35 pm
by Dmdtt
Worked out something rather useful a few nights ago finally got it working properly so I figured id share. Goal was to set my macros to interrupt their hunting whenever killtasks were available. I started this timer by talking to the first killtask npc at hoshino, when I am on a timer I will get a readout like You may complete this quest again in 15h 38m 1s. now I would have to have 1 rule for each potential hour for the killtasks in question, for most npcs this is will be 20 rules that look something like this.

Code: Select all

KilltaskCheck -

Chat Message: ^You may complete this quest again in 15h

All: {ExprAct setvar[KilltaskCounter, (16*3600)], ExprAct setvar[StopwatchKilltask, stopwatchcreate[]];stopwatchstart[getvar[Stopwatchkilltask]]}
then in my default2 state I setup a rule which reacts to when enough time has elapsed to set me to return and retrieve the killtasks.

Code: Select all

 Default2- 
 
 stopwatchelapsedseconds[getvar[StopwatchKilltask]]>=getvar[KilltaskCounter]
 
 All: {ExprAct clearallvars[], Set Meta State: Killtask}

Re: Vtank Expressions

Posted: March 21st, 2015, 4:26 pm
by Sif al Taak
Example for detecting Society:
CheckSociety.met
(839 Bytes) Downloaded 635 times

Re: Vtank Expressions

Posted: April 14th, 2015, 6:14 pm
by Dmdtt
hitting a wall with an idea of mine,

trying to store multiple coordinate points with different names using a counter then attempting to react using an expression for every coordinate point stored.

storing the variables was the easy part

initial setup- setvar[coord, coord];setvar[Counter, 1]


ExprAct setvar[getvar[coord]+cstr[getvar[Counter]], getplayercoordinates[]];setvar[Counter, getvar[Counter]+1]

that part works flawlessly

the part I am struggling with is making an expression condition that will react to being in any of the stored coordinate point locations.

so far this is what I am thinking
coordinatetostring[getvar[getvar[coord]+cstr[getvar[Counter]]]]==coordinatetostring[getplayercoordinates[]]

the problem is I need a way to react to every getvar[Counter] 1-99 etc sort of like how you would use .* in regex searches using VGI but I can't figure out how to do it.

anyone got any ideas?

Re: Vtank Expressions

Posted: April 15th, 2015, 1:01 pm
by Dmdtt
Dmdtt wrote:hitting a wall with an idea of mine,

trying to store multiple coordinate points with different names using a counter then attempting to react using an expression for every coordinate point stored.

storing the variables was the easy part

initial setup- setvar[coord, coord];setvar[Counter, 1]


ExprAct setvar[getvar[coord]+cstr[getvar[Counter]], getplayercoordinates[]];setvar[Counter, getvar[Counter]+1]

that part works flawlessly

the part I am struggling with is making an expression condition that will react to being in any of the stored coordinate point locations.

so far this is what I am thinking
coordinatetostring[getvar[getvar[coord]+cstr[getvar[Counter]]]]==coordinatetostring[getplayercoordinates[]]

the problem is I need a way to react to every getvar[Counter] 1-99 etc sort of like how you would use .* in regex searches using VGI but I can't figure out how to do it.

anyone got any ideas?

so I figured out a potential solution to my earlier idea it isn't exactly what id call perfect but it does function

using the expression,

coordinatetostring[getvar[getvar[coord]+cstr[randint[1, getvar[Counter]]]]]==coordinatetostring[getplayercoordinates[]]

randint[2] will constantly loot for different stored variables for coord1, coord2, coord3 etc between 1-getvar[Counter] however high that is. if I were to split this into sections 1-10 11-20 21-30 etc I think I can also cut down the time it takes to react to being in one of the stored locations.

another option I found would be using cstrf[stopwatchelapsedseconds[getvar[Stopwatch]]*10, \F\0] in place of radint[2] then whenever stopwatchelapsedseconds[getvar[Stopwatch]]==10 restart the stopwatch