Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float LastTimeOwnerDetected;
- key owner;
- float fDISTANCE = 50.0; //meter
- integer isAvatarNearby(key avatar, float distance)
- {
- integer iCount;
- if (llGetAgentSize(avatar) != ZERO_VECTOR)
- { //avatar found
- vector vPos = llList2Vector(llGetObjectDetails(avatar, [OBJECT_POS]), 0);
- if (llVecDist(vPos, llGetPos()) <= distance)
- { //avatar is nearby
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
- else
- {
- return FALSE;
- }
- }
- TellOwner( string Message )
- {
- // llWhisper( 0, "Trace: " + Message );
- llInstantMessage(owner, (string)llGetPos() + " " + Message );
- }
- Init()
- {
- owner = llGetOwner();
- LastTimeOwnerDetected = llGetTimeOfDay();
- llSetTimerEvent(30.0);
- }
- SelfDestructNow()
- {
- llSay(0, "Too far from owner. Self-destructing...");
- llInstantMessage(owner,"Too far from owner. Self-destructing...");
- llDie();
- }
- default
- {
- state_entry()
- {
- Init();
- }
- on_rez(integer start_param)
- {
- Init();
- }
- timer()
- {
- if (isAvatarNearby(owner, fDISTANCE))
- { //avatar detected
- LastTimeOwnerDetected = llGetTimeOfDay();
- }
- else
- {
- if( llGetTimeOfDay() - LastTimeOwnerDetected >= 60 )
- {
- //TellOwner( (string)llGetTimeOfDay() + " " + (string)LastTimeOwnerDetected );
- SelfDestructNow();
- }
- else if( llGetTimeOfDay() - LastTimeOwnerDetected >= 30 )
- {
- TellOwner( "Self destructing in 30 seconds..." );
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement