Project1

标题: 需要能力值才能装备的武器和防具 [打印本页]

作者: 凌冰    时间: 2008-2-13 08:46
标题: 需要能力值才能装备的武器和防具
这是根据 六脉神剑,66饭,orochi2k,柳柳 等一伙人的“到达一定等级才能装备的武器和防具”脚本改编的

  1. #---------------------------------------------------------------------------------
  2. #需要能力值才能装备 改编自到达一定等级才能装备的武器和防具 By凌冰
  3. #用法:在武器、防具的说明里添加LV等级(后面的等级写个数字)STR力量(后面的力量写个数字)
  4. #DEX灵巧(后面的灵巧写个数字)AGI速度(后面的速度写个数字)INT魔力(后面的魔力写个数字)
  5. #可以空缺,空缺项默认为1
  6. #建议和升级加点脚本配合使用
  7. #---------------------------------------------------------------------------------
  8. module RPG
  9.   class Weapon
  10.     def level
  11.      return 1 if @description.split(/LV/)[1] == nil
  12.      return @description.split(/LV/)[1]
  13.    end
  14.    def str
  15.      return 1 if @description.split(/STR/)[1] == nil
  16.      return @description.split(/STR/)[1]
  17.    end
  18.    def dex
  19.      return 1 if @description.split(/DEX/)[1] == nil
  20.      return @description.split(/DEX/)[1]
  21.    end
  22.    def agi
  23.      return 1 if @description.split(/AGI/)[1] == nil
  24.      return @description.split(/AGI/)[1]
  25.    end
  26.    def int
  27.      return 1 if @description.split(/INT/)[1] == nil
  28.      return @description.split(/INT/)[1]
  29.    end
  30. #    def description      
  31. #      return @description.split(/LV/)[0] + "{装备等级" + level + "}"
  32. #    end
  33. end
  34. class Armor
  35.     def level
  36.      return 1 if @description.split(/LV/)[1] == nil
  37.      return @description.split(/LV/)[1]
  38.    end
  39.    def str
  40.      return 1 if @description.split(/STR/)[1] == nil
  41.      return @description.split(/STR/)[1]
  42.    end
  43.    def dex
  44.      return 1 if @description.split(/DEX/)[1] == nil
  45.      return @description.split(/DEX/)[1]
  46.    end
  47.    def agi
  48.      return 1 if @description.split(/AGI/)[1] == nil
  49.      return @description.split(/AGI/)[1]
  50.    end
  51.    def int
  52.      return 1 if @description.split(/INT/)[1] == nil
  53.      return @description.split(/INT/)[1]
  54.    end
  55. #    def description      
  56. #      return @description.split(/LV/)[0] + "{装备等级" + level + "}"
  57. #    end
  58.   end
  59. end

  60. class Game_Actor < Game_Battler
  61. #--------------------------------------------------------------------------
  62. # ● 可以装备判定
  63. #     item : 物品
  64. #--------------------------------------------------------------------------
  65. def equipable?(item)
  66.    # 武器的情况
  67.    if item.is_a?(RPG::Weapon)
  68.      # 包含当前的职业可以装备武器的场合
  69.      if $data_classes[@class_id].weapon_set.include?(item.id) and item.level.to_i<=@level
  70.        if item.str.to_i<= str and item.dex.to_i<= dex and item.agi.to_i<= agi and item.int.to_i<= int
  71.        return true
  72.        end
  73.      end
  74.    end
  75.    # 防具的情况
  76.    if item.is_a?(RPG::Armor)
  77.      # 不包含当前的职业可以装备武器的场合
  78.      if $data_classes[@class_id].armor_set.include?(item.id) and item.level.to_i<=@level
  79.        if item.str.to_i<= str and item.dex.to_i<= dex and item.agi.to_i<= agi and item.int.to_i<= int
  80.        return true
  81.        end
  82.      end
  83.    end
  84.    return false
  85. end
  86. end
  87. #==============================================================================
  88. # ■ Window_EquipItem
  89. #------------------------------------------------------------------------------
  90. #  装备画面、显示浏览变更装备的候补物品的窗口。
  91. #==============================================================================

  92. class Window_EquipItem < Window_Selectable
  93.   #--------------------------------------------------------------------------
  94.   # ● 刷新
  95.   #--------------------------------------------------------------------------
  96.   def refresh
  97.     if self.contents != nil
  98.       self.contents.dispose
  99.       self.contents = nil
  100.     end
  101.     @data = []
  102.     # 添加可以装备的武器
  103.     if @equip_type == 0
  104.       weapon_set = $data_classes[@actor.class_id].weapon_set
  105.       for i in 1...$data_weapons.size
  106.         if $game_party.weapon_number(i) > 0 and weapon_set.include?(i) and @actor.equipable?($data_weapons[i])
  107.           @data.push($data_weapons[i])
  108.         end
  109.       end
  110.     end
  111.     # 添加可以装备的防具
  112.     if @equip_type != 0
  113.       armor_set = $data_classes[@actor.class_id].armor_set
  114.       for i in 1...$data_armors.size
  115.         if $game_party.armor_number(i) > 0 and armor_set.include?(i) and @actor.equipable?($data_armors[i])
  116.           if $data_armors[i].kind == @equip_type-1
  117.             @data.push($data_armors[i])
  118.           end
  119.         end
  120.       end
  121.     end
  122.     # 添加空白
  123.     @data.push(nil)
  124.     # 生成位图、描绘全部项目
  125.     @item_max = @data.size
  126.     self.contents = Bitmap.new(width - 32, row_max * 32)
  127.     for i in 0...@item_max-1
  128.       draw_item(i)
  129.     end
  130.   end
  131. end
