string sNotecard;
integer iLine = 0;
key kID;
integer ch=34533;
key NoteCard;
string note_name;
integer noteline_index;
list notecard_info;
key owner;
ready(string str){
llRemoveInventory(note_name);
}
default
{
changed(integer c) {
if (c & CHANGED_INVENTORY){llInstantMessage(llGetOwner(),"Tuning for driver "+llKey2Name(llGetOwner())+"..."

{
// reset script if inventory has been changed
if(c&CHANGED_INVENTORY) llResetScript();
}
}
}
state_entry()
{ owner=llGetOwner();
llAllowInventoryDrop(TRUE);
note_name=llGetInventoryName(INVENTORY_NOTECARD,0);
if(note_name!=""

//check if a notecard exists
if(llGetInventoryNumber(INVENTORY_NOTECARD)==0)
{
llSay(0, "No notecard found!"

return;
}
//get the name of the first notecard
sNotecard = llGetInventoryName(INVENTORY_NOTECARD, 0);
iLine = 0;
//request first line. This calls the dataserver event:
kID = llGetNotecardLine(sNotecard, iLine);
}
dataserver(key query_id, string data)
{
//check if what we got is what we want
if (query_id == kID)
{
//end of file?
if (data != EOF)
{
//put your routines here, e.g.
llSetObjectDesc(data);
//if you expect only one line, you can stop here,
//no need to request the next line
//we include it here though for completeness
}
else // request next line
{
++iLine;
kID = llGetNotecardLine(sNotecard, iLine);
}
}
}
}