-
Notifications
You must be signed in to change notification settings - Fork 3
LSLCompatibility
SecondLife: if (vMyVector)
OpenSim: if (vMyVector != ZERO_VECTOR)
SecondLife: if ((key)sMyString)
OpenSim: if (osIsUUID(sMyString))
SecondLife: if (kMyKey)
OpenSim: if (kMyKey != NULL_KEY)
SecondLife: if (~Expr1 && ~Expr2)
OpenSim: if ((~Expr1) && (~Expr2))
SecondLife: llDumpList2String(llParseStringKeepNulls((sSource = "") + sSource, [sSearch], []), sReplace);
OpenSim: osReplaceString(sSource, sSearch, sReplace, -1, 0);
SecondLife: if (lMyList) or if (lMyList!=[])
OpenSim: if (llGetListLength(lMyList) > 0)
SecondLife: if (lMyList==[])
OpenSim: if (llGetListLength(lMyList) == 0)
integer i = 3;
for ( ; ; ) {
integer i = 4; // throws error in OpenSim
}
llTargetRemove(iMyHandle);
In OpenSim doesn't set iMyHandle to 0
When llMoveToTarget() used in more than one script in the same object, triggers at_target and not_at_target in all scripts that have such events. LSL wiki states this should be limited to the script where the llMoveToTarget is used in. We work around this by explicitly checking for the handle and setting it to 0 when unused. For example oc_leash and oc_couple caused conflicts when using the original code.
There are some interesting ossl functions but most can't be used on an unmodified opensim (apart from region owners/managers) and because we strive for maximum compatibility we keep usage of them limited. Not being able to use these functions in common scenarios begs the question why these ossl functions where invented for OpenSim at all.
Either works somewhat at times > 0.5 or doesn't work reliably at all. Best to comment out this function.
On XEngine will cause threads to lock on the simulator causing lag. Avoid this as much as possible by using the timer instead. The forthcoming YEngine script engine replacement for XEngine will solve this.
Generally delays < 0.5 such as used by llSetTimerEvent() are not reliable. Will be improved once YEngine replaces XEngine in OpenSim.
More to be added..