<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I wasn't fan of modifying an ll function either. However, after reading all the comments on this subject, I see it in another angle now.<div><br></div><div>Actually, returning a different answer for NPC is rather an adaptation of the function to the specific case of OpenSim, ensuring it behaves the same way in both environments. </div><div><br></div><div>So, now I think it makes sense to adapt the function so it counts the same objects as SL function: avatars..</div><div><br></div><div><div><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>--</div><div><a href="http://www.speculoos.net/">http://www.speculoos.net/</a></div><div><a href="secondlife://speculoos.net:8002/">secondlife://speculoos.net:8002/</a></div><div>Speculoos, the belgian cookie-flavored metaverse</div></div></span></div></span></div></span></div></span></div></span></span>
</div>
<br><div><div>Le 12 juil. 2012 à 02:01, Justin Clark-Casey a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>That's a neat solution, Argus.  Since the intention of OS_NPC_SENSE_AS_AGENT was to provide compatibility rather than 'fool', I think returning both NPC and AGENT flags would be perfectly acceptable.  Let's see if there are any other comments, otherwise I think we can proceed along those lines.  I'm still not that happy with extending llDetectedType() but leakage has already occurred and I suspect its inevitable.<br><br>On another note, I'm not sure what 'plausibility' checks you're referring to.<br><br>On 11/07/12 13:04, Argus wrote:<br><blockquote type="cite">I am fully aware of the open source factor and that in each open grid everything can be changed, which is why one always<br></blockquote><blockquote type="cite">needs backend function to make sure no fals information is passed on to the central service. One can however filter 99%<br></blockquote><blockquote type="cite">of the fals data in the local sim which helps the central service because it does not need to process every single<br></blockquote><blockquote type="cite">plausability checks. In a multi grid environment with closed grids we even have a lower chance of false data beeing<br></blockquote><blockquote type="cite">passed than in a open grid only environment.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">  We have the same situations in opensim were the simulator often does some local plausability checks before it send<br></blockquote><blockquote type="cite">data to the gridservers. The gridservers again do a plausability check combined with other methods which are not<br></blockquote><blockquote type="cite">available on the local sim. Only if all steps are plausable the data gets processed further.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Anyway, I added a new patch for llDetectedType were NPCs always return NPC and useing OS_NPC_SENSE_AS_AGENT will returns<br></blockquote><blockquote type="cite">AGENT + NPC. I think that is an acceptable compromize... I also added an example script were the true NPC detection<br></blockquote><blockquote type="cite">always makes sense  ;)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Am 11.07.2012 02:01, schrieb Justin Clark-Casey:<br></blockquote><blockquote type="cite"><blockquote type="cite">Argus, if your system relies on always reliably identifying unique avatars then that is simply not possible in any<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">OpenSimulator environment where simulators are controlled by third parties or where hypergrid travel is allowed.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Even if OS_NPC_SENSE_AS_AGENT did not exist, then people would be able to compile a version of the code that did have<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">that functionality. This is not about ideology - it's about what is physically possible!<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Equally, it is perfectly possible to create duplicate HG details - anything can be put in the agent data that comes<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">from a foreign grid (<a href="mailto:justin@hg.osgrid.org">justin@hg.osgrid.org</a> or whatever).  You cannot rely on these to be unique either.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Without any central authority (like DNS, the secure certificate infrastructure of something like Bitcoin block chains)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">it is simply not possible to uniquely identify avatars.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">I don't see this as much different from the web where one has to get people to create unique accounts with passwords<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">in order to identify them later.  Such a thing has to be done in some authority system outside of OpenSimulator itself.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">If your point is that without OS_NPC_SENSE_AS_AGENT then the vast majority of systems would always present NPCs as<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">NPCs (rather than agents) then I would agree.  In fact, in practice most people won't use OS_NPC_SENSE_AS_AGENT anyway<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">as it's the option rather than the default.  But you cannot rely on uniquely identifying avatars on any environment<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">outside those that you directly control.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">On a minor note, script functions that don't make any sense for NPCs should behave as if the UUID they received did<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">not relate to a valid entity for that function.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Opensim-dev mailing list<br></blockquote><blockquote type="cite"><a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br></blockquote><blockquote type="cite"><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br></blockquote><blockquote type="cite"><br></blockquote><br><br>-- <br>Justin Clark-Casey (justincc)<br><a href="http://justincc.org/blog">http://justincc.org/blog</a><br>http://twitter.com/justincc<br><br><br>_______________________________________________<br>Opensim-dev mailing list<br>Opensim-dev@lists.berlios.de<br>https://lists.berlios.de/mailman/listinfo/opensim-dev<br></div></blockquote></div><br></div></div></body></html>