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

Project1

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

[已经解决] 请问一下怎么设置装备的穿戴等级?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
95 小时
注册时间
2013-7-18
帖子
35
跳转到指定楼层
1
发表于 2013-7-21 23:00:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,知道的请回复下,谢谢!

Lv1.梦旅人

梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
帖子
2394
2
发表于 2013-7-22 14:26:03 | 只看该作者
LZ搜索一下会死啊,一下就找到了,使用方法:
在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
同理,定义装备能力值限制方法:
备注里写上[ATK n][DEF n][MAT n][MDF n][AGI n][LUK n]。
                攻击   防御   魔攻   魔防   敏捷   幸运
若某项限制不写则没有装备限制。
代码:

  1. #============================================================================
  2. # 定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
  3. # 同理,定义装备能力值限制方法:
  4. # 备注里写上[ATK n][DEF n][MAT n][MDF n][AGI n][LUK n]。
  5. #            攻击   防御   魔攻   魔防   敏捷   幸运
  6. # 若某项限制不写则没有装备限制。
  7. # 注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
  8. # 但是考虑事件对能力值的影响。
  9. #==============================================================================
  10. #==============================================================================
  11. # ■ RPG::BaseItem
  12. #==============================================================================
  13. class RPG::BaseItem
  14.   def param_limit(p_id)
  15.     return if p_id == 0 or p_id > 7
  16.     regexp_strings = ["", "LV", "ATK", "DEF", "MAT", "MDF", "AGI", "LUK"]
  17.     m = 0
  18.     regexp = /\[#{regexp_strings[p_id]} (\d+)\]/
  19.     self.note.split(/[\r\n]+/).each { |line|
  20.       m = $1.to_i if line =~ regexp
  21.     }
  22.     return m
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 判断是否有要求
  26.   #--------------------------------------------------------------------------
  27.   def has_requirement?
  28.     for i in 1..7
  29.       return true if param_limit(i) > 0
  30.     end
  31.     return false
  32.   end
  33. end
  34. class Game_Actor < Game_Battler
  35.   #--------------------------------------------------------------------------
  36.   # ● 判断是否可以装备
  37.   #     item : 物品
  38.   #--------------------------------------------------------------------------
  39.   alias original_equippable? equippable?
  40.   def equippable?(item)
  41.     return unless item
  42.     return true unless item.has_requirement?
  43.     return false if self.level < item.param_limit(1) #等级限制
  44.     for i in 2..7
  45.       return false if actor_param(i) < item.param_limit(i)
  46.     end
  47.     return original_equippable?(item)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 计算角色能力值
  51.   #--------------------------------------------------------------------------
  52.   def actor_param(param_id)
  53.     t_p = param_base(param_id) + param_base(param_id)
  54.     return [t_p, param_max(param_id)].min
  55.   end
  56. end

  57. #==============================================================================
  58. # ■ Window_Item
  59. #------------------------------------------------------------------------------
  60. #  物品画面、战斗画面、显示浏览物品的窗口。
  61. #==============================================================================

  62. class Window_ItemList < Window_Selectable
  63.   #--------------------------------------------------------------------------
  64.   # ● 更新帮助文本(自动显示使用物品的等级能力限制)
  65.   #--------------------------------------------------------------------------
  66.   def update_help
  67.     if item.nil?
  68.       @help_window.set_text("")
  69.       return
  70.     end
  71.     newdes = item.description
  72.     if item.has_requirement?
  73.       newdes += "  要求:" if(item.has_requirement?)
  74.       for i in 1..7
  75.         next if item.param_limit(i) == 0
  76.         limit_str = item.param_limit(i).to_s
  77.         newdes += i==1 ? Vocab.level_a : Vocab.param(i) + limit_str
  78.       end
  79.     end
  80.     @help_window.set_text(newdes)
  81.   end
  82. end
  83. class Window_EquipItem < Window_ItemList
  84.   alias original_include? include?
  85.   def include?(item)
  86.     o_equippable = original_include?(item)
  87.     if !o_equippable
  88.       return true if [email protected]?(item)
  89.     end
  90.     return o_equippable
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 判断是否有效化
  94.   #--------------------------------------------------------------------------
  95.   def enable?(item)
  96.     return true unless item
  97.     return @actor.equippable?(item)
  98.   end
  99. end
复制代码
来源:
http://rpg.blue/forum.php?mod=viewthread&tid=224028

评分

参与人数 1星屑 +100 收起 理由
Mic_洛洛 + 100 认可答案

查看全部评分


坑的进度如上                                                                                                        点击↑
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-11-18 04:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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