Southperry.net
Probabilities for chaos scrolls - Printable Version

+- Southperry.net (https://www.southperry.net)
+-- Forum: Maplestory (https://www.southperry.net/forumdisplay.php?fid=15)
+--- Forum: Maplestory Discussion (https://www.southperry.net/forumdisplay.php?fid=31)
+--- Thread: Probabilities for chaos scrolls (/showthread.php?tid=13394)



Probabilities for chaos scrolls - Noah - 2009-07-11

With the agent scrolls and agent equipments now out, it's easier to find the probabilities for chaos scrolls. The chance to obtain +5 or -3 on a stat might be revealed if we collect up enough data. And I want to do so Smile

I think we can safely assume that the stat-changes does not depend on eachother. That is, the probability for gaining +5 on one stat does not decrease nor increase if we already have gained a +5 on another stat. (Unless someone can find/prove that this is not the case.)

So! If anyone can post all stat-changes, or as many as you actually remember/have pictures of, I'd be really happy. A stat change is anything which happens to a stat after a chaos scroll or a scroll which works like a chaos scroll (e.g. liar tree sap, sap of maple leaves, agent scrolls) has worked on an item. Thus, an agent overall will have a lot of status changes, and in the end we should be able to accumulate enough data to find the probability of chaos scrolls.

Anyway, all stat changes, please include them here if you bother to. This will greatly speed up finding the probability for chaos scrolls. Keep in mind that the agent overall may get random stats, and that mp and hp increases and decreases with a 10-multiplier. (10, 20, 30, 40, 50) Also, if you e.g. have 3 watk, and end up with no watk later on, you can't say with certainty that you've lost 3, 4 or 5 watk. State that if this happens please.

Thank you!

 Spoiler

Edit: I'm sadly unable to post my information as of right now. I'll post it on late Monday, when I have this available.

Noah

(Uh, I have a theory: There's a 50/50 chance in order to gain a positive/negative stat-boost. 0 is both not positive nor negative. The stat-boost is maybe a bell-curve.)


Probabilities for chaos scrolls - Stereo - 2009-07-11

Scrolls I've used:
hat:
-1
-1
+2
+2
+3

+3
+3
+0
+0
+2

+0
+1
+3
+2
+2

+1
-4 (to 0)
-5
+0
-2
This one really pissed me off... i had a decent hat (3/4/8/7/60) and it went to 4/0/3/7/40.

glove:
-3 (to no stats)
-3 (to no stats)

+1
+0

-2
-1

-3 (to no stats)
+2



Probabilities for chaos scrolls - Morgana - 2009-07-12

Overall
0
+1
+3
-1
+30 HP (so +3)
-1
-1
-1

6 more slots, I plan on scrolling it all the way. =) Nothing went to 0 yet. Sorry that I don't have SSes of the first two scrollings. =/


Probabilities for chaos scrolls - Kalovale - 2009-07-13

Most recent earrings: 2/2 ~> 0/5 ~> 0/7 ~> 0/3 ~> 0/2.

I'll be looking for screeenshots to remember my early earrings.


Probabilities for chaos scrolls - Cyanne - 2009-07-13

I just chaosed my earring and it did nothing (2 dex, 2 luk, 3 slots).


Probabilities for chaos scrolls - EmuAlert - 2009-07-13

Earring:
-2,-3,-4, or -5 (basically from +2 to 0)
-1
forgot quite how the rest of this worked with getting to 4 dex.

+2
+2
chickened out on scrolling it the rest of the way xP

+1
+1
then...
+0
+0

Overalls
all +2 stat (maybe better but I don't think so) to all 0 stat T_T

+5
+0
+1
+0
now my 8 str 10 dex overall Big Grin

+1
+1
+0
+0

Gloves
-3,-4, or -5 (yup, 3 attack to 0 attack)


Probabilities for chaos scrolls - Fiel - 2009-07-13

I ran a debugger on the server stuff. Here's what I found. It's not bulletproof (pretty easy to find weaknesses in this algorithm I've posted), so I'll need more time with the function. Think of the following as a very good idea for how it should work.

Code:
def CalcRandStat(VariationType, StatOnWeapon):
  if VariationType == 0: # Gach item
    PossibleIterations = (StatOnWeapon / 5) + 1
    if PossibleIterations > 7:
      PossibleIterations = 7
  if VariationType == 1: # Regular weapon
    PossibleIterations = (StatOnWeapon / 5) + 1
    if PossibleIterations > 5:
      PossibleIterations = 5
  randStat = 0
  for Iter in range(PossibleIterations):
    randStat += getVariation()
  StatOnWeapon += randStat
  return StatOnWeapon

def getVariation():
  myVar = CRand32.Random()
  #complete guesses on these probabilities. But this is how the function works
  if myVar < 0.30:
    return -1
  if myVar < 0.70:
    return 0
  else:
    return 1



Probabilities for chaos scrolls - Dusk - 2009-07-13

Wow fff trinomial distribution...

Earring:
+2
-2

+2

-5

0


Probabilities for chaos scrolls - Noah - 2009-07-13

Fiel Wrote:I ran a debugger on the server stuff. Here's what I found. It's not bulletproof (pretty easy to find weaknesses in this algorithm I've posted), so I'll need more time with the function. Think of the following as a very good idea for how it should work.

 Spoiler

Would that mean there's a chance of obtaining 7 attack on a 7 attack or more pink cape or similar, and not possible to gain more than one attack on a 1 attack pink cape? Stunned

Noah


Probabilities for chaos scrolls - Fiel - 2009-07-13

Rewrote it closer to the actual function

Code:
def randStat(VariationType, WeaponStat):
  baseChange = (WeaponStat / 10) + 1
  if VarationType == "Gachapon" and baseChange > 7:
    baseChange = 7
  if VariationType == "RegItem" and baseChange > 5:
    baseChange = 5
  if VariationType == "ChaosScroll":
    baseChange = 5
  rand = CRand32.Rand()
  wepStatDelta = 0
  for change in range(baseChange):
    wepStatDelta += rand & 1
    rand >>= 1
  rand = CRand32.Rand()
  if(rand > 0):
    return WeaponStat + wepStatDelta
  else:
    return WeaponStat - wepStatDelta

I'll post the translated ASM later.


Probabilities for chaos scrolls - Noah - 2009-07-13

Fiel Wrote:Rewrote it closer to the actual function

Code:
def randStat(VariationType, WeaponStat):
  baseChange = (WeaponStat / 10) + 1
  if VarationType == "Gachapon" and baseChange > 7:
    baseChange = 7
  if VariationType == "RegItem" and baseChange > 5:
    baseChange = 5
  if VariationType == "ChaosScroll":
    baseChange = 5
  rand = CRand32.Rand()
  wepStatDelta = 0
  for change in range(baseChange):
    wepStatDelta += rand & 1
    rand >>= 1
  rand = CRand32.Rand()
  if(rand > 0):
    return WeaponStat + wepStatDelta
  else:
    return WeaponStat - wepStatDelta

I'll post the translated ASM later.

Assuming CRand32.Rand() produces integers from -2^31 to 2^31 - 1, then there's a higher chance in losing stats than gaining stats, though it's an abnormally low difference. Would been better doing a
if (rand & 1) == 1
instead, as it would cost less workpower. :x

Oh well, assuming 50-50, the table turns out like this:

 Page-widthener

(But that's only, and only if you're certain on this.)

Noah


Probabilities for chaos scrolls - EmuAlert - 2009-07-16

I'm not sure if you need more info, but I'll give it to you anyhow.
 Suit 1, before and after
 Suit 2 (already scrolled to begin with), before and after

Oh, and I don't speak code, but chaos scrolls can definitely can raise stats by more than their base amounts. My 3 str suit jumped to 8 str, and one of those suits jumped from 11 HP to 41.

Also, is this the first time you've seen Gachapon-discriminating codes?


EDIT: I've scrolled some more stuff, but I don't know if this thread is dead enough that it'd be necro-posting to bump it.
 good, to great, to crappy in 2 scrolls!
[SPOILER=Agent earring going poopy fast Frown][Image: maple0026ymm.jpg]
[Image: maple0027.jpg]


Probabilities for chaos scrolls - Noah - 2009-07-17

EmuAlert Wrote:I'm not sure if you need more info, but I'll give it to you anyhow.
 Suit 1, before and after
 Suit 2 (already scrolled to begin with), before and after

Oh, and I don't speak code, but chaos scrolls can definitely can raise stats by more than their base amounts. My 3 str suit jumped to 8 str, and one of those suits jumped from 11 HP to 41.

Also, is this the first time you've seen Gachapon-discriminating codes?

Well, I've figured out how that code work now. It's not that hard, really:

randStat is a function called upon whenever a scroll is dropped, a gachapon item is given out, or a chaos scroll is being scrolled. Thus we'll only have to deal with the 5-stat-thingy.

I'm of course always happy if I get more to work with, and I have at the current moment started working on an advanced scroll calculator. I'm however unsure when I'll be done with it, as I'm currently working with other stuff as well. Should be finished in a week or less if I'm quick. Tongue1

Noah


Probabilities for chaos scrolls - Freenhult - 2009-07-26

So a friend and I ran the code after converting into Ruby. I was working on getting a random number generator in Fortran. Still am... Lulz. The reason why is because I was curious to know what the overall chance was to a near perfect degree. However, the percents in the table you listed are halved for some reason in some of the rows. Row one is fine, but 5 isn't.

In terms of making percent chances and all, we found, which your numbers reflect that your best odds when using a scroll are to either +/- 2 or 3. Then followed by +/- 1,4 and 0, and then 5's being the least common to happen.

After running 1 million tries of the chaos script, these are the actual percent values for the change in ONE stat.

Code:
1.5744, 7.8018, 15.629, 15.6518, 7.8188, 3.127, 7.806, 15.5978, 15.6173, 7.8024, 1.5737

So the chance of going -5 in one stat is 1.5744% in, the chance of the stat not changing is 3.127%, etc. -5 > 0 > 5 is the order of the table. Of course, these are Experimental Values. I wouldn't write these in stone.

Of course I could run a simulation on a full item and get the total chance results and see how it behaves. But that is kinda silly. If you got total changes in all things, most likely its going to be in the +2,3 - 2,3 range. Which makes sense.


Probabilities for chaos scrolls - chrisloup - 2009-07-27

erm, I'm sorry, are you all implying that scrolling success is client sided and not server sided?


Probabilities for chaos scrolls - Freenhult - 2009-07-27

chrisloup Wrote:erm, I'm sorry, are you all implying that scrolling success is client sided and not server sided?

I don't know anything about that. I'm merely stating a perceived chance of change per stat.