The currency is represented by named primitives. The picture below is an example of a 100
value bill.
The name is set to the value of the bill, in the example below, since the primitive is worth 100
, the name of the object is set to:
money=100
Naming the primitive is necessary since that string will get processed by the key-value data system that will take care of calculating the returns.
////////////////////////////////////////////////////////// // (c) Wizardry and Steamworks - 2013, License GPLv3 // // Please see: http://www.gnu.org/licenses/gpl.html // // for legal details, rights of fair usage and // // the disclaimer and warranty conditions. // ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // Copyright (C) 2013 Wizardry and Steamworks - License: GNU GPLv3 // /////////////////////////////////////////////////////////////////////////// string wasKeyValueGet(string var, string kvp) { list dVars = llParseString2List(kvp, ["&"], []); do { list data = llParseString2List(llList2String(dVars, 0), ["="], []); string k = llList2String(data, 0); if(k != var) jump continue; return llList2String(data, 1); @continue; dVars = llDeleteSubList(dVars, 0, 0); } while(llGetListLength(dVars)); return ""; } /////////////////////////////////////////////////////////////////////////// // Copyright (C) 2013 Wizardry and Steamworks - License: GNU GPLv3 // /////////////////////////////////////////////////////////////////////////// string wasKeyValueSet(string var, string val, string kvp) { list dVars = llParseString2List(kvp, ["&"], []); if(llGetListLength(dVars) == 0) return var + "=" + val; list result = []; do { list data = llParseString2List(llList2String(dVars, 0), ["="], []); string k = llList2String(data, 0); if(k == "") jump continue; if(k == var && val == "") jump continue; if(k == var) { result += k + "=" + val; val = ""; jump continue; } string v = llList2String(data, 1); if(v == "") jump continue; result += k + "=" + v; @continue; dVars = llDeleteSubList(dVars, 0, 0); } while(llGetListLength(dVars)); if(val != "") result += var + "=" + val; return llDumpList2String(result, "&"); } default { state_entry() { integer comChannel = (integer)("0x8" + llGetSubString(llGetCreator(), 0, 6)); llSetObjectDesc(wasKeyValueSet("owner", llGetOwner(), llGetObjectDesc())); llListen(comChannel, "", "", ""); } listen(integer channel, string name, key id, string message) { llOwnerSay(message); if(wasKeyValueGet("owner", message) != wasKeyValueGet("owner", llGetObjectDesc())) return; if(wasKeyValueGet("money", message) != "die") return; if(wasKeyValueGet("amount", message) != wasKeyValueGet("money", llGetObjectName())) return; llDie(); } on_rez(integer num) { llResetScript(); } }