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:
parent
ef3adcce5e
commit
2488349a1b
26 changed files with 500 additions and 203 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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]);
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue