• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋

Question - Time since last move?

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.

LastMove
INI:
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
 
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