 |
chris123zugg Adept
Joined: 23 Aug 2013 Posts: 207
|
Posted: Sun Mar 16, 2025 11:45 pm
time formatting not working? |
//GXP:93031026 G2N:18110(99.0977) WPN:Immaculate COF:20/20 MOB: emergency
G2N is where this is pulling the capture from
gxprd=21
//gxp
$wardergxp = %int(%2)
$warderrds = (($wardergxp / @gxprd))
$gxptime = 0
$gxpdays = 0+($warderrds/86400)
$gxphours = 0+%eval(%mod($warderrds/3600,86400)-(24*$gxpdays))
$gxpmins = 0+%eval(%mod($warderrds/60,60))
$gxpsecs = 0+%eval(%mod($warderrds,60))
$gxpprefix = "-- "
$gxpsuffix = " --"
#switch ($gxpdays > 0) {$gxptime = %string($gxpdays)+"d "+%string($gxphours)+"h "+%string($gxpmins)+"m "+%string($gxpsecs)+"s"} ($gxphours > 0) {$gxptime = %string($gxphours)+"h "+%string($gxpmins)+"m "+%string($gxpsecs)+"s"} ($gxpmins > 0) {$gxptime = %string($gxpmins)+"m "+%string($gxpsecs)+"s"}
$gxptime = %string($gxphours)+"h "+%string($gxpmins)+"m "+%string($gxpsecs)+"s"
gxptimenow = $gxptime
gxprds=$warderrds
#print @gxptimenow @gxprds
gxptimenow = $gxptime
gxprds=$warderrds
im confused as heck about this, its accurate to the second but its not mathing right... anyone can point to the part thats broken?
this is the #help file for %mod
mod
Syntax: %mod(a,b)
returns a modulus b. This is the remainder after dividing a by b.
Example:
#SHOW %mod(8,3)
Displays: 2
#SHOW %mod(8,4)
Displays: 0
seconds=3917
#SHOW hours:%eval(@seconds/3600) mins:%mod(@seconds/60,60) secs:%mod(@seconds,60)
Displays: hours:1 mins:5 secs:17
thanks in advance.[/code] |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 12:35 am |
pattern might help
|
|
_________________ Discord: Shalimarwildcat |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 12:40 am |
Instead of cycling things through %string perhaps just use %concat?
$gxptime=%concat($gxpdays, "d ", $gxphours, "h ", "etc", "etc")
and what's with all the 0+ before the function call?
Unnecessary and it won't evaluate without being enclosed in parentheses like any other expression |
|
_________________ Discord: Shalimarwildcat |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 1:46 am |
Instead of defining gpxtime as 0 at the start, use the #LOCAL command to declare it with a null value
#LOCAL $gpxTime
this is the preferred method when you just need the variable to exist before something in a subroutine (anything in curly brackets) actually defines it |
|
_________________ Discord: Shalimarwildcat |
|
|
 |
