- 注册时间
- 2004-12-19
- 最后登录
- 2006-11-15
⑤进阶
- 积分
- 930
|

楼主 |
发表于 2006-11-23 19:06:47
|
显示全部楼层
判断武器种类,空手判断为10
判断武器是否为双手,武器种类为奇数的时候为双手武器
Game_Actor类添加:
#--------------------------------------------------------------------------
# ● 获取当前武器的种类
#--------------------------------------------------------------------------
def weapon_type
weapon = $data_weapons[@weapon_id]
return weapon == nil ? 10 : weapon.atk % 10
end
#--------------------------------------------------------------------------
# ● 是否为双手武器
#--------------------------------------------------------------------------
def two_handed?
return (weapon_type % 2) == 1
end
修改装备方法,双手武器不能和盾牌同时存在
#--------------------------------------------------------------------------
# ● 变更装备
# equip_type : 装备类型
# id : 武器 or 防具 ID (0 为解除装备)
#--------------------------------------------------------------------------
def equip(equip_type, id)
case equip_type
when 0 # 武器
if id == 0 or $game_party.weapon_number(id) > 0
$game_party.gain_weapon(@weapon_id, 1)
@weapon_id = id
$game_party.lose_weapon(id, 1)
#双手武器,卸下盾牌
if two_handed?
equip(1, 0)
end
end
when 1 # 盾
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor1_id], $data_armors[id])
$game_party.gain_armor(@armor1_id, 1)
@armor1_id = id
$game_party.lose_armor(id, 1)
#卸下双手武器
if two_handed? and @armor1_id != 0
equip(0, 0)
end
end
when 2 # 头
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor2_id], $data_armors[id])
$game_party.gain_armor(@armor2_id, 1)
@armor2_id = id
$game_party.lose_armor(id, 1)
end
when 3 # 身体
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor3_id], $data_armors[id])
$game_party.gain_armor(@armor3_id, 1)
@armor3_id = id
$game_party.lose_armor(id, 1)
end
when 4 # 装饰品
if id == 0 or $game_party.armor_number(id) > 0
update_auto_state($data_armors[@armor4_id], $data_armors[id])
$game_party.gain_armor(@armor4_id, 1)
@armor4_id = id
$game_party.lose_armor(id, 1)
end
end
end
修改Scene_Equip类的update_item方法,替换掉@item_window.refresh,让全部装备窗口刷新。
@item_window1.refresh
@item_window2.refresh
@item_window3.refresh
@item_window4.refresh
@item_window5.refresh |
|