10-17-2024, 07:54 PM
Battle Item Count VX + ACE
by Kyonides
Introduction
Do you need to update the number of potions or elixirs currently available for the next couple of actors during battle?
Or were you in need of canceling your previous actor's action to change the item the actor is going to consume next?
Then this scriptlet is for you!
VX Script
Code:
# * Battle Item Count VX * #
# Plug & Play Script
# Scripter : Kyonides Arkanthes
# v1.0.4 - 2024-02-03
# The scriptlet updates the number of available items every single time you pick
# one or go back to the prior actor in battle.
class Game_Actor
def clear_battle_item
@battle_item_id = nil
end
attr_accessor :battle_item_id
end
class Game_Party
def clear_battle_items
members.each {|m| m.clear_battle_item }
end
def members_battle_items
members.map {|m| m.battle_item_id }
end
def battle_item_number(item)
return item_number(item) unless $game_temp.in_battle
item_id = item.id
battle_items = members_battle_items.select {|bit_id| item_id == bit_id }
item_number(item) - battle_items.size
end
end
class Window_Item
alias :kyon_btl_itm_cnt_win_ref :refresh
def refresh
@battle_items = {}
@battle_items.default = 99
kyon_btl_itm_cnt_win_ref
end
def enable?(item)
$game_party.item_can_use?(item) and @battle_items[item.id] > 0
end
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
item = @data[index]
return unless item
number = $game_party.battle_item_number(item)
@battle_items[item.id] = number
enabled = enable?(item)
rect.width -= 4
draw_item_name(item, rect.x, rect.y, enabled)
self.contents.draw_text(rect, sprintf(":%2d", number), 2)
end
def battle_item_none?
@battle_items[@data[@index].id] == 0
end
end
class Scene_Battle
alias :kyon_btl_itm_cnt_scn_btl_term :terminate
alias :kyon_btl_itm_cnt_scn_btl_st_pty_cmd_sel :start_party_command_selection
alias :kyon_btl_itm_cnt_scn_btl_prr_act :prior_actor
alias :kyon_btl_itm_cnt_scn_btl_end_trgt_act_sel :end_target_actor_selection
def terminate
kyon_btl_itm_cnt_scn_btl_term
$game_party.clear_battle_items
end
def start_party_command_selection
$game_party.clear_battle_items
kyon_btl_itm_cnt_scn_btl_st_pty_cmd_sel
end
def turn_decrease_item_count
@active_battler.clear_battle_item if @active_battler
end
def prior_actor
turn_decrease_item_count
kyon_btl_itm_cnt_scn_btl_prr_act
turn_decrease_item_count
end
def update_target_actor_selection
@target_actor_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
end_target_actor_selection
elsif Input.trigger?(Input::C)
Sound.play_decision
@active_battler.action.target_index = @target_actor_window.index
@active_battler.battle_item_id = @item.id if @item
@item = nil
end_target_actor_selection
end_skill_selection
end_item_selection
next_actor
end
end
def update_item_selection
@item_window.active = true
@item_window.update
@help_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
end_item_selection
elsif Input.trigger?(Input::C)
@item = @item_window.item
$game_party.last_item_id = @item.id if @item
return Sound.play_buzzer unless $game_party.item_can_use?(@item)
return Sound.play_buzzer if @item_window.battle_item_none?
Sound.play_decision
determine_item
end
end
end
VX ACE Script
Code:
# * Battle Item Count ACE * #
# Plug & Play Script
# Scripter : Kyonides Arkanthes
# v1.0.4 - 2024-02-03
# The scriptlet updates the number of available items every single time you pick
# one or go back to the prior actor in battle.
class Game_Actor
def clear_battle_item
@battle_item_id = nil
end
attr_accessor :battle_item_id
end
class Game_Party
def clear_battle_items
members.each {|m| m.clear_battle_item }
end
def members_battle_items
members.map {|m| m.battle_item_id }
end
def battle_item_number(item)
return item_number(item) unless @in_battle
item_id = item.id
battle_items = members_battle_items.select {|bit_id| item_id == bit_id }
item_number(item) - battle_items.size
end
end
class Window_ItemList
alias :kyon_btl_itm_cnt_mk_itm_lst :make_item_list
def enable?(item)
$game_party.usable?(item) and @battle_items[item.id] > 0
end
def make_item_list
@battle_items = {}
@battle_items.default = 99
kyon_btl_itm_cnt_mk_itm_lst
end
def draw_item_number(rect, item)
number = $game_party.battle_item_number(item)
@battle_items[item.id] = number
contents.font.color.alpha = number > 0 ? 255 : translucent_alpha
number = sprintf(":%2d", number)
draw_text(rect, number, 2)
end
end
class Scene_Battle
alias :kyon_btl_itm_cnt_scn_btl_term :terminate
alias :kyon_btl_itm_cnt_scn_btl_st_pty_cmd_sel :start_party_command_selection
alias :kyon_btl_itm_cnt_scn_btl_st_act_cmd_sel :start_actor_command_selection
alias :kyon_btl_itm_cnt_scn_btl_on_itm_ok :on_item_ok
alias :kyon_btl_itm_cnt_scn_btl_on_itm_cncl :on_item_cancel
def terminate
kyon_btl_itm_cnt_scn_btl_term
$game_party.clear_battle_items
end
def start_party_command_selection
kyon_btl_itm_cnt_scn_btl_st_pty_cmd_sel
$game_party.clear_battle_items
end
def start_actor_command_selection
kyon_btl_itm_cnt_scn_btl_st_act_cmd_sel
BattleManager.actor.clear_battle_item
end
def on_item_ok
BattleManager.actor.battle_item_id = @item_window.item.id
kyon_btl_itm_cnt_scn_btl_on_itm_ok
end
def on_item_cancel
BattleManager.actor.clear_battle_item
kyon_btl_itm_cnt_scn_btl_on_itm_cncl
end
end
Terms & Conditions
Free for use in ANY game.
Due credit is mandatory.
That's it!
"For God has not destined us for wrath, but for obtaining salvation through our Lord Jesus Christ," 1 Thessalonians 5:9
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE
Maranatha!
The Internet might be either your friend or enemy. It just depends on whether or not she has a bad hair day.
My Original Stories (available in English and Spanish)
List of Compiled Binary Executables I have published...
HiddenChest & Roole
Give me a free copy of your completed game if you include at least 3 of my scripts!
Just some scripts I've already published on the board...
KyoGemBoost XP VX & ACE, RandomEnkounters XP, KSkillShop XP, Kolloseum States XP, KEvents XP, KScenario XP & Gosu, KyoPrizeShop XP Mangostan, Kuests XP, KyoDiscounts XP VX, ACE & MV, KChest XP VX & ACE 2016, KTelePort XP, KSkillMax XP & VX & ACE, Gem Roulette XP VX & VX Ace, KRespawnPoint XP, VX & VX Ace, GiveAway XP VX & ACE, Klearance XP VX & ACE, KUnits XP VX, ACE & Gosu 2017, KLevel XP, KRumors XP & ACE, KMonsterPals XP VX & ACE, KStatsRefill XP VX & ACE, KLotto XP VX & ACE, KItemDesc XP & VX, KPocket XP & VX, OpenChest XP VX & ACE