void main() { if (GetLocalInt(OBJECT_SELF, "lagmeasure") == 1) { int nNow = GetTimeSecond(); int nSum = GetLocalInt(OBJECT_SELF, "lagsum"); int nOcc = GetLocalInt(OBJECT_SELF, "occurrence"); int nLast = GetLocalInt(OBJECT_SELF, "lastsec"); int nDiff; if (nOcc==0) { SetLocalInt(OBJECT_SELF, "lastsec", nNow); SetLocalInt(OBJECT_SELF, "occurrence", 1); return; } if (nNow < nLast) nDiff = 60+nNow-nLast; if (nNow >= nLast) nDiff = nNow-nLast; nOcc=nOcc+1; nSum=nSum+nDiff; int nAvg=nSum/(nOcc-1); ActionSpeakString("Running heartbeat, interval is: "+IntToString(nDiff)+" seconds. Accumulated average:"+IntToString(nAvg)); SetLocalInt(OBJECT_SELF, "lastsec", nNow); SetLocalInt(OBJECT_SELF, "lagsum", nSum); SetLocalInt(OBJECT_SELF, "occurrence", nOcc); } }