Comment and formatting changes; no actual code changes.

- Add spaces between functions.
- Add comments on numeric codes and a few others.
- Reformat lists and one function.
- Remove spaces at EOL.
- Use actual copyright symbol.
This commit is contained in:
Sei Lisa 2017-08-14 19:19:48 +02:00 committed by Sei-Lisa
parent ef3adcce5e
commit 2488349a1b
26 changed files with 500 additions and 203 deletions

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -26,6 +26,7 @@ list camera_triggers;
list camera_settings;
integer lastByButton = -1;
string lastPose;
integer get_number_of_scripts()
{
integer i = 1;
@ -35,7 +36,9 @@ integer get_number_of_scripts()
}
return i;
}
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -43,11 +46,13 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
Readout_Say(string say, string SCRIPT_CHANNEL)
{
llSleep(0.2);
llMessageLinked(LINK_THIS, 90022, say, SCRIPT_CHANNEL);
}
set_camera(integer byButton)
{
if (mySitter)
@ -89,6 +94,7 @@ set_camera(integer byButton)
llRequestPermissions(mySitter, PERMISSION_CONTROL_CAMERA);
}
}
default
{
run_time_permissions(integer perm)
@ -98,6 +104,7 @@ default
set_camera(FALSE);
}
}
state_entry()
{
SCRIPT_CHANNEL = (integer)llGetSubString(llGetScriptName(), llSubStringIndex(llGetScriptName(), " "), -1);
@ -108,6 +115,7 @@ default
notecard_query = llGetNotecardLine(notecard_name, 0);
}
}
link_message(integer sender, integer num, string msg, key id)
{
if (sender == llGetLinkNumber())
@ -193,6 +201,7 @@ default
}
}
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
@ -203,6 +212,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -27,6 +27,7 @@ string CURRENT_POSE;
list TIMERS;
list SITTERS;
integer DEBUG;
Out(integer level, string out)
{
if (verbose >= level)
@ -34,7 +35,9 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "]:" + out);
}
}
key key_request;
string parse_text(string say)
{
integer i;
@ -49,10 +52,12 @@ string parse_text(string say)
}
return say;
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls(str, [search], []), replace);
}
default
{
state_entry()
@ -61,6 +66,7 @@ default
Out(0, "Loading...");
notecard_query = llGetNotecardLine(notecard_name, 0);
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
@ -78,6 +84,7 @@ default
}
}
}
link_message(integer sender, integer num, string msg, key id)
{
if (sender == llGetLinkNumber())
@ -142,6 +149,7 @@ default
}
}
}
timer()
{
integer i;
@ -154,6 +162,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -40,6 +40,7 @@ string iconSubtract = "[]";
string pagedMenuText;
list pagedMenuButtons;
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -47,20 +48,24 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "]:" + out);
}
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls(str, [search], []), replace);
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
relay(key av, string msg)
{
msg = "RLV," + (string)av + "," + msg;
Out(1, "Sending RLV Command: " + msg);
llSay(RELAY_CHANNEL, msg);
}
remove_menu(string worn, list slots)
{
list menu_items;
@ -81,6 +86,7 @@ remove_menu(string worn, list slots)
}
new_paged_menu(menu + " menu for " + llKey2Name(SLAVE) + "\n\nThe captive" + text, menu_items);
}
new_paged_menu(string text, list menu_items)
{
pagedMenuText = text;
@ -88,6 +94,7 @@ new_paged_menu(string text, list menu_items)
menuPage = 0;
paged_menu();
}
paged_menu()
{
list MypagedMenuButtons = pagedMenuButtons;
@ -116,12 +123,14 @@ paged_menu()
Out(1, "paged menu:" + llDumpList2String(MypagedMenuButtons, ","));
dialog(pagedMenuText, ["[BACK]"] + MypagedMenuButtons);
}
dialog(string text, list buttons)
{
while (llGetListLength(buttons) % 3)
buttons += " ";
llDialog(CONTROLLER, "AVsitter™ RLV " + product + " " + version + "\n\n" + text, order_buttons(buttons), menu_channel);
}
remove_script(string reason)
{
string message = "\n" + llGetScriptName() + " ==Script Removed==\n\n" + reason;
@ -129,11 +138,13 @@ remove_script(string reason)
llInstantMessage(llGetOwner(), message);
llRemoveInventory(llGetScriptName());
}
main_menu()
{
menu = "";
dialog("Un/Dress menu for " + llKey2Name(SLAVE), ["[BACK]", "Browse #RLV", "Fast Strip", "Undress", "Detach"]);
}
default
{
state_entry()
@ -148,6 +159,7 @@ default
}
}
}
state running
{
state_entry()
@ -185,6 +197,7 @@ state running
}
}
}
listen(integer channel, string name, key id, string msg)
{
Out(1, "Listen Received: " + msg);

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -72,6 +72,7 @@ integer subControl;
string ping;
integer captureOnAsk = TRUE;
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -79,19 +80,23 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "]:" + out);
}
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls(str, [search], []), replace);
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
relay(key av, string msg)
{
msg = "RLV," + (string)av + "," + msg;
llSay(RELAY_CHANNEL, msg);
}
string humantime()
{
integer hours = TimelockSecUntilRelease / 3600;
@ -119,6 +124,7 @@ string humantime()
}
return hours_text + minutes_text + seconds_text;
}
Timelock_menu()
{
menu = "Timelock";
@ -150,6 +156,7 @@ Timelock_menu()
}
dialog(text, ["[BACK]", pauseButton, hidButton] + menu_items);
}
relay_select_menu()
{
menu = "SELECT";
@ -173,6 +180,7 @@ relay_select_menu()
}
dialog(text, menu_items);
}
playpose(string pose, string target_sitter)
{
if (pose)
@ -181,6 +189,7 @@ playpose(string pose, string target_sitter)
llMessageLinked(LINK_SET, 90000, pose, target_sitter);
}
}
rlv_top_menu()
{
menu = "";
@ -240,6 +249,7 @@ rlv_top_menu()
}
dialog(text, extra + menu_items);
}
capture_attempt(key id, string target_sitter)
{
if (RLV_ON)
@ -258,10 +268,12 @@ capture_attempt(key id, string target_sitter)
playpose(SUBPOSE, id);
}
}
dialog(string text, list buttons)
{
llDialog(CONTROLLER, product + " " + version + "\n\n" + text, order_buttons(buttons), menu_channel);
}
reset()
{
CAPTIVES = [];
@ -273,6 +285,7 @@ reset()
TimelockSecUntilRelease = defaultTimelock;
hovertext();
}
unsit_all()
{
integer i = llGetNumberOfPrims();
@ -282,6 +295,7 @@ unsit_all()
i--;
}
}
release_all()
{
while (llGetListLength(CAPTIVES))
@ -289,12 +303,14 @@ release_all()
release(llList2Key(CAPTIVES, 1), FALSE);
}
}
stop()
{
release_all();
unsit_all();
reset();
}
release(key SLAVE, integer allowUnsit)
{
integer index = llListFindList(CAPTIVES, [SLAVE]);
@ -314,6 +330,7 @@ release(key SLAVE, integer allowUnsit)
reset();
}
}
start_relay_search()
{
DETECTED_AVATAR_KEYS = [];
@ -324,6 +341,7 @@ start_relay_search()
SEARCHhandle = llListen(RELAY_SEARCH_CHANNEL, "", "", "");
llSetTimerEvent(1.5);
}
remove_script(string reason)
{
string message = "\n" + llGetScriptName() + " ==Script Removed==\n\n" + reason;
@ -334,6 +352,7 @@ remove_script(string reason)
llRemoveInventory(llGetScriptName());
}
}
new_controller(key id)
{
CONTROLLER = id;
@ -341,6 +360,7 @@ new_controller(key id)
llListenRemove(menu_handle);
menu_handle = llListen(menu_channel = ((integer)llFrand(2147483646) + 1) * -1, "", CONTROLLER, "");
}
no_sensor_results()
{
expecting_relay_results = FALSE;
@ -351,6 +371,7 @@ no_sensor_results()
}
dialog("No avatars found in range!", menu_items);
}
get_unique_channels()
{
RELAY_SEARCH_CHANNEL = (integer)llFrand(999999999) + 1;
@ -360,6 +381,7 @@ get_unique_channels()
llListenRemove(relay_handle);
relay_handle = llListen(RELAY_CHANNEL, "", "", ping = "ping," + (string)llGetKey() + ",ping,ping");
}
check_submissive()
{
relay(SLAVE, "@versionnew=" + (string)RELAY_CHECK_CHANNEL);
@ -367,6 +389,7 @@ check_submissive()
llSensorRepeat("", llGetOwner(), PASSIVE, 0.1, PI, 2);
slaveName = llKey2Name(SLAVE);
}
select_submissive_rlv()
{
menu = "SUB_SELECT";
@ -403,6 +426,7 @@ select_submissive_rlv()
}
dialog(text, menu_items);
}
find_seat(key id, integer index, string msg, integer captureSub)
{
if (~index)
@ -466,10 +490,12 @@ find_seat(key id, integer index, string msg, integer captureSub)
}
}
}
info_dialog(key id, string text)
{
llDialog(id, product + " " + version + "\n\nSorry, " + text + ".\n", [], -7947386);
}
hovertext()
{
string text;
@ -532,10 +558,12 @@ hovertext()
}
llMessageLinked(LINK_SET, 90014, llDumpList2String([CONTROLLER, llDumpList2String(CAPTIVES, ",")], "|"), "");
}
ask_role(key id)
{
llDialog(id, product + " " + version + "\n\nPlease select your role:\n", ["Dominant", "Submissive"], ASKROLE_CHANEL);
}
back(key id)
{
if (~llListFindList(SITTING_AVATARS, [id]))
@ -547,6 +575,7 @@ back(key id)
llMessageLinked(LINK_THIS, 90007, "", id);
}
}
integer isSub(key id)
{
integer index = llListFindList(DESIGNATIONS_NOW, [id]);
@ -560,6 +589,7 @@ integer isSub(key id)
}
return FALSE;
}
default
{
state_entry()
@ -574,6 +604,7 @@ default
}
}
}
state running
{
state_entry()
@ -587,6 +618,7 @@ state running
notecard_query = llGetNotecardLine(notecard_name, 0);
}
}
link_message(integer sender, integer num, string msg, key id)
{
if (num == 90030)
@ -805,6 +837,7 @@ state running
}
}
}
listen(integer channel, string name, key id, string msg)
{
if (channel == ASKROLE_CHANEL)
@ -1048,6 +1081,7 @@ state running
hovertext();
}
}
no_sensor()
{
if (slaveWearingRelay)
@ -1064,6 +1098,7 @@ state running
no_sensor_results();
}
}
sensor(integer total_number)
{
expected_number = total_number;
@ -1078,6 +1113,7 @@ state running
no_sensor_results();
}
}
timer()
{
llSetTimerEvent(1);
@ -1127,6 +1163,7 @@ state running
relay_select_menu();
}
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -1157,6 +1194,7 @@ state running
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)
@ -1240,6 +1278,7 @@ state running
}
}
}
on_rez(integer start)
{
get_unique_channels();

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -26,6 +26,7 @@ integer menu_channel;
integer menu_handle;
key key_request;
integer verbose = 1;
Out(integer level, string out)
{
if (verbose >= level)
@ -33,14 +34,17 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "]:" + out);
}
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls(str, [search], []), replace);
}
controller_menu(key id)
{
CONTROLLER = id;
@ -104,6 +108,7 @@ controller_menu(key id)
}
}
}
dialog(string text, list menu_items, key id)
{
llListenRemove(menu_handle);
@ -111,6 +116,7 @@ dialog(string text, list menu_items, key id)
llDialog(id, product + " " + version + "\n\n" + text + "\n", order_buttons(menu_items), menu_channel);
llSetTimerEvent(120);
}
integer check_for_RLV()
{
if (llGetInventoryType(RLV_script) == INVENTORY_SCRIPT)
@ -119,20 +125,24 @@ integer check_for_RLV()
}
return FALSE;
}
default
{
state_entry()
{
llSetTimerEvent(0);
}
on_rez(integer x)
{
llResetScript();
}
timer()
{
llListenRemove(menu_handle);
}
link_message(integer sender, integer num, string msg, key id)
{
if (num == 90007)
@ -156,6 +166,7 @@ default
DESIGNATIONS_NOW = llParseStringKeepNulls(msg, ["|"], []);
}
}
listen(integer channel, string name, key id, string message)
{
llListenRemove(menu_handle);
@ -185,6 +196,7 @@ default
controller_menu(id);
}
}
changed(integer change)
{
if (llGetAgentSize(llGetLinkKey(llGetNumberOfPrims())) == ZERO_VECTOR)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -13,7 +13,28 @@
*/
integer is_running = TRUE;
list facial_anim_list = ["express_afraid_emote", "express_anger_emote", "express_laugh_emote", "express_bored_emote", "express_cry_emote", "express_embarrassed_emote", "express_sad_emote", "express_toothsmile", "express_smile", "express_surprise_emote", "express_worry_emote", "express_repulsed_emote", "express_shrug_emote", "express_wink_emote", "express_disdain", "express_frown", "express_kiss", "express_open_mouth", "express_tongue_out"];
list facial_anim_list =
[ "express_afraid_emote"
, "express_anger_emote"
, "express_laugh_emote"
, "express_bored_emote"
, "express_cry_emote"
, "express_embarrassed_emote"
, "express_sad_emote"
, "express_toothsmile"
, "express_smile"
, "express_surprise_emote"
, "express_worry_emote"
, "express_repulsed_emote"
, "express_shrug_emote"
, "express_wink_emote"
, "express_disdain"
, "express_frown"
, "express_kiss"
, "express_open_mouth"
, "express_tongue_out"
];
integer IsInteger(string data)
{
return llParseString2List((string)llParseString2List(data, ["8", "9"], []), ["0", "1", "2", "3", "4", "5", "6", "7"], []) == [] && data != "";
@ -34,6 +55,7 @@ list running_sequence_indexes;
list running_pointers;
list SITTERS;
list SITTER_POSES;
integer get_number_of_scripts()
{
integer i = 1;
@ -43,7 +65,9 @@ integer get_number_of_scripts()
}
return i;
}
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -51,15 +75,18 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
Readout_Say(string say, string SCRIPT_CHANNEL)
{
llSleep(0.2);
llMessageLinked(LINK_THIS, 90022, say, SCRIPT_CHANNEL);
}
string Key2Number(key objKey)
{
return llGetSubString((string)llAbs((integer)("0x" + llGetSubString((string)objKey, -8, -1)) & 1073741823 ^ -1073741825), 6, -1);
}
init_sitters()
{
SITTERS = [];
@ -71,10 +98,12 @@ init_sitters()
SITTER_POSES += "";
}
}
string element(string text, integer x)
{
return llList2String(llParseStringKeepNulls(text, ["|"], []), x);
}
start_sequence(integer sequence_index, key av)
{
integer wasRunning = llListFindList(running_sequence_indexes, [sequence_index]);
@ -92,6 +121,7 @@ start_sequence(integer sequence_index, key av)
running_pointers += 0;
llSetTimerEvent(0.01);
}
sequence()
{
list anims;
@ -162,6 +192,7 @@ sequence()
}
}
}
remove_sequences(key id)
{
integer index;
@ -186,6 +217,7 @@ remove_sequences(key id)
llSetTimerEvent(0);
}
}
default
{
state_entry()
@ -198,15 +230,18 @@ default
notecard_query = llGetNotecardLine(notecard_name, 0);
}
}
timer()
{
sequence();
llSetTimerEvent(1);
}
on_rez(integer start)
{
is_running = TRUE;
}
link_message(integer sender, integer num, string msg, key id)
{
if (num == 90100)
@ -322,6 +357,7 @@ default
}
}
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
@ -342,6 +378,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -37,6 +37,7 @@ integer menu_handle;
integer playsounds = TRUE;
integer no_waits_yet;
integer verbose = 1;
Out(integer level, string out)
{
if (verbose >= level)
@ -44,10 +45,12 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls(str, [search], []), replace);
}
DEBUGSay(integer level, string out)
{
if (DEBUG >= level)
@ -55,6 +58,7 @@ DEBUGSay(integer level, string out)
llWhisper(0, out);
}
}
run_sequence()
{
while (SEQUENCE_POINTER >= 0)
@ -152,6 +156,7 @@ run_sequence()
}
}
}
integer get_number_of_scripts()
{
integer i;
@ -159,6 +164,7 @@ integer get_number_of_scripts()
;
return i;
}
string parse_text(string say)
{
integer i;
@ -173,6 +179,7 @@ string parse_text(string say)
}
return say;
}
start_sequence(integer index)
{
no_waits_yet = (sequence_running = TRUE);
@ -182,6 +189,7 @@ start_sequence(integer index)
CURRENT_SEQUENCE_DATAS = llParseStringKeepNulls(llList2String(SEQUENCE_DATA_DATAS, index), ["◆"], []);
DEBUGSay(1, "Sequence '" + CURRENT_SEQUENCE_NAME + "' Started!");
}
stop_sequence(integer stopSound)
{
if (sequence_running)
@ -196,6 +204,7 @@ stop_sequence(integer stopSound)
llStopSound();
}
}
sequence_control()
{
llListenRemove(menu_handle);
@ -209,16 +218,19 @@ sequence_control()
menu_handle = llListen(menu_channel, "", CONTROLLER, "");
llDialog(CONTROLLER, product + " " + version + "\n\n[" + CURRENT_SEQUENCE_NAME + "]\n◀◀ = previous anim in sequence.\n▮▮ = pause sequence.\n▶▶ = skip to next anim in sequence.", order_buttons(["[BACK]"] + menu_items), menu_channel);
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
commit_sequence_data()
{
SEQUENCE_DATA_NAMES += CURRENT_SEQUENCE_NAME;
SEQUENCE_DATA_ACTIONS += llDumpList2String(CURRENT_SEQUENCE_ACTIONS, "◆");
SEQUENCE_DATA_DATAS += llDumpList2String(CURRENT_SEQUENCE_DATAS, "◆");
}
default
{
state_entry()
@ -230,6 +242,7 @@ default
notecard_query = llGetNotecardLine(notecard_name, notecard_line);
}
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
@ -240,6 +253,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)
@ -279,6 +293,7 @@ default
}
}
}
state running
{
state_entry()
@ -290,6 +305,7 @@ state running
SITTERS += NULL_KEY;
}
}
link_message(integer sender, integer num, string msg, key id)
{
if (sender == llGetLinkNumber())
@ -360,6 +376,7 @@ state running
}
}
}
listen(integer listen_channel, string name, key id, string msg)
{
if (msg == "▮▮")
@ -401,16 +418,19 @@ state running
}
sequence_control();
}
timer()
{
llSetTimerEvent(0);
SEQUENCE_POINTER++;
run_sequence();
}
on_rez(integer start)
{
playsounds = TRUE;
}
changed(integer change)
{
if (change & CHANGED_LINK)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -14,6 +14,7 @@
string notecard_basename = "AVpos";
string name = "Anim";
Readout_Say(string say)
{
llSleep(0.2);
@ -22,6 +23,7 @@ Readout_Say(string say)
llRegionSayTo(llGetOwner(), 0, "◆" + say);
llSetObjectName(objectname);
}
default
{
state_entry()

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -24,14 +24,18 @@ vector pos_offset;
string cache;
string webkey;
integer webcount;
web(string say, integer force){
web(string say, integer force)
{
cache += say;
if(llStringLength(llEscapeURL(cache))>1024 || force){
if (llStringLength(llEscapeURL(cache)) > 1024 || force)
{
webcount++;
llHTTPRequest(url, [HTTP_METHOD, "POST", HTTP_MIMETYPE, "application/x-www-form-urlencoded", HTTP_VERIFY_CERT, FALSE], "w=" + webkey + "&c=" + (string)webcount + "&t=" + llEscapeURL(cache));
cache = "";
}
}
integer IsVector(string s)
{
list split = llParseString2List(s, [" "], ["<", ">", ","]);
@ -39,6 +43,7 @@ integer IsVector(string s)
return FALSE;
return !((string)((vector)s) == (string)((vector)((string)llListInsertList(split, ["-"], 5))));
}
string FormatFloat(float f, integer num_decimals)
{
float rounding = (float)(".5e-" + (string)num_decimals) - 5e-07;
@ -60,10 +65,12 @@ string FormatFloat(float f, integer num_decimals)
}
return ret;
}
instructions()
{
llOwnerSay("\n\nINSTRUCTIONS:\n\nFOR MOVING ALL POSE & PROP POSITIONS BY AN OFFSET:\nManual Position: specify a position offset on channel 5, and positions will be converted by that offset. E.g. /5 <0,0,1.5>\nManual Rotation: specify a rotation offset on channel 6 (in degrees), and rotations will be converted by that offset, relative to the prim center. E.g. /6 <0,0,180>\n\nFOR RELOCATING SCRIPTS TO NEW PRIM:\n1. Unlink your object and re-link so that the prim you want to move the animations from is the root prim, then place this script inside the root prim.\n2. Touch the prim you want to locate the poses to. This prim should be empty or contain a script with llPassTouches(TRUE);\n3. The script will read out the notecard in chat, with pos/rot modified to the prim you touched.\n\nHave Fun! :)\n");
}
cut_above_text()
{
webkey = (string)llGenerateKey();
@ -72,12 +79,14 @@ cut_above_text()
Readout_Say("--✄--COPY BELOW INTO \"AVpos\" NOTECARD--✄--");
Readout_Say("");
}
cut_below_text()
{
Readout_Say("");
Readout_Say("--✄--COPY ABOVE INTO \"AVpos\" NOTECARD--✄--");
Readout_Say("");
}
Readout_Say(string say)
{
llSleep(0.1);
@ -87,6 +96,7 @@ Readout_Say(string say)
llSetObjectName(objectname);
web(say + "\n", FALSE);
}
integer check_in_root()
{
if (llGetLinkNumber() > 1 || llGetInventoryType("AVpos") != INVENTORY_NOTECARD)
@ -100,6 +110,7 @@ integer check_in_root()
}
return TRUE;
}
default
{
state_entry()
@ -109,6 +120,7 @@ default
llListen(5, "", llGetOwner(), "");
llListen(6, "", llGetOwner(), "");
}
touch_start(integer touched)
{
check_in_root();
@ -122,6 +134,7 @@ default
notecard_query = llGetNotecardLine(notecard_name, notecard_line);
}
}
listen(integer chan, string name, key id, string msg)
{
if (chan == 5)
@ -155,6 +168,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -16,6 +16,7 @@ Owner_Say(string say)
{
llOwnerSay(llGetScriptName() + ": " + say);
}
default
{
state_entry()

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -25,6 +25,7 @@ integer animator_count;
integer animator_total;
list ommit = ["default", "stand"];
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -32,6 +33,7 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
string FormatFloat(float f, integer num_decimals)
{
float rounding = (float)(".5e-" + (string)num_decimals) - 5e-07;
@ -53,6 +55,7 @@ string FormatFloat(float f, integer num_decimals)
}
return ret;
}
finish()
{
if (llSubStringIndex(llGetObjectName(), "Utilities") == -1) // remove it except from Utilities box
@ -61,6 +64,7 @@ finish()
llRemoveInventory(llGetScriptName());
}
}
get_notecards()
{
integer i;
@ -77,6 +81,7 @@ get_notecards()
}
}
}
Readout_Say(string say)
{
string objectname = llGetObjectName();
@ -84,6 +89,7 @@ Readout_Say(string say)
llRegionSayTo(llGetOwner(), 0, "◆" + say);
llSetObjectName(objectname);
}
default
{
state_entry()
@ -105,6 +111,7 @@ default
finish();
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -17,10 +17,12 @@ integer variable1;
key notecard_query;
list ALL_USED_ANIMATIONS;
list UNUSED_ANIMS;
Owner_Say(string say)
{
llOwnerSay(llGetScriptName() + ": " + say);
}
finish()
{
Owner_Say("Check complete, removing script.");
@ -31,6 +33,7 @@ finish()
llRemoveInventory(llGetScriptName());
}
}
default
{
state_entry()
@ -51,6 +54,7 @@ default
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)
@ -100,6 +104,7 @@ default
}
}
}
listen(integer chan, string name, key id, string msg)
{
if (msg == "YES")
@ -116,6 +121,7 @@ default
}
finish();
}
timer()
{
Owner_Say("timeout");

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -19,7 +19,10 @@
*/
integer pin = -29752;
// Enter the list of allowed avatar UUIDs here.
list admin_avatars = ["b30c9262-9abf-4cd1-9476-adcf5723c029", "f2e0ed5e-6592-4199-901d-a659c324ca94"];
default
{
state_entry()
@ -38,6 +41,7 @@ default
llSetRemoteScriptAccessPin(pin);
llListen(pin, "", "", "");
}
timer()
{
if (llGetLinkNumber() == 0 || llGetLinkNumber() == 1 && llGetInventoryType("[AV]object") != INVENTORY_SCRIPT)
@ -49,6 +53,7 @@ default
}
llSetTimerEvent(10);
}
on_rez(integer start)
{
if (start)
@ -61,6 +66,7 @@ default
llRemoveInventory(llGetScriptName());
}
}
listen(integer chan, string name, key id, string msg)
{
if (llGetOwnerKey(id) == llGetOwner())
@ -84,6 +90,7 @@ default
}
}
}
changed(integer change)
{
if (change & CHANGED_OWNER)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -26,12 +26,13 @@ list objects_files;
integer menu_handle;
key av;
integer listenhandle;
particles_on(key target)
{
llParticleSystem([
PSYS_PART_FLAGS, 0 | PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_EMISSIVE_MASK | PSYS_PART_TARGET_POS_MASK,
PSYS_SRC_PATTERN, 0 | PSYS_SRC_PATTERN_DROP,
PSYS_PART_START_ALPHA, 1.00000,
PSYS_PART_START_ALPHA, 1.0,
PSYS_PART_END_ALPHA, 1,
PSYS_PART_START_COLOR, <1, 0, 0>,
PSYS_PART_END_COLOR, <0, 0, 1>,
@ -41,17 +42,18 @@ particles_on(key target)
PSYS_SRC_MAX_AGE, 0,
PSYS_SRC_ACCEL, <0, 0, 0>,
PSYS_SRC_BURST_PART_COUNT, 250,
PSYS_SRC_BURST_RADIUS, 0.00000,
PSYS_SRC_BURST_RADIUS, 0.0,
PSYS_SRC_BURST_RATE, 0.05766,
PSYS_SRC_BURST_SPEED_MIN, 0.07813,
PSYS_SRC_BURST_SPEED_MAX, 0.15625,
PSYS_SRC_INNERANGLE, 0.09375,
PSYS_SRC_OUTERANGLE, 0.00000,
PSYS_SRC_OUTERANGLE, 0.0,
PSYS_SRC_OMEGA, <0, 0, 0>,
PSYS_SRC_TEXTURE, (key)"",
PSYS_SRC_TARGET_KEY, target
]);
}
default
{
state_entry()
@ -59,10 +61,12 @@ default
llParticleSystem([]);
listenhandle = llListen(pin, "", "", "");
}
on_rez(integer x)
{
llResetScript();
}
timer()
{
llSetTimerEvent(0);
@ -146,6 +150,7 @@ default
llRegionSayTo(av, 0, "Updating Complete!");
llResetScript();
}
touch_start(integer touched)
{
if (llDetectedKey(0) == llGetOwner() || llSameGroup(llDetectedKey(0)))
@ -167,6 +172,7 @@ default
llSay(pin, "OBJECT_SEARCH|" + llDumpList2String(items, "|"));
}
}
listen(integer chan, string name, key id, string msg)
{
if (llGetOwnerKey(id) == llGetOwner())

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -46,6 +46,7 @@ list chosen_animations;
string cache;
string webkey;
integer webcount;
string FormatFloat(float f, integer num_decimals)
{
float rounding = (float)(".5e-" + (string)num_decimals) - 5e-07;
@ -67,6 +68,7 @@ string FormatFloat(float f, integer num_decimals)
}
return ret;
}
web(integer force)
{
if (llStringLength(llEscapeURL(cache)) > 1024 || force)
@ -81,6 +83,7 @@ web(integer force)
cache = "";
}
}
Readout_Say(string say)
{
string objectname = llGetObjectName();
@ -91,6 +94,7 @@ Readout_Say(string say)
say = "";
web(FALSE);
}
stop_all_anims(key id)
{
list animations = llGetAnimationList(id);
@ -100,14 +104,17 @@ stop_all_anims(key id)
llMessageLinked(LINK_THIS, 90002, llList2String(animations, i), id);
}
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls((str = "") + str, [search], []), replace);
}
preview_anim(string anim, key id)
{
if (id)
@ -116,6 +123,7 @@ preview_anim(string anim, key id)
llMessageLinked(LINK_THIS, 90001, anim, id);
}
}
list get_choices()
{
integer my_number_per_page = number_per_page;
@ -129,7 +137,28 @@ list get_choices()
integer end = start + my_number_per_page;
if (adding == "[FACE]")
{
list facial_anim_list = ["none", "express_afraid_emote", "express_anger_emote", "express_laugh_emote", "express_bored_emote", "express_cry_emote", "express_embarrassed_emote", "express_sad_emote", "express_toothsmile", "express_smile", "express_surprise_emote", "express_worry_emote", "express_repulsed_emote", "express_shrug_emote", "express_wink_emote", "express_disdain", "express_frown", "express_kiss", "express_open_mouth", "express_tongue_out"];
list facial_anim_list =
[ "none"
, "express_afraid_emote"
, "express_anger_emote"
, "express_laugh_emote"
, "express_bored_emote"
, "express_cry_emote"
, "express_embarrassed_emote"
, "express_sad_emote"
, "express_toothsmile"
, "express_smile"
, "express_surprise_emote"
, "express_worry_emote"
, "express_repulsed_emote"
, "express_shrug_emote"
, "express_wink_emote"
, "express_disdain"
, "express_frown"
, "express_kiss"
, "express_open_mouth"
, "express_tongue_out"
];
i = llGetListLength(facial_anim_list);
options = llList2List(facial_anim_list, start, end - 1);
}
@ -154,10 +183,12 @@ list get_choices()
menu_pages = llCeil((float)i / my_number_per_page);
return options;
}
ask_anim()
{
choice_menu(get_choices(), "Choose anim" + sitter_text(sitter_count) + ":");
}
choice_menu(list options, string menu_text)
{
last_text = menu_text;
@ -196,6 +227,7 @@ choice_menu(list options, string menu_text)
}
llDialog(controller, menu_text, order_buttons(menu_items), comm_channel);
}
new_menu()
{
menu_page = 0;
@ -208,15 +240,18 @@ new_menu()
string menu_text = "\nWhat would you like to create?\n";
llDialog(controller, menu_text, order_buttons(menu_items), comm_channel);
}
end_helper_mode()
{
llRegionSay(comm_channel, "DONEA");
helper_mode = FALSE;
}
Out(string out)
{
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
integer get_number_of_scripts()
{
integer i;
@ -224,6 +259,7 @@ integer get_number_of_scripts()
;
return i;
}
string convert_to_world_positions(integer num)
{
list details = llGetObjectDetails(llGetLinkKey(llGetLinkNumber()), [OBJECT_POS, OBJECT_ROT]);
@ -231,10 +267,12 @@ string convert_to_world_positions(integer num)
vector target_pos = llList2Vector(POS_LIST, num) * llList2Rot(details, 1) + llList2Vector(details, 0);
return (string)target_pos + "|" + (string)target_rot;
}
string sitter_text(integer sitter)
{
return " for SITTER " + (string)sitter;
}
remove_script(string reason)
{
string message = "\n" + llGetScriptName() + " ==Script Removed==\n\n" + reason;
@ -242,6 +280,7 @@ remove_script(string reason)
llInstantMessage(llGetOwner(), message);
llRemoveInventory(llGetScriptName());
}
done_choosing_anims()
{
string adding_text = llList2String(llParseString2List(adding, ["[", "]"], []), 0);
@ -254,6 +293,7 @@ done_choosing_anims()
}
llTextBox(controller, "\nType a menu name for " + adding_text + text, comm_channel);
}
camera_menu()
{
string text = "\nCamera:\n\n";
@ -267,6 +307,7 @@ camera_menu()
}
llDialog(controller, text, ["[BACK]", "[SAVE]", "[CLEAR]"], comm_channel);
}
unsit_all()
{
integer i = llGetNumberOfPrims();
@ -277,6 +318,7 @@ unsit_all()
i--;
}
}
toggle_helper_mode()
{
helper_mode = (!helper_mode);
@ -308,6 +350,7 @@ toggle_helper_mode()
end_helper_mode();
}
}
default
{
state_entry()
@ -332,6 +375,7 @@ default
comm_channel -= 1000000000;
}
}
link_message(integer sender, integer num, string msg, key id)
{
integer one = (integer)msg;
@ -571,6 +615,7 @@ default
}
}
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -594,6 +639,7 @@ default
llResetScript();
}
}
run_time_permissions(integer perm)
{
if (llGetPermissions() & PERMISSION_TRACK_CAMERA)
@ -613,6 +659,7 @@ default
camera_menu();
}
}
listen(integer chan, string name, key id, string msg)
{
if (chan == chat_channel)
@ -859,6 +906,7 @@ default
}
}
}
on_rez(integer x)
{
llResetScript();

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -28,6 +28,7 @@ vector default_size = <0.12,0.12,3.5>;
key key_request;
vector my_pos;
rotation my_rot;
stop_all_anims()
{
if (llAvatarOnSitTarget())
@ -46,6 +47,7 @@ stop_all_anims()
}
}
}
set_text()
{
string text = "▽";
@ -62,6 +64,7 @@ set_text()
text = t + " " + (string)helper_index + "\n" + text;
llSetLinkPrimitiveParamsFast(llGetLinkNumber(), [PRIM_TEXT, text, llList2Vector(colors, helper_index % llGetListLength(colors)), 1]);
}
setup()
{
alpha = llList2Float(llGetPrimitiveParams([PRIM_COLOR, 0]), 1);
@ -88,6 +91,7 @@ setup()
}
llRegionSay(comm_channel, "REG|" + (string)sitter_number);
}
default
{
state_entry()
@ -110,6 +114,7 @@ default
llSitTarget(-<0,0,0.35>, ZERO_ROTATION);
llSetStatus(STATUS_PHANTOM, TRUE);
}
on_rez(integer start)
{
llResetTime();
@ -137,6 +142,7 @@ default
setup();
}
}
listen(integer chan, string name, key id, string msg)
{
if (chan == 5 && id == CURRENT_AV)
@ -216,6 +222,7 @@ default
}
}
}
timer()
{
if (my_pos != llGetPos() || my_rot != llGetRot())
@ -229,6 +236,7 @@ default
llDie();
}
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -255,6 +263,7 @@ default
}
}
}
touch_start(integer total_number)
{
if (llGetStartParameter() != 0)
@ -262,6 +271,7 @@ default
llRegionSay(comm_channel, "MENU|" + (string)sitter_number + "|" + (string)llDetectedKey(0));
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -26,6 +26,7 @@ list MENU_TYPES = ["ALL", "OWNER", "GROUP"];
integer SIT_INDEX;
integer MENU_INDEX;
string lastmenu;
integer pass_security(key id, string context)
{
integer ALLOWED = FALSE;
@ -47,6 +48,7 @@ integer pass_security(key id, string context)
}
return ALLOWED;
}
check_sitters()
{
integer i = llGetNumberOfPrims();
@ -61,14 +63,17 @@ check_sitters()
i--;
}
}
back_to_adjust(integer SCRIPT_CHANNEL, key sitter)
{
llMessageLinked(LINK_SET, 90101, (string)SCRIPT_CHANNEL + "|[ADJUST]", sitter);
}
list order_buttons(list menu_items)
{
return llList2List(menu_items, -3, -1) + llList2List(menu_items, -6, -4) + llList2List(menu_items, -9, -7) + llList2List(menu_items, -12, -10);
}
register_touch(key id, integer animation_menu_function, integer active_prim, integer giveFailedMessage)
{
if (pass_security(id, "MENU"))
@ -94,11 +99,13 @@ register_touch(key id, integer animation_menu_function, integer active_prim, int
llDialog(id, product + "\n\nSorry, Menu access is set to: " + llList2String(MENU_TYPES, MENU_INDEX), [], -164289491);
}
}
main_menu()
{
dialog("Sit access: " + llList2String(SIT_TYPES, SIT_INDEX) + "\nMenu access: " + llList2String(MENU_TYPES, MENU_INDEX) + "\n\nChange security settings:", ["[BACK]", "Sit", "Menu"]);
lastmenu = "";
}
dialog(string text, list menu_items)
{
llListenRemove(menu_handle);
@ -106,6 +113,7 @@ dialog(string text, list menu_items)
llDialog(llGetOwner(), product + "\n\n" + text, order_buttons(menu_items), menu_channel);
llSetTimerEvent(600);
}
integer check_for_RLV()
{
if (llGetInventoryType(RLV_script) == INVENTORY_SCRIPT)
@ -114,17 +122,20 @@ integer check_for_RLV()
}
return FALSE;
}
default
{
state_entry()
{
llMessageLinked(LINK_SET, 90202, (string)check_for_RLV(), "");
}
timer()
{
llSetTimerEvent(0);
llListenRemove(menu_handle);
}
link_message(integer sender, integer num, string msg, key id)
{
if (num == 90201)
@ -162,6 +173,7 @@ default
llListenRemove(menu_handle);
}
}
listen(integer listen_channel, string name, key id, string msg)
{
if (msg == "Sit")
@ -198,6 +210,7 @@ default
}
llListenRemove(menu_handle);
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -205,6 +218,7 @@ default
check_sitters();
}
}
touch_end(integer touched)
{
if (check_for_RLV() || llGetAgentSize(llGetLinkKey(llGetNumberOfPrims())) != ZERO_VECTOR)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -14,6 +14,7 @@
string script_basename = "[AV]sitA";
string menu_script = "[AV]menu";
default
{
touch_end(integer touched)

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -31,6 +31,7 @@ integer menu_handle;
integer menu_type;
integer variable1;
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -38,14 +39,17 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
string strReplace(string str, string search, string replace)
{
return llDumpList2String(llParseStringKeepNulls((str = "") + str, [search], []), replace);
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
menu(key av)
{
integer sitter_index = llListFindList(SITTERS, [av]);

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -82,6 +82,7 @@ string BRAND;
string onSit;
integer speed_index;
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -89,10 +90,12 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "] " + out);
}
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
integer get_number_of_scripts()
{
integer i;
@ -100,12 +103,14 @@ integer get_number_of_scripts()
;
return i;
}
dialog(string text, list menu_items)
{
llListenRemove(menu_handle);
menu_handle = llListen(menu_channel = ((integer)llFrand(2147483646) + 1) * -1, "", CONTROLLER, "");
llDialog(CONTROLLER, product + " " + version + "\n\n" + text, order_buttons(menu_items), menu_channel);
}
options_menu()
{
list menu_items;
@ -139,6 +144,7 @@ options_menu()
menu_items += "[POSE]";
dialog("Adjust:", ["[BACK]"] + menu_items);
}
adjust_pose_menu()
{
string posrot_button = "Position";
@ -150,10 +156,12 @@ adjust_pose_menu()
}
dialog("Personal adjustment:", ["[BACK]", posrot_button, value_button, "[DEFAULT]", "[SAVE]", "[SAVE ALL]", "X+", "Y+", "Z+", "X-", "Y-", "Z-"]);
}
integer IsInteger(string data)
{
return llParseString2List((string)llParseString2List(data, ["8", "9"], []), ["0", "1", "2", "3", "4", "5", "6", "7"], []) == [] && data != "";
}
wipe_sit_targets()
{
integer i;
@ -166,10 +174,12 @@ wipe_sit_targets()
}
}
}
primcount_error()
{
llDialog(llGetOwner(), "\nThere aren't enough prims for required SitTargets.\nYou must have one prim for each avatar to sit!", [], 23658);
}
sittargets()
{
wrong_primcount = FALSE;
@ -235,14 +245,16 @@ sittargets()
prep();
set_sittarget();
}
prep()
{
has_security = (has_texture = FALSE);
if (!SCRIPT_CHANNEL)
{
llMessageLinked(LINK_SET, 90201, "", "");
llMessageLinked(LINK_SET, 90201, "", ""); // 90201=Ask for info about plugins
}
}
release_sitter(integer i)
{
SITTERS = llListReplaceList(SITTERS, [""], i, i);
@ -252,7 +264,7 @@ release_sitter(integer i)
{
if (MY_SITTER)
{
llMessageLinked(LINK_SET, 90065, (string)SCRIPT_CHANNEL, MY_SITTER);
llMessageLinked(LINK_SET, 90065, (string)SCRIPT_CHANNEL, MY_SITTER); // 90065=sitter gone
}
if (llGetAgentSize(MY_SITTER) != ZERO_VECTOR && CURRENT_ANIMATION_FILENAME != "")
{
@ -263,6 +275,7 @@ release_sitter(integer i)
}
}
}
set_sittarget()
{
vector target_pos = DEFAULT_POSITION;
@ -295,6 +308,7 @@ set_sittarget()
llLinkSitTarget(target, target_pos - <0.,0.,0.4> + llRot2Up(target_rot) * 0.05, target_rot);
}
}
update_current_anim_name()
{
list SEQUENCE = llParseStringKeepNulls(CURRENT_ANIMATION_SEQUENCE, ["<22>"], []);
@ -306,6 +320,7 @@ update_current_anim_name()
}
llSetTimerEvent((float)llList2String(SEQUENCE, SEQUENCE_POINTER + 1));
}
apply_current_anim(integer broadcast)
{
SEQUENCE_POINTER = 0;
@ -347,7 +362,7 @@ apply_current_anim(integer broadcast)
OLD_SYNC = OLD_POSE_NAME;
}
}
llMessageLinked(LINK_SET, 90045, llDumpList2String([SCRIPT_CHANNEL, POSENAME, CURRENT_ANIMATION_SEQUENCE, SET, llDumpList2String(SITTERS, "@"), OLD_SYNC, IS_SYNC], "|"), MY_SITTER);
llMessageLinked(LINK_SET, 90045, llDumpList2String([SCRIPT_CHANNEL, POSENAME, CURRENT_ANIMATION_SEQUENCE, SET, llDumpList2String(SITTERS, "@"), OLD_SYNC, IS_SYNC], "|"), MY_SITTER); // 90045=Broadcast info about pose playing
}
if (HASKEYFRAME)
{
@ -369,6 +384,7 @@ apply_current_anim(integer broadcast)
}
}
}
sit_using_prim_params()
{
integer sitter_prim = llGetNumberOfPrims();
@ -405,6 +421,7 @@ sit_using_prim_params()
llSetKeyframedMotion([], [KFM_COMMAND, KFM_CMD_PLAY]);
}
}
end_sitter()
{
llSetTimerEvent(0);
@ -420,6 +437,7 @@ end_sitter()
}
}
}
default
{
state_entry()
@ -444,7 +462,7 @@ default
reading_notecard_section = TRUE;
}
notecard_key = llGetInventoryKey(notecard_name);
llMessageLinked(LINK_THIS, 90299, (string)SCRIPT_CHANNEL, "");
llMessageLinked(LINK_THIS, 90299, (string)SCRIPT_CHANNEL, ""); // 90299=send Reset to AVsitB
if (llGetInventoryType(notecard_name) == INVENTORY_NOTECARD)
{
if (!SCRIPT_CHANNEL)
@ -454,6 +472,7 @@ default
notecard_query = llGetNotecardLine(notecard_name, reused_variable);
}
}
timer()
{
SEQUENCE_POINTER += 2;
@ -480,13 +499,15 @@ default
}
}
}
touch_end(integer touched)
{
if ((!SCRIPT_CHANNEL) && (!has_security) && MTYPE < 3)
{
llMessageLinked(LINK_SET, 90005, "", llDetectedKey(0));
llMessageLinked(LINK_SET, 90005, "", llDetectedKey(0)); // 90005=send menu to user
}
}
listen(integer listen_channel, string name, key id, string msg)
{
integer index = llListFindList(ADJUST_MENU, [msg]);
@ -503,7 +524,7 @@ default
index = llListFindList(["Position", "Rotation", "X+", "Y+", "Z+", "X-", "Y-", "Z-", "0.05m", "0.25m", "0.01m", "5°", "25°", "1°"], [msg]);
if (msg == "[BACK]")
{
llMessageLinked(LINK_SET, 90005, "", llDumpList2String([CONTROLLER, MY_SITTER], "|"));
llMessageLinked(LINK_SET, 90005, "", llDumpList2String([CONTROLLER, MY_SITTER], "|")); // 90005=send menu to user
}
else if (msg == "[POSE]")
{
@ -606,26 +627,27 @@ default
}
else
{
llMessageLinked(LINK_SET, 90100, (string)SCRIPT_CHANNEL + "|" + msg + "|" + (string)MY_SITTER + "|" + (string)OLD_HELPER_METHOD, id);
llMessageLinked(LINK_SET, 90100, (string)SCRIPT_CHANNEL + "|" + msg + "|" + (string)MY_SITTER + "|" + (string)OLD_HELPER_METHOD, id); // 90100=Menu choice
}
}
}
link_message(integer sender, integer num, string msg, key id)
{
integer one = (integer)msg;
integer two = (integer)((string)id);
if (num == 90075)
if (num == 90075) // 90075=old-style helper ask to animate
{
if (one == SCRIPT_CHANNEL)
{
llRequestPermissions(id, PERMISSION_TRIGGER_ANIMATION);
}
}
else if (num == 90076)
else if (num == 90076) // 90076=old-style helper stop animating
{
release_sitter(one);
}
else if (num == 90030)
else if (num == 90030) // 90030=swap sitters
{
if (one == SCRIPT_CHANNEL || two == SCRIPT_CHANNEL)
{
@ -647,27 +669,27 @@ default
SITTERS = llListReplaceList(llListReplaceList(SITTERS, [""], one, one), [""], two, two);
MY_SITTER = llList2Key(SITTERS, SCRIPT_CHANNEL);
}
else if (num == 90070)
else if (num == 90070) // 90070=update SITTERS after permission granted
{
if (one != SCRIPT_CHANNEL)
{
SITTERS = llListReplaceList(SITTERS, [id], one, one);
}
}
if (num == 90150)
if (num == 90150) // 90150=ask other AVsitA scripts to place their sittargets again
{
sittargets();
}
else if (num == 90202)
else if (num == 90202) // 90202=security script present in root
{
has_security = TRUE;
llPassTouches(has_security);
}
else if (num == 90203)
else if (num == 90203) // 90203=texture script present in root (unused)
{
has_texture = TRUE;
}
else if (num == 90298)
else if (num == 90298) // 90298=show SitTargets (/5 targets)
{
integer target = my_sittarget;
if (llGetNumberOfPrims() == 1 && target == 1)
@ -678,26 +700,26 @@ default
llSleep(5);
llSetLinkPrimitiveParams(target, [PRIM_TEXT, "", <1,1,1>, 1]);
}
else if (num == 90011)
else if (num == 90011) // 90011=set link camera
{
llSetLinkCamera(LINK_THIS, (vector)msg, (vector)((string)id));
}
else if (num == 90033)
else if (num == 90033) // 90033=clear menu listener
{
llListenRemove(menu_handle);
}
else if (id == MY_SITTER)
{
list data = llParseStringKeepNulls(msg, ["|"], []);
if (num == 90001)
if (num == 90001) // 90001=start an overlay animation
{
llStartAnimation(msg);
}
else if (num == 90002)
else if (num == 90002) // 90002=stop an overlay animation
{
llStopAnimation(msg);
}
else if (num == 90101)
else if (num == 90101) // 90101=menu option chosen
{
CONTROLLER = (key)llList2String(data, 2);
if (llList2String(data, 1) == "[ADJUST]")
@ -737,7 +759,7 @@ default
}
if (one == SCRIPT_CHANNEL)
{
if (num == 90055)
if (num == 90055) // 90055=anim info from AVsitB
{
list data = llParseStringKeepNulls(id, ["|"], []);
OLD_POSE_NAME = CURRENT_POSE_NAME;
@ -757,7 +779,7 @@ default
apply_current_anim((integer)llList2String(data, 4));
set_sittarget();
}
else if (num == 90057)
else if (num == 90057) // 90057=helper moved, update position
{
list data = llParseStringKeepNulls(id, ["|"], []);
CURRENT_POSITION = (vector)llList2String(data, 0);
@ -766,6 +788,7 @@ default
}
}
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -831,11 +854,11 @@ default
}
}
llRequestPermissions(llGetLinkKey(i), PERMISSION_TRIGGER_ANIMATION);
llMessageLinked(LINK_SET, 90060, (string)SCRIPT_CHANNEL, llGetLinkKey(i));
llMessageLinked(LINK_SET, 90060, (string)SCRIPT_CHANNEL, llGetLinkKey(i)); // 90060=new sitter
}
else
{
llMessageLinked(LINK_THIS, 90056, (string)SCRIPT_CHANNEL, llDumpList2String([CURRENT_POSE_NAME, CURRENT_ANIMATION_SEQUENCE, CURRENT_POSITION, CURRENT_ROTATION], "|"));
llMessageLinked(LINK_THIS, 90056, (string)SCRIPT_CHANNEL, llDumpList2String([CURRENT_POSE_NAME, CURRENT_ANIMATION_SEQUENCE, CURRENT_POSITION, CURRENT_ROTATION], "|")); // 90056=send anim info
}
}
AVPRIMS += llGetLinkKey(i);
@ -854,7 +877,7 @@ default
{
if (MY_SITTER)
{
llMessageLinked(LINK_SET, 90065, (string)SCRIPT_CHANNEL, MY_SITTER);
llMessageLinked(LINK_SET, 90065, (string)SCRIPT_CHANNEL, MY_SITTER); // 90065=sitter gone
}
if (llGetAgentSize(MY_SITTER) != ZERO_VECTOR && (integer)CURRENT_ANIMATION_FILENAME)
{
@ -913,11 +936,11 @@ default
}
}
llRequestPermissions(actual_sitter, PERMISSION_TRIGGER_ANIMATION);
llMessageLinked(LINK_SET, 90060, (string)SCRIPT_CHANNEL, actual_sitter);
llMessageLinked(LINK_SET, 90060, (string)SCRIPT_CHANNEL, actual_sitter); // 90060=new sitter
}
else
{
llMessageLinked(LINK_THIS, 90056, (string)SCRIPT_CHANNEL, llDumpList2String([CURRENT_POSE_NAME, CURRENT_ANIMATION_SEQUENCE, CURRENT_POSITION, CURRENT_ROTATION], "|"));
llMessageLinked(LINK_THIS, 90056, (string)SCRIPT_CHANNEL, llDumpList2String([CURRENT_POSE_NAME, CURRENT_ANIMATION_SEQUENCE, CURRENT_POSITION, CURRENT_ROTATION], "|")); // 90056=send anim info
}
}
}
@ -941,7 +964,7 @@ default
if (!SCRIPT_CHANNEL)
{
wipe_sit_targets();
llMessageLinked(LINK_SET, 90150, "", "");
llMessageLinked(LINK_SET, 90150, "", ""); // 90150=ask other AVsitA scripts to place their sittargets again
}
prep();
}
@ -955,6 +978,7 @@ default
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
@ -972,10 +996,10 @@ default
reused_key = "";
SITTERS = llListReplaceList(SITTERS, [CONTROLLER = (MY_SITTER = llGetPermissionsKey())], SCRIPT_CHANNEL, SCRIPT_CHANNEL);
string channel_or_swap = (string)SCRIPT_CHANNEL;
integer lnk = 90000;
integer lnk = 90000; // 90000=play pose
if (SWAPPED)
{
lnk = 90010;
lnk = 90010; // 90010=play pose, ignoring ETYPE
SWAPPED = FALSE;
}
else if (llGetSubString(CURRENT_POSE_NAME, 0, 1) != "P:")
@ -987,7 +1011,7 @@ default
{
posename = llGetSubString(CURRENT_POSE_NAME, 2, -1);
}
llMessageLinked(LINK_THIS, 90070, (string)SCRIPT_CHANNEL, MY_SITTER);
llMessageLinked(LINK_THIS, 90070, (string)SCRIPT_CHANNEL, MY_SITTER); // 90070=update SITTERS after permissions granted
llMessageLinked(LINK_THIS, lnk, posename, channel_or_swap);
if (wrong_primcount && WARN)
{
@ -998,14 +1022,17 @@ default
if (has_security)
{
llMessageLinked(LINK_SET, 90006, (string)animation_menu_function, MY_SITTER);
// Docs say 90006 is:
// "Register touch or sit to [AV]root-security script from [AV]sitA after permissions granted."
}
else
{
llMessageLinked(LINK_SET, 90005, (string)animation_menu_function, llDumpList2String([CONTROLLER, MY_SITTER], "|"));
llMessageLinked(LINK_SET, 90005, (string)animation_menu_function, llDumpList2String([CONTROLLER, MY_SITTER], "|")); // 90005=send menu to user
}
}
}
}
dataserver(key query_id, string data)
{
if (query_id == notecard_query)
@ -1019,9 +1046,9 @@ default
else
{
llSetText("", <1,1,1>, 1);
llMessageLinked(LINK_SET, 90150, "", "");
llMessageLinked(LINK_SET, 90150, "", ""); // 90150=ask other AVsitA scripts to place their sittargets again
}
llMessageLinked(LINK_THIS, 90302, (string)SCRIPT_CHANNEL, llDumpList2String([llGetListLength(SITTERS), llDumpList2String(SITTER_INFO, "<22>"), SET, MTYPE, ETYPE, SWAP, FIRST_POSENAME, BRAND, CUSTOM_TEXT, llDumpList2String(ADJUST_MENU, "<22>"), SELECT, AMENU, OLD_HELPER_METHOD, RLVDesignations, onSit], "|"));
llMessageLinked(LINK_THIS, 90302, (string)SCRIPT_CHANNEL, llDumpList2String([llGetListLength(SITTERS), llDumpList2String(SITTER_INFO, "<22>"), SET, MTYPE, ETYPE, SWAP, FIRST_POSENAME, BRAND, CUSTOM_TEXT, llDumpList2String(ADJUST_MENU, "<22>"), SELECT, AMENU, OLD_HELPER_METHOD, RLVDesignations, onSit], "|")); // 90302=send notecard settings to AVsitB
reused_variable = (llGetFreeMemory() - 5000) / 100;
}
else
@ -1146,15 +1173,15 @@ default
FIRST_POSITION = (DEFAULT_POSITION = (CURRENT_POSITION = (vector)pos));
FIRST_ROTATION = (DEFAULT_ROTATION = (CURRENT_ROTATION = (vector)rot));
}
llMessageLinked(LINK_THIS, 90301, (string)SCRIPT_CHANNEL, command + "|" + pos + "|" + rot);
llMessageLinked(LINK_THIS, 90301, (string)SCRIPT_CHANNEL, command + "|" + pos + "|" + rot); // 90301=send update to AVsitB
}
else
{
part0 = llGetSubString(part0, 0, 22);
if (command == "SEQUENCE")
{
command = "BUTTON";
part1 = "90210";
command = "BUTTON"; // Act as a button
part1 = "90210"; // Link code: Trigger sequence
}
if (command == "POSE" || command == "SYNC" || command == "MENU" || command == "TOMENU" || command == "BUTTON")
{
@ -1186,9 +1213,9 @@ default
}
else if (command == "BUTTON" && part1 == "")
{
part1 = "90200";
part1 = "90200"; // default to rez prop
}
llMessageLinked(LINK_THIS, 90300, (string)SCRIPT_CHANNEL, part0 + "|" + part1);
llMessageLinked(LINK_THIS, 90300, (string)SCRIPT_CHANNEL, part0 + "|" + part1); // 90300=update AVsitB
}
}
}

