Jump to content

ellestones

Resident
  • Posts

    716
  • Joined

  • Last visited

Everything posted by ellestones

  1. the statement you made is something that is often misquoted Arthur Laffer: https://en.wikipedia.org/wiki/Arthur_Laffer
  2. we are getting into anticipating consumer behaviour based on a single input with this it is an important input yes, but there are other inputs as well another consumer behavourial input, among a whole bunch of others, is that when it comes to discretionary spend, people sometimes have a tendency to impulse buy more often when the amount available to them is larger at any given moment a person used to say a discretionary max. bank balance of $2000 at any given time who spends it down, often spends a $8000 balance down faster. Until or if ever they change this behaviour then it can lead them to spending more than previously on discretionary items a guess that the LL economists haven't considered all the inputs would I think be misguided
  3. integer allowall = (llGetParcelFlags(llGetPos()) & 0x1700 == 0x0); edit: i will add on here when a parcel owner has both Allow All and Allow Group ticked then I think that we should defer to the Group restriction
  4. allow all is the absence of access restrictions
  5. i agree that more mainland regions could be build themed. Not all of them but more than they are already
  6. on why it is random if it were not random then all the water and park parcels would have been snapped up years ago. All that would be left for people coming in today would be the interior parcels
  7. even a supply-side economist like Laffer would raise his eyebrows at this statement Laffer argues that increasing the tax rate when the current rate is below T* (Revenue Maximising Tax Rate) increases revenue. When the rate is above T* only then does it decrease revenue using Laffer as the measure, then the questions for LL were: Was the old rate of 0.99 above or below T* ? Was the previous tiers regime above or below T* ? from their actions we can surmise that LL calculated 0.99 was below T* and tiers were above T*
  8. do a web search on keywords: LSL HUG SCRIPT will return quite a few different sites where you can get one to start with
  9. a vampire that is not real is gonna bite an avatar that is not real, yet some people who are real think its annoying to be bitten at by a real person playing a not real vampire that would be right for some people yes for myself in SL I don't care. Any not real vampire disappears into my 99+ bin. I don't even care enough to click the Ignore button on the dialog box. I only have so many clicks in me and I have to save them for real stuff although if take the whole not real vampire biting at real people in the real world then it can go like this sometimes:
  10. i would like to come back to the 2 things I mentioned earlier, as a general discussion about algorithmic Big O time this one: integer newchan() { integer num = 0; while(num > -2000) { num = (integer)llFrand(-2147483648); } return num; } there is a catatonic state here. The 'while' loop will never exit should 'llFrand' always return a value in [-1999..-0] how likely is this? 2000/2147483648 * 2000/2147483648 * 2000/2147483648 * ... infinity pretty small but the possibility remains. This kinda function is of the class O(INF) time. I am guilty of writing this kinda code myself sometimes also to eliminate this possibility and also have the function execute in O(1) time ( O(1) time being optimal in this case) then example: integer newchan() { return (integer)llFrand(-2147481648) - 2000; } example of a more generalised O(1) function to fetch a random channel within a range integer rnd_range(integer start, integer end) { return (integer)llFrand(1 + end - start) + start; } channel = rnd_range(2000, 2147483647); // positive n channel = -rnd_range(2000, 2147483647); // negative n the other is this one for edge detection float y = start.y; float tempy = y; while(tempy > 0.0) { tempy -= 4; key id = llList2Key(llGetParcelDetails(<start.x,tempy,start.z>, [PARCEL_DETAILS_ID]),0); if(id == parcelid)y = tempy; } lower.y = y; this is a O(N) time algorithm. The optimal in this case is O(log N) time a O(log N) time algorithm stops when the target is found. Example: vector p = start; while ((p.y >= 0.0) && (parcelid == llList2Key(llGetParcelDetails(p, [PARCEL_DETAILS_ID]), 0))) { p.y -= 4.0; } lower.y = (float)((integer)(p.y + 4.0) / 4 * 4); // lower.y is in [0, 4, 8, 12, 16, ... etc] more info about O() time algorithms here: https://en.wikipedia.org/wiki/Big_O_notation
  11. if vampires where real then sure. But they aren't so the victim has to be at least willing
  12. when our home sim cannot be found then we get sent to a Linden Welcome Area
  13. went to type recode in goggle search. Typed decode instead. Ended up clicking: spent the rest of the day playing vids from about them days and a bit before and after. In no particular order, songs that meant something to me back then and still do really Paramore - Decode Linkin Park - Given Up Cranberries - Zombie Kings of Leon - Use Somebody Hoobastank - The Reason No Doubt - Don't Speak Avril Lavigne - Innocence Chevelle - Send The Pain Below Flyleaf - All Around Me Breaking Benjamin - Breath In This Moment - Beautiful Tragedy Three Days Grace - Never Too Late Evanescence - Bring Me To Life is all a bit emo but then "Waking up I see that everything is OK The first time in my life and now it's so great Slowing down I look around and I am so amazed I think about the little things that make life great" - Avril Lavigne and they do, all the little things
  14. calculating the offset. As a exercise we look at a full region. 256x256 meters. 256 / 28.28 = 9.05 9 * 28.28 = 254.52 we are short by 1.48 meters. so we need a 10x10 grid we divide 1.48 by 2 to get our start position 1.48 / 2 = 0.74; plotting this: 0.74, 29.02, 57.3, 85.58, 113.86, 142.14, 170.42, 198.7, 226.98, 255.26 check: 256 - 255.26 = 0.74 for other size planes the algorithm is the same. In the 128x64 case: 128 / 28.28 = 4.53 4 * 28.28 = 113.12 128 - 113.12 = 14.88 14.88 / 2 = 7.44 the other axis: 64 / 28.28 = and so on
  15. another way can be to shuffle list all; integer n = llGetInventoryNumber(INVENTORY_OBJECT); integer i; for (i = 0; i < n; i++) { all += [i]; } all = llListRandomize(all, 1); // get 'some' integer c = n / 2; // or some other c < n; list some = llDeleteSubList(all, c, n-1); // the remainder of 'all' - 'some' is list remainder = llDeleteSubList(all, 0, c-1);
  16. it still breaks my heart a little bit that in the beginning of SL the runtime build tools where never expansively and progressively added too. Nor were any resources applied to surfacing in the design-time build tools prim properties like particles, text, omega, , etc. All these years later we still have to set these kinda prim properties with a script in the LL viewer the other little heart breaker was that the avatar has always had cloth effects, and we never got any new tools to take this to the next level. Attachable tops and bottoms that could have been extruded, cut, deformed. Able to cut our hair differently, etc. All with the existing cloth effects i often wonder where we would be at now, if LL had seen all this as something worth doing for us in the early days i don't think they will ever come now. I still wish for them though
  17. i would go for A in the first instance i would only go for B or C if I wanted to have button effects. Like button down and button up for example
  18. ok i tend to get itchy fingers when I see this kinda problem. Write some code itchy. But I try to resist as best I can so lets state the problem. What is the optimal number of devices to place on a rectangular plane so that the plane is fully covered? we start with Pythagoras. A device has a radius of say 20 meters, diameter 40 meters. Pythagoras tells us that each device is 28.28 meters apart. sqrt(40 * 40 / 2) next we get the length and width of the plane. divide the length by 28.28 to get the number of rows; divide the width by 28.28 to get the number of columns; offset the position of the first row to be as equidistant from the edge as the last row offset the position of the first column to be as equidistant from the edge as the last column plot the drop positions. Something like: for (x = firstrow; x <= lastrow; x += 28.28) { for (y = firstcolumn; y <= lastcolumn; y += 28.28) { ... rez device at x y ... } } the other thing to consider is device overlap (circle vs square). In each device check that the origin of the chat is within the square. Something like: if ((origin.x >= (pos.x - 14.14)) && (origin.x <= (pos.x + 14.14)) && (origin.y >= (pos.y - 14.14)) && (origin.y <= pos.y + 14.14)) { ... then ok ... };
  19. the loops like 'while(tempx > 0.0)' don't break as an aside. To avoid the catatonic state in the newchan function then can consider: newchan = (integer)llFrand(-2147481648) - 2000;
  20. building on what has already been mentioned. if the contents of 'gateid' are dynamic then the Slppf parameters list could be build at the top of the function another thing that could be done is to link the prims named "designation" as a contiguous block
  21. i wish for more ways to torture prims. Able to champer edges and offset the hole be my first wishes
  22. for (i = 0; i < number_detected; i++) { ... } the script is attempting to chase multiple targets almost simultaneously. Try chasing only 1 target on each sensor scan
×
×
  • Create New...