Two simple methods of reading from a notecard in the prim contents with one of these scripts.
Cyclically Sequential Lines ( V1 )
// V1 // key iq; integer line; GetLine(integer i) { iq = llGetNotecardLine(llGetInventoryName(INVENTORY_NOTECARD, 0), i); } default { dataserver(key q, string data) { if(q == iq) { ++line; if(data != EOF) { if(data != "") llSay(0, data); else GetLine(line); } else GetLine((line = 0)); } } touch_start(integer nd) { if(llGetInventoryNumber(INVENTORY_NOTECARD)) GetLine(line); } }
Random Lines ( V1 )
// V1 // key iq; key qi; integer line; integer lines; GetLine(integer i) { iq = llGetNotecardLine(llGetInventoryName(INVENTORY_NOTECARD, 0), i); } default { changed(integer change) { if(change & CHANGED_INVENTORY) llResetScript(); } state_entry() { if(llGetInventoryNumber(INVENTORY_NOTECARD)) qi = llGetNumberOfNotecardLines(llGetInventoryName(INVENTORY_NOTECARD, 0)); } dataserver(key q, string data) { if(q == qi) lines = (((integer)data) - 1); else if(q == iq) { if(data != "") llSay(0, data); else GetLine((++line)); } } touch_start(integer nd) { if(llGetInventoryNumber(INVENTORY_NOTECARD)) GetLine((line = llRound(llFrand(((float)lines))))); } }