Notecard reading
Revision as of 11:40, 29 April 2024 by Gwyneth Llewelyn (talk | contribs) (Replaced <source> with <syntaxhighlight> and minor formatting)
Here is a notecard reading template I use as a starting point.
//Notecard Reading template
//Copyright 2007, Gigs Taggart
//Released under BSD license
//https://opensource.org/license/BSD-2-Clause
key gSetupQueryId;
integer gSetupNotecardLine;
string gSetupNotecardName = "setup";
//define config variables here
string gPassword;
readSettingsNotecard()
{
gSetupNotecardLine = 0;
gSetupQueryId = llGetNotecardLine(gSetupNotecardName, gSetupNotecardLine);
}
default
{
state_entry()
{
readSettingsNotecard();
}
dataserver(key queryId, string data)
{
if(queryId == gSetupQueryId)
{
if(data != EOF)
{
list tmp = llParseString2List(data, ["="], []);
string setting = llList2String(tmp, 0);
if (setting == "password")
{
gPassword=llList2String(tmp, 1);
}
//add more if statements here, for each config variable
//you can also do stuff like variable=val1,val2,val3, simply
//do llCSV2List(llList2String(tmp, 1));
gSetupQueryId = llGetNotecardLine(gSetupNotecardName, ++gSetupNotecardLine);
}
else
{
state running;
}
}
}
changed(integer change)
{
if (change & CHANGED_INVENTORY)
llResetScript();
}
}
state running
{
changed(integer change)
{
if (change & CHANGED_INVENTORY)
llResetScript();
}
}