Project1

标题: 装备武器改变行走图的判断能不能从ID改为道具名称? [打印本页]

作者: qq381055296    时间: 2014-1-5 05:25
标题: 装备武器改变行走图的判断能不能从ID改为道具名称?
打造系统一直是我心中的伤  这部分如果用事件来做 我估计数据库会爆掉的
一个武器50个属性 然后牵扯个别装备有几率出技能 个别装备有几率出套装

所以我研究了一下随机属性脚本  
比较简便冲突小的应该是前缀法  重新生成装备ID  

然后我现在用的武器判断行走图脚本是根据ID来的
if id == 0
          $body_type = 1
        elsif id > 0 and id < 11
          $body_type = 2
        elsif id == 13
          $body_type = 3
        elsif id == 12
          $body_type = 4
        elsif id == 11
          $body_type = 5
        elsif id == 15
就像这样  但是随机出来的武器会新生成ID  无法判断

从理论上来说 这2脚本基本无法共存了   我在想 能不能通过装备名称去判断  例如 装备名称为 “饮血剑”时候 显示外观1  这样随机出的装备ID是多少都无所谓了

额 不知道有没有可行性

求大触不吝赐教  没有随机武器的游戏太单调了
作者: 恐惧剑刃    时间: 2014-1-5 08:02
本帖最后由 恋′挂机 于 2014-1-5 08:10 编辑

不知道有没有理解错。。
武器决定行走图?
class RPG::Weapon
  attr_accessor :pic
end
然后根据下方的方法直接随机或者根据材质其他方面给“嵌入”一张图
再然后 武器.pic就能获取这张图的名
  1. # 随机武器 by 薄凉看客

  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
复制代码





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