复制代码

范例工程
http://rpg.blue/upload_program/f ... 防具_83292491.rar
设置方法:如图需要等级为5力量为10才能装备


范例工程里的升级提示和得失物品提示脚本,是为了更直观的体现这个脚本,用不着就54吧

              [本贴由 风雪优游 于 2008-4-2 22:41:43 进行了编辑]
作者: q2571875    时间: 2008-2-13 16:25
吓我一跳的说{/gg}
作者: 凌冰    时间: 2008-2-13 16:44
以下引用q2571875于2008-2-13 8:25:58的发言:

吓我一跳的说

什么意思
作者: 凌冰    时间: 2008-2-14 03:26
真失望,没人顶
作者: 凌冰    时间: 2008-2-14 12:21
怎么还米人顶
作者: 飞虫    时间: 2008-2-14 17:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 死圣    时间: 2008-2-14 18:10
感觉,应该不常用
毕竟很少有人会想到这里吧
作者: 飞虫    时间: 2008-2-14 18:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-14 20:59
以下引用死圣于2008-2-14 10:10:20的发言:

感觉,应该不常用
毕竟很少有人会想到这里吧
以下引用飞虫于2008-2-14 10:19:24的发言:

一般来说 技能学习是需要等级的 毕竟能够增加一定的游戏性

见仁见智吧

作者: 凌冰    时间: 2008-2-15 01:56
以下引用死圣于2008-2-14 10:10:20的发言:

感觉,应该不常用
毕竟很少有人会想到这里吧
以下引用飞虫于2008-2-14 10:19:24的发言:

一般来说 技能学习是需要等级的 毕竟能够增加一定的游戏性

正如我在脚本里写到的,建议和升级加点脚本配合使用
很多游戏里也有这种限定,说不定有人要复刻,那本脚本多少会起些参考作用
作者: 越前リョーマ    时间: 2008-2-15 01:57
LZ最近都在发脚本啊。
作者: 凌冰    时间: 2008-2-15 02:09
以下引用越前リョーマ于2008-2-14 17:57:53的发言:

LZ最近都在发脚本啊。

只是研究RM这么久,积蓄了一些能量,释放一下
作者: Eclair    时间: 2008-2-15 21:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 沉影不器    时间: 2008-2-16 20:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-17 00:43
补充脚本(直接贴到原脚本后面)

  1. module RPG
  2.   class Weapon
  3.     def description
  4.       a = @description
  5.       a = a.split(/LV/)[0]  if a.split(/LV/)[1] != nil
  6.       a = a.split(/STR/)[0] if a.split(/STR/)[1] != nil
  7.       a = a.split(/DEX/)[0] if a.split(/DEX/)[1] != nil
  8.       a = a.split(/AGI/)[0] if a.split(/AGI/)[1] != nil
  9.       a = a.split(/INT/)[0] if a.split(/INT/)[1] != nil
  10.       return  a
  11.     end
  12.   end
  13.   class Armor
  14.     def description
  15.       a = @description
  16.       a = a.split(/LV/)[0]  if a.split(/LV/)[1] != nil
  17.       a = a.split(/STR/)[0] if a.split(/STR/)[1] != nil
  18.       a = a.split(/DEX/)[0] if a.split(/DEX/)[1] != nil
  19.       a = a.split(/AGI/)[0] if a.split(/AGI/)[1] != nil
  20.       a = a.split(/INT/)[0] if a.split(/INT/)[1] != nil
  21.       return  a
  22.     end
  23.   end

复制代码

作者: 啸心    时间: 2008-2-17 03:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 渎唻娴暀    时间: 2008-2-17 06:32
piar顶呀呀............
作者: dyboy007    时间: 2008-2-17 06:34
http://www.z-love.cn/FyLinkin.asp?TypeB=1&ChannelID=1&UrlID=5930&ID=81548
作者: 风雪优游    时间: 2008-4-3 06:43
发布完毕,VIP+2
作者: 卓越大白痴    时间: 2008-4-4 04:27
我正需要 哈哈找到拉 谢谢 楼主强烈 支持
作者: 凌冰    时间: 2008-4-6 23:56
话说我认为,RMXP设置攻击力、物理防御、魔法防御、回避率,还要设置力量、敏捷、速度、魔力,实在太多了,稍微改一下脚本,就感觉力量和敏捷有些多余。。。这个脚本就是把这个鸡肋转化成比较有意义的东西吧!虽然有些人认为更鸡肋了
作者: z928374655    时间: 2008-4-11 00:16
我顶,好东西




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