144 lines
3.3 KiB
Plaintext
144 lines
3.3 KiB
Plaintext
// :CATEGORY:Tour
|
|
// :NAME:TourCopter
|
|
// :AUTHOR:Ferd Frederix
|
|
// :CREATED:2013-09-06
|
|
// :EDITED:2013-09-18 15:39:08
|
|
// :ID:909
|
|
// :NUM:1299
|
|
// :REV:1
|
|
// :WORLD:Second Life
|
|
// :DESCRIPTION:
|
|
// Tour
|
|
// :CODE:
|
|
|
|
// ______ _ ______ _ _
|
|
// | ___| | | | ___| | | (_)
|
|
// | |_ ___ _ __ __| | | |_ _ __ ___ __| | ___ _ __ ___ __
|
|
// | _/ _ \ '__/ _` | | _| '__/ _ \/ _` |/ _ \ '__| \ \/ /
|
|
// | || __/ | | (_| | | | | | | __/ (_| | __/ | | |> <
|
|
// \_| \___|_| \__,_| \_| |_| \___|\__,_|\___|_| |_/_/\_\
|
|
//
|
|
// fred@mitsi.com
|
|
// tour copter script
|
|
//
|
|
//Revisions:
|
|
// 1/28/2010 initial release
|
|
|
|
/// Pilot interface
|
|
// This script should be in the root prim.
|
|
// This script does all the listening for the vehicle.
|
|
// This script sends a message on touch with the string "touch" and the key of the person touching.
|
|
|
|
integer channel = 543;
|
|
integer power;
|
|
|
|
key pilot;
|
|
|
|
string trim(string input)
|
|
{
|
|
return llDumpList2String(llParseString2List(input, [" "], []), " ");
|
|
}
|
|
|
|
default
|
|
{
|
|
state_entry()
|
|
{
|
|
llCollisionSound("", 0.0);
|
|
llListen(channel,"","","");
|
|
|
|
power = FALSE;
|
|
pilot = NULL_KEY;
|
|
}
|
|
|
|
on_rez(integer sparam)
|
|
{
|
|
llResetScript();
|
|
}
|
|
|
|
touch_start(integer n)
|
|
{
|
|
llMessageLinked(LINK_ALL_CHILDREN, 0, "touched", llDetectedKey(0));
|
|
}
|
|
|
|
listen(integer channel, string name, key id, string message)
|
|
{
|
|
message = trim(message);
|
|
message = llToLower(message);
|
|
if (message == "start" && !power )
|
|
{
|
|
power = TRUE;
|
|
llWhisper(0, "/me Online.");
|
|
llMessageLinked(LINK_SET, 0, "on", NULL_KEY);
|
|
llMessageLinked(LINK_SET, 0, "start", NULL_KEY);
|
|
}
|
|
else if (message == "stop" && power)
|
|
{
|
|
power = FALSE;
|
|
llWhisper(0, "/me Powering Down");
|
|
llMessageLinked(LINK_SET, 0, "stop", NULL_KEY);
|
|
llMessageLinked(LINK_SET, 0, "off", NULL_KEY);
|
|
|
|
} else if (message == "displayon") {
|
|
llMessageLinked(LINK_SET, 0, "display on", NULL_KEY);
|
|
} else if (message == "displayoff") {
|
|
llMessageLinked(LINK_SET, 0, "display off", NULL_KEY);
|
|
} else if (message == "unsit" ) {
|
|
llMessageLinked(LINK_SET, 0, "unsit", NULL_KEY);
|
|
} else if (message == "help") {
|
|
llGiveInventory(id, "Help");
|
|
} else if (llStringLength(message) == 1 && (string)((integer)message) == message) {
|
|
llMessageLinked(LINK_SET, (integer)message, "set throttle", NULL_KEY);
|
|
}
|
|
else if (message == "demo")
|
|
{
|
|
|
|
llSay(0,"DEMO START");
|
|
|
|
list demos;
|
|
demos += "cannon-on";
|
|
demos += "gun-aim";
|
|
demos += "fire";
|
|
demos += "bullet";
|
|
demos += "fire-laser";
|
|
demos += "gun-stop";
|
|
demos += "cannon-off";
|
|
demos += "bomb";
|
|
demos += "start";
|
|
demos += "display on";
|
|
demos += "throttle";
|
|
demos += "afterburner";
|
|
demos += "afterburneroff";
|
|
demos += "on";
|
|
demos += "stop";
|
|
demos += "off";
|
|
demos += "unsit";
|
|
|
|
integer i;
|
|
integer max = llGetListLength(demos);
|
|
for (i = 0; i < max; i++)
|
|
{
|
|
llSay(0,llList2String(demos,i));
|
|
llMessageLinked(LINK_SET,10,llList2String(demos,i),NULL_KEY);
|
|
llSleep(5.0);
|
|
|
|
}
|
|
llSay(0,"DEMO COMPLETED");
|
|
}
|
|
}
|
|
|
|
link_message(integer sender, integer num, string str, key id)
|
|
{
|
|
if (str == "pilot" && id == NULL_KEY)
|
|
{
|
|
pilot = NULL_KEY;
|
|
power = FALSE;
|
|
}
|
|
else if (str == "pilot" && id != NULL_KEY)
|
|
{
|
|
pilot = id;
|
|
power = TRUE;
|
|
}
|
|
}
|
|
}
|
|
|