Anluin Resident
Nutzer
Guten Morgen,
Es ist ja möglich eine Funktion in ein anderes Skript auszulagern...
Ich würde nun gern zwei sagen von euch wissen:
Ich finde schade das LSL sowas nicht von Haus aus anbietet ( wäre mir jedenfalls neu ).
Da man damit nicht nur insgesamt größere Projekte aufbauen könnte, sondern auch Librarys erstellen und verkaufen könnte,
ohne ein Script Full-Perm weiter geben zu müssen.
Es wäre interessant, wenn wir ein paar unterschiedliche Lösungsansätze bekommen würden!
Ich für meinen Teil habe habe mir schon Gedanken dazu gemacht und auch ein Funktionierenden Ansatz erstellt,
diesen würde ich dann auch später einmal Posten - da ich gerne mal sehen würde wie euer Lösungsansätze aussehen,
welche Probleme dieser verursacht und ob ihr schon Lösungen für die entstehenden Probleme habt... ^^
Hier ein kleines Beispiel, wie ein solches Konzept aussehen könnte:
(Soll das einlesen einer Notecard in "einer Zeile" ermöglichen)
Example.lsl
notecard_reader.lsl
Desweiteren hoffe ich mal wieder das ich hier im richtigen Unterforum gelandet bin und hoffe ihre verzeiht mir falls nicht.
Liebe Grüße, Anluin
Es ist ja möglich eine Funktion in ein anderes Skript auszulagern...
Ich würde nun gern zwei sagen von euch wissen:
- Wie würdet ihr dieses Problem lösen?
- Würdet ihr sowas überhaupt benutzen oder findet ihr das zu Un-Performance?
Ich finde schade das LSL sowas nicht von Haus aus anbietet ( wäre mir jedenfalls neu ).
Da man damit nicht nur insgesamt größere Projekte aufbauen könnte, sondern auch Librarys erstellen und verkaufen könnte,
ohne ein Script Full-Perm weiter geben zu müssen.
Es wäre interessant, wenn wir ein paar unterschiedliche Lösungsansätze bekommen würden!
Ich für meinen Teil habe habe mir schon Gedanken dazu gemacht und auch ein Funktionierenden Ansatz erstellt,
diesen würde ich dann auch später einmal Posten - da ich gerne mal sehen würde wie euer Lösungsansätze aussehen,
welche Probleme dieser verursacht und ob ihr schon Lösungen für die entstehenden Probleme habt... ^^
Hier ein kleines Beispiel, wie ein solches Konzept aussehen könnte:
(Soll das einlesen einer Notecard in "einer Zeile" ermöglichen)
Example.lsl
Code:
list request(key target,list arguments)
{
llMessageLinked(LINK_THIS, (integer)("0x"+(string)llGetInventoryKey(llGetScriptName())),llList2Json(JSON_ARRAY,arguments), llGetInventoryKey(target));
//...
// Code um den Rückgabewert des anderen Skriptes zu bekommen.
//...
return ...;
}
string inline_read_notecard(string name)
{
return llList2String(request("notecard_reader.lsl",[name]),0);
}
default
{
state_entry()
{
llSay(0,inline_read_notecard("example_notecard"));
}
}
Code:
integer response(list data)
{
//Code zum übergeben des Zückgabewertes (Notecard innhalt) an das Sender-Skript
return TRUE;
}
key this;
string notecard_name;
integer notecard_line;
string data;
default
{
state_entry()
{
this=llGetInventoryKey(llGetScriptName());
}
link_message(integer link, integer sender, string _arguments, key target)
{
if(link==LINK_THIS&&target==this)
{
list arguments = llJson2List(_arguments);
notecard_name=llList2String(arguments,0);
llGetNotecardLine(notecard_name,notecard_line);
}
}
dataserver(key id, string line)
{
if (line == EOF)
response([data]);
else
{
data+=line;
notecard_line++;
llGetNotecardLine(notecard_name,notecard_line);
}
}
}
Desweiteren hoffe ich mal wieder das ich hier im richtigen Unterforum gelandet bin und hoffe ihre verzeiht mir falls nicht.
Liebe Grüße, Anluin