chris123zugg Adept
Joined: 23 Aug 2013 Posts: 207
|
Posted: Mon Mar 17, 2025 2:05 am |
hrrrm ok, ill re-draw it all. and the top line is the capture...
|
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 2:07 am |
Code: |
#LOCAL $time
$tot=(%2/@gxprd)
$days=($tot/86400)
#IF ($days) {
$tot=%mod($tot, 86400)
$time=%concat($days, "d")
}
$hours=($tot/60)
#IF ($hours) {
$tot=%mod($tot, 60)
$time=%trim(%concat($time, " ", $hours, "h"))
}
$mins=($tot/60)
#IF ($mins) {
$tot=%mod($tot, 60)
$time=%trim(%concat($time, " ", $mins, "m"))
}
$secs=($tot/60)
#IF ($secs) {$time=%trim(%concat($time, " ", $secs, "s"))}
#PRINT $time %eval(%2/@gxprd) |
|
|
_________________ Discord: Shalimarwildcat |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 2:40 am |
This is a better version that prevents erroneous displays, the original is not properly error checking:
Code: |
#LOCAL $time
$tot=$cur=(%2/@gxprd)
#while $cur {#SWITCH ($cur)
(>86400) {
$days=($cur/86400)
$cur=%mod( $cur, 86400)
$time=%concat( $days, "d")
}
(>3600) {
$hours=($cur/3600)
$cur=%mod( $cur, 3600)
$time=%trim( %concat( $time, " ", $hours, "h")
}
(>60) {
$mins=($cur/60)
$cur=%mod( $cur, 60)
$time=%trim(%concat( $time, " ", $mins, "m")
}
{$time=%trim(%concat($time, " ", %pop( $cur), "s")}}
#PRINT $time $tot |
|
|
_________________ Discord: Shalimarwildcat |
|
|
 |
chris123zugg Adept
Joined: 23 Aug 2013 Posts: 207
|
Posted: Mon Mar 17, 2025 3:36 am |
sorry shalimar, wehn i added this in the trigger, it shows error and doesnt work
|
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 10:57 am |
Yea, I was half asleep, i made a few errors
Code: |
#LOCAL $time
$tot=(%2/@gxprd)
$cur=$tot
#while $cur {#SWITCH ($cur>86400) {
$days=($cur/86400)
$cur=%mod( $cur, 86400)
$time=%concat( $days, "d")
}
($cur>3600) {
$hours=($cur/3600)
$cur=%mod( $cur, 60)
$time=%trim( %concat( $time, " ", $hours, "h"))
}
($cur>60) {
$mins=($cur/60)
$cur=%mod( $cur, 60)
$time=%trim( %concat( $time, " ", $mins, "m"))
}
{$time=%trim( %concat( $time, " ", %pop( $cur), "s"))}}
#PRINT $time $tot |
|
|
_________________ Discord: Shalimarwildcat
Last edited by shalimar on Mon Mar 17, 2025 5:15 pm; edited 1 time in total |
|
|
 |
chris123zugg Adept
Joined: 23 Aug 2013 Posts: 207
|
Posted: Mon Mar 17, 2025 12:21 pm |
3108h 12s 74592 <-- is the output from that script, i think the issue is this mud uses 2 seconds per round, so it's not propgating correctly, do i just change seconds to 30 instead of 60?
and the "H" "M" "S" portion of print in $tot where should i add the mins to separate the output?
and is it also the because the gxprd is "what i get PER rd", then the G2N is the TOTAL required for next glevel.
the math im seeing is g2n/gxprd then its passed through the function you made for establishing and adding math -> mins -> seconds, which is showing 3108h, which im going to just make ag2n up to put this in perspective
1526900/21 = 74423.8
then i would divide the (total rounds needed) 74423/30 (every round is 2 seconds...) 2480
then divide that by hours (60) 41.34
sorry if i've gone about this the wrong way, i just dont now how to correct that function to parse that correctly.
thanks again shalimar:) |
|
|
 |
shalimar GURU

Joined: 04 Aug 2002 Posts: 4734 Location: Pensacola, FL, USA
|
Posted: Mon Mar 17, 2025 5:20 pm |
No, i had left another typo in
|
|
_________________ Discord: Shalimarwildcat |
|
|
 |
chris123zugg Adept
Joined: 23 Aug 2013 Posts: 207
|
Posted: Tue Mar 18, 2025 7:48 pm |
**EDIT**
and the hours aren't showing, but i think i broke something when i added a space somewhere ?
#LOCAL $time
$tot=(%2/@gxprd)
$cur=$tot
#while $cur {#SWITCH ($cur > 86400) {
$days=($cur / 86400)
$cur=%mod( $cur, 86400)
$time=%concat( $days, "d")
}
($cur > 3600) {
$hours=($cur/3600)
$cur=%mod( $cur, 60)
$time=%trim( %concat( $time, " ", $hours, "h"))
}
($cur > 60) {
$mins=($cur / 60)
$cur=%mod( $cur, 60)
$time=%trim( %concat( $time, " ", $mins, "m"))
}
{$time=%trim( %concat( $time, " ", %pop( $cur), "s"))}}
//#PRINT $time $tot |
|
|
 |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|