Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Script errors and inefficiency

Kornscope Komachi
Transitional human
Join date: 30 Aug 2006
Posts: 1,041
08-18-2008 20:43
Move on please..nothing to see here.
_____________________
SCOPE Homes, Bangu
-----------------------------------------------------------------
Kornscope Komachi
Transitional human
Join date: 30 Aug 2006
Posts: 1,041
And here is one slave script
08-18-2008 20:54
CODE




integer DEBUG = TRUE;
integer CHANNEL = -0272008;
integer listen_handle;
key curAV;
string s_notecard = "Settings_MLS";
integer lineCounter;
key dataRequestID;
key kQuery;
integer LINK2NUM;
string side;
string SIDES1;
string SIDES2;
vector COLOR1;
vector COLOR2;
list sides_data;
string texkey;
string command;

string side1; string side2; string side3; string side4;string side5; string side6; string side7; string side8; string side9;
//-----------//-------------------------------------------//-----------//MENUS
list MENU_ONE = ["Inside7","Inside8","Inside9","Inside4","Inside5","Inside6","Inside1","Inside2","Inside3","ALPHA","OUTSIDE","MAIN MENU"];
list MENU_OUTSIDE = ["Outside7","Outside8","Outside9","Outside4","Outside5","Outside6","Outside1","Outside2","Outside3","ALPHA","INSIDE","MAIN MENU"];
list MENU_ALPHAS = ["Int_0.75","Int_0.50","Int_0.25","Ext_0.75","Ext_0.50","Ext_0.25","Ext_1.0","Ext_0.0","Int_0.0","Int_1.0","INSIDE","OUTSIDE"];

GetParameters(string str){
list lsdata = llParseString2List(str, ["="], [""]);
string item = llList2String(lsdata,0);
string value = llList2String(lsdata,1);
integer intvalue = (integer)value;
llOwnerSay("Reading " + item + " is set at:" + value);
if ("SIDES1"== item) {SIDES1 = (string) value;}
if ("SIDES2"== item) {SIDES2 = (string) value;}
if ("COLOR1" == item) {COLOR1 = (vector) value;}
if ("COLOR2" == item) {COLOR2 = (vector) value;}
// if ("LINK2NUM" == item) {LINK2NUM = (integer) value;}

}
////----
Changed(integer change)
{
// Test for a changed inventory
if (change & CHANGED_INVENTORY)
{
llResetScript();
}
else if (change & CHANGED_OWNER)
{
llResetScript();
}
}

////---------
debug(string in)
{
if(DEBUG)llOwnerSay((string)llGetScriptName()+"Dbg " +in);
}

parse_message(string message)
{
list params = llParseString2List(message, ["|"], []);
string message = llDumpList2String([message, texkey], "|");
command = llList2String(params, 0);
texkey = llList2String(params, 1);
debug((string)message);
return;
}

