Jump to content

Mollymews

Resident
  • Posts

    5,768
  • Joined

Everything posted by Mollymews

  1. not for everyone, no from a pragmatic pov, LL did have to build something to match the increased tier included in the premium package. The parcel sizes match the new increased premium tier allowance. So all good on that basis someone mentioned earlier as well that when try to do too many things at the same time then the potential for fail is higher. In this case, the provision of residential housing in the same contiguous space can become problematic when the users have competing needs/wants. The outcome of that is that whose needs/wants are not met will go elsewhere the question then is where do these people go, while still keeping them on the platform and continuing to pay a premium subscription ? the whole point of the premium program is to get users to pay subscription fees to diversify LL's revenue stream away from the over-reliance on land tiers Ebbe Linden has indicated that other types of premium benefits are in the works, coming soon. It may very well be that the decision to take down banlines on these newly-built continents has been taken in light of what else might be coming in terms of alternative premium packages closed box parcels ? I would get one of them. I have one now, kinda sorta. On old mainland. Way up in the sky past the 2000m mark. With a zero-time distance-measured orb, on the basis of who flies around sightseeing above 2000m. Well nobody hardly ever. 4 so far. 4 too many. They gone and no mercy. Is no All/Group banlines at ground level, as they are ineffective for my residence way up in the sky. And to defeat the TPV teleport-to feature, away from myself in the sky, is to set the parcel's teleport routing to a point on the ground i would dump the orb if I could preemptively set the banlines to any contiguous height level on my parcel, which in my case I would set to only cover the near space of my residence. But I can't, so permissive orb it is this is what I mean about making people jump through hoops. Who knows how to do all this ? Another question. For myself. Why would I want a closed box ? My parcel I only use as a dressing room and little sandbox to make a few things for myself. That's it. I have a few trees, plants and stuff to pretty it up and I change it all out now and again, but dressing room it is. I don't need or want anything more than this for myself. For social, I go to clubs, live music events, art and performance events, fashion events, shopping, etc. Tipping and paying as I go for my usage of the facilities, products and experiences provided by those owners, creatives and performers. Like I do in the real world pretty much
  2. yes new people who are not yet premium or have not yet put money into SL do that. Change their outfits on the platforms at Social Island and on the paths and public spaces at the Community Gateways. Many more new people though can be found at the bottom of oceans,hovering way up in the sky, and/or hiding in the bushes doing this for new people it is not a binary choice between deciding where they get changed, or, deciding to chat to the other people at the Social Island/Gateway. They can decide to both, either or neither, independently, and they do. One decision is not dependent on the other
  3. i hope that it does work for LL in terms of increasing the rate of premium uptake/conversion. And I am happy that you can see how this is going to work for you. As I am also happy for those like yourself, of which there are many. Baked commonweal community living is not for everyone, but for those who are into it then this is a pretty good offering from LL When anything new is introduced by LL, it does generate a fair amount of excitement, goodwill and enthusiasm. After the first flush of new things, matters tend to drift toward being ordinary and everyday, and people fall back to their normal habits. Which is the basis for my cautioning someone else made on here an interesting posit also, about maybe there could be an alternative closed continent offered as an option for new premium accounts in addition to the current more open home parcels i would find it interesting to see how such a closed box/room offering would go. For example: a closed box/room 1024x1024x4096. Can see nothing (including objects) beyond the room's boundaries. Cannot move outside the bounds of your room. No dots show up on the minimap or world map. Scripts cannot see other avatars or objects outside of the room what for me would be most interesting, would be the uptake ratio of closed box/room parcels as home spaces, compared to the new Linden Homes offerings. Ebbe Linden talks a lot about making data-driven decisions. Perhaps he might try something like closed box parceled continents as an option for new premium accounts in addition to the existing more open parcel offering , to give him something completely different to measure data against
  4. picking up on these points A question. Should LL through design, make new users who have purchased a premium account with a starter home provided by LL, jump through hoops to secure for themselves privacy, a privacy driven by modesty, when in those homes? For 16 years now LL have been obsessed with baking the ideals of community into their own mainland offerings. A further question is: How is that working for LL after all these years, in premium account uptake and conversion? The new starter home continent is anything but new. It's just another go by LL at the baked community ideal, same old, same old.. The only thing that makes them more attractive over LL's previous attempts is the increase in parcel size and LI for the same price. i predict that the isolationist tendency found on the previous 512m Linden Homes continents will continue to prevail in the main, as it did and does continue to prevail on old mainland on those parcels occupied as homes. A question is why is that ? What's with this isolationist tendency ? The fundamental answer to these types of questions is that modesty drives home parcel isolationism. A want for privacy is not a driver or tendency in itself per se. Privacy is a means to securing modesty for one's self in one's own home there are two ways to implement home parcel privacy. Preemptive: banlines. Permissive: scripted orb. LL have now chosen to go with a permissive (after the fact) method on the new Linden Homes continent, when those who do want parcel privacy control for modesty purposes are better served by a preemptive (before the fact) method a choice seemingly made in accordance with the baked community ideal. An ideal which has now been extended to permissively incorporate a premium account's Linden-provided home into the community commonweal - leaving the home owner with only an after-the-fact method to secure their modesty in their own home most people do start out their SL with a sense of modesty. It can for be for some people that the longer they stay in SL the concept of modesty tends to wear away due to the vagaries of rendering. Many people though still do what they can, as best they can to be modest even with the current mesh bodies. Using appliers and judicious use of alphas to cover their bits as best they can, in addition to their mesh clothes. A person might be showing a lot of skin, but quite often their bits are pastied or alpha'ed out a person, not you, also mentioned earlier, that SL is a multi-user environment, therefore those who want preemptive privacy control are out-of-luck. A thing to consider, the real world is a multi-user experience also. Yet, at the base societal level there is an expectation of privacy in our own homes. How well or poorly the provided methods to secure that do operate, is immaterial to the expectation. It is only material to the operation, which is not the same thing
  5. because these are the Linden starter homes removing the banline capability says that people who buy premium and get a starter home must be exposed to random wanderers. That when a premium member is standing naked on their pose stand in their own home trying on outfits, then it is ok for any random person can wander in and/or over and get an eyeful for some Linden-decided 10, 15, 20 or 30 seconds or however long, and/or take a snapshot of that premium member in that state it is one thing to be photo-snapped naked in a public place, it is quite another to be photo-snapped in what we would assume to be the privacy of our own home removing banlines from the premium starter homes is a lazy response to a perennial issue directed public travel is solved by the LDPW dropping withies/beacons in the water, and transparent ones in the sky to mark the public boating and airspace channels. Beacons that are ping-able from a radar script that listen for the beacons, helping the driver/sailor pilot to stay in the channels. If LL are going to spend staff resources and time on scripting stuff to help users then ping-able beacons please, and have the Moles drop them all over the Linden mainland which leaves the new premium starter accounts with the expectation of preemptive privacy that banlines coupled with visibility ensures, which should be the default for a Linden-provided premium starter home
  6. If X is greater than 0, decrease it until it is 0. Else if X is lesser than 0, increase it until it is 0 'hacking' this then :) default { state_entry() { integer LOSS = 4; integer i; for (i = -8; i <= 8; i++) { integer x = i; x = (x - ((1 - (2 * (x < 0))) * LOSS)) * (x <= -LOSS || x >= LOSS); llSay(0, "i = " + (string)i + " x = " + (string)x); } } } /* break down x = (x - ((1 - (2 * (x < 0))) * LOSS)) * (x <= -LOSS || x >= LOSS); TRUE = 1. FALSE = 0. LOSS = 4. (x < 0) : when x is < 0 then (x < 0) = TRUE = 1. : when x is >= 0 then (x < 0) = FALSE = 0. (2 * (x < 0)) : 2 * 1 = 2 : 2 * 0 = 0 (1 - (2 * (x < 0))) : 1 - 2 = -1 : 1 - 0 = 1 ((1 - (2 * (x < 0))) * LOSS) : -1 * LOSS = -4 : 1 * LOSS = 4 (x - ((1 - (2 * (x < 0))) * LOSS)) : when x = -5... : -5 - -4 = -1 : -4 - -4 - 0 : -3 - -4 = 1 : when x = 5... : 5 - 4 = 1 : 4 - 4 = 0 : 3 - 4 - -1 (x <= -LOSS || x >= LOSS) : when (x <= -4 or x >= 4) then = 1 : when (x > -4 and x < 4) then = 0 altogether: : (-5 - -4 = -1) * (1) = -1 : (-4 - -4 = 0) * (1) = 0 : (-3 - -4 = 1) * (0) = 0 : ( 0 - -4 = -4) * (0) = 0 : ( 3 - 4 = -1) * (0) = 0 : ( 4 - 4 = 0) * (1) = 0 : ( 5 - 4 = 1) * (1) = 1 */
  7. the outer loop 'i' goes from '0' to 'len-1'. The inner loop 'Ti' goes from 'i+1' to 'len' to avoid false positives. E.g: test = [6,4,7,3,8]; k = 12; when i = 0 and Ti = 0 then list + list[Ti] = 6 + 6 = 12 = k = TRUE this test list should only return TRUE when 'i' = 1 and 'Ti' = 4, 4 + 8 = 12 = k = TRUE
  8. if we can visualise this as a river bed with gullies then a O(N) time and O(1) space example: default { state_entry() { list river_bed = [3, 0, 1, 3, 0, 5]; integer left_bank = llList2Integer(river_bed, 0); integer right_bank = llList2Integer(river_bed, -1); integer river_width = llGetListLength(river_bed) - 2; // - 2 river banks integer lowest_bank = left_bank; if (right_bank < lowest_bank) lowest_bank = right_bank; integer presumptive_volume = lowest_bank * river_width; // when all gullies have a floor of 0 integer gully_heights = 0; integer gully; for (gully = 1; gully <= river_width; gully++) gully_heights += llList2Integer(river_bed, gully); integer river_capacity = presumptive_volume - gully_heights; llSay(0, "River capacity = " + (string)river_capacity); } }
  9. this one is a little bit awkward to do in LSL as we don't have memory pointers, structs or classes. We can tho store a tree in a list (or a string) and work with it as a tree. as wrote the problem case asks us to serialise a tree structure to a string then deserialise the string to a tree. Effectively saving and restoring it from say a file or notecard. In the LSL case because we can use a list, then save/restore can be done simply with llDumpList2String and ParseString2List this said, trees are useful for stuff like paths in quest/games, nested menu systems, etc etc here is one way to use a list to manage an unbalanced binary tree according to the principles contained in the problem case. This method traverses the tree using a non-recursive stack method. A depth-first traversal. Non-recursive stack methods (and queue methods for breadth-first trees) can be a little bit easier to follow in their code construction. Probably also easier to visualise their memory usage in this traverse method the path is: go left, until cannot go any further left, then go right, when cannot go any further right then go back. When we start at the root of the tree we will end up back at the root after visiting every child node at least once. we define a tree node to be 4 adjacent list elements. (similar to a stride) Element 1 : pointer to the parent of the node. The root node is its own parent (0) Element 2 : pointer to the right child node. Pointer is 0 when there is no child node Element 3 : pointer to the left child node. Pointer is 0 when there is no child node Element 4 : data value stored in the node example code: //list index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 list tree = [0,8,4,"Root", 0,0,12,"A Node", 0,20,16,"B Node", 4, 0, 0,"C Node", 8, 0, 0,"E Node", 8, 0, 0,"F Node"]; // the traversal path as wrote for this tree is: > Root > A Node > C Node > A Node > Root > B Node > E Node > B Node > F Node > B Node > Root // other nodes can be added (or removed) as you like. The list order of nodes is unimportant, whats important is that node pointer values do point to a valid list index list stack; stackPush(integer ptr) { // add a child node to the stack stack += llList2List(tree, ptr, ptr + 3); } integer stackPop() { integer ptr = llList2Integer(stack, -4); // get the parent node of the topmost node stack = llDeleteSubList(stack, -4, -1); // remove the topmost node from the stack return ptr; } integer stackPeek() { integer idx = -2; integer ptr = llList2Integer(stack, idx); if (!ptr) // if no left child then get right child if any ptr = llList2Integer(stack, --idx); if (ptr) // signal that we have taken this path stack = llListReplaceList(stack, [0], idx, idx); return ptr; // when ptr == 0 then there is no child } default { state_entry() { string path; integer node = 0; // begin at root stackPush(node); while (llGetListLength(stack)) { path += (" > " + llList2String(tree, node + 3)); node = stackPeek(); if (node) // is a child node stackPush(node); else node = stackPop(); // node is now the parent node } llSay(0, path); } }
×
×
  • Create New...