 |
chaossdragon Apprentice
Joined: 09 Apr 2008 Posts: 168
|
Posted: Thu Oct 22, 2020 6:17 am
calculating buff duration based on %time |
I have two triggers to execute %time("hh:nn:ss") when buff is activated and when it falls off.
I record or attempt to record these values as $local to store the total converted into seconds value, so I can sub the end value with start value and use %mod to convert that to a time value for how much time had passed... if that makes any sense...
Needless to say it doesn't work... it just #SHOWS 0
All I need to do is take TimeStamp B and subtract TimeStamp A to get the difference in minutes... but I don't know how to go about that in cmud. |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4718 Location: Pensacola, FL, USA
|
Posted: Thu Oct 22, 2020 8:20 pm |
You will need to use a normal variable to store the start time, as $localVars only exist in the script that calls them.
|
|
_________________ Discord: Shalimarwildcat |
|
|
 |
chaossdragon Apprentice
Joined: 09 Apr 2008 Posts: 168
|
Posted: Fri Oct 23, 2020 12:21 am |
I thought I had... I may need to post my code for the two trigs in question and maybe you can spot my mistake...
** expect edit with code shortly **
Code: |
Pattern : ^(?:|(\d+):(\d+):(\d+)\s)You have mastered control of your breathing.
charStats.CB=1
#SUB {%time("hh:nn:ss") You have mastered control of your breathing.}
#ALARM CBDur {+720} {#ECHO {Controlled Breathing Ends Soon!!!}}
NRG
//convert time to numerical value in seconds
guildSkills.ControlledBreathingStart = ((%1*3600)+(%2*60)+%3)
|
Code: |
Pattern: ^(?:|(\d+):(\d+):(\d+)\s)You have lost control of your breathing and your resistance to melee attacks fades.
charStats.CB=0
#SUB {%time("hh:nn:ss") You have lost control of your breathing and your resistance to melee attacks fades.}
//convert time to numerical value in seconds
guildSkills.ControlledBreathingEnd = ((%1*3600)+(%2*60)+%3)
//calculate time differance
guildSkills.ControlledBreathingDuration = (@guildSkills.ControlledBreathingEnd - @guildSkills.ControlledBreathingStart)
#SHOW {Controlled Breathing Duration : hours:%eval(@guildSkills.ControlledBreathingDuration/3600) mins:%mod(@guildSkills.ControlledBreathingDuration/60,60) secs:%mod(@guildSkills.ControlledBreathingDuration,60)}
|
both charStats and guildSkills variables already existed with pre-defined keys.
** and I see half of my problem... this is the trigger that "adds" the timestamp to the spam of text so how can is store those values to run the calculation unless I have a second trigg for that purpose... *facepalm* |
|
|
 |
chaossdragon Apprentice
Joined: 09 Apr 2008 Posts: 168
|
Posted: Fri Oct 23, 2020 2:47 pm |
Wow I seriously over complicated this... little google-fu and I found a solution. Works as Desired.
Code: |
Pattern: AS ABOVE
charStats.CB=1
#SUB {%time("hh:nn:ss") You have mastered control of your breathing.}
NRG
#UNT {Your skill fails.}
//convert time to numerical value in seconds
guildSkills.ControlledBreathingStart = %ctime
|
Code: |
Pattern: AS ABOVE
charStats.CB=0
#SUB {%time("hh:nn:ss") %ansi(blink,red)You have lost control of your breathing and your resistance to melee attacks fades.%ansi(reset)}
//convert time to numerical value in seconds
guildSkills.ControlledBreathingEnd = %ctime
//calculate time differance
guildSkills.ControlledBreathingDuration = %eval(@guildSkills.ControlledBreathingEnd - @guildSkills.ControlledBreathingStart)
#SHOW {Controlled Breathing Duration : hours:%eval(@guildSkills.ControlledBreathingDuration/3600) mins:%mod(@guildSkills.ControlledBreathingDuration/60,60) secs:%mod(@guildSkills.ControlledBreathingDuration,60)}
|
|
|
|
 |
|
|