|Anonymous | Login | Signup for a new account||2020-08-12 00:02 PDT|
|Main | My View | View Issues | Change Log | Roadmap | Summary | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0008025||opensim||[REGION] Scripting Engine||public||2016-09-18 18:33||2016-09-19 06:11|
|Platform||Mono-Linux x64||OS||Ubuntu||OS Version||14.04 LTS|
|Product Version||master (dev code)|
|Target Version||Fixed in Version|
|Summary||0008025: Logical NOT (!=) isn't working properly comparing keys.|
|Description||By accident I discovered if you compare two UUIDs with a logical NOT it acts like a logical EQUAL (==).|
I've been able to reproduce the error with the following script:
(It's the core of a ban list test I was doing)
//add your UUID here
list people =[
integer banned = FALSE;
integer index = 0;
while (index < llGetListLength(people))
llSay(0, (string)who + " = " + llList2String(people, index));
if (who != llList2Key(people, index)) //Changing the comparission from not (!=) to equal (==) won't change the result
banned = TRUE;
if(banned == TRUE)
llSay(0, "You're banned");
llSay(0, "You're not banned");
|Steps To Reproduce||Create a prim, drop the script I posted above and add your UUID to test.|
Click on it and observe the result.
Change the not of line 13 for an equal (==).
Click on it and observe it throws the exact same result.
|Additional Information||While NOT is working weird, EQUAL works as expected. So currently the way i found to circumvent this issue is just turn around the comparison.|
|Tags||No tags attached.|
|Git Revision or version number||OSgrid 0.9.0.0 (Dev) b9380c0: 2016-09-10|
|Run Mode||Grid (Multiple Regions per Sim)|
|Environment||Mono / Linux64|
|Viewer||Firestorm 4.7.9 (50527)|
|Dan found the identical result in SL. Im suspending it until i can talk with ubit.|
Mhhh, if the touching avatar is in the list, the result should always the same:
Thats correct in both cases. It does not matter if you compare with == or !=, if the toucher is in the list.
But I know there is an other issue in opensim with keys. In opensim keys is represented internally always as strings, so the behavior is not same as in SL.
But this is difficult to fix, because it is neccessary to redesign the whole script-engine for keys handling as separate key-datatype.
Checked != and seems working as expected.
like tglion said the issue is on that script logic.
not sure what are the current runtime differences with SL but == and != and not on those, and SL also handles keys as strings in some cases, if I remember
Not exactly. SL handles keys as seperate data-type if I remember it corre tly. See mantis 7380 there is the hint, that I remember.
The main problem is comparing NULL_KEY differs between key and string on SL. In opensim is key the same as string. But this is off topic to this report. :-)
|2016-09-18 18:33||Aaack||New Issue|
|2016-09-18 19:52||Aaack||Note Added: 0031137|
|2016-09-18 19:52||Aaack||Resolution||open => suspended|
|2016-09-18 23:18||tglion||Note Added: 0031138|
|2016-09-19 05:02||UbitUmarov||Note Added: 0031139|
|2016-09-19 06:11||tglion||Note Added: 0031140|
|Copyright © 2000 - 2012 MantisBT Group|