[Script] [RPGXP] AIS: 2-Hand Weapons
[align=center][size=xx-large]2-Hand Weapons[/size]
Require: Actor's Inventory System
Author: Death
Version: 1.0 (14/6/2013)[/align]
Giới thiệu: Script giúp tạo vũ khí 2 tay.
-Khi trang bị vũ khí 2 tay thì khiên sẽ bị tháo ra và ngược lại.
Script:
-@finalholylight
Require: Actor's Inventory System
Author: Death
Version: 1.0 (14/6/2013)[/align]
Giới thiệu: Script giúp tạo vũ khí 2 tay.
-Khi trang bị vũ khí 2 tay thì khiên sẽ bị tháo ra và ngược lại.
Script:
#==============================================================================
# ** AIS: 2-Hand Weapons v1.0 (14/6/2013)
# * Require: Actor's Inventory System v1.7
#------------------------------------------------------------------------------
# * Author: Death
# * http://taotrochoi.com
#==============================================================================
module DEATH
TWOHAND = [2,3,4] #2-Hand Weapons ID
end
class Game_Actor < Game_Battler
def equip(equip_type, id, actor=$actor_inventory)
case equip_type
when 0 # Weapon
if id == 0 or $game_party.weapon_number(id) > 0
$game_party.gain_weapon(@weapon_id, 1, actor)
@weapon_id = id
$game_party.lose_weapon(id, 1, actor)
if DEATH::TWOHAND.include?(id) and @armor1_id > 0
$game_party.gain_armor(@armor1_id, 1, actor)
@armor1_id = 0
end
end
when 1 # Shield
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, actor)
@armor1_id = id
$game_party.lose_armor(id, 1, actor)
if DEATH::TWOHAND.include?(@weapon_id)
$game_party.gain_weapon(@weapon_id, 1, actor)
@weapon_id = 0
end
end
when 2 # Head
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, actor)
@armor2_id = id
$game_party.lose_armor(id, 1, actor)
end
when 3 # Body
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, actor)
@armor3_id = id
$game_party.lose_armor(id, 1, actor)
end
when 4 # Accessory
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, actor)
@armor4_id = id
$game_party.lose_armor(id, 1, actor)
end
end
end
end
class Scene_Equip
def update_item
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
refresh
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.equip_se)
item = @item_window.item
@actor.equip(@right_window.index, item == nil ? 0 : item.id, @actor.id)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
@right_window.refresh
@item_window.refresh
@item_window1.refresh
@item_window2.refresh
refresh
return
end
end
end
Credit:-@finalholylight
Comments
Mà có vẻ hữu ích đây :v
Wuaka rep 1 cái nhé :D
1/ Khi đang mang 1-hand weapon và shield, tháo weapon ra thì shield cũng tự động tháo ra luôn.
2/ Khi đang mang 1-hand weapon và shield, và lúc mang 2-hand weapon vào mà inventory chỉ dư 1 slot, thì mất luôn cái shield (do cái 2-hand weapon này có số lượng là 2 trong inventory, nên khi mang vào vẫn còn lại 1 cái chiếm slot, nên shield ko có chỗ, và mất tiu). Còn trong trường hợp cái 2-hand weapon này chỉ có 1 cái, thì lúc mang vào, vẫn thấy actor mặc 1-hand weapon, shield thì tự tháo ra, và cái 2-hand weapon thì biến mất tiu.
v1.0 mà lỗi thì sẽ có v2.0
căn bản là cái Scene_Equip hoạt đống bằng Input (bấm phím) nhiều quá nên nó đè lên nhau, mới thực hiện xong bước 1 nó đã vèo đến bước 3 rồi -.-
có gì để liên lạc ko :-/