|
|
(10 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| {{User:Cory Fimicoloud/hcard}} | | {{User:Cory Fimicoloud/hcard}} |
| ==LSL Functions== | | ==Miscellaneous== |
| Functions I have created. Will add more as I go through my scripts.
| | ===LSO/MONO Differences=== |
| | {| border="1" cellpadding="3" cellspacing="0" |
| | !VM |
| | !Average |
| | !Total |
| | |+State Changing<br>''1000 iterations, in seconds.'' |
| | |- |
| | |LSO |
| | |0.000038 |
| | |00.037993 |
| | |- |
| | |MONO |
| | |0.010054 |
| | |10.053950 |
| | |} |
|
| |
|
| ''Will create a separate page for them and categorize/move the functions into it later.''
| | {| border="1" cellpadding="3" cellspacing="0" |
| | | !VM |
| ===UTF8Len===
| | !Count |
| Returns the UTF-8 byte count of the string passed to it.
| | !Count + 1 Error |
| <lsl>
| | |+Nested If Statements Limit |
| integer UTF8Len(string fsString)
| | |- |
| { | | |LSO |
| // Author: Cory Fimicoloud
| | |1474 |
| // License: http://creativecommons.org/licenses/by-sa/3.0/us/
| | |Byte code assembly failed -- out of memory |
| integer liLen = ~llStringLength(fsString);
| | |- |
| string lsChar = "";
| | |MONO |
| string lsEnc = "";
| | |2497 |
| integer liByteLen = 0;
| | |Syntax error |
| while (++liLen < 0)
| | |} |
| {
| |
| lsEnc = llEscapeURL((lsChar = llGetSubString(fsString, liLen, liLen)));
| |
| if (lsChar != lsEnc)
| |
| liByteLen += llStringLength(lsEnc) / 3;
| |
| else
| |
| ++liByteLen;
| |
| }
| |
| return liByteLen;
| |
| }
| |
| default
| |
| {
| |
| state_entry()
| |
| {
| |
| // 63 characters. Each of the characters uses 1 byte except for ¢ (2 bytes) and € (3 bytes). Which results in 66 bytes.
| |
| string lsString = "Can I have $10 and 7¢, please? I would prefer it in €'s though.";
| |
| llOwnerSay("'" + lsString + "' is " + (string)UTF8Len(lsString) + " bytes.");
| |
| }
| |
| }</lsl>
| |
| | |
| ===UTF8Split===
| |
| Returns a list containing the string passed to it, split every fiSplit bytes.
| |
| <lsl>
| |
| list UTF8Split(string fsString, integer fiSplit)
| |
| {
| |
| // Author: Cory Fimicoloud
| |
| // License: http://creativecommons.org/licenses/by-sa/3.0/us/
| |
| string lsSplit = "";
| |
| list laSplit = [];
| |
| integer liLen = ~llStringLength(fsString);
| |
| string lsChar = "";
| |
| string lsEnc = "";
| |
| integer liByteLen = 0;
| |
| while (++liLen < 0)
| |
| {
| |
| lsChar = llGetSubString(fsString, liLen, liLen);
| |
| lsEnc = llEscapeURL(lsChar);
| |
| if (lsChar != lsEnc)
| |
| liByteLen += llStringLength(lsEnc) / 3;
| |
| else
| |
| ++liByteLen;
| |
| if (liByteLen <= fiSplit)
| |
| lsSplit += lsChar;
| |
| else
| |
| {
| |
| laSplit += [lsSplit];
| |
| lsSplit = lsChar;
| |
| liByteLen = 0;
| |
| }
| |
| }
| |
| return laSplit + [lsSplit];
| |
| }
| |
| default
| |
| {
| |
| state_entry()
| |
| {
| |
| list laSplit = UTF8Split("Can I have $10 and 7¢, please? I would prefer it in €'s though.", 33);
| |
| llOwnerSay("UTF8Split\n==========\t0: " + llList2String(laSplit, 0) + "\n\t1: " + llList2String(laSplit, 0));
| |
| }
| |
| }</lsl> | |
|
| |
|
| ==See Also== | | ==See Also== |
| * [[User:Cory_Fimicoloud/SimIPScan|Simulator IP Scan]] | | * [[User:Cory_Fimicoloud/SimIPScan|Simulator IP Scan]] |
| | * [[User:Cory_Fimicoloud/LSLFunctions|LSL Functions]] |
| * {{Jira Reporter}} | | * {{Jira Reporter}} |
|
| |
|