10-17-2024, 08:01 PM 
	
	
	Here Are Some Goodies for VX Users!
This script is incompatible with the Targetting Extended for Tankentai Non-ATB v1.1 by Crimsonseas. So you'd need to use this modified version of Crimsonseas' script and my custom patch to make it work as intended.

Modified Version of Targetting Extended
Code:
=begin
################################################################################
Targetting Extended for Tankentai Non-ATB v1.1
by CrimsonSeas
################################################################################
Use with the base script to enable the targetting extended.
This script adds to the rewrites list of the base script
Rewrites:
+Scene_Battle
-start_target_selection
-select_member
################################################################################
=end
class Scene_Battle
  def start_target_selection(actor = false)
    members = actor ? $game_party.members : $game_troop.members
    action = @active_battler.action
    if action.kind == 1
      obj = action.skill
    elsif action.kind == 2
      obj = action.item
    end
    case obj
    when nil
      @target_any = TargetExt::ATTACK_ANY
    when RPG::Skill
      @target_any = !TargetExt::NO_TARGET_ANY_S.include?(action.skill.id)
    when RPG::Item
      @target_any = !TargetExt::NO_TARGET_ANY_I.include?(action.item.id)
    end
    if obj != nil && obj.extension.include?("TARGETALL")
      members = $game_party.members + $game_troop.members
    end
    # �‚��ƒ��‚��ƒ��‚��ƒ—�ƒ��‚��ƒˆの�œ�ˆ�
    @all = false
    if obj != nil
      scope_all = [2, 4, 5, 6, 8, 10].include?(obj.scope)
      @all = (scope_all || obj.extension.include?("TARGETALL"))
    end
    @cursor = Sprite.new
    @cursor.bitmap = Cache.character("cursor")
    @cursor.src_rect.set(0, 0, 32, 32)
    @cursor_flame = 0
    @cursor.x = -200
    @cursor.y = -200
    @cursor.ox = @cursor.width
    @cursor.oy = @cursor.height
    @cursor.visible = !@all
    # �‚��ƒ��‚��ƒƒ�ƒˆ名�‚’表示�™�‚‹�ƒ˜�ƒ��ƒ—�‚��‚��ƒ��ƒ‰�‚��‚’�œ�ˆ�
    @help_window.visible = false if @help_window != nil
    @help_window2 = Window_Help.new if @help_window2 == nil
    # 不要な�‚��‚��ƒ��ƒ‰�‚��‚’�ˆ�™
    @actor_command_window.active = false
    @skill_window.visible = false if @skill_window != nil
    @item_window.visible = false if @item_window != nil
    # �˜�œ��—て�„�‚‹�‚��ƒ��‚��ƒƒ�ƒˆで�œ€�‚‚�•�号の�Ž�„対象�‚’�œ€�ˆ�に�Œ‡�™�‚ˆ�†に
    @index = 0
    @max_index = members.size - 1
    # �‚��‚��‚��ƒ�は�ˆ��—˜不�ƒ��€…で�‚‚�‚��ƒ��‚��ƒƒ�ƒˆでき�‚‹�‚ˆ�†に�‚��ƒ��ƒŸ�ƒ�と�Œ��ˆ�
    unless actor
      members.size.times do
        break if members[@index].exist?
        @index += 1
      end
    end 
    @help_window2.set_text(members[@index].name, 1)
    if @all
      string, strings = TargetExt::TARGET_ALL_VOC
      string2 = actor ? strings[0] : strings[1]
      string += " " + string2 unless obj.extension.include?("TARGETALL")
      @help_window2.set_text(string, 1)
      make_cursor_all(members)
      cursor_all_visible(true)
      @cursor.visible = false
    else
      # Call New Method: Reset Single Cursor
      reset_single_cursor(actor)
    end
    select_member(members, actor)
  end
  #--------------------------------------------------------------------------
  # �—� �‚��ƒ��‚��ƒƒ�ƒˆ選�Šž
  #--------------------------------------------------------------------------
  def select_member(targets, actor = true)
    members = targets
    action = @active_battler.action
    if action.kind == 1
      obj = action.skill
    elsif action.kind == 2
      obj = action.item
    end
    #rect = @cursor.src_rect
    #rect.set(0, 0, 32, 32)
    loop do
      update_basic
      @cursor_flame = 0 if @cursor_flame == 30
      #rect.y = 0 if @cursor_flame == 29
      #rect.y = 32 if @cursor_flame == 15
      point_x, point_y = @spriteset.set_cursor(actor, @index)
      @cursor.x = point_x
      @cursor.y = point_y
      @cursor_flame += 1
      if Input.trigger?(Input::B)
        select_member_cancel
        break
      elsif Input.trigger?(Input::C)
        select_member_ok
        break
      end
      if Input.repeat?(Input::LEFT) && !(@all || @active_battler.target_all)
        if actor
          $back_attack ? cursor_down(members, actor) : cursor_up(members, actor)
        else
          $back_attack ? cursor_up(members, actor) : cursor_down(members, actor)
        end
      end
      if Input.repeat?(Input::RIGHT) && !(@all || @active_battler.target_all)
        if actor
          $back_attack ? cursor_up(members, actor) : cursor_down(members, actor)
        else
          $back_attack ? cursor_down(members, actor) : cursor_up(members, actor)
        end
      end
      #if (Input.trigger?(Input::L) || Input.trigger?(Input::R)) && @target_any
      if (Input.trigger?(Input::L) || Input.trigger?(Input::R)) #&& nil
        if members == $game_party.members
          members = $game_troop.members
          actor = false
        elsif members == $game_troop.members
          members = $game_party.members
          actor = true
        end
        if @active_battler.inverse_target
          @active_battler.inverse_target = false
        else
          @active_battler.inverse_target = true
        end
        @index = 0 if @index >= members.size
        @max_index = members.size - 1
        # �‚��‚��‚��ƒ�は�ˆ��—˜不�ƒ��€…で�‚‚�‚��ƒ��‚��ƒƒ�ƒˆでき�‚‹�‚ˆ�†に�‚��ƒ��ƒŸ�ƒ�と�Œ��ˆ�
        unless actor
          members.size.times do
            break if members[@index].exist?
            @index += 1
          end
        end
        if @cursor != nil
          # Modified Process: Make Sure Any Kind of Cursor is Visible
          many_targets = (@active_battler.target_all || @all)
          if many_targets
            dispose_cursor_all
            make_cursor_all(members)
            cursor_all_visible(false)
            @cursor.visible = false
          else
            @cursor.visible = true
          end
        end
        if @active_battler.target_all || @all
          string1 = TargetExt::TARGET_ALL_VOC[0]
          string2 = actor ? TargetExt::TARGET_ALL_VOC[1][0] : TargetExt::TARGET_ALL_VOC[1][1]
          string1 += " " + string2 unless obj.extension.include?("TARGETALL")
          if TargetExt::SHOW_MP_ALTER && @active_battler.target_all && obj.is_a?(RPG::Skill)
            cost = @active_battler.calc_mp_cost(obj)
            string1 += ": " + cost.to_s + Vocab::mp
          end
          @help_window2.set_text(string1, 1)
        end
        @help_window2.set_text(members[@index].name, 1) if !@active_battler.target_all && !@all
        Sound.play_cursor
      end
      if Input.trigger?(Input::A) && !@all && obj != nil
        if obj.all_available
          Sound.play_cursor
          if @active_battler.target_all
            @active_battler.target_all = false
            @cursor.visible = true
            cursor_all_visible(false) if @cursor2 != nil
            @help_window2.set_text(members[@index].name, 1)
          else
            @active_battler.target_all = true
            @cursor.visible = false
            make_cursor_all(members) if @cursor2 == nil
            cursor_all_visible(true)
            string1 = TargetExt::TARGET_ALL_VOC[0]
            string2 = actor ? TargetExt::TARGET_ALL_VOC[1][0] : TargetExt::TARGET_ALL_VOC[1][1]
            string1 += " " + string2 unless obj.extension.include?("TARGETALL")
            if TargetExt::SHOW_MP_ALTER && @active_battler.target_all &&  obj.is_a?(RPG::Skill)
              cost = @active_battler.calc_mp_cost(obj)
              string1 += ": " + cost.to_s + Vocab::mp
            end
            @help_window2.set_text(string1 , 1)
          end
        end
      end
      many_targets = (@active_battler.target_all || @all)
      cursor_up(members, actor) if Input.repeat?(Input::UP) && !many_targets
      cursor_down(members, actor) if Input.repeat?(Input::DOWN) && !many_targets
    end
  end
  def select_member_cancel
    Sound.play_cancel
    @active_battler.target_all = false
    end_target_selection
  end
  def select_member_ok
    Sound.play_decision
    @active_battler.action.target_index = @index
    end_target_selection
    end_skill_selection
    end_item_selection
    next_actor
  end
  def make_cursor_all(members)
    @cursor2 = []
    for i in 0...members.size
      next if members == $game_troop.members && !members[i].exist?
      @cursor2[i] = Sprite.new
      @cursor2[i].bitmap = Cache.character("cursor")
      @cursor2[i].src_rect.set(0, 0, 32, 32)
      @cursor2[i].x = members[i].position_x - 48
      @cursor2[i].y = members[i].position_y - 48
    end
    @cursor2.compact!
  end
