设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 103|回复: 0
打印 上一主题 下一主题

[讨论] 仿roblox rng挂机抽卡游戏思路 [补档]

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14262
在线时间
2107 小时
注册时间
2016-9-20
帖子
852
跳转到指定楼层
1
发表于 5 天前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 ppspssss 于 2025-3-4 16:08 编辑

由于此贴为之前电脑有的草稿存档,被我找到出来,但注释的是没有存档,因而没注释 (原贴2024.9.24)
抽卡思想草稿.txt  (只是草稿不是脚本)
RUBY 代码复制
  1. 1 in 1 =  1/2 = 0.5
  2. 1 in 20 =  1/20 = 0.05
  3. 1 in 100 = 1/100 = 0.01
  4. 100
  5. 50
  6. 5
  7. 1
  8.  
  9. 100 + 50 + 1 = 151
  10. 抽到105,什么都抽不到?
  11.  
  12. 100 00
  13. 50 00
  14. 5 00
  15. 1 00
  16.  
  17. $卡池数组 = [ ["1in2"的卡,2],["1in20"的卡,20],["1in3"的卡,100] ]
  18.  
  19. "1in2"的卡范围 = 1/2 = 0.5
  20. "1in20"的卡范围 = 1/20 = 0.05
  21. "1in100"的卡范围 = 1/100 = 0.01
  22.  
  23. 100 00
  24. 50 00
  25. 5 00
  26. 1 00
  27.  
  28. rand = 10000 + 500 + 100 = 100600
  29. rand 1~5000 = 1, rand 5001~5500 = 2, rand 5501~5600 = 3
  30. $加起来的rand = 0
  31. for i in 0...$卡池数组.size
  32. $加起来的rand += ((1/$卡池数组[i][2] ) * 100)
  33.  
  34. end #for
  35.  
  36. "1in2"的卡 1~5000 , "1in20"的卡 5001~5500 , "1in100"的卡 5501~5600
  37.  
  38. for i in 0...$卡池数组.size
  39.  
  40. for i2 in 0...i
  41. 指定数值 += $卡池数组[i][2]
  42. end#for i2
  43.  
  44. $续渐增加的rand数组[i] = 指定数值
  45.  
  46.  
  47. end #for i
  48. ii = 0
  49. if 0+1 <= $续渐增加的rand数组[ii]
  50.  
  51. ii+=1
  52. elsif $续渐增加的rand数组[ii-1]+1 <= $续渐增加的rand数组[ii]
  53.  
  54. ii+=1
  55. elsif $续渐增加的rand数组[ii-1]+1 <= $续渐增加的rand数组[ii]
  56.  
  57. elsif
  58.  
  59.  
  60.  
  61.  
  62. self =           i = 0   需要i2 = 0
  63. i-1 + self       i = 1   需要i2 = 0 1
  64. i-1 + i-2 + self i = 2   需要i2 = 0 1 2

原来是模仿roblox动漫抽卡的模拟器,由于那游戏改版变化太多现在很多不一样了 , 所以没什么参考用途 , 也许现在可看看国外其他人写rng的脚本 (我觉得现在不怎么rng游戏流行了吧)
大慨就是挂机抽卡, 奖池越大抽的卡慨率不一样,标示并非实际慨率 ,数字越大代表抽中卡越难,奖池越大抽到想要指定卡也更难,
衍生改进 : 修改奖池卡包, 比如分开几个奖池,可以切换奖池1,奖池2, 指定一个抽而不是全部
加入幸运值:幸运值越大,抽到好卡慨率增大,抽到最差的卡慨率逐渐减少至抽不到为止, 然后到排倒数第2的卡减慨率,加的慨率平均分摊到难抽到的卡
慨率升级卡品质:如1/1000变成金卡,1/10000变成彩虹卡,属性也会相应增加, 如1in 1234的卡会变成 1in 1234000的金卡
脚本(可自行测试看print出来)

RUBY 代码复制
  1. #__END__
  2.  
  3.  
  4.  
  5. $卡池数组 = [ ["1in2的卡",2],["1in20的卡",20],["1in100的卡",100] ]
  6. $加起来的rand = 0
  7. $续渐增加的rand数组 =[]
  8. for i in 0...$卡池数组.size
  9. $加起来的rand += ((1.0/$卡池数组[i][1] ) * 10000).to_i
  10. #所有随机数加起来的值(非数组)
  11. #p $加起来的rand
  12. end #for
  13.  
  14. #p $加起来的rand #5600
  15. for i in 0...$卡池数组.size #数组型三个点
  16. 指定数值 = 0
  17.  
  18. for i2 in 0..i
  19. #0,1,1,2,2,2
  20. 指定数值 +=  ((1.0/$卡池数组[i2][1] ) * 10000).to_i
  21. # p i,i2,指定数值
  22. end#for i2
  23.  
  24. $续渐增加的rand数组[i] = 指定数值
  25. #压入增加的值
  26.  
  27. end #for i
  28. #p $续渐增加的rand数组 #[5000,5500,5600]
  29. rand_get = rand($加起来的rand)+1
  30. for i in 0...$续渐增加的rand数组.size
  31.  
  32.   if i ==0 #第一个数组情况下需要等于0,因为没有上一个数组
  33. if rand_get >= 1 and rand_get <= $续渐增加的rand数组[i]
  34.  
  35.   p "抽到#{$卡池数组[i][0]}"
  36.   #抽到该东西
  37. end#if rand_get
  38.  
  39.     elsif i >=1 #
  40. if rand_get >= ($续渐增加的rand数组[i-1])+1 and rand_get <= $续渐增加的rand数组[i]
  41.  
  42.    p "抽到#{$卡池数组[i][0]}"
  43.   #抽到该东西
  44. end#if rand_get
  45.   end #if i ==0
  46.  
  47. end#for
我发的贴子大多未经整理是草稿抱歉
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-3-6 21:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表