Advertisement
basbas1234

Cash Suffixes

Apr 14th, 2020
686
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.88 KB | None | 0 0
  1. -- Thanks to miner haven for cash suffix
  2. -- Algorithm by basbas1234
  3.  
  4. function Suffix(Number, Minial)
  5.     local Steps = {
  6.         {1,""},
  7.         {1e3,"k"},
  8.         {1e6,"M"},
  9.         {1e9,"B"},
  10.         {1e12,"T"},
  11.         {1e15,"qd"},
  12.         {1e18,"Qn"},
  13.         {1e21,"sx"},
  14.         {1e24,"Sp"},
  15.         {1e27,"O"},
  16.         {1e30,"N"},
  17.         {1e33,"de"},
  18.         {1e36,"Ud"},
  19.         {1e39,"DD"},
  20.         {1e42,"tdD"},
  21.         {1e45,"qdD"},
  22.         {1e48,"QnD"},
  23.         {1e51,"sxD"},
  24.         {1e54,"SpD"},
  25.         {1e57,"OcD"},
  26.         {1e60,"NvD"},
  27.         {1e63,"Vgn"},
  28.         {1e66,"UVg"},
  29.         {1e69,"DVg"},
  30.         {1e72,"TVg"},
  31.         {1e75,"qtV"},
  32.         {1e78,"QnV"},
  33.         {1e81,"SeV"},
  34.         {1e84,"SPG"},
  35.         {1e87,"OVG"},
  36.         {1e90,"NVG"},
  37.         {1e93,"TGN"},
  38.         {1e96,"UTG"},
  39.         {1e99,"DTG"},
  40.         {1e102,"tsTG"},
  41.         {1e105,"qtTG"},
  42.         {1e108,"QnTG"},
  43.         {1e111,"ssTG"},
  44.         {1e114,"SpTG"},
  45.         {1e117,"OcTG"},
  46.         {1e120,"NoTG"},
  47.         {1e123,"QdDR"},
  48.         {1e126,"uQDR"},
  49.         {1e129,"dQDR"},
  50.         {1e132,"tQDR"},
  51.         {1e135,"qdQDR"},
  52.         {1e138,"QnQDR"},
  53.         {1e141,"sxQDR"},
  54.         {1e144,"SpQDR"},
  55.         {1e147,"OQDDr"},
  56.         {1e150,"NQDDr"},
  57.         {1e153,"qQGNT"},
  58.         {1e156,"uQGNT"},
  59.         {1e159,"dQGNT"},
  60.         {1e162,"tQGNT"},
  61.         {1e165,"qdQGNT"},
  62.         {1e168,"QnQGNT"},
  63.         {1e171,"sxQGNT"},
  64.         {1e174,"SpQGNT"},
  65.         {1e177,"OQQGNT"},
  66.         {1e180,"NQQGNT"},
  67.         {1e183,"SXGNTL"},
  68.         {1e186,"USXGNTL"},
  69.         {1e189,"DSXGNTL"},
  70.         {1e192,"TSXGNTL"},
  71.         {1e195,"QTSXGNTL"},
  72.         {1e198,"QNSXGNTL"},
  73.         {1e201,"SXSXGNTL"},
  74.         {1e204,"SPSXGNTL"},
  75.         {1e207,"OSXGNTL"},
  76.         {1e210,"NVSXGNTL"},
  77.         {1e213,"SPTGNTL"},
  78.         {1e216,"USPTGNTL"},
  79.         {1e219,"DSPTGNTL"},
  80.         {1e222,"TSPTGNTL"},
  81.         {1e225,"QTSPTGNTL"},
  82.         {1e228,"QNSPTGNTL"},
  83.         {1e231,"SXSPTGNTL"},
  84.         {1e234,"SPSPTGNTL"},
  85.         {1e237,"OSPTGNTL"},
  86.         {1e240,"NVSPTGNTL"},
  87.         {1e243,"OTGNTL"},
  88.         {1e246,"UOTGNTL"},
  89.         {1e249,"DOTGNTL"},
  90.         {1e252,"TOTGNTL"},
  91.         {1e255,"QTOTGNTL"},
  92.         {1e258,"QNOTGNTL"},
  93.         {1e261,"SXOTGNTL"},
  94.         {1e264,"SPOTGNTL"},
  95.         {1e267,"OTOTGNTL"},
  96.         {1e270,"NVOTGNTL"},
  97.         {1e273,"NONGNTL"},
  98.         {1e276,"UNONGNTL"},
  99.         {1e279,"DNONGNTL"},
  100.         {1e282,"TNONGNTL"},
  101.         {1e285,"QTNONGNTL"},
  102.         {1e288,"QNNONGNTL"},
  103.         {1e291,"SXNONGNTL"},
  104.         {1e294,"SPNONGNTL"},
  105.         {1e297,"OTNONGNTL"},
  106.         {1e300,"NONONGNTL"},
  107.         {1e303,"CENT"},
  108.         {1e306,"BAS"}, -- cash tier for owner :>
  109.     }
  110.     if (Number == math.huge) then
  111.         return "Infinity"
  112.     elseif (Number == 0) then
  113.         return "Free"
  114.     end
  115.     for Index, Metatable in ipairs(Steps) do
  116.         if Metatable[1] <= Number + 1 then
  117.             Steps.Use = Index
  118.         end
  119.     end
  120.     local Result = string.format(('%.'.. tostring(Minial) .. 'f'), Number / Steps[Steps.Use][1])
  121.     if tonumber(Result) >= 1e3 and Steps.Use < #Steps then
  122.         Steps.Use = Steps.Use + 1
  123.         Result = string.format(('%.'.. tostring(Minial) ..'f'), tonumber(Result) / 1e3)
  124.     end
  125.     if (Minial == 1) then
  126.         Result = string.sub(Result, 0, string.sub(Result, -1) == '0' and -3 or -1) -- Remove .0 (just if it is zero!)
  127.     end
  128.     return Result .. Steps[Steps.Use][2]
  129. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement