Project1

标题: 随机武器 [打印本页]

作者: 恐惧剑刃    时间: 2014-1-5 08:03
标题: 随机武器
本帖最后由 恐惧剑刃 于 2014-7-16 23:26 编辑

简单示例请自改
  1. # 随机武器
  2. # 好吧不是一次看到随机装备的问题了
  3. # 其实很简单
  4. # 原理
  5. # 由于RPG::Weapon中定义的属性均可写可读,因此可以如此
  6. weapon_hash = {}
  7. for i in 1..999
  8.   weapon_hash[i] = RPG::Weapon.new
  9.   weapon_hash[i].id = i
  10.   # ----------------------
  11.   # 名字随机的简单示例
  12.   random_name = ""
  13.   # 武器材质
  14.   str_1 = ["铜", "钢", "精铁", "石", "木"]
  15.   yy = str_1[rand(str_1.size)]
  16.   # 武器类型
  17.   str_2 = ["剑", "刀", "枪", "棍", "弓"]
  18.   mm = str_2[rand(str_2.size)]
  19.   random_name << yy << mm
  20.   # 根据材质生成说明
  21.   description = ""
  22.   description << yy << "锻造的" << mm << "。"
  23.   # 根据材质好坏判断价格
  24.   case yy
  25.   when "木"
  26.     price = (a=[*100..200])[rand(a.size)]
  27.   when "石"
  28.     price = (a=[*201..300])[rand(a.size)]
  29.   when "铜"
  30.     price = (a=[*401..500])[rand(a.size)]
  31.   when "精铁"
  32.     price = (a=[*501..600])[rand(a.size)]
  33.   when "钢"
  34.     price = (a=[*601..700])[rand(a.size)]
  35.   end
  36.   # 根据材质好坏判断atk
  37.   case yy
  38.   when "木"
  39.     atk = (a=[*50..100])[rand(a.size)]
  40.   when "石"
  41.     atk = (a=[*101..150])[rand(a.size)]
  42.   when "铜"
  43.     atk = (a=[*151..200])[rand(a.size)]
  44.   when "精铁"
  45.     atk = (a=[*251..300])[rand(a.size)]
  46.   when "钢"
  47.     atk = (a=[*301..400])[rand(a.size)]
  48.   end
  49.   # 示例 0 也可自行随机
  50.   # 物理防御
  51.   pdef = 0
  52.   # 魔法防御
  53.   mdef = 0
  54.   # 力量+
  55.   str_plus = 0
  56.   # 灵巧+
  57.   dex_plus = 0
  58.   # 速度+
  59.   agi_plus = 0
  60.   # 魔力+
  61.   int_plus = 0
  62.   # 附加的属性id的数组
  63.   element_set = []
  64.   # 附加的状态id的数组
  65.   plus_state_set = []
  66.   # 解除的状态id的数组
  67.   minus_state_set = []
  68.   # ----------------------
  69.   weapon_hash[i].name = random_name
  70.   # ----------------------
  71.   # 图标随机的简单示例
  72.   random_icon_name = ""
  73.   str = ["001-Action01.png", "002-Action02.png", "003-Attack01.png",
  74.   "004-Attack02.png", "005-Attack03.png"]
  75.   random_icon_name << str[rand(str.size)]
  76.   # ----------------------
  77.   weapon_hash[i].icon_name = random_icon_name
  78.   weapon_hash[i].icon_name = random_icon_name
  79.   weapon_hash[i].description = description
  80.   # --------------------------------------------
  81.   # 攻击方动画id 示例为 1-10 号动画为特定攻击动画
  82.   # 对象方动画id 示例为 11-20 号动画为特定攻击动画
  83.   # --------------------------------------------
  84.   weapon_hash[i].animation1_id = [*1..10][rand(10)]
  85.   weapon_hash[i].animation2_id = [*11..20][rand(10)]
  86.   weapon_hash[i].price = price
  87.   weapon_hash[i].atk = atk
  88.   weapon_hash[i].pdef = pdef
  89.   weapon_hash[i].mdef = mdef
  90.   weapon_hash[i].str_plus = str_plus
  91.   weapon_hash[i].dex_plus = dex_plus
  92.   weapon_hash[i].agi_plus = agi_plus
  93.   weapon_hash[i].int_plus = int_plus
  94.   weapon_hash[i].element_set = element_set
  95.   weapon_hash[i].plus_state_set = plus_state_set
  96.   weapon_hash[i].minus_state_set = minus_state_set
  97. end
  98. # 直接改Data
  99. file = File.open("Data/Weapons.rxdata", "wb")
  100. Marshal.dump(weapon_hash, file)
  101. file.close

  102. print "成功,请重新打开工程查看数据库中的随机效果吧"
  103. exit
复制代码

作者: chd114    时间: 2014-1-5 13:52
要关掉工程再运行这个脚本给数据库增加武器的意思吗?
作者: 2537200335    时间: 2014-4-30 21:55
再也不用担心武器没有名字啦······
作者: dai754814791    时间: 2014-7-16 20:47
貌似好东西啊啊




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1