Jump to content

ellestones

Resident
  • Posts

    716
  • Joined

  • Last visited

Everything posted by ellestones

  1. to maintain integrity my approach would be similar to Innula by only have one dice generator for the game. create a independent dice cup object (game controller) containing script which rolls the numbers and regulates the players' turn. the dice cup sends a message to each players HUD in their turn that its their roll. the player clicks the roll button on their HUD. A message is sent to the dice cup which does the roll. The dice cup says in public what they rolled. some other advantages of game controller - multiple and out of turn clicks can be safely ignored by the game controller. - if the player doesn't roll in X time, their turn can be forfeit or dice auto-rolled depending on game rules. In either case the game can proceed and not be held up by slow play - the issue of ppl using fake HUDs has no effect on the integrity of the game. All gameplay is performed by the game controller. The HUD is only an interface to receive inputs (roll dice now) and display outputs (your score is) etc
  2. That's seriously cool Even more cool when/if there will be a interface to visual components where class object public properties can be set at design time by the object owner. I can see an explosion of user -created components taking Sansar by storm should this be the case
  3. Patch First Elle Fourteenth q: (:
  4. i never survived the last forum so I will try again (:
  5. is there any way to preview a post before submitting it yet ? or is that coming ?
  6. across the street I came across a discussion about skew, normal and uniform distributions for use in LSL game code as this is a new forum interface and as I have started over again recently then for my first post under my new tag I will repost on here what I posted over there + a 2-die multi-face method that skews from a normal distribution at one end to a uniform distribution at the other end integer twoDx(integer a, integer b, integer m) { integer n = ((integer)llFrand(a) + (integer)llFrand(b)) % m; if (a > b) // skew low return m - 1 - n; return n; } default { state_entry() { list counts; integer i; integer rounds = 500; integer die1 = 5; integer die2 = 6; integer magnitude = 10; for (i = 0; i < magnitude; i++) counts += [0]; for (i = 0; i < rounds; i++) { integer value = twoDx(die1, die2, magnitude); counts = llListReplaceList(counts,[llList2Integer(counts, value) + 1], value, value); } for (i = 0; i < magnitude; i++) llSay(0, (string)i + ": " + llList2String(counts, i)); } } distributions for magnitude = 10 and one die having 5 faces twoDx(5,6,10) :: normal values: 0 1 2 3 4 5 6 7 8 9 counts: 1 2 3 4 5 5 4 3 2 1 twoDx(5,7,10) :: skew hi values: 0 1 2 3 4 5 6 7 8 9 counts: 2 2 3 4 5 5 5 4 3 2 twoDx(8,5,10) :: skew lo values: 0 1 2 3 4 5 6 7 8 9 counts: 3 4 5 5 5 5 4 3 3 3 twoDx(5,9,10) :: skew hi values: 0 1 2 3 4 5 6 7 8 9 counts: 4 4 4 4 5 5 5 5 5 4 twoDx(5,10,10) :: uniform values: 0 1 2 3 4 5 6 7 8 9 counts: 5 5 5 5 5 5 5 5 5 5
×
×
  • Create New...