• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Question - Time since last move?

AmericanNero

Seasoned veteran member
Joined
Oct 13, 2020
RedCents
4,709¢
Version of KissAssist.mac?
12
When did your problem start?
Not a problem per se
Character Role?
  1. Assist
What class is having this issue?
  1. Druid
How often does this issue occur?
Always
There is a flag Me.Moving to tell the macro whether you are actively moving, but, I don't know if there is a property that says the amount of time since a character moved/how long they've been stationary. This is useful if you are actively moving about and then a buff timer kicks in and makes you sit down the second you stop (which is friggin annoying). If a character stopped for a few seconds then it might be safer to invoke buffs. Just thoughts.
 
Hey Nero,

Not sure you're still interested in this - but CollisionCounter is 0 when moving, then starts to count up (looks like deciseconds) once you stop. This counter may be able to be used as a timer to see how long you have stopped.

Cheers!
 

Attachments

Last edited:
Interesting, thank you for remembering! I think you attached something you didn't intend.

This is how I did it.

[CODE lang="ini" title="LastMove"]

Sub - Declare outers somewhere:

/declare BootTime int outer ${EverQuest.Running}

|
| When did we last move, and where were we?
|
/declare LastSitStand bool outer ${Me.Sitting}
/declare LastMoveHeading float outer 0.0
/declare LastMoveX float outer 0.0
/declare LastMoveY float outer 0.0
/declare LastMoveZ float outer 0.0
/declare LastMoveTime int outer ${EverQuest.Running}
/declare TimeSinceMove int outer 0


| ---------------------------------------------------------------------------
| SUB: LastMove
|
| Time since character last moved accessible in TimeSinceMove in tenths of a sec
| ---------------------------------------------------------------------------
Sub LastMove(FromWhere)
| Debug call stack
CALLINGSUB
CALLINGINDEX

/if (${Me.X}!=${LastMoveX} || ${Me.Y}!=${LastMoveY} || ${Me.Z}!=${LastMoveZ} || ${Me.Heading.Degrees}!=${LastMoveHeading} || ${Me.Combat} || ${Me.CombatState.Equal[COMBAT]} || ${Me.Sitting}!=${LastSitStand}) {
/varset LastMoveTime ${EverQuest.Running}
/varset LastMoveX ${Me.X}
/varset LastMoveY ${Me.Y}
/varset LastMoveZ ${Me.Z}
/varset LastMoveHeading ${Me.Heading.Degrees}
/varset LastSitStand ${Me.Sitting}
/varset TimeSinceMove 0
} else {
/varcalc TimeSinceMove (${EverQuest.Running}-${LastMoveTime})/1000
}
| Give 60 seconds when first starting
/if (${Math.Calc[(${EverQuest.Running}-${BootTime})/1000]}<60) /varset TimeSinceMove 60
/return
[/CODE]
 
I think you attached something you didn't intend.

I attached a small movie that shows the MQNext Macro Evaluatior with the line {$Me.CollisionCounter} being evaluated. The movie demonstrates how the counter is zero when you're moving, and it starts to tick up when you stop. If you stand in one spot and look around, it continues to tick up. Moving will reset it to 0. It is literally 1 line of code.
 
Question - Time since last move?

Users who are viewing this thread

Back
Top
Cart