赞 | 0 |
VIP | 0 |
好人卡 | 4 |
积分 | 1 |
经验 | 14122 |
最后登录 | 2023-11-22 |
在线时间 | 290 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 80
- 在线时间
- 290 小时
- 注册时间
- 2012-6-8
- 帖子
- 109
|
来,让我来解决你的问题!
脚本在此
- #==============================================================================
- # ■ 装备等级、属性限制 作者:后知后觉 2012-7-25 Ver:1.2
- #--------------------------------------------------------------------------
- # 本脚本来自 www.66rpg.com 使用或转载请保留此信息。
- #--------------------------------------------------------------------------
- #~ 说明:
- #~ 限制的属性只会计算人物当前的基础属性.装备、状态增加的属性不会计算在内
- #~ 默认给武器、护甲增加一行说明.说明内容是需要的各种限制信息
- #~ 但默认帮助窗口一共只能显示2行内容.
- #~ 因此你在数据库设置武器、护甲说明的时候
- #~ 如果设置了2行内容.那么这新增加的第3行将无法显示出来.
- #~ 设置:
- #~ 在武器、护甲的备注里写入下面格式的内容表示要做要求.
- #~ <lv 数值> 等级限制
- #~ <mhp 数值> 最大HP限制
- #~ <mmp 数值> 最大MP限制
- #~ <atk 数值> 物理攻击限制
- #~ <pdf 数值> 物理防御限制
- #~ <mat 数值> 魔法攻击限制
- #~ <mdf 数值> 魔法防御限制
- #~ <agi 数值> 敏捷限制
- #~ <luk 数值> 幸运限制
- #==============================================================================
- #==============================================================================
- # ■ RPG::EquipItem
- #==============================================================================
- class RPG::EquipItem < RPG::BaseItem
- ParamName = ["mhp","mmp","atk","pdf","mat","mdf","agi","luk"]
- def description
- return @hzhj_desc if @hzhj_desc
- @hzhj_desc = @description.clone + "\n\\}"
- hzhj = " "
- if level_limit > 0
- hzhj = "装备要求 "
- @hzhj_desc += sprintf("%s%s:%d ", hzhj, Vocab.level, level_limit)
- end
- for i in 0..7
- if params_limit(i) > 0
- hzhj = "" if hzhj == "装备要求 "
- hzhj = "装备要求 " if hzhj == " "
- @hzhj_desc += sprintf("%s%s:%d ", hzhj, Vocab.param(i), params_limit(i))
- end
- end
- @hzhj_desc
- end
- def level_limit
- if /<lv (\d+?)>/i =~ @note
- return $1.to_i
- else
- return 0
- end
- end
- def params_limit(param_id)
- if /<#{ParamName[param_id]} (\d+?)>/i =~ @note
- return $1.to_i
- else
- return 0
- end
- end
- end
- #==============================================================================
- # ■ Game_BattlerBase
- #==============================================================================
- class Game_BattlerBase
- #--------------------------------------------------------------------------
- # ● 判定物品是否可以装备
- #--------------------------------------------------------------------------
- alias original_equippable? equippable?
- def equippable?(item)
- original_equippable?(item) && equip_params_ok?(item)
- end
- #--------------------------------------------------------------------------
- # ● 判定物品是否可以装备
- #--------------------------------------------------------------------------
- def equip_params_ok?(item)
- return true if enemy?
- return false if item.level_limit > level
- for param_id in 0..7
- value = param_base(param_id) + @param_plus[param_id]
- value = [[value, param_max(param_id)].min, param_min(param_id)].max.to_i
- return false if item.params_limit(param_id) > value
- end
- return true
- end
- end
- #==============================================================================
- # ■ Game_Actor
- #==============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● 强制更换装备
- #--------------------------------------------------------------------------
- def hzhj_force_change_equip(slot_id, item)
- @equips[slot_id].object = item if original_equippable?(item) || !item
- end
- end
- #==============================================================================
- # ■ Window_EquipItem
- #==============================================================================
- class Window_EquipItem < Window_ItemList
- #--------------------------------------------------------------------------
- # ● 查询使用列表中是否含有此物品
- #--------------------------------------------------------------------------
- def include?(item)
- return true if item == nil
- return false unless item.is_a?(RPG::EquipItem)
- return false if @slot_id < 0
- return false if item.etype_id != @actor.equip_slots[@slot_id]
- return @actor.original_equippable?(item)
- end
- #--------------------------------------------------------------------------
- # ● 查询此文件是否可以装备
- #--------------------------------------------------------------------------
- def enable?(item)
- return true unless item
- return @actor.equippable?(item)
- end
- #--------------------------------------------------------------------------
- # ● 更新帮助内容
- #--------------------------------------------------------------------------
- def update_help
- super
- if [url=home.php?mod=space&uid=95897]@actor[/url] && @status_window
- temp_actor = Marshal.load(Marshal.dump(@actor))
- temp_actor.hzhj_force_change_equip(@slot_id, item)
- @status_window.set_temp_actor(temp_actor)
- end
- end
- end
- #==============================================================================
- # ■ Window_ShopStatus
- #==============================================================================
- class Window_ShopStatus < Window_Base
- #--------------------------------------------------------------------------
- # ● 绘制角色的装备信息
- #--------------------------------------------------------------------------
- def draw_actor_equip_info(x, y, actor)
- enabled = actor.equippable?(@item)
- change_color(normal_color, enabled)
- draw_text(x, y, 112, line_height, actor.name)
- item1 = current_equipped_item(actor, @item.etype_id)
- draw_actor_param_change(x, y, actor, item1) if actor.original_equippable?(@item)
- draw_item_name(item1, x, y + line_height, enabled)
- end
- end
复制代码 |
评分
-
查看全部评分
|