Jump to content

Mircea Lobo

Resident
  • Posts

    175
  • Joined

  • Last visited

Everything posted by Mircea Lobo

  1. I know it's not givernments this time... at least not officially. Those ISP's aren't doing it for nothing however, so they receive money from somehwere. That's either the governments (making them INDIRECTLY involved) or most likely Hollywood and low-life media corporations. Also, as I pointed out, the government might be indirectly involved (pressuring or bribing) as part of a scheme to pass SOPA more easily were it to be revived, or another law like it. The idea could be that if this ISP initiative is applied, people will get used to censorship, so SOPA can be voted on again next year and people would care less. So they might be working together behind the curtain.
  2. Damn... I missed that part in the **bleep**storm I read last night. Thanks for pointing it out. That's clearly a lot less concerning if it's true, but this still remains a huge issue. Once again, I see the whole "education" as a form of hateful humiliation, which is an unacceptable practice. Informing the user they did something wrong and the ISP's are pissed is ok, if it's just sending them a notice. But forcing them to go to actual lessons, take tests, etc. to have their internet back is disgusting. Anyone who has internet knows what copyright is, and there's no need for a whole muscle showing show. Also, cutting anyone's internet at all is an unacceptable practice. This might have been thinkable 10 years ago, though even then almost anyone had email and important things. Cutting people off internet is like cutting part of their life at this day... might as well jail them for a day (god no) which is as horrible or possibly even more horrible for some. The thing that the SOPA people refused to see last winter is that the internet isn't some place where you go occasionally and can be told what to do or not. It's part of people's lives, and things like this can't be accepted. IDEA: If they wanna give us copyright lessons, I say we make a classroom and send them to take user lessons if they wanna continue getting money from us. Show them what people do all day on the internet, and why it's something one can not cut off.
  3. Phil: How can you not see anything wrong with it? And how can anyone be so naive to imagine it will only be used for copyright purposes? This will allow your ISP to spy on everything you do. If they spy your data they will be able to read your emails, IM's, how many times you called your boss a moron, how many times you sex RP'd online... everything. Theoretically, they can even spy on what you discuss with your co-workers, and secretly share private information with the competitor of the company you work for. Or if you access a porn website, they could tell everyone about it and the things you look at (even your parents or husband / wife). Next, if you access a website about something your admin dislikes, they can easily invent false claims against you to bully you. Imagine being cut off the internet because you are gay or accessed 4chan. Or going to school one day to find out the head teacher mysteriously knows you're gay or something you only said privately, then everyone finds out and you get bullied. Also, what do you think will happen to people who post bad things about America's leadership, the US army, uncover war crimes or government abuses, and that sort of thing... especially with the NDAA being around? If anyone thinks this won't happen because "they will be nice people and will only use this to catch thieves", you are more than naive. No, it WILL be used for this and much worse if it happens. I don't even need to point out what power hungry and control hungry characters are behind this. But even if (just for the sake of pretending) this will only be used against pirates. Those pirates might have an online job, not to mention friends they talk with and other activities (unrelated to piracy). Cutting anyone off the internet at this day could cost many their jobs, and some even their lives. And then... being humiliated in spite by being sent to classes about copyright and scolded like a 2 year old by some internet provider? This by itself is a hateful practice, which as a mentality was used by communist and nazi regimes to show their power. Those who spoke against the regime but didn't pose a big threat weren't killed, but instead beaten in public and left without food and water for days, to show an example to those who disobeyed. At a different scale, this is the same mentality being put in practice here with those "lessons", against people who might have done as little as downloading a song. We live in a mad world. Alongside the practical consequences, this is also an insult to all internet users. We are being qualified as thieves automatically, and investigated prematurely to make sure we aren't stealing. Using the internet will now be a suspicion of theft by itself... also known as being accused of a crime before you even commit it. In any normal world, people would be outraged at such a slap in the face. It's the same as installing cameras in everyone's homes, watching them when they eat / go pee / have sex / etc. just to be sure they aren't raising cannabis in their house. Christ... not even Gaddafi or Kim Jong Il dared to do this. As for hoping that some ISP's will stay free, no. This is simply a new attempt to pass a law worse than SOPA. Currently, they paid or constrained ISP's to pretend they've taken the decision on their own. After people would have cooled down and enough accepted this practice, they would also pass a law to make the whole thing obligatory. It's basically doing it before it's legal, so people get used to it first and they can later legalize it more easily. That's why everyone needs to act urgently. One thing's for sure: They are up-front trying to make America a dictatorship, and I'm not talking just about this event (the NDAA is another thing). Many laws worthy of the worst dictatorships are being forcefully pushed in the US. The world has a very important choice to take in the next years, and if the wrong one is taken expect us to return to a medieval terror-based leadership. This isn't a theory or exaggeration, it's happening under our eyes. Once again, please post about this everywhere you can and spread the word. Make a topic on all forums you visit (if there isn't one already), post it on your Facebook / Twitter, and if you own a blog publish an article. We should also contact every news TV station or website and pressure them to speak about it. Please make people aware of the things I wrote in this post also (feel free to re-post all of it) so they can better see what we're dealing with (as many still think it would only stop piracy and it's ok). We have a disaster beyond words in front of us, if everything we read about this is true.
  4. http://www.rawstory.com/rs/2012/03/15/american-isps-to-launch-massive-copyright-spying-scheme-on-july-12/ http://news.cnet.com/8301-31001_3-57397452-261/riaa-chief-isps-to-start-policing-copyright-by-july-1/ http://dottech.org/tech-news/28447/isps-in-the-usa-to-start-monitoring-customers-downloads-starting-july-1-2012/ https://www.eff.org/deeplinks/2011/07/graduated-response-deal-what-if-users-had-been I just saw those articles in a post. I was shocked to say the least, and decided to post this on several forums I frequent so the word can be spread. In summary, all major American ISP's are implementing a system to spy on their users in order to police copyright infringement. There was no legal debate let alone any discussion with the users, and this decision was simply taken and will be applied starting 1 or 12 July. Users considered to be infringing copyright will be punished in several ways... such as their internet being cut off, selective websites being censored, their bandwidth being lowered, and if the offense is repeated users will be constrained to go to special copyright lessons to be allowed on the internet again. I believe that this is the worst attack initiated against internet users in the US, worse than what SOPA and ACTA were meant to be. If what's said about this initiative is true, something worse than SOPA is already being put in practice starting next week. It's clear that the government and / or Hollywood have started another backroom deal, this time asking ISP's to pretend they've taken the decision on their own so they could censor the internet without any debate in the house or senate (which as proven by SOPA would not pass). I couldn't begin describing how horrible and surreal this is after what I read. It will be used to cut users off the internet, and even worse to purposely humiliate them in spite (copyright lessons required to access the internet, and lowered data transfer rates as punishment). It will also be used to spy on any website you access, and for the first time in the history of America you will be completely watched by your ISP. They might even be able to read private emails you send / receive. Those are unspeakable practices which could only be imagined in countries like Libia or North Korea. I don't believe I need to point out that users will not be punished for real copyright infringements only, but false negatives will exist and be heavily abused. Technically, if your ISP believes you are stupid for accessing a website they don't like (which they can now spy on) they may easily invent a claim and cut you off the internet without being questioned by anyone. This will obviously be used for censorship on political subjects and worse too. Every internet user needs to act urgently, more than they have for SOPA / PIPA last winter. If this decision is not undone, I'm even expecting riots to take place. I'm also hoping that major websites like Google or Wikipedia will do another blackout in awareness to this. At this point I strongly support a criminal investigation to see who's behind those unprecedented attacks on internet users, and believe someone needs to be sentenced to prison for both this and what happened with SOPA. The only thing I ask of everyone is to please re-post this and spread awareness immediately! We need everyone to know about this fast, so we can have time to protest and / or sign petitions against it. Lets hope this can be stopped before the unthinkable happens, otherwise there will no longer be internet for most of us.
  5. No problem. And thanks, I'll wait for your reply. Have fun with Diablo 3 also
  6. It's been a while... any news again? I'm still waiting to finish my object, but this bug keeps it from working still.
  7. Not experienced with Sketchup here so I can't say much about it. But like I said: Why integrate a modelling tool in the viewer? SL already has its existing builder (the edit menu) which just needs a few extras to allow this feature. They might be harder to implement... but if you can't model straight from in-world and by using the SL menu, I don't see a point (just use another modelling program and import your work when it's ready).
  8. Awesome. I tried adapting that code to my script, and made a few modifications that shouldn't change anything (such as using vectors and the repeats and offsets I send to the function). But for some reason, it maps each matrix in an incorrect position. Here is an image of the result I get and the integrated function in my code (the red and green squares are unrelated). Let me know what I need to change please. texture_set(string inventory, vector repeat, vector offset, float rot, integer start_x, integer start_y, integer end_x, integer end_y){ // scale_x and scale_y range from 0.1 to 100.0; none / default = 1.0 // offset_x and offset_y range from -1.0 to 1.0; none / default = 0.0 vector size; size.x = end_x - start_x + 1; size.y = end_y - start_y + 1; vector apply_repeat; apply_repeat.x = (1 / (float)size.x) * repeat.x; apply_repeat.y = (1 / (float)size.y) * repeat.y; integer i; for(i = start_x; i <= end_x; i++) // loop through all cached chunks in range, X { integer j; for(j = start_y; j <= end_y; j++) // loop through all cached chunks in range, Y { integer k = llListFindList(cache_coordinates, [<i,j,0>]); integer linknum = llList2Integer(cache_linknum, k); // extract link number from the list index // if texture is blank, clear the chunk if(inventory == "") { llSetLinkPrimitiveParamsFast(linknum, [PRIM_TEXTURE, CHUNK_FACE, BLANK, <1, 1, 0>, <0, 0, 0>, 0]); llSetLinkPrimitiveParamsFast(linknum, [PRIM_COLOR, CHUNK_FACE, <1, 1, 1>, 0]); if(DEBUG > 1) llOwnerSay("Cleared texture on the chunk " + linknum_to_coordinates_str(linknum)); } else { vector apply_offset; apply_offset.x = (((float)i - (float)start_x) / (float)size.x) + offset.x; apply_offset.y = (((float)j - (float)start_y) / (float)size.y) + offset.y; llSetLinkPrimitiveParamsFast(linknum, [PRIM_TEXTURE, CHUNK_FACE, inventory, apply_repeat, apply_offset, rot]); llSetLinkPrimitiveParamsFast(linknum, [PRIM_COLOR, CHUNK_FACE, <1, 1, 1>, 1]); if(DEBUG > 1) llOwnerSay("Assigned texture " + inventory + " to the chunk " + linknum_to_coordinates_str(linknum)); } } }}
  9. Oh... I forgot something else I want to add; I'd also like to be able to manually specify a scale offset when issuing the mapping command. So for instance, if I select matrixes 1 x 1 to 4 x 4 but: Choose an X = 1 and Y = 1 scale, it will be mapped fully over those chunks (like we discussed till now). And if I choose X = 1 and Y = 2 it will repeat two times in Y, while X = 0.5 and Y = 1 means only half will be mapped in the X direction and so on. Maybe an offset value can be added as well, so texture offsets can also be bumped to push the texture across all chunks (0 x 0 leaving it unmodified)... but I hope this isn't way more than what can be done. I know this makes it a lot more complicated, but it would help a lot if those extra abilities could be added as well please.
  10. Thanks for those valuable observations! I noticed now that I indeed run the loop more than I should be. I forgot that master is linknumber 0, so I can start the loop from 1 instead (since the master prim will never be a chunk). And I never used llListFindList before, but it sounds like an easier way to do exactly what I already am, so I'll try to switch to that. I'll look in this function's description later. But yes, the coordinates in the description are exactly the matrix positions written that way. So the top-left prim is 1,1 the prim to its right is 1,2 and the prim under it is 2,1 (don't remember exactly which is X and which is Y, might be the other way around). It indeed starts from top-left and the way I imagined it, prims are counted left to right then up to down (although in practice link numbers can be random for each matrix, since I didn't link them in a specific order). But yes, I start from 1,1 and the size of the screen in my case is 16 x 12 (hence 192 prims). I initially wanted to make something way larger (512 prims) but ran into SL's limit of 256 prims per linkset, and it was getting slow to render. I know that would have been a lot... but then my screen would have been highres enough to even allow scripted textured fonts. I'm sorta pushing the limits for what I'm doing, but I'm hoping it will be nice and good after it's ready.
  11. Thanks a lot, that looks like it might help. I plan to release my script, but after the whole thing is ready. And it will work with custom linksets too, you just need to name and describe each primitive accordingly. But I can show some parts of it for more clarification. I already cache the link numbers at script startup into a list, followed by the vector coordinates of each matrix... which the script gets from each prim's description using llCSV2List() while matrix description is of the form 6,4. Here is that part of the code (original code from my script): // this caches all screen chunks into multiple lists at startup, in order to easily fetch their various properties// each index MUST refer to the the same chunk in all lists, so always add them in the same order!// eg: index 2 in the cache_linknum list and index 2 in the cache_coordinates list must both store the properties of chunk 1 x 3list cache_linknum; list cache_coordinates; cache_chunks() // called in state_entry{ cache_linknum = cache_coordinates = []; integer i; for(i = 0; i <= llGetNumberOfPrims(); i++) { list l = llGetLinkPrimitiveParams(i, [PRIM_NAME, PRIM_DESC]); if(llList2String(l, 0) == "Chunk") // this primitive is a chunk { // the description field of each chunk contains X and Y coordinates // we first extract them from the string so we can later put them inside a vector string desc = llList2String(l, 1); list xy = llCSV2List(desc); // separate coordinates by comma integer pos_x = llList2Integer(xy, 0); integer pos_y = llList2Integer(xy, 1); // exception handling if(!pos_x || !pos_y) handle_exception("Incorrect chunk coordinates in the description " + desc + ", please write X and Y position separated by a comma", TRUE); // now write the linkset number and coordinates to the permanent cache lists cache_linknum += [i]; cache_coordinates += [<pos_x, pos_y, 0>]; } }} That's how the matrices are cached at startup, so each one's link number and position can be found at the same index of two lists. This part works well and is finished. Now here's what I have so far from the texture setting code (and the functions using it), which is currently only able to set the texture on each matrix without changing the repeats / offsets. Irrelevant custom functions are omitted. TOTAL_CHUNKS = 192; // returns the coordinates of a chunk based on the linkset number given as a vector vector linknum_to_coordinates_vec(integer linknum) { integer i; for(i = 0; i <= TOTAL_CHUNKS; i++) { if(llList2Integer(cache_linknum, i) == linknum) return llList2Vector(cache_coordinates, i); } // exception handling handle_exception("No chunk found with the link number " + (string)linknum, FALSE); return <0, 0, 0>; } // returns TRUE if chunk is located in the given range and FALSE if not// the range is a virtual rectangle stretching between coordinate start and coordinate end, read from left to right and up to downinteger inrange(integer chunk, integer start_x, integer start_y, integer end_x, integer end_y){ vector pos = linknum_to_coordinates_vec(chunk); if(pos.x >= start_x && pos.x <= end_x) if(pos.y >= start_y && pos.y <= end_y) return TRUE; return FALSE;}// sets the specified textue on the display chunks in the given rangetexture_set(string inventory, integer start_x, integer start_y, integer end_x, integer end_y){ integer i; for(i = 0; i <= llGetListLength(cache_linknum); i++) // loop through all cached chunks { integer linknum = llList2Integer(cache_linknum, i); // extract link number from the list index if(inrange(linknum, start_x, start_y, end_x, end_y)) // chunk is in the range specified { // if texture is blank, clear the chunk if(inventory == "") { llSetLinkPrimitiveParamsFast(linknum, [PRIM_TEXTURE, CHUNK_FACE, BLANK, <1, 1, 0>, <0, 0, 0>, 0]); llSetLinkPrimitiveParamsFast(linknum, [PRIM_COLOR, CHUNK_FACE, <1, 1, 1>, 0]); if(DEBUG > 1) llOwnerSay("Cleared texture on the chunk " + linknum_to_coordinates_str(linknum)); } else { llSetLinkPrimitiveParamsFast(linknum, [PRIM_TEXTURE, CHUNK_FACE, inventory, <1, 1, 0>, <0, 0, 0>, 0]); llSetLinkPrimitiveParamsFast(linknum, [PRIM_COLOR, CHUNK_FACE, <1, 1, 1>, 1]); if(DEBUG > 1) llOwnerSay("Assigned texture " + inventory + " to the chunk " + linknum_to_coordinates_str(linknum)); } } }} It happens in the second llSetLinkPrimitiveParamsFast group, which is where I need to get set the stretching / repeating based on the functions and caching I have till then.
  12. Thanks. I'll probably do that when I log on the main grid again (I do most of my works on my OpenSim simulator, and port them to SL later if they're good). That matrix representation looks like what I have... but note that most of my script is already done and the loop is already in place. Like I said, there is a for loop which goes through all of the linkset (only those prims which are cubes part of the matrix). I won't copy my complex code now, but here's something close (a quick mockup to explain my architecture): // example of how the range is defined between a virtual rectangle consisting of two points integer start_x = 1; integer start_y = 1; integer end_x = 3; integer end_y = 3; integer i; for(i = 0; i <= llGetNumberOfPrims(); i++) // loop through all child primitives { if(is_part_of_matrix(i)) // custom function which returns true if this child is part of the matrix { vector v = get_position(i); // custom function which gets the X and Y coordinates of this chunk llSetLinkPrimitiveParamsFast(i, [PRIM_TEXTURE, bla, bla, bla]); // bla bla bla is where I set the texture coords // ^ in the line above I need to set texture repeats and offsets to match each chunk // by using vector v and knowing the start and end values via start_x start_y end_x and end_y } } The actual code is very different than that, but this explains what I have and how it works. It would be hard to change the architecture so I hope it can work in a loop of that sort.
  13. An integrated tool like that seems nice too. Maybe with mesh support, someone can already make an addon for Blender that can connect to the SL viewer while it's running, and hack the client to preview your mesh locally in-world without updating it on the server till you're ready to upload. But I'm not as interested in this personally. I don't believe it's fun if you can't do it straight from in-world, and have your edit be visible to all avatars in real-time (as well as collisions updating). Under my imagined implementation, it wouldn't require a special UI either. Like I said, the same way you select a primitive by right-clicking it, you could select a vertice by right-clicking... then drag it around the same way you drag prims currently. Buttons for subdividing the mesh would be located somewhere in the edit window (where the Object settings are now, where you set hole / shear / etc) or something like that. So in total it would feel and work a lot like editing does now. I still don't see it as something that impossible to make... but I have little experience with the technical part of SL, so I have no say over someone who knows the prim code even the slightest. Maybe someone who makes custom viewers will give this a try. If they need a custom server, OpenSim is always there.
  14. I'm working on a script of unusual complexity, which I can't figure out on my own. I have a grid of cubes perfectly aligned to each other, all linked to a separate master primitive. Those cubes represent chunks of a screen. I want my script to be able to set a texture across any specified range of cubes, while being able to give the texture any rotation. To better understand this, here is an image which represents the effect I want (done manually in edit mode for now): As you can see, I have a grid of 4 x 4 cubes linked to a master cube (which would contain the script in this case). The texture would be set with llSetLinkPrimitiveParams on each prim, and I already have a for() loop which runs through all the cubes and detects where each belongs. This is done by looping through all child primitives, and for each linknumber obtaining the coordinates as a vector (eg: for top-rightmost one it would be <1, 4, 0>). The problem is generating texture coordinates so each surface is given the repeats and offset necessary for the image to be mapped properly. Note that my script does not use a constant range of blocks to map over. If we imagine it works via chat command with my example, I could tell the script to map the texture from 1 x 1 to 4 x 4 (meaning all cubes as in my picture), 1 x 1 to 2 x 2 (which would only map it on the first 4 cubes in the top-left corner), 2 x 2 to 3 x 4 (which would be a rectangular area and the texture would need to be stretched 1X2) or 1 x 4 to 1 x 4 so it only maps to that single cube... and of course any other imaginable position. I also have a larger cube grid in my final project. Also, I want this script to accept custom rotations too, so I can rotate my image any way and still have it map as correctly as possible. I assume that rotating a texture 45* across a 2 x 4 cube group would result in some parts poking out, but I'd still like the prettiest result possible. With fixed rotations however (0* 90* 180* etc) I want the texture to fit perfectly across any specified cube range. Can someone more experienced at maths figure a script that can do this please? I'm using it for something pretty nice, which I plan to make public once it's ready.
  15. True. But at the same time, I believe evolvement and modernization is going to require this. Being able to model in realtime will probably become a popular demand in the following years, as hardware and technologies will evolve even more. Eventually another 3D app will add this feature, and if SL won't it will get left behind. Modelling serious meshes will always be much easier and more stable in a program like Blender. So for topmost quality, mesh creators will likely choose to import and go with the small fee. So I don't think this would practically ruin LL's business much... but on the contrary such a feature will likely make SL even more popular. Those who aren't into it yet will probably go like "Creating meshes in real time in a virtual space straight from in-world ? That's an incredible feature... I need to check this out".
  16. From my understanding, they wouldn't have to add a whole program like Blender into the viewer (that would probably be bad). My idea was that, the same way you can select a prim and move it around, you could select a vertice on it and do so. You wouldn't do it from an integrated program, but directly click and drag it in-world. But I don't know the in-depth details of how primitives are drawn. I was hoping that the cube for instance is just a set of 8 vertices between which surfaces are being drawn. If the client + server could store the offset and information of each vertex, getting the surface to draw in proper position would be easy. Even if it would require major changes, I support the idea. As for the learning curve, I agree. But like I said I'm not suggesting a replacement of the current building stystem, which would harm many builders badly. Maybe vertex objects wouldn't be primitives at all, but an entirely new feature like mesh support. I don't think adding modern features is a bad thing... in my opinion 3D environments and virtual spaces evolved a lot since the days when Second Life first started, and this change should be part of that evolvement.
  17. Thanks for pointing that out. I mostly just need the owner to be able to use it, so I guess that's ok. I didn't know each avatar needs permission, but thought the object needs it once globally. Maybe I can find a workaround for that later.
  18. This is a major suggestion, and like other things something I doubt will happen in years. I've been building stuff in Second Life for a long time, but more recently been working with actual 3D modelling and tools like Blender. I'm starting to realize that building things out of spheres, cylinders and cubes is starting to get old. But at the same time, I love SL's ability to build in-world together with other people, without needing any external tools. At this day, I believe SL should consider mixing the two together. What this means is giving the viewer ability to create and edit meshes in real time, and the features a basic modelling program has. Currently, you can only spawn a primitive with a hard coded shape (cube, sphere, cylinder) and change several characteristics such as hole, shear, taper, and more. What I wish would happen is being able to select individual vertices of the cube and drag them around, subdivide the shape to earn more vertices, extrude faces, separate / merge meshes to / from multiple primitives, and anything else that would be useful. I won't get into the advanced stuff at this point (such as in-world creation of skeletons / rigging / animations or UV mapping), even if I hope all this will happen over the years. For now, I just believe a replacement for the way you edit prims would be extremely welcome. Whenever I edit a cube in SL, I'm thinking "Why must I set a taper value instead of selecting the top vertices and scaling them on the X axis?" This is the next major change I totally want to see in SL personally. Now I'm not suggesting the removal of the current system either. This would be a horrible thing for current builders used to the existing way for years, even if I wouldn't mind personally. My suggestion is turning the current editor into templates, and maybe allowing users to create custom ones too out of meshes. For instance, the cube would be a template, and setting the hole, shear, taper, twist, etc. just properties and keys part of it. But if you wanna free edit your shape, you would click a button to finalize your primitive and transform it to a mesh, and from that point you would edit it like a model. This would be an entirely optional process, and of course existing primitives would stay as they are and be editable like until now. This is just a quick idea of how the feature could be organized to keep the same system for current builders... better ones can probably be found. I would like to hear what people think of this, and maybe take the discussion higher. I personally believe it's time Linden considers this, and I'd like to hear their feedback a lot. Do other builders want the feature? What about Lindens... enough to make it happen? Are there any plans at this day, and have any attempts with custom viewers been made to implement free vertex editing of primitives?
  19. Thanks. That part is ok, since the perms are asked in state_entry so the owner just confirms it after the object is rezzed, then others can use it. It's mostly meant for the owner either way in my case, so yeah.
  20. Since Linden never listens to major features, this will not happen for at least 5 years to come. But I still wanted to ask what people think and hear opinions on this. Second Life uses a heightmap based terrain system. It's very nice and excellent at what it does... but as with any heightmap you cannot create things like overhang cliffs, digging holes through, and if you lower / raise your terrain too much it stretches visibly. Other engines got past these limitations by implementing voxel terrains with marching cubes. This allows for fully constructible / destructible terrains in any direction, while avoiding texture stretching. It's basically the same terrain system in MineCraft, but smooth and properly textured instead of using cubes and pixelated textures. Here are some nice videos from a bunch of OGRE implementations I've been poking into: As you see, this can be done smoothly and easily without any visible performance loss (FPS doesn't drop below 200). The latest Cryengine has the feature natively also. Do you think a similar system would be nice and useful in Second Life someday? Personally I think it would be awesome if region owners could dig tunnels or sculpt cliffs in realtime, without having to mesh the whole thing and import it or do it with primitives.
  21. I've scripted for years in Second Life, yet I find myself confused by something new I wanna do. I got what I wanted working I think, but I still wanted to ask in order to know if what I'm doing is the right way. I want to script an object that spawns another object from inventory then links it to itself. I got this working with llCreateLink, using the excellent example available on its LSL page. However, this function must ask for permission in order to activate. For what I'm doing, this is an interactive process (eg: happens whenever you click something) so I don't want the person using it to be asked for permission whenever he clicks a button to spawn + link (this would be annoying and unusable). I don't mind if the owner of the object is asked for permission only once (when the object is rezzed), but after that everything happens automatically. Like I said I got this working. What I did was changing that example script into this: // Create a new object and link it as a child prim. string ObjectName = "Primitive"; // NOTE: must be a name of an object in this object's inventory. integer works; default { state_entry() { llRequestPermissions(llGetOwner(), PERMISSION_CHANGE_LINKS); } touch_start(integer count) { // When the object is touched, make sure we can do this before trying. if (works) llRezObject(ObjectName, llGetPos() + <0,0,0.5>, ZERO_VECTOR, llGetRot(), 0); else llOwnerSay("Sorry, we can't link."); } run_time_permissions(integer perm) { // Only bother rezzing the object if will be able to link it. if (perm & PERMISSION_CHANGE_LINKS) works = TRUE; else works = FALSE; } object_rez(key id) { // NOTE: under some conditions, this could fail to work. // This is the parent object. Create a link to the newly-created child. llCreateLink(id, TRUE); } } My curiosity is if this is the right way to have the object only requesting permission once after it's spawned, then allowing spawning / unspawning objects from itself automatically. Does it work for everyone also, or only for the owner?
  22. Guys, victory! SOPA is dead! The news just came a short time ago https://www.examiner.com/computers-in-denver/house-kills-sopa http://boingboing.net/2012/01/16/sopa-is-dead-its-evil-senate.html http://www.dailytech.com/Ding+Dong+SOPA+is+Dead/article23791c.htm However, as stated by many people, PIPA is still alive! It's basically the same thing as SOPA but under a different name. It needs to be our next target, and we need to focus all the energy we put against SOPA on it to kill this too. PIPA is the last evil that needs to be defeated, after that the internet is safe. I dearly hope things go the same way here. We're very close to saving the internet!
×
×
  • Create New...