onilink_

Untitled

Apr 23rd, 2019
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.46 KB | None | 0 0
  1. int generateRarityLevel(float factor)
  2. {
  3.     static const float values[] = {3000.f, 1000.f, 200.f, 100.f, 20.f, 5.f, 1.f};
  4.     float dice = 10000.f * rand() / static_cast<float>(RAND_MAX);
  5.     float t = 0.f;
  6.     for(int i=0; i<7; ++i)
  7.     {
  8.         float v = values[i] / powf(factor, 6 - i);
  9.         if(v < 1.f) {
  10.             v = 1.f;
  11.         }
  12.         t += 10000.f / v;
  13.         if(dice < t)
  14.         {
  15.             return 6 - i;
  16.         }
  17.     }
  18.     return 0;
  19. }
Advertisement
Add Comment
Please, Sign In to add comment