Jump to content

Phil Deakins

Resident
  • Posts

    13,291
  • Joined

Everything posted by Phil Deakins

  1. Not when I'm not present because I'm not there to run the script.
  2. Yes. Every time. I always have to remove them from the list so they can come back for more
  3. The only HUD attachements I have on, I've had on for years - my clothes too lol
  4. But Says only reach 20m. Does llSay() reach further? My intention is not to broadcast it, but to keep it very local. Until recently, I always used llOwnerSay() but putting markers in more than one script, I've been using both, so they show in different colours. The evictions won't occur unless it's an llSay(). They shouldn't occur with llSay(), but they do. I don't need it. I'vve moved passed it in the script, but it's very interesting just the same The nasty bug? It works as I've done it. When i is initialised, it's 0, and for(i; ....) starts the loop at 0. It's not a bug. It's a common way of doing it.
  5. I appreciate all the time youi've put into this. Yes, the Land Ban List was empty every time I tested. It had to be to get the avatars back for further testing. Your post confirms what I said a couple of times - that I really didn't write that text ever. You got identical text, including the exact number of seconds. I'm wondering if the SL system sends that Notification when someone manages to get onto land that they are banned from. It shouldn't happen but perhaps it's a sort of backstop in case it does. In this case, the avatars weren't added by anything before each test. They were happily standing around without any problem. It's only when that script is run that they are immediately ejected and receive the messages. I suppose it's remotely possible that there's an object owned by me somewhere nearby, that has a script in it that does it when the text object is clicked, but it's hugely unlikely. Just in case, though, yesterday I set all the scripts in all but one of my objects that have anything to do with security to not running. The demo one that needs to run, doesn't remove anyone. It's just a demo. Even so, I remmed out its only llAddToLandBanList() line. I'm the only one who can remove avatars so, if anything of mine is doing it, it must be inside a wall or floor. I will look even though it's only a very remote possibility. I do think that there's a better chance with asking LL to reboot the sim
  6. Again, I understand what you're saying. The parcel that it's happening on isn't group-owned. It's owned by Phil Deakins. That's why I'd like to test it on someone else's parcel that is also not group-owned. Only I, and scripts owned by me, have the ability to remove avatars from the parcel. Someone else's 'enforcer' script couldn't do it.
  7. You missed what I said about it. The llSay() is merely an indicator to me that the script has reached that point through the filters. It isn't anything to do with the system I'm writing other than that. Dialogs are a bit of an overkill for that purpose
  8. It's not clickable. It's just a grey line in square brackets.
  9. First I want to thank the kitten, @Fionalein, who voluntarily put her fur on the sacrificial block for testing purposes, and she wouldn't even accept a saucer of milk for her sacrifice I've done some more testing this morning. An ejected avatar receives these:- Notification with the SL logo "You are no longer allowed here and have 15 seconds to leave." In local chat: [00:29] [Second Life: You have been banned indefinitely] Both are received at the same time. The second one is standard, but the first one is an SL Notification, and not from an object that is telling the avatar that it has to leave. Objects can only use dialogs. They can't use notifications like that. I've whittled the code down to the bare minimum: default { touch_start(integer num){ llSetTimerEvent(1); // scan } timer() { list lstAgents = llGetAgentList(AGENT_LIST_PARCEL, []); integer len = llGetListLength(lstAgents); key agent; integer i; for(i; i<len; i++){ agent = llList2Key(lstAgents, i); if(agent != llGetOwner()){ llSay(0, (string)agent); // that's the line that does it } } llSetTimerEvent(0); } } I understand what you are saying, Qie, but simply saying a nearby avatar's uuid doesn't have the same effect. Also, there has never been a script that I've written that listens for uuids, or that includes that particular text, or that can issue a Notification. A script that is not on the land can't add an avatar to this land's ban list, and every object in the parcel is owned by me. I'm not wearing anything that could do it and I have worn the same HUD attachments for years. Even it's something I'm wearing, it would surely pick up on a nearby avatar's uuid that's said by an avatar in local chat, but nothing happens. I'd like to test it on someone else's land that is owned by the avatar and not by a group. The bottom line is that it doesn't matter to me. It's just something weird that has peaked my curiosity. llSay()ing the uuid was merely used to indicate that the programme reaches that point with the right uuids, having gone through the white list, group, and private list filters; i.e. that trespassers are getting there and others are not.
  10. No. I've never even fiddled with experiences.
  11. It looks like there's a serious but with SL. It's time for me to knock off now but tomorrow (maybe later this evening) I'm going to test what happens when a script simply llSay()s avatar uuids.
  12. There is no ejector script. It hasn't been written yet. All there is is an llSay() and that doesn't tell any script to do anything.
  13. a. Mainland (Gwidion sim). b. not applicable. I've changed what that llSay says in the security device and it works fine. Even if SL listens to everything, the llSay() doesn't tell the system to ban someone. All a listener would hear is a uuid, but no direction on what to do with it.
  14. Well you hit on it. But what on earth is that, that permanently bans the avatar when the script merely llSay()s the uuid.
  15. You may have been joking but, incredibly, that's the line that's causing it. It was a daft idea but there was no harm in checking it lol. I pared the script down to pretty much the bare minimum and when that line is remmed out, or when the uuid is replaced by something else such as "here", everything is fine, but when it's llSay(0, (string)uuid), the avatar gets chucked out and permanently banned. Here is the drastically pared down code: key owner; integer mode; integer scanperiod; // seconds to removal integer parcelAllowed; // 0 = white, 1 = group, 2 = private integer pclOn; // FALSE = off, TRUE = on list lstWhite = [ //"Wicked Leigh","7465d9d4-995c-44bc-878d-37568b6fd51f" ]; //================================================================================================== warn_and_ban(key agent) { llSay(0, (string)agent); } //######################################################################################## default { state_entry() { owner = llGetOwner(); // Tell the Menu script that I am ready, passing the Bellisseria status. llMessageLinked(LINK_THIS, 0, "Main ready", NULL_KEY); llOwnerSay("Main Ready (" + (string)llGetFreeMemory() + ")"); } //============================================================================================== link_message(integer from, integer val, string msg, key id) { if(msg == "mode"){ mode = val; }else if(msg == "scanperiod"){ scanperiod = val; }else if(msg == "parcelAllowed"){ parcelAllowed = val; }else if(msg == "pclOn"){ pclOn = val; if(pclOn){ llSetTimerEvent(scanperiod); // start scanning }else{ llSetTimerEvent(0); // stop scanning } } } //============================================================================================== timer(){ // Get a list of agents that are on the parcel. list lstAvatars = llGetAgentList(AGENT_LIST_PARCEL, []); integer len = llGetListLength(lstAvatars); key agent; integer i; for(i; i<len; i++){ agent = (string)llList2String(lstAvatars, i); // Skip it if it's the owner. if(agent != owner){ // Parcel mode if(mode){ // white list if(parcelAllowed == 0){ if(llListFindList(lstWhite, [(string)agent])==-1){ // not in the white list warn_and_ban(agent); } } } } } } } When llSay(0, (string)agent); is remmed out or the message changed to something else, the avatar is safe, but it gets ejected and permanently banned when that line stays as it is. The avatar I'm using for testing with is at the top of the script, but I've tested with another one as well, which had the same result. If you want to test it yourself, set: mode to 1 (that's parcel mode) scanperiod to a few seconds parcelAllowed to 0 (that's for the white list) pclOn to TRUE
  16. I've come across prims getting somehow corrupted in the past. I've done the test and it hasn't changed anything, unfortunately. Brand new prim, copies of the scripts but not direct copies. I used new scripts and pasted the code into them from copies in my computer. The only experiment I have left is to remove the scripts from the new object and add code chunk by chunk to see what causes it to go wrong. @Love Zhaoying I should have mentioned that the 15 seconds warning messages were never shown as coming from an object, as lsl instant messages and local chat do. They were just a line on its own in white. I was forgetting that bit. They weren't local chat anyway.
  17. That's the experimenting that I mentioned in the post above yours. I'm about to do it
  18. 1. llSay() 2a. I often use prefixes so I can see which part of a script or script the message comes from. 2b. You are correct I've literally only just started to add the actual security code, and the first thing was to check that the right avatars are being warned etc. Like other parts of the whole thing, the parcel can be set to allow only white-listed avs, group-only avs, or private-listed avs. I'd only got as far as checking that it selects the right avs according to which of those it is set to, and according to the avs being white-listed, in the group, or private-listed.
  19. If someone would volunteer to let me test it on their parcel, I'd appreciate it. In the meantime, I'm going to do a bit of experimenting.
  20. I appreciate all your thoughts on it but I have 2 copies rezzed, each using different channels, and they both eject and ban avatars that are not in the white list. I.e. if I add an avatar to the white list, it's safe. If I remove it from the white list it gets removed and banned. They both do that, using different channels. Also, the specific text that the avatars receive was never written by me - ever lol.
  21. I have thought about trying it on a different parcel, and I even thought about asking if someone here would let me, but I haven't asked - yet lol.
  22. I create and sell security devices - often called orbs, although mine are not orb shaped. I've been doing it for many years, and I'm in the process of writing an improved version of one of them. Among other things, it can protect the whole parcel. I'm at the point of writing the actual security system, and, for simplicity, I'm starting with the parcel mode (the whole parcel). It should be extremely simple but I've run into a problem that I can't figure out. It goes like this:- Get a list of the avatars in the parcel (uuids). With each one: check if it's in the white list if not, send the uuid to the routine that does the warnings and subsequent removal. At the moment, the warnings/removal routine simply chats the uuid, and that's it. There is nothing else there, not even any commented out code. That's all it is scripted to do at the moment. There is no code whatsoever in any of the object's scripts that does the warnings and removal. llAddToLandBanList() doesn't exist anywhere in any scripts that are in the device. But this is what happens... When the device is turned on, any avatar, except me (the land is in my name), instantly receives a message saying that it can no longer be there and that it has 15 seconds to go, and then it is instantly permanently banned from the parcel, and put into the parcel's land ban list. There is no waiting for the 15 seconds to run out. But there is no code in the device that can do that. The device's channels are derived from the device's uuid, so no other device should pick any menu messages up and do its own thing. Even so, I have a few previous versions of security devices nearby, so I set all the scripts in them to not running. Not only that, but I rezzed 2 copies of this device, each having a different uuid, to ensure that the channels won't be coincidentally the same, but both devices eject avatars. I even took it to an OpenSim grid, and it worked fine there. I logged an alt in with me, which it detected as it should. It chatted the alts uuid, as it should, and it did nothing else, as it should. Perfect. That's the problem that totally mystifies me. I have nothing running in the parcel that uses llAddToLandBanList(), so how on earth are avatars ending up there when I turn the device on? Does anyone have any thoughts? Incidentally, the text with the 15 seconds warning doesn't exist in the device and has never existed in any of my devices. It might be thought that the text comes from someone else's device that's in the parcel, but, if it does, why does it only appear, and the avatars get banned, when I turn my device on. Also, according to About Land > Objects, nobody other than me owns any objects in the parcel. I'm at a total loss.
  23. There is no reason that I know of to think that LL is paying for SpeedLight's costs and development as such. They probably pay a relatively small amount for using it as a Premium Plus perk. The Gold account still exists, and is still being offered. I haven't looked into it so I don't know what a Gold gets you other than 24/7 logins but, to my way of thinking, the 24/7 logins have to be the main benefit. In the thread that Rowan pointed to, the developer says that all accounts having 24/7 logins is an experiment to see how much their server can handle. He doesn't suggest that it's intended to be permanent, and, for that purpose, it does make sense to do such an the experiment, hoping to get a heck of a lot of people using it 24/7 to test its capability. I won't mind at all if/when it reverts back to free 6 hour logins. I hope it doesn't but I'm sure it will.
  24. Thank you for that. I've posted in the thread that Rowan pointed to.
×
×
  • Create New...