// Sometimes when crossing sim borders, physics will spontaneously be removed from a vehicle. // This script re-enables physics if that happens. integer active = TRUE; default { state_entry() { //llListen(0, "", NULL_KEY, "brake"); //llListen(0, "", NULL_KEY, "b"); llSetTimerEvent(1.0); } timer() { if (active) { if (llAvatarOnSitTarget() == llGetOwner()) { if (!llGetStatus(STATUS_PHYSICS)) { llSleep(1.0); llSetStatus(STATUS_PHYSICS, TRUE); } } else { active = FALSE; llSetTimerEvent(0.0); } } else { llSetTimerEvent(0.0); llSetStatus(STATUS_PHYSICS, FALSE); } } listen(integer channel, string name, key id, string message) { string myMessage = llToLower(message); if (id == llGetOwner()) { if (myMessage == "b" || myMessage == "brake") { if (active) { active = FALSE; llWhisper(0, "Emergency brake engaged! Say 'b' in chat to resume flight."); } else { active = TRUE; llSetTimerEvent(1.0); llWhisper(0, "Emergency brake disengaged."); } } } } link_message(integer sender, integer num, string message, key id) { if (message == "throttle" || message == "engines on") { if (message == "throttle" && active == FALSE) { llWhisper(0, "Emergency brake disengaged."); } active = TRUE; llSetTimerEvent(1.0); } } }