Jump to content

Nova Convair

Resident
  • Posts

    1,506
  • Joined

Everything posted by Nova Convair

  1. That statement is wrong. Ignore closes the script dialog once. To remove the block button - which will have the effect you describe - debug settings: setting FSRemoveScriptBlockButton to true will work.
  2. Looks like it could work. One problem is that - if one avatar stands up - all others loose their camera parameters. Since you set all parameters in case someone stands up - you should beat that (bug or feature).
  3. To get your IP they need help from you since that only works if you run around with media on autoplay. So they can detect that you logged into the media stream and they connect that to your UUID by the time you entered the parcel. If you have a system that works at many places and collects all the data into one database then you can make assumtions and consider all avatars that ever shared a common IP are alts, which is of course nonsense - although will be true in many cases. And that will work mainly for amercians only. Minus all the cases of any shared internet connections. My IPv4 will be a different one every time I log in and is drawn out of a pool with a few millions. You can't even localize me with that - well, you can find out the country. Besides of that my media is off. I switch that on when i want to listen to a specific DJ. But then the time I switch it on will not correspond with the time I entered the sim. Once you have that info you and your alt will simply never use media if you wanna cheat or just be incognito. And blocking an IP is pure nonsense too from my point of view. Absolutely zero effect. The IP blocking by the server after banning someone has an effect though. Those kiddies will jump to their alt in rage and try to come back - which will fail miserably. Gives them time to cool down. 😎
  4. Before firing out a swarm of sensor drones it's alot easier and less resourceful to place a 2nd script which performs the counting - no memory problems then. I don't know of any other way too.
  5. A utf8 character uses one or more bytes. llStringLength and llDialog seem to count different things here. There is a snippet in the wiki that should be helpful here: http://wiki.secondlife.com/wiki/Combined_Library integer StringUTF8Size(string str) { return (3 * llSubStringIndex(llStringToBase64(str)+"=", str = "=")) >> 2; }
  6. Maybe make a state driven machine for that. Usually you draw a diagram - bubbles for the states and arrows for the state changes Can be made infinite complicated. You define states and the conditions that make you change to another state. State 1 : wrap towel on / others off Entering : send off commands for the other towels Change : modesty towel on -> State 2 Change : hand towel on -> State 3 Change : beach towel on -> State 4 Change : wrap towel off -> State 5 .... State 4 : beach towel on / others off Entering : send off commands for the other towels Change : wrap towel on -> State 1 Change : modesty towel on -> State 2 Change : hand towel on -> State 3 Change : beach towel off -> State 5 In code: integer state; enter_state (integer st) { state = st; if (st==1) { detach commands attach commands } else if (st==2) { detach commands attach commands } ... } llListen( .... // receive messages from towels if (state==1) { if (msg=="modestyon") enter_state(2); else if (msg=="handon") enter_state(3); else if (msg=="beachon") enter_state(4); else if (msg=="wrapoff") enter_state(5); } else if (state==2) { ... } else if (state==3) { ... } ... } You probably need a function to find out in what state you are. Then you need to send a ping to the towels and evaluate the answers get_state() { if (modesty) enter_state(2); else if (wrap) enter_state(1); .... else enter_state(5); }
  7. Cool Idea and it seems to work. I'll give it a try and see if it makes a difference. I made a little test since I finally wanted to check performance. The results for loops under 1000 are erratic. The script execution is obviouly not much influenced by the script but more of the sim and script scheduler and whatever. I wonder if llGetTime is even working properly. However - with a loop of 100000 and above you get repeatable results. It's pretty clear that list operations are slow compared to simple math. test 3 just shows the overhead of the loop and a single integer operation since there is nothing to do in the loop. integer maxloop = 100000; integer face = 1; integer x = 8; integer y = 8; list lookup; default { touch_end(integer number) { // ********** TEST 1 ********** // math llResetTime(); llSay(0,"START 1"); // TEST 1 preparation - one time operations integer maxnum = x * y; float step_x = 1.0 / (float)x; float step_y = 1.0 / (float)y; //llScaleTexture(step_x,step_y,face); // TEST 1 working loop integer i = maxloop; while (--i>0) { integer num = i % maxnum; integer part_x = num % x; integer part_y = num / x; float pos_y = -0.5+step_y/2.0 + step_y*(float)(y-part_y-1); float pos_x = -0.5+step_x/2.0 + step_x*(float)part_x; //llOffsetTexture(pos_x,pos_y,face); } llSay(0,"END 1 : "+(string)llGetTime()); // ********** TEST 2 ********** // lookup table llResetTime(); llSay(0,"START 2"); // TEST 2 preparation - one time operations maxnum = x * y; step_x = 1.0 / (float)x; step_y = 1.0 / (float)y; lookup = []; i = x * y; while (--i>0) { integer num = i % maxnum; integer part_x = num % x; integer part_y = num / x; float pos_y = -0.5+step_y/2.0 + step_y*(float)(y-part_y-1); float pos_x = -0.5+step_x/2.0 + step_x*(float)part_x; lookup += [pos_x,pos_y]; } //llScaleTexture(step_x,step_y,face); // TEST 2 working loop i = maxloop; while (--i>0) { integer num = i % maxnum; float pos_y = llList2Float(lookup,num*2+1); float pos_x = llList2Float(lookup,num*2); //llOffsetTexture(pos_x,pos_y,face); } llSay(0,"END 2 : "+(string)llGetTime()); // ********** TEST 3 ********** // texture animation llResetTime(); llSay(0,"START 3"); // TEST 3 preparation - one time operations maxnum = x * y; // TEST 3 working loop i = maxloop; while (--i>0) { integer num = i % maxnum; //llSetTextureAnim(ANIM_ON,face,x,y,num,1,0.1); } llSay(0,"END 3 : "+(string)llGetTime()); llSay(0,"LOOP : "+(string)maxloop+" -------------------------------------------------"); llResetScript(); } } some results: [06:29] Object: START 1 [06:29] Object: END 1 : 2.007409 [06:29] Object: START 2 [06:29] Object: END 2 : 5.034373 [06:29] Object: START 3 [06:29] Object: END 3 : 1.248286 [06:29] Object: LOOP : 100000 -------------------------------------------------
  8. Good idea to use json to send lists. Didn't need that so far but I'll try to remember that. About the scripts - yes - of course but LSL was never meant to run big tasks. If you give more memory and features ppl would simply abuse it and even try to generate bitcoins if that would be even slightly possible. Scripts are mainly not made by responsible developers here. And for LL there always is the question: what do that cost and what do they get out of it?
  9. You can simplify things for repeating tasks by taking out the calculations that only need to be done once. But how do you know that list operations are faster than a little math? I seriously doubt it but I'm way to lazy to make a test scenario for that. And if you really think about performance - which is irrelevant in this case by my opinion - don't forget the memory consumption of lists.
  10. Lists don't produce lag. But making a list for such a simple calculation? And more lists for different grid sizes? Really? I'm willing to throw in one on my little helper functions: // input: // num = tile # starting at top left with # 0 // x,y = grid size // face # // link # // texture uuid or name set_link_texture_grid(integer num, integer x, integer y, integer face, integer link, string texture) { float step_x = 1.0 / (float)x; float step_y = 1.0 / (float)y; integer part_x = num % x; integer part_y = num / x; float pos_y = -0.5+step_y/2.0 + step_y*(float)(y-part_y-1); float pos_x = -0.5+step_x/2.0 + step_x*(float)part_x; llSetLinkPrimitiveParamsFast(link,[PRIM_TEXTURE,face,texture,<step_x,step_y,0>,<pos_x,pos_y,0>,0.0]); }
  11. Why do you want a different title? You obviously have nothing to say.
  12. Take a pen and write down all numbers, there is your copy. If it's no mod as well - I start to wonder why you don't trust your alt. (don't answer) 😎
  13. If you have one hud copy rezzed at home by accident it might not be quite over.
  14. Not true if you do it right. If that really happens then one of the scripts sets permissions on rez.
  15. Assumption: FS uses the Nvidia Card and the LL viewer tries to use the Intel HD. Set the LL viewer to use the Nvidia Card.
  16. I suggest to simply rename the files (add an x for example) and then rename back. When testing this I didn't see any difference. Didn't see any side effects too so it seems I don't use affected things. :) It may work for older hardware or craptops though but everybody can test that for their system.
  17. That's a question of geometry. I make a prim root and use it as show/hide button and link the hud to it. Then perform a 180° rotation so the hud is rotated off screen. If you make the backside of the hud the same as the front side you can use this construct for left and right margin. Can be constructed for top and bottom margin the same way. For sliding get the size with llGetScale and move the exact width/height into the right direction and back. In this case you want the show/hide button connected to the side of the hud so it will stay on screen.
  18. I've seen quite some failures over time and never trusted undocumented timings or that things happen in an expected order. So I'm not affected here. Having a string as rez parameterr would simplify rezzing quite a bit though.
  19. llSitTarget() has a range of about 300m, so it's easy to hide someone the moment they sit. But the avatar will stay there on unsit so not reappear. That requires more efforts. An animation with an offset has a range of 10m - enough to hide underground - and the avatar will reappear on unsit. Making the avatar invisible is the most difficult way and requires preparations made by the avatar b4 usage plus active RLV - so that doesn't sound practical - except you only want it for yourself.
  20. If all of your huds were affected by a crash - the scripts in your body and head and every other scripted thing will be affected too. So replacing the body hud will not help - you need to replace the body too.
  21. Well you gave not the answer the op wanted. You even wanted details but the op never makes mistakes so doesnt need to give details. Instead you bring up things like copyright. A total waste of time. And then the snowflake melted. 😋 Hmmm .. I think I will not check here for answers .. people tend to think I'm always serious. However that was entertaining.
  22. Just block the op in advance, then you are save - for now. 😎
  23. You need to search for the exact name, not characters just looking alike. So you can try to copy and paste it into the search or rename it into something useful. SL has problems with unicode characters and different tables work/don't work in different places/name fields/search strings. Maybe it even doesn't work at all here.
  24. One detail: I have 200ms ping for many years and that's quite normal and the minimum (I can not get less) for a europe to west coast connection. (To east coast a 120 is possible) No disconnects here, so if ping is a factor it needs to be much higher. I have 0% packet loss though - always - (well whenever I looked 😎) That's probably more a factor to keep an eye on. (no wifi here)
  25. I never script inworld. Testing and debugging I do inworld - usually at SL-home-location.
×
×
  • Create New...