赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 1647 |
最后登录 | 2017-8-10 |
在线时间 | 17 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 17 小时
- 注册时间
- 2017-1-18
- 帖子
- 50
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
我备注了当释放某射击技能时
<itemneed item_25 1>
<itemcost item_25 1>
却发现背包空着时角色也能开技能= =
#--------------------------------------------------------------------
# ● require Taroxd基础设置
# 制作消耗物品的技能
#--------------------------------------------------------------------
#
# 使用方法:
# 技能备注 <itemcost item_id number>
# item_id 为消耗的物品 id,number 为消耗的物品个数。
# number 可不填,默认为 1(即 <itemcost item_id>)。
# 技能备注 <itemneed item_id number>
# item_id 为需要的物品 id(不消耗),number 为消耗的物品个数。
# number 可不填,默认为 1
#
#--------------------------------------------------------------------
Taroxd::ItemCost = Struct.new(:item, :number, :cost) do
MP_ICON = 188
TP_ICON = 189
RE = /<item\s*(cost|need)\s+(\d+)(\s+\d+)?>/i
def self.parse_note(note)
note.scan(RE).map do |cost, item_id, number|
new($data_items[item_id.to_i],
(number ? number.to_i : 1),
cost == 'cost')
end
end
def meet?
$game_party.item_number(item) >= number
end
def pay
$game_party.lose_item(item, number) if cost
end
end
class RPG::Skill < RPG::UsableItem
def item_costs
@item_costs ||= Taroxd::ItemCost.parse_note(@note)
end
end
class Game_BattlerBase
def_and :skill_cost_payable? do |skill|
skill.item_costs.all?(&:meet?)
end
def_after :pay_skill_cost do |skill|
skill.item_costs.each(&:pay)
end
end
class Window_SkillList < Window_Selectable
def draw_skill_cost(rect, skill)
contents.font.size -= 6
change_color(tp_cost_color, enable?(skill))
draw_skill_cost_icon(rect, skill,
@actor.skill_tp_cost(skill), Taroxd::ItemCost::TP_ICON)
change_color(mp_cost_color, enable?(skill))
draw_skill_cost_icon(rect, skill,
@actor.skill_mp_cost(skill), Taroxd::ItemCost::MP_ICON)
skill.item_costs.each do |item_cost|
draw_skill_cost_icon(rect, skill,
item_cost.number, item_cost.item.icon_index)
end
contents.font.size += 6
end
def draw_skill_cost_icon(rect, skill, cost, icon_index)
return if cost == 0
x = rect.x + rect.width - 24
draw_icon(icon_index, x, rect.y, enable?(skill))
draw_text(x, rect.y + 8, 24, 16, cost, 2) unless cost == 1
rect.width -= 24
end
end |
|