get_sides(string sides_data)
{

list SIDES1 = llParseString2List((string)SIDES1, ["/"], [""]);
string sides_data = llDumpList2String([""],"/");
side1 = llList2String(SIDES1, 0);
side2 = llList2String(SIDES1, 1);
side3 = llList2String(SIDES1, 2);
side4 = llList2String(SIDES1, 3);
side5 = llList2String(SIDES1, 4);
side6 = llList2String(SIDES1, 5);
side7 = llList2String(SIDES1, 6);
side8 = llList2String(SIDES1, 7);
side9 = llList2String(SIDES1, 8);
return;
}
get_sides2(string sides_data)
{
list SIDES2 = llParseString2List((string)SIDES2, ["/"], [""]);
string sides_data = llDumpList2String([side1,side2,side3,side4,side5,side6,side7,side8,side9],"/");
side1 = llList2String(SIDES2, 0);
side2 = llList2String(SIDES2, 1);
side3 = llList2String(SIDES2, 2);
side4 = llList2String(SIDES2, 3);
side5 = llList2String(SIDES2, 4);
side6 = llList2String(SIDES2, 5);
side7 = llList2String(SIDES2, 6);
side8 = llList2String(SIDES2, 7);
side9 = llList2String(SIDES2, 8);
return;
}
set_alpha(float amount)
{

string side;
list SIDES1 = llParseString2List((string)SIDES1, ["/"], [""]);
integer length = llGetListLength(SIDES1);
integer i;
for (i = 0; i < length; ++i)
{ if (side+(string)i != "")
//number = llList2String(SIDES1,i);
{
llSetAlpha(amount,(integer)llList2String(SIDES1,i));
llSetColor(COLOR1,(integer)llList2String(SIDES1,i));
}
else return;
}
}
set_alpha2(float amount)
{

string side;
list SIDES2 = llParseString2List((string)SIDES2, ["/"], [""]);
integer length = llGetListLength(SIDES2);
integer i;
for (i = 0; i < length; ++i)
{ if (side+(string)i != "")
//number = llList2String(SIDES1,i);
{
llSetAlpha(amount,(integer)llList2String(SIDES2,i));
llSetColor(COLOR1,(integer)llList2String(SIDES2,i));
}
else return;
}
}
set_texture()
{
{ if (side1 == "") return;
else llSetTexture((key)texkey,(integer)side1);
llSetColor(COLOR1,(integer)side1);
llSetAlpha(1.0,(integer)side1);
}

{ if (side2 == "") return;
else llSetTexture((key)texkey,(integer)side2);
llSetColor(COLOR1,(integer)side2);
llSetAlpha(1.0,(integer)side2); }

{ if (side3 == "") return;
else llSetTexture((key)texkey,(integer)side3);
llSetColor(COLOR1,(integer)side3);
llSetAlpha(1.0, (integer)side3); }

{ if (side4 == "") return;
else llSetTexture((key)texkey,(integer)side4);
llSetColor(COLOR1,(integer)side4);
llSetAlpha(1.0,(integer)side4); }

{ if (side5 == "") return;
else llSetTexture((key)texkey,(integer)side5);
llSetColor(COLOR1,(integer)side5);
llSetAlpha(1.0,(integer)side5); }

{ if (side6 == "") return;
else llSetTexture((key)texkey,(integer)side6);
llSetColor(COLOR1,(integer)side6);
llSetAlpha(1.0,(integer)side6); }

{ if (side7 == "") return;
else llSetTexture((key)texkey,(integer)side7);
llSetColor(COLOR1,(integer)side7);
llSetAlpha(1.0,(integer)side7); }

{ if (side8 == "") return;
else llSetTexture((key)texkey,(integer)side8);
llSetColor(COLOR1,(integer)side8);
llSetAlpha(1.0,(integer)side8); }

{ if (side9 == "") return;
else llSetTexture((key)texkey,(integer)side9);
llSetColor(COLOR1,(integer)side9);
llSetAlpha(1.0,(integer)side9); }

}




default
{
state_entry()
{
state ReadConfig;
}
on_rez (integer change) { Changed(change); }

changed(integer change) { Changed(change) ; }
}

