73 lines
2.6 KiB
Plaintext
73 lines
2.6 KiB
Plaintext
integer listen_chan = 1347453612;
|
|
integer listenHandle;
|
|
float sfx_vol = 1.0;
|
|
integer timer_toggle = 0;
|
|
float blink_timer = 0.1;
|
|
integer blinker_face = 2;
|
|
vector blink_working_a = <1.000, 0.255, 0.212>;
|
|
vector blink_working_b = <0.067, 0.067, 0.067>;
|
|
vector blink_live = <1.000, 0.255, 0.212>;
|
|
vector blink_free = <0.180, 0.800, 0.251>;
|
|
|
|
default
|
|
{
|
|
state_entry()
|
|
{
|
|
listenHandle = llListen(listen_chan, "", NULL_KEY, "");
|
|
integer perm = llGetPermissions();
|
|
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS);
|
|
}
|
|
|
|
on_rez(integer start_param) {
|
|
llResetScript();
|
|
}
|
|
|
|
listen(integer channel, string name, key id, string message)
|
|
{
|
|
integer perm = llGetPermissions();
|
|
if (message == "obey") {
|
|
llSetTimerEvent(blink_timer);
|
|
llOwnerSay("Obey");
|
|
llLoopSound("leccy", sfx_vol);
|
|
if(PERMISSION_TRIGGER_ANIMATION & perm) {
|
|
llStartAnimation("zap_hold");
|
|
}
|
|
if(PERMISSION_TAKE_CONTROLS & perm) {
|
|
llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT |
|
|
CONTROL_UP | CONTROL_DOWN | CONTROL_LBUTTON | CONTROL_ML_LBUTTON, TRUE, FALSE);
|
|
}
|
|
} else if (message == "obey_rel") {
|
|
llOwnerSay("Obey!!");
|
|
if(PERMISSION_TRIGGER_ANIMATION & perm) {
|
|
llStartAnimation("zap_release");
|
|
llStopAnimation("zap_hold");
|
|
}
|
|
llSetTimerEvent(0.0);
|
|
llSetColor(blink_live, blinker_face);
|
|
llStopSound();
|
|
} else if (message == "release") {
|
|
llOwnerSay("Release");
|
|
if(PERMISSION_TRIGGER_ANIMATION & perm) {
|
|
llStopAnimation("zap_hold");
|
|
llStopAnimation("zap_release");
|
|
}
|
|
if(PERMISSION_TAKE_CONTROLS & perm) {
|
|
llTakeControls(CONTROL_FWD | CONTROL_BACK | CONTROL_LEFT | CONTROL_RIGHT | CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT |
|
|
CONTROL_UP | CONTROL_DOWN | CONTROL_LBUTTON | CONTROL_ML_LBUTTON, TRUE, TRUE);
|
|
}
|
|
llSetColor(blink_free, blinker_face);
|
|
}
|
|
}
|
|
|
|
timer() {
|
|
if (timer_toggle == 0) {
|
|
llSetColor(blink_working_a, blinker_face);
|
|
timer_toggle = 1;
|
|
} else if (timer_toggle == 1) {
|
|
llSetColor(blink_working_b, blinker_face);
|
|
timer_toggle = 0;
|
|
}
|
|
}
|
|
}
|
|
|