Difference between revisions of "LlGetNotecardLine"

From Second Life Wiki
Jump to navigation Jump to search
(added example)
Line 12: Line 12:
|caveats
|caveats
|constants
|constants
|examples
|examples=<pre>
key kQuery;
integer iLine = 0;
default {
   
    state_entry() {
        llSay(0, "Reading notecard...");
        kQuery = llGetNotecardLine("My Notecard", iLine);
    }
 
    dataserver(key query_id, string data) {
 
        if (query_id == kQuery) {
            // this is a line of our notecard
            if (data == EOF) {   
 
                llSay(0, "No more lines in notecard, read " + (string)iLine + " lines.");
 
            } else {
 
                // increment line count
                llSay(0, "Line " + (string)iLine + ": " + data);
               
                //request next line
                iLine++;
                kQuery = llGetNotecardLine("My Notecard", iLine);
 
            }
        }
    }
}
</pre>
|helpers
|helpers
|also_functions={{LSL DefineRow||[[llGetNumberOfNotecardLines]]|}}
|also_functions={{LSL DefineRow||[[llGetNumberOfNotecardLines]]|}}

Revision as of 07:36, 9 May 2007

Summary

Function: key llGetNotecardLine( string name, integer line );
0.1 Forced Delay
10.0 Energy

Requests the line line of the notecard name from the dataserver.
Returns a key that is the handle for a dataserver event response.

• string name a notecard in the inventory of the prim this script is in or a UUID of a notecard
• integer line Line number of a notecard (the index starts at zero).

If line is past the end of the notecard EOF is returned by the dataserver.

Caveats

  • This function causes the script to sleep for 0.1 seconds.
  • If name is missing from the prim's inventory and it is not a UUID or it is not a notecard then an error is shouted on DEBUG_CHANNEL.
  • If name is a UUID then there are no new asset permissions consequences for the object.
    • The resulting object develops no new usage restrictions that might have occurred if the asset had been placed in the prims inventory.

Examples

key kQuery;
integer iLine = 0;
default {
    
    state_entry() {
        llSay(0, "Reading notecard...");
        kQuery = llGetNotecardLine("My Notecard", iLine);
    }

    dataserver(key query_id, string data) {

        if (query_id == kQuery) {
            // this is a line of our notecard
            if (data == EOF) {    

                llSay(0, "No more lines in notecard, read " + (string)iLine + " lines.");

            } else {

                // increment line count
                llSay(0, "Line " + (string)iLine + ": " + data);
                
                //request next line
                iLine++;
                kQuery = llGetNotecardLine("My Notecard", iLine);

            }
        }
    }
}

See Also

Events

•  dataserver

Functions

•  llGetNumberOfNotecardLines

Deep Notes

Signature

function key llGetNotecardLine( string name, integer line );