如题,即时战斗系统xas的脚本插件,这是我第一次发布脚本,话会多些,我与xas也算挺有渊源的吧。
很早之前就一直想做一个ARPG,做之前也看了很多即时战斗的方法和脚本,但最终还是选择了XAS,入坑时就有很多和我一样同样在找xas的多技能脚本的人
我看这么久了依然没有看到有人发布xas的额外技能脚本,自己边学边写也写了挺久的,本来想整合一下再发出来,以前半生不熟还多bug,现在一看便重写了
一遍。
同时很感谢在这期间教我大佬,感谢你们!
用了这脚本可能快捷菜单就没用了
我想防御和冲刺可以放在一起做出一个专属技能的效果,并空出一个按钮,可用于存放三技能或二道具,我这里没有写,需要你自行去定义了。
以下是核心脚本:
RUBY 代码
- =begin
- #===============================================================================
- # ■ XAS 多技能脚本
- #本脚本将原快捷菜单中的快捷菜单按钮用于新增2技能
- #放置技能到 菜单》技能》选择技能
- #作者:唯莫 v:1.0.1;2020.1.31,02:48
- #===============================================================================
- =end
- module XAS_BUTTON
- #使2技能的按钮
- BSKILL_BUTTON = Input::L
- #是否启用3技能 :请自行定义
- CSKILL_ENABLE = true
- #使用3技能的按钮 :请自行定义
- CSKILL_BUTTON = Input::L
- #是否允许相同的技能
- ALLOW_SAME_SKILL = false
- end
- module XAS_TOOL_HUD
- #是否启用2技能槽HUD
- SECOND_SKILL_HUD = true
- #2技能HUD位置[x,y]
- SECOND_HUD_POSITION = [205,365]
- #是否启用3技能槽HUD
- THIRD_SKILL_HUD = true
- #3技能HUD位置[x,y]
- THIRD_HUD_POSITION = [237,365]
- end
- #===============================================================================
- # ■ XAS 部分
- #===============================================================================
- class Game_Actor < Game_Battler
- attr_accessor :skill_id
- attr_accessor :skill_id2
- attr_accessor :skill_id3
- alias dj_setup setup
- def setup(actor_id)
- @skill_id = 0
- @skill_id2 = 0
- @skill_id3 = 0
- dj_setup(actor_id)
- end
- end
- class Window_SkillList < Window_Selectable
- include XAS_BUTTON
- def can_equip_skill_action?
- returnfalseif$game_party.in_battle
- skill = @data[index]
- if skill != niland( skill.note =~ // or skill.note =~ //)
- if$djnxx==3
- @技能检测 = skill.id
- if can_skill_identical?
- msgbox("不能装备相同的技能")
- returntrue
- else
- @i = $game_party.battle_members[0].id
- @actor.skill_id3 = skill.id
- Sound.play_equip
- returntrue
- end
- end
- if$djnxx==2
- @技能检测 = skill.id
- if can_skill_identical?
- msgbox("不能装备相同的技能")
- returntrue
- else
- i = $game_party.battle_members[0].id
- @actor.skill_id2 = skill.id
- Sound.play_equip
- returntrue
- end
- end
- if$djnxx==1
- @技能检测 = skill.id
- if can_skill_identical?
- msgbox("不能装备相同的技能")
- returntrue
- else
- @actor.skill_id = skill.id
- Sound.play_equip
- returntrue
- end
- end
- returnfalse
- end
- end
- def can_skill_identical?
- returnfalseif ALLOW_SAME_SKILL
- if$djnxx==3
- returntrueif @技能检测 == @actor.skill_idor @技能检测 == @actor.skill_id2
- end
- if$djnxx==2
- returntrueif @技能检测 == @actor.skill_idor @技能检测 ==@actor.skill_id3
- end
- if$djnxx==1
- returntrueif @技能检测 ==@actor.skill_id2or @技能检测 ==@actor.skill_id3
- end
- end
- end
- class Window_much_skill < Window_Command
- include XAS_BUTTON
- def initialize
- super(150, 100)
- end
- def window_width
- return240
- end
- def window_height
- if CSKILL_ENABLE
- return100
- else
- return80
- end
- end
- def make_command_list
- add_command("放入一技能", :qwe, true)
- add_command("放入二技能", :qwer, true)
- add_command("放入三技能", :qwert, true)if CSKILL_ENABLE
- end
- end
- class Scene_Sqtory < Scene_MenuBase
- include XAS_BUTTON
- def start
- super
- @teleport_window = Window_much_skill.new
- @teleport_window.set_handler(:qwe, method(:scck))
- @teleport_window.set_handler(:qwer, method(:secondskill))
- @teleport_window.set_handler(:qwert, method(:thirdskill))if CSKILL_ENABLE
- @teleport_window.set_handler(:cancel, method(:return_scene))
- end
- def scck #第一技能
- $djnxx=1
- SceneManager.call(Scene_Skill)
- end
- def secondskill
- $djnxx=2
- SceneManager.call(Scene_Skill)
- end
- def thirdskill
- $djnxx=3
- SceneManager.call(Scene_Skill)
- end
- end
- class Scene_Menu < Scene_MenuBase
- def on_personal_ok
- case@command_window.current_symbol
- when:skill
- SceneManager.call(Scene_Sqtory)
- when:equip
- SceneManager.call(Scene_Equip)
- when:status
- SceneManager.call(Scene_Status)
- end
- end
- end
- class Game_Player < Game_Character
- alias new_update_action_command update_action_command
- def update_action_command
- new_update_action_command
- update_2skill_button
- end
- def update_2skill_button
- if Input.trigger?(BSKILL_BUTTON)
- type = 2
- returnunless can_use_skill_command?
- returnif execute_combo?(type)
- check_equipped_action(type)
- action_id = self.battler.skill_id2
- returnif action_id == 0
- returnif state_seal_command?(type)
- self.shoot(action_id)
- end
- if Input.trigger?(CSKILL_BUTTON)
- type = 2
- returnunless can_use_skill_command?
- returnif execute_combo?(type)
- check_equipped_action(type)
- action_id = self.battler.skill_id3
- returnif action_id == 0
- returnif state_seal_command?(type)
- self.shoot(action_id)
- end
- end
- end
复制代码
以下是HUD部分,这东西直接粘贴在原脚本HUD插件页上
,把原脚本给覆盖掉,试了好多方法,就是没法像上面那样定义
RUBY 代码
[code]#==============================================================================
# ■ +++ MOG - XAS TOOL HUD (v1.0) +++
#==============================================================================
# By Moghunter
#
http://www.atelier-rgss.com
#==============================================================================
# 以下是在XAS系统中使用的插件显示器脚本的设置。
#
#===============================================================================
module XAS_TOOL_HUD
#是否启用2技能槽HUD
SECOND_SKILL_HUD = true
#2技能HUD位置[x,y]
SECOND_HUD_POSITION = [205,365]
#是否启用3技能槽HUD
THIRD_SKILL_HUD = true
#3技能HUD位置[x,y]
THIRD_HUD_POSITION = [237,365]
#是否启用技能HUD
ENABLE_SKILL_HUD = true
#是否启用道具HUD.
ENABLE_ITEM_HUD = true
#是否启用武器HUD.
ENABLE_WEAPON_HUD = true
#是否启用防具HUD.
ENABLE_SHIELD_HUD = true
#是否启用金钱HUD.
ENABLE_GOLD_HUD = false
#道具的位置
ITEM_HUD = [427,365]
#技能的位置
SKILL_HUD = [218,365]
#武器的位置
WEAPON_HUD = [324,365]
#防具的位置
SHIELD_HUD = [352,365]
#金钱窗口的位置
GOLD_HUD = [430,395]
#金钱数字的位置
GOLD_NUMBER = [40,1]
#位置布局
LAYOUT = [50,0]
#道具图标
ICON = [55, 12]
#数字的位置.
NUMBER = [68, 35]
#数字间距.
NUMBER_SPACE = 0
end
#==============================================================================
# ■ Tool Hud
#==============================================================================
class Tool_Hud
include XAS_TOOL_HUD
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize
@actor = $game_party.members[0]
returnif@actor == nil
@icon_image = Cache.system("Iconset")
@number_image = Cache.system("XAS_Tool_Number")
@number_cw = @number_image.width / 10
@number_ch = @number_image.height / 3
@number_sc = @number_cw + NUMBER_SPACE
create_skill if ENABLE_SKILL_HUD
create_item if ENABLE_ITEM_HUD
create_weapon if ENABLE_WEAPON_HUD
create_shield if ENABLE_SHIELD_HUD
create_gold if ENABLE_GOLD_HUD
create_second_skill if SECOND_SKILL_HUD
create_third_skill if THIRD_SKILL_HUD
end
#--------------------------------------------------------------------------
# ● Refresh
#--------------------------------------------------------------------------
def refresh
dispose
initialize
end
#--------------------------------------------------------------------------
# ● Create Gold
#--------------------------------------------------------------------------
def create_gold
@gold = $game_party.gold
@gold_old = @gold
@gold_ref = @gold_old
@gold_refresh = false
# Layout -------------------------------------------------------------------
@gold_layout_sprite = Sprite.new
@gold_layout_sprite.bitmap = Cache.system("XAS_Tool_Gold")
@gold_layout_sprite.z = 151
@gold_layout_sprite.x = GOLD_HUD[0]
@gold_layout_sprite.y = GOLD_HUD[1]
# Gold ---------------------------------------------------------------------
@gold_number_sprite = Sprite.new
@gold_number_sprite.bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@gold_number_sprite.z = 152
@gold_number_sprite.x = GOLD_HUD[0] + GOLD_NUMBER[0]
@gold_number_sprite.y = GOLD_HUD[1] + GOLD_NUMBER[1]
gold_number_update
end
#--------------------------------------------------------------------------
# ● Create Shield
#--------------------------------------------------------------------------
def create_shield
#LAYOUT ------------------------------------------------------------
@shield_layout_sprite = Sprite.new
@shield_layout_sprite.bitmap = Cache.system("XAS_Tool_Shield")
@shield_layout_sprite.z = 150
@shield_layout_sprite.x = SHIELD_HUD[0] + LAYOUT[0]
@shield_layout_sprite.y = SHIELD_HUD[1] + LAYOUT[1]
@shield = @actor.equips[1]
@old_shield = @shield
if@shield != nil
icon_index = @shield.icon_index
else
icon_index = 0
end
@shield_icon_sprite = Sprite.new
@shield_icon_sprite.bitmap = Bitmap.new(24,24)
bitmap_shield_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@shield_icon_sprite.bitmap.blt(0, 0, @icon_image, bitmap_shield_rect)
@shield_icon_sprite.z = 151
@shield_icon_sprite.x = SHIELD_HUD[0] + ICON[0]
@shield_icon_sprite.y = SHIELD_HUD[1] + ICON[1]
#NUMBER ------------------------------------------------------------
@shield_number_sprite = Sprite.new
@shield_number_sprite.bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@shield_number_sprite.z = 152
refresh_shield_number
end
#--------------------------------------------------------------------------
# ● Refresh Shield Number
#--------------------------------------------------------------------------
def refresh_shield_number
@shield_number = 0
@s_item = 0
@shield_number_sprite.bitmap.clear
returnif@shield == nil
if@shield.note =~ //
action_id = $1.to_i
skill = $data_skills[action_id]
if skill != nil
if skill.note =~ //
item_id = $1.to_i
if item_id != nil
@s_item = $data_items[item_id]
@shield_number = $game_party.item_number(@s_item)
end
end
end
end
returnif@s_item == 0
cost_split = @shield_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, 0, @number_cw, @number_ch)
@shield_number_sprite.bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
xf = ((cost_split.size * @number_sc) / 2)
@shield_number_sprite.x = SHIELD_HUD[0] + NUMBER[0] - xf
@shield_number_sprite.y = SHIELD_HUD[1] + NUMBER[1]
end
#--------------------------------------------------------------------------
# ● Create Weapon
#--------------------------------------------------------------------------
def create_weapon
#LAYOUT ------------------------------------------------------------
@weapon_layout_sprite = Sprite.new
@weapon_layout_sprite.bitmap = Cache.system("XAS_Tool_Weapon")
@weapon_layout_sprite.z = 150
@weapon_layout_sprite.x = WEAPON_HUD[0] + LAYOUT[0]
@weapon_layout_sprite.y = WEAPON_HUD[1] + LAYOUT[1]
#ICON
@weapon = @actor.equips[0]
@old_weapon = @weapon
if@weapon != nil
icon_index = @weapon.icon_index
else
icon_index = 0
end
@weapon_icon_sprite = Sprite.new
@weapon_icon_sprite.bitmap = Bitmap.new(24,24)
bitmap_weapon_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@weapon_icon_sprite.bitmap.blt(0, 0, @icon_image, bitmap_weapon_rect)
@weapon_icon_sprite.z = 151
@weapon_icon_sprite.x = WEAPON_HUD[0] + ICON[0]
@weapon_icon_sprite.y = WEAPON_HUD[1] + ICON[1]
#NUMBER ------------------------------------------------------------
@weapon_number_sprite = Sprite.new
@weapon_number_sprite.bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@weapon_number_sprite.z = 152
refresh_weapon_number
end
#--------------------------------------------------------------------------
# ● Refresh Weapon Number
#--------------------------------------------------------------------------
def refresh_weapon_number
@weapon_number = 0
@w_item = 0
@weapon_number_sprite.bitmap.clear
returnif@weapon == nil
if@weapon.note =~ //
action_id = $1.to_i
skill = $data_skills[action_id]
if skill != nil
if skill.note =~ //
item_id = $1.to_i
if item_id != nil
@w_item = $data_items[item_id]
@weapon_number = $game_party.item_number(@w_item)
end
end
end
end
returnif@w_item == 0
cost_split = @weapon_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, 0, @number_cw, @number_ch)
@weapon_number_sprite.bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
xf = ((cost_split.size * @number_sc) / 2)
@weapon_number_sprite.x = WEAPON_HUD[0] + NUMBER[0] - xf
@weapon_number_sprite.y = WEAPON_HUD[1] + NUMBER[1]
end
#--------------------------------------------------------------------------
# ● Create Skill
#--------------------------------------------------------------------------
def create_skill
#LAYOUT ------------------------------------------------------------
@skill_layout_sprite = Sprite.new
@skill_layout_sprite.bitmap = Cache.system("XAS_Tool_Skill")
@skill_layout_sprite.z = 150
@skill_layout_sprite.x = SKILL_HUD[0] + LAYOUT[0]
@skill_layout_sprite.y = SKILL_HUD[1] + LAYOUT[1]
#ICON ------------------------------------------------------------
@old_skill = @actor.skill_id
@skill = $data_skills[@actor.skill_id]
if@skill != nil
icon_index = @skill.icon_index
@skill_mp_cost = @skill.mp_cost
else
icon_index = 0
@skill_mp_cost = 0
end
@skill_icon_sprite = Sprite.new
@skill_icon_sprite.bitmap = Bitmap.new(24,24)
bitmap_skill_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@skill_icon_sprite.bitmap.blt(0, 0, @icon_image, bitmap_skill_rect)
@skill_icon_sprite.z = 151
@skill_icon_sprite.x = SKILL_HUD[0] + ICON[0]
@skill_icon_sprite.y = SKILL_HUD[1] + ICON[1]
#NUMBER ------------------------------------------------------------
skill_number_bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@skill_number_sprite = Sprite.new
@skill_number_sprite.bitmap = skill_number_bitmap
cost_split = @skill_mp_cost.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, @number_ch, @number_cw, @number_ch)
skill_number_bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
@skill_number_sprite.z = 152
xf = ((cost_split.size * @number_sc) / 2)
@skill_number_sprite.x = SKILL_HUD[0] + NUMBER[0] - xf
@skill_number_sprite.y = SKILL_HUD[1] + NUMBER[1]
end
#--------------------------------------------------------------------------
# ● Create Item
#--------------------------------------------------------------------------
def create_item
#LAYOUT ------------------------------------------------------------
@item_layout_sprite = Sprite.new
@item_layout_sprite.bitmap = Cache.system("XAS_Tool_Item")
@item_layout_sprite.z = 150
@item_layout_sprite.x = ITEM_HUD[0] + LAYOUT[0]
@item_layout_sprite.y = ITEM_HUD[1] + LAYOUT[1]
#ICON ------------------------------------------------------------
@old_item = @actor.item_id
@item = $data_items[@actor.item_id]
if@item != nil
icon_index = @item.icon_index
@item_number = $game_party.item_number(@item)
else
icon_index = 0
@item_number = 0
end
@item_icon_sprite = Sprite.new
@item_icon_sprite.bitmap = Bitmap.new(24,24)
bitmap_item_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@item_icon_sprite.bitmap.blt(0, 0, @icon_image, bitmap_item_rect)
@item_icon_sprite.z = 160
@item_icon_sprite.x = ITEM_HUD[0] + ICON[0]
@item_icon_sprite.y = ITEM_HUD[1] + ICON[1]
#NUMBER ------------------------------------------------------------
item_number_bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@item_number_sprite = Sprite.new
@item_number_sprite.bitmap = item_number_bitmap
cost_split = @item_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, 0, @number_cw, @number_ch)
@item_number_sprite.bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
@item_number_sprite.z = 152
xf = ((cost_split.size * @number_sc) / 2)
@item_number_sprite.x = ITEM_HUD[0] + NUMBER[0] - xf
@item_number_sprite.y = ITEM_HUD[1] + NUMBER[1]
end
def create_second_skill
#创建技能槽-----------------------------------------------------------------
@second_skill = Sprite.new
@second_skill.bitmap = Cache.system("XAS_Tool_Skill")
@second_skill.x= SECOND_HUD_POSITION[0]
@second_skill.y= SECOND_HUD_POSITION[1]
#槽中图标-------------------------------------------------------------------
@old_second_skill = @actor.skill_id2
@bskill = $data_skills[@actor.skill_id2]
if@bskill != nil
icon_index = @bskill.icon_index
@second_skill_number = @bskill.mp_cost
else
icon_index = 0
@second_skill_number = 0
end
@second_skill_icon = Sprite.new
@second_skill_icon.bitmap = Bitmap.new(24,24)
bitmap_bskill_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@second_skill_icon.bitmap.blt(0, 0, @icon_image, bitmap_bskill_rect)
@second_skill_icon.x = SECOND_HUD_POSITION[0]+5
@second_skill_icon.y = SECOND_HUD_POSITION[1]+12
#槽下数字-------------------------------------------------------------------
skill_number_bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@second_skill_number_sprite = Sprite.new
@second_skill_number_sprite.bitmap = skill_number_bitmap
cost_split = @second_skill_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, @number_ch, @number_cw, @number_ch)
skill_number_bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
xf = ((cost_split.size * @number_sc) / 2)
@second_skill_number_sprite.x = SECOND_HUD_POSITION[0]+12
@second_skill_number_sprite.y = SECOND_HUD_POSITION[1]+35
end
def create_third_skill
#创建技能槽-----------------------------------------------------------------
@third_skill = Sprite.new
@third_skill.bitmap = Cache.system("XAS_Tool_Skill")
@third_skill.x= THIRD_HUD_POSITION[0]
@third_skill.y= THIRD_HUD_POSITION[1]
#槽中图标-------------------------------------------------------------------
@old_third_skill = @actor.skill_id3
@cskill = $data_skills[@actor.skill_id3]
if@cskill != nil
icon_index = @cskill.icon_index
@third_skill_number = @cskill.mp_cost
else
icon_index = 0
@third_skill_number = 0
end
@third_skill_icon = Sprite.new
@third_skill_icon.bitmap = Bitmap.new(24,24)
bitmap_bskill_rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
@third_skill_icon.bitmap.blt(0, 0, @icon_image, bitmap_bskill_rect)
@third_skill_icon.x = THIRD_HUD_POSITION[0]+5
@third_skill_icon.y = THIRD_HUD_POSITION[1]+12
#槽下数字-------------------------------------------------------------------
skill_number_bitmap = Bitmap.new(@number_image.width, @number_image.height / 3)
@third_skill_number_sprite = Sprite.new
@third_skill_number_sprite.bitmap = skill_number_bitmap
cost_split = @second_skill_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, @number_ch, @number_cw, @number_ch)
skill_number_bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
xf = ((cost_split.size * @number_sc) / 2)
@third_skill_number_sprite.x = THIRD_HUD_POSITION[0]+12
@third_skill_number_sprite.y = THIRD_HUD_POSITION[1]+35
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
returnif@actor == nil
dispose_skill if ENABLE_SKILL_HUD
dispose_item if ENABLE_ITEM_HUD
dispose_weapon if ENABLE_WEAPON_HUD
dispose_shield if ENABLE_SHIELD_HUD
dispose_gold if ENABLE_GOLD_HUD
@icon_image.dispose
@number_image.dispose
dispose_second_skill if SECOND_SKILL_HUD
dispose_third_skill if THIRD_SKILL_HUD
end
#--------------------------------------------------------------------------
# ● 处置二技能
#--------------------------------------------------------------------------
def dispose_second_skill
@second_skill.bitmap.dispose
@second_skill.dispose
@second_skill_icon.bitmap.dispose
@second_skill_icon.dispose
@second_skill_number_sprite.bitmap.dispose
@second_skill_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● 处置3技能
#--------------------------------------------------------------------------
def dispose_third_skill
@third_skill.bitmap.dispose
@third_skill.dispose
@third_skill_icon.bitmap.dispose
@third_skill_icon.dispose
@third_skill_number_sprite.bitmap.dispose
@third_skill_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Skill
#--------------------------------------------------------------------------
def dispose_skill
@skill_layout_sprite.bitmap.dispose
@skill_layout_sprite.dispose
@skill_icon_sprite.bitmap.dispose
@skill_icon_sprite.dispose
@skill_number_sprite.bitmap.dispose
@skill_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Gold
#--------------------------------------------------------------------------
def dispose_gold
@gold_layout_sprite.bitmap.dispose
@gold_layout_sprite.dispose
@gold_number_sprite.bitmap.dispose
@gold_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Item
#--------------------------------------------------------------------------
def dispose_item
@item_layout_sprite.bitmap.dispose
@item_layout_sprite.dispose
@item_icon_sprite.bitmap.dispose
@item_icon_sprite.dispose
@item_number_sprite.bitmap.dispose
@item_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Dispose Weapon
#--------------------------------------------------------------------------
def dispose_weapon
@weapon_layout_sprite.bitmap.dispose
@weapon_layout_sprite.dispose
@weapon_icon_sprite.bitmap.dispose
@weapon_icon_sprite.dispose
@weapon_number_sprite.bitmap.dispose
@weapon_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Dispose shield
#--------------------------------------------------------------------------
def dispose_shield
@shield_layout_sprite.bitmap.dispose
@shield_layout_sprite.dispose
@shield_icon_sprite.bitmap.dispose
@shield_icon_sprite.dispose
@shield_number_sprite.bitmap.dispose
@shield_number_sprite.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
returnif@actor == nil
update_visible
refresh if can_refresh_hud?
refresh_item if ENABLE_ITEM_HUD and can_refresh_item_number?
refresh_weapon_number if ENABLE_WEAPON_HUD and can_refreh_weapon_number?
refresh_shield_number if ENABLE_SHIELD_HUD and can_refreh_shield_number?
update_gold if ENABLE_GOLD_HUD
refresh if wm_Refresh_method?
end
#--------------------------------------------------------------------------
# ● Update Gold
#--------------------------------------------------------------------------
def update_gold
gold_number_down if@gold > $game_party.gold
gold_number_up if@gold < $game_party.gold
gold_number_update if@gold_refresh
end
#--------------------------------------------------------------------------
# ● Can Refresh Weapon Number
#--------------------------------------------------------------------------
def can_refreh_weapon_number?
returntrueif@weapon_number != $game_party.item_number(@w_item)
returnfalse
end
#--------------------------------------------------------------------------
# ● Can Refresh Shield Number
#--------------------------------------------------------------------------
def can_refreh_shield_number?
returntrueif@shield_number != $game_party.item_number(@s_item)
returnfalse
end
#--------------------------------------------------------------------------
# ● Update Visible
#--------------------------------------------------------------------------
def update_visible
vis = $game_system.enable_hud
if ENABLE_SKILL_HUD
@skill_layout_sprite.visible = vis
@skill_icon_sprite.visible = vis
@skill_number_sprite.visible = vis
end
if ENABLE_ITEM_HUD
@item_layout_sprite.visible = vis
@item_icon_sprite.visible = vis
@item_number_sprite.visible = vis
end
if ENABLE_WEAPON_HUD
@weapon_layout_sprite.visible = vis
@weapon_icon_sprite.visible = vis
@weapon_number_sprite.visible = vis
end
if ENABLE_SHIELD_HUD
#~ vis = false unless $game_party.battle_members[0].class_id == 11
@shield_layout_sprite.visible = vis
@shield_icon_sprite.visible = vis
@shield_number_sprite.visible = vis
end
if ENABLE_GOLD_HUD
@gold_layout_sprite.visible = vis
@gold_number_sprite.visible = vis
end
if SECOND_SKILL_HUD
@second_skill.visible = vis
@second_skill_icon.visible = vis
@second_skill_number_sprite.visible = vis
end
if THIRD_SKILL_HUD
@third_skill.visible = vis
@third_skill_icon.visible = vis
@third_skill_number_sprite.visible = vis
end
end
#--------------------------------------------------------------------------
# ● Can Refresh Hud
#--------------------------------------------------------------------------
def can_refresh_hud?
if@actor != nil
if ENABLE_SKILL_HUD
returntrueif@old_skill != @actor.skill_id
end
if ENABLE_ITEM_HUD
returntrueif@old_item != @actor.item_id
end
if ENABLE_WEAPON_HUD
returntrueif@old_weapon != @actor.equips[0]
end
if ENABLE_SHIELD_HUD
returntrueif@old_shield != @actor.equips[1]
end
end
returnfalse
end
#--------------------------------------------------------------------------
# ● Can Refresh Item Number
#--------------------------------------------------------------------------
def can_refresh_item_number?
returntrueif@item_number != $game_party.item_number(@item)
returnfalse
end
#--------------------------------------------------------------------------
# ● Create Item
#--------------------------------------------------------------------------
def refresh_item
@item_number = $game_party.item_number(@item)
#Item Number ------------------------------------------------------------
@item_number_sprite.bitmap.clear
cost_split = @item_number.to_s.split(//)
for r in0..cost_split.size - 1
number_abs = cost_split[r].to_i
src_rect = Rect.new(@number_cw * number_abs, 0, @number_cw, @number_ch)
@item_number_sprite.bitmap.blt(@number_sc * r, 0, @number_image, src_rect)
end
xf = ((cost_split.size * @number_sc) / 2)
@item_number_sprite.x = ITEM_HUD[0] + NUMBER[0] - xf
end
#--------------------------------------------------------------------------
# ● gold_number_up
#--------------------------------------------------------------------------
def gold_number_up
@gold_refresh = true
@gold_ref = 20 * (@gold - @gold_old) / 100
@gold_ref = 1if@gold_ref < 1
@gold += @gold_ref
if@gold >= $game_party.gold
@gold_old = $game_party.gold
@gold = $game_party.gold
@gold_ref = 0
end
end
#--------------------------------------------------------------------------
# ● gold_number_down
#--------------------------------------------------------------------------
def gold_number_down
@gold_refresh = true
@gold_ref = 10 * (@gold_old - @gold) / 100
@gold_ref = 1if@gold_ref < 1
@gold -= @gold_ref
if@gold