Jump to content

bobsknief Orsini

Resident
  • Posts

    224
  • Joined

  • Last visited

Everything posted by bobsknief Orsini

  1. Simply check if the avatar is still there like this: if(llGetAgentSize(uuid)) { //uuid is an avatar in the region } else { //uuid is not an avatar in the region } On your last question you could just check if the animation is running to make your life easy: http://wiki.secondlife.com/wiki/LlGetAnimationList (get list of animation... search if key in list)
  2. I don't mean login in that sense. I mean, you check the hash and then when the hash is valid set the session cookie so they are considered "logged in". Then on all pages that you want to restrict access to you simply check if the user has a valid session (which they will only have when they used your SL object). Or in other words: on first connect check hash. Set a session cookie stating that they are a valid user. On all pages check if they have a valid session cookie. https://www.w3schools.com/asp/asp_sessions.asp
  3. Not familiar with ASP but i guess implementing some validation token is the way to go. For example: string hash = llMD5String((string)llGetOwner()+"Secret code"+llGetDate()+"most secret codes", 0)); You add the hash to your URL (index.html?token=hash) and on the server use a GET to validate it. You obviously don't want to use my example. Other methods: http://wiki.secondlife.com/wiki/Category:LSL_Encryption I do recommend using a timestamp in the hash generation and then on the server just validate it 5 times to count for the delay. Ones you validate the hash you set a session (session cookie) to "login" the user so they can navigate. So when they click the SL object they login to your website using a hash.
  4. No entiendo muy bien la pregunta. Pero aquí puedes solicitar un reenvió: https://marketplace.secondlife.com/orders
  5. Not to my knowledge. Did you check what headers the client is sending to the server? There might be some data to validate on that end. Alternatively you could add a (semi-random) hash to your URL and validate that. In theory SL should be able to handle sessions. What web programming language are you using? PHP?
  6. Remote storage is probably the way to go. However using google would probably make your items more volatile instead of the opposite. One API update and all might stop working.
  7. If the following sounds to complicated just go with what LoneWolf suggests and ignore my answer. You want to setup 1 channel and make it owner based and add some offset to it (so all scripts can calculate the same channel). integer Key2Integer(string inkey) { return (integer)("0x" + llGetSubString(llMD5String(inkey,0), 0, 7)); } integer channel = Key2Integer(llGetOwner()) + 123; Then you want to validate that its your object by implementing some sort of token (predictable hash). Keeping it simple, however if some very important data is passed then you should look into encryption and know at least what "salting" is. string hash = llMD5String("Secret code"+llGetDate()+"most secret codes", 0)); You add the above hash in your message and on the receiving end you also create the hash and just do if(revieved_rash != hash){return;}
  8. Its a little unclear on what you are trying to do. You could for example use a timestamp.
  9. Not going to post the one i have up for sale but feel free to check it out. It all depends on what you need. The free one is probably fine for most creators. So i recommend you give that one a go before going for something else.
  10. Could be as simple as the ground not being flat enough, some mega prim or some other thing affecting it. Pathfinding objects love getting stuck. With my example, if the object changes height then pathfinding is working (if it starts to move around or not).
  11. For the heck of it, rez a new prim and try the script bellow. Script bellow tested and working. default { touch_start(integer total_number) { llDeleteCharacter(); llCreateCharacter([CHARACTER_TYPE, 3, CHARACTER_LENGTH, 1.5, CHARACTER_AVOIDANCE_MODE, AVOID_CHARACTERS | AVOID_DYNAMIC_OBSTACLES, TRAVERSAL_TYPE, TRAVERSAL_TYPE_SLOW, CHARACTER_MAX_SPEED, 10, CHARACTER_DESIRED_SPEED, 2.0]); llWanderWithin(llGetPos(), <20.0, 20.0, 10.0>, []); } }
  12. If the spaces are consistent you only need http://wiki.secondlife.com/wiki/LlParseString2List to create the list.
  13. The documentation for pathfinding isn't the best. I assume the cats and horses don't use pathfinding as this is not really the norm. Go to Build/Pathfinding/Region Objects and Characters (keep those 2 windows open). If your object is not running it should show in Region... if it is running it should show in Characters. -In Region it should show as Walkable. Also you are missing CHARACTER_TYPE in your code.
  14. Haven't seen this problem. Have a HUD where i am using 128 prims to store and read data from the name and description. You only need to keep in mind that there is a delay between the command and the prim actually having the description.
  15. Depends on how you work. If you do ping pong with your server its kind of useless. Sure you can return different formats but due to LSL memory limitations you kind of want the body to be as small as possible. I find it way more practical to shove all the data into a string and then convert it to a array. Or the other way around convert a long string into a list function that works like a multi dimensional array. ex: var1=abc<SEPERATOR>var2=def<SEPERATOR>var3=ghi<SEPERATOR>var4=sub1=abc<SEPERATOR2>sub2=def<SEPERATOR>var5=jkl
  16. Is parthfinding enable on the sim? Is the floor a prim or ground? If the floor is a prim set it to Walkable: wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer
  17. Ideally you would pass the collision using a link message and do some pre-filtering in that script. If the script in the child prim doesn't contain a collision event then by default it will get passed to the root. Kind of my point why you never need this command. Anyways all you need to do is: default { state_entry() { llPassCollisions(PASS_ALWAYS); } } To clarify, when you have the collision function in a root script it applies to the entire object.
  18. You only use this command in scripts that are not in the root prim. Don't use this command in scripts that are in the root prim. You generically use this command if you want certain non-root prim's not to send the collision to your root script (by adding a script with this command to the prim). To filter for a specific collision prim i recommend you use llDetectedLinkNumber(0); inside the collision function. Or in more words, you kind of never need this command.
  19. Possible but still extremely unlikely. Its a lot easier and more cost effective to just buy some advertisement on social media platforms that already do this.
  20. In regards to chat, only local chat. IM's cant be monitored. Easiest way to check is probably just check the name and creator of the script in your object. If you generally buy or get your stuff from stores its extremely unlikely that it contains a Trojan (why should it). When someone sends you something directly the probability starts.
  21. if(change & CHANGED_LINK) { key av = llAvatarOnSitTarget(); if(av != NULL_KEY) { if(is_sitting == FALSE) { RANDOM_SELECT_ANIMATION(); llRequestPermissions(av, (PERMISSION_TRIGGER_ANIMATION | PERMISSION_TAKE_CONTROLS)); ADD IT HERE!!! } } Replace llDetectedKey(0) with av.
  22. You could just add more lists... i love to use lists so don't look at me for the best most optimal solution... list search_list = ["hello", "hi", "hola"]; list do_list = ["url", "url", "say"]; list data_list = ["www.google.com", "www.yahoo.com", "Hi there"]; integer index = llListFindList(search_list , [llToLower(llStringTrim(message, STRING_TRIM))]); if(index != -1){ integer do = llList2String(do_list, index); if(do == "url"){ string url= llList2String(data_list , index); } if(do == "say"){ string say = llList2String(data_list , index); } }
  23. list search_list = ["hello", "hi", "hola"]; integer index = llListFindList(search_list , [llToLower(llStringTrim(message, STRING_TRIM))]); if(index != -1){ // do something }
  24. experience_permissions_denied can happen quite some time after the request (same with accept). Don't have an exact number but am convinced i have seen it trigger several minutes later. You could do a quick check if they are in the sim and if not do a return;
×
×
  • Create New...