endThe Patch
Code:
# * Battle Item Count VX - Takentai Patch * #
#  Scripter : Kyonides Arkanthes
#  2024-10-17
class Scene_Battle
  alias :kyon_btl_itm_cnt_scn_btl_sel_mem_ok :select_member_ok
  def select_member_ok
    action = @active_battler.action
    item_id = action.kind == 2 ? action.item.id : nil
    @active_battler.battle_item_id = item_id if item_id
    kyon_btl_itm_cnt_scn_btl_sel_mem_ok
  end
  def reset_single_cursor(is_actor)
    point_x, point_y = @spriteset.set_cursor(is_actor, @index)
    @cursor.x = point_x
    @cursor.y = point_y
  end
end
"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.
![[Image: SP1-Scripter.png]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-PixelArtist.png]](https://www.save-point.org/images/userbars/SP1-PixelArtist.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/SP1-Reporter.png)
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.
![[Image: SP1-Scripter.png]](https://www.save-point.org/images/userbars/SP1-Scripter.png)
![[Image: SP1-Writer.png]](https://www.save-point.org/images/userbars/SP1-Writer.png)
![[Image: SP1-Poet.png]](https://www.save-point.org/images/userbars/SP1-Poet.png)
![[Image: SP1-Reporter.png]](https://i.postimg.cc/GmxWbHyL/SP1-Reporter.png)
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