state Running
{
state_entry()
{

debug((string)llGetScriptName() + " Mem= "+ (string)llGetFreeMemory());
llSetTexture("97349513-3345-cd51-6728-af70771ce0dc",ALL_SIDES);
llMessageLinked(LINK_ALL_OTHERS,0,"give_link_number",NULL_KEY);

}
touch_start(integer total_number)
{
curAV = llDetectedKey(0);
CHANNEL = (integer) llFrand (1000000)+1;
listen_handle = llListen(CHANNEL, "",curAV, "");
llDialog(curAV, "Inside Window Settings.", MENU_ONE, CHANNEL);
llSetTimerEvent(30.0);

}
listen(integer channel, string name, key curAV, string message)
{
if (llListFindList(MENU_ONE + MENU_OUTSIDE + MENU_ALPHAS,[message]) != -1) {

if (message == "INSIDE"){llDialog(curAV, "Set the Internal Texture.", MENU_ONE, CHANNEL);
llSetTimerEvent(30.0); }
else if (message == "OUTSIDE"){llDialog(curAV, "Set the External Texture", MENU_OUTSIDE, CHANNEL);
llSetTimerEvent(30.0); }
else if (message == "ALPHA") { llDialog(curAV, "Set the Percent % of Alpha." , MENU_ALPHAS, CHANNEL);
llSetTimerEvent(30.0); }

else if (message == "MAIN MENU") llMessageLinked(LINK2NUM, 0,"MAIN_MENU",curAV);
//----------//----------------------------------------------//---------->Set Interior Texture


if (llGetSubString(message, 0, 5) == "Inside")
{
string side;
list SIDES1 = llParseString2List((string)SIDES1, ["/"], [""]);
integer length = llGetListLength(SIDES1);
integer i;
for (i = 0; i < length; ++i)
{
llMessageLinked(LINK2NUM,(integer)llList2String(SIDES1,i),message,curAV);
debug((string)i+(string)LINK2NUM+message);
}
}
if (llGetSubString(message, 0, 6) == "Outside")
{
string side;
list SIDES2 = llParseString2List((string)SIDES2, ["/"], [""]);
integer length = llGetListLength(SIDES2);
integer i;
for (i = 0; i < length; ++i)
{
llMessageLinked(LINK2NUM,(integer)llList2String(SIDES2,i),message,curAV);
debug((string)message+(string)i);
}
}
if (llGetSubString(message, 0, 3) == "Int_")
{
string side;
list SIDES1 = llParseString2List((string)SIDES1, ["/"], [""]);
integer length = llGetListLength(SIDES1);
integer i;
for (i = 0; i < length; ++i)
{
llMessageLinked(LINK2NUM,(integer)llList2String(SIDES1,i),message,curAV);
debug((string)i);
}
}
if (llGetSubString(message, 0, 3) == "Ext_")
{
string side;
list SIDES2 = llParseString2List((string)SIDES2, ["/"], [""]);
integer length = llGetListLength(SIDES2);
integer i;
for (i = 0; i < length; ++i)
{
llMessageLinked(LINK2NUM,(integer)llList2String(SIDES2,i),message,curAV);
debug((string)i);
}
}

}
else llSay(0, name + " picked invalid option '" + llToLower(message) + "'.");}


link_message(integer sender, integer num, string message,key id)
{
if (llGetSubString(message, 0,5) == "Master"){//_ControlNumber")
LINK2NUM = (integer)llGetSubString(message,-1,-1);
debug("boss is: "+(string)LINK2NUM);}

if (llGetSubString(message, 0,5) == "Inside")

{

string sides_data;
parse_message(message);
get_sides(sides_data);
set_texture();
debug((string)message);

}
if (llGetSubString(message, 0, 6) == "Outside")

{
debug((string)message);
string sides_data;
parse_message(message);
get_sides2(sides_data);
set_texture();

}

if (llGetSubString(message, 0, 3) == "Int_")

{ string amount;
string sides_data;
amount = llGetSubString(message,4,-1);
debug((string)message);
parse_message(message);
set_alpha((float)amount);
}
if (llGetSubString(message, 0, 3) == "Ext_")

{ string amount;
string sides_data;
amount = llGetSubString(message,4,-1);
debug((string)message);
parse_message(message);
set_alpha2((float)amount);
}



}
on_rez(integer change) { Changed(change) ; }
changed(integer change) { Changed(change) ; }
timer()
{
llListenRemove(listen_handle); //Remove that dialog listener
llSetTimerEvent(0);
}

}
state ReadConfig

{
state_entry()
{
lineCounter = 0;
integer itemtype = llGetInventoryType(s_notecard);
if(INVENTORY_NOTECARD == itemtype)
{
kQuery = llGetNotecardLine(s_notecard, lineCounter);
llSetTimerEvent(10);
}
else {
llOwnerSay("Error - configuration notecard missing, Using defaults only!");
state Running; }
}
dataserver( key s_query_id, string sdata ) // read from the notecard
{
if(s_query_id == kQuery)
{ if (sdata != EOF){
if(llStringLength(sdata) > 3)
{
GetParameters(sdata);
} lineCounter++;
kQuery = llGetNotecardLine( s_notecard, lineCounter );}
else
{
llSetTimerEvent(0);
//llOwnerSay("Data looks clean. All Good!");
state Running; }}
}
timer() {
llListenRemove(listen_handle);
llOwnerSay("ERROR - Dataserver time out! aborting");
llSetTimerEvent(0);
state Running;
}
on_rez(integer change) { Changed(change) ; }
changed(integer change) { Changed(change) ; }// if something has been updated resetnning;

}
_____________________
SCOPE Homes, Bangu
-----------------------------------------------------------------