Jump to content

  • Log In with Google      Sign In   
  • Create Account

Percentage of chance


Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
3 replies to this topic

#1 Meiji   Members   -  Reputation: 102

Like
0Likes
Like

Posted 09 May 2014 - 11:17 AM

Hello,

 

So I'm working on a game using HeroCloud, and I have a question. There's a character with, say, 5% chance to hit his target critically. How do I accomplish that he actually has 5% chance to do something? 



#2 fastcall22   Crossbones+   -  Reputation: 8834

Like
1Likes
Like

Posted 09 May 2014 - 11:31 AM

Not sure about HeroCloud, but generally you get a floating point number between 0 and 1, and test if it's equal to or lower than 0.05:
crit_chance = 0.05
if rand_float(0,1) < crit_chance
   damage *= 1.5
For a more "natural" random, you increase the 5% chance by some rate for every failure and reset it when it succeeds:
if rand_float(0,1) < (crit_chance + error)
   damage *= 1.5
   error = 0
else
   # Increase chance by 6.75%
   error += crit_chance * 0.0675
EDIT: Juliean is correct, I done goofed.

Edited by fastcall22, 09 May 2014 - 12:12 PM.

gzip: H4sIAAAAAAAEAG1QTUvEMBC991e8nvaiFfYoS7yo sLCo6MnjtJ1ugmkiyWRL/72z3T1YEQIJ8z4zA2Xp yPvt1qBpGrRFIJZkk9FyRyUzHCbKIHgn4hnZOrm1 TD0mG0HCCs+QGDGWziKXI6Wm2n++GYwUVH2mrGEE PnGCVQ8K8+JYfXA6URDEQfMZh5h6g5eoAlWJdeEI bbH2qYZf7XMUfw8f/Q0oMeZYNL9/WHF0uFEshvMr XYujd9SycFb+F18QcSOvlJauZ8ejqevdnV7/d550 e0t6prmunh73Bu+vz4c/XUeOQXfJgvKNkhf95U8/ Dtgmy5IBAAA=

#3 Meiji   Members   -  Reputation: 102

Like
0Likes
Like

Posted 09 May 2014 - 11:33 AM

Thanks. 



#4 Juliean   GDNet+   -  Reputation: 5444

Like
1Likes
Like

Posted 09 May 2014 - 11:55 AM

@fastcall22:

 

Does this code really do what you expect of it? You are adding crit-chance * 1.0675 to the error everytime, which will increase the chance of success rapidly (100% on the first failure, etc). Didn't you mean

   # Increase chance by 6.75%
   error += crit_chance * 0.0675f;

or something along those lines?






Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.




PARTNERS