View file

@ -3,7 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) the AVsitter Contributors (http://avsitter.github.io)
* Copyright © the AVsitter Contributors (http://avsitter.github.io)
* AVsitter™ is a trademark. For trademark use policy see:
* https://avsitter.github.io/TRADEMARK.mediawiki
*
@ -48,6 +48,7 @@ string RLVDesignations;
string onSit;
integer speed_index;
integer verbose = 0;
Out(integer level, string out)
{
if (verbose >= level)
@ -55,22 +56,27 @@ Out(integer level, string out)
llOwnerSay(llGetScriptName() + "[" + version + "]:" + out);
}
}
send_anim_info(integer broadcast)
{
llMessageLinked(LINK_THIS, 90055, (string)SCRIPT_CHANNEL, llDumpList2String([llList2String(MENU_LIST, ANIM_INDEX), llList2String(DATA_LIST, ANIM_INDEX), llList2String(POS_ROT_LIST, ANIM_INDEX * 2), llList2String(POS_ROT_LIST, ANIM_INDEX * 2 + 1), broadcast, speed_index], "|"));
}
Readout_Say(string say)
{
llMessageLinked(LINK_THIS, 90022, say, (string)SCRIPT_CHANNEL);
}
list order_buttons(list buttons)
{
return llList2List(buttons, -3, -1) + llList2List(buttons, -6, -4) + llList2List(buttons, -9, -7) + llList2List(buttons, -12, -10);
}
memory()
{
llOwnerSay(llGetScriptName() + "[" + version + "] " + (string)(MENU_LIST != []) + " Items Ready, Mem=" + (string)(65536 - llGetUsedMemory()));
}
integer animation_menu(integer animation_menu_function)
{
if (animation_menu_function == -1 || (MENU_LIST != []) < 2 && (!helper_mode) && llGetInventoryType(select_script) == INVENTORY_SCRIPT)
@ -227,6 +233,7 @@ integer animation_menu(integer animation_menu_function)
}
return 0;
}
default
{
state_entry()
@ -240,6 +247,7 @@ default
llResetOtherScript(main_script);
}
}
listen(integer listen_channel, string name, key id, string msg)
{
string channel;
@ -349,6 +357,7 @@ default
llMessageLinked(LINK_SET, 90101, llDumpList2String([SCRIPT_CHANNEL, msg, CONTROLLER], "|"), MY_SITTER);
}
}
changed(integer change)
{
if (change & CHANGED_LINK)
@ -372,6 +381,7 @@ default
}
}
}
link_message(integer sender, integer num, string msg, key id)
{
integer one = (integer)msg;