Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Select Key Item ACE
#1
Select Key Item ACE
by Kyonides

Introduction

This script has only one mission: to display the Select Key Item window with style!

Please read the embedded comments to learn how to use it properly.

Code:
# * Select Key Item ACE * #
#  Scripter : Kyonides Arkanthes
#  2024-03-22

# Display your Key Items on screen with style!
# Don't forget to add some key items to your party's bag before calling
# the Select Item event command or this script might laugh at you! :O
# You might only need to configure 5 CONSTANTS, yes in ALL_CAPS.
# Yet, this script can run just like any plug & play code available out there.

class Window_KeyItem
  # [Red, Green, Blue, Alpha]
  MAIN_COLOR = [0, 0, 0, 160]
  EDGE_COLOR = [0, 0, 0, 0]
  WINDOW_WIDTH = (Graphics.width - 40) / 2
  POS_Y = Graphics.height / 2 - 24
  NO_ITEM_FOUND = "No key items? Really?"
  def initialize(message_window)
    @message_window = message_window
    @cw = WINDOW_WIDTH - 24
    super(WINDOW_WIDTH / 2, 0, WINDOW_WIDTH, 72)
    self.openness = 0
    create_back_bitmap
    create_back_sprite
    self.back_opacity = 0
    self.opacity = 0
    deactivate
    set_handler(:ok,    method(:on_ok))
    set_handler(:cancel, method(:on_cancel))
  end

  def create_back_bitmap
    @back_bitmap = Bitmap.new(@cw, 28)
    rect1 = Rect.new(0, 0, width, 12)
    rect2 = Rect.new(0, 12, width, height - 24)
    rect3 = Rect.new(0, height - 12, width, 12)
    @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
    @back_bitmap.fill_rect(rect2, back_color1)
    @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  end

  def create_back_sprite
    @back_sprite = Sprite.new
    @back_sprite.bitmap = @back_bitmap
    @back_sprite.visible = false
    @back_sprite.x = self.x + 12
    @back_sprite.z = self.z - 1
  end

  def back_color1
    Color.new(*MAIN_COLOR)
  end

  def back_color2
    Color.new(*EDGE_COLOR)
  end

  def start
    self.category = :key_item
    update_placement
    select(0)
    open
    @back_sprite.visible = true
    activate
  end

  def make_item_list
    @data = $game_party.all_items.select {|item| include?(item) }
    @icon_ox = @cw / 2 - item_max * 14
  end

  def update_placement
    self.y = POS_Y
    @back_sprite.y = self.y + 34
  end

  def select(new_index)
    self.index = new_index
    draw_this_item
  end

  def item_max
    @data.size
  end

  def create_contents
    contents.dispose
    self.contents = Bitmap.new(@cw, 48)
  end

  def draw_this_item
    contents.clear_rect(0, 24, @cw, 24)
    item = @data[@index]
    item ? draw_item_found(item) : draw_no_item
  end

  def draw_item_found(item)
    rect = Rect.new(0, 24, @cw - 4, 24)
    draw_item_name(item)
    draw_item_number(rect, item)
  end

  def draw_item(n)
    icon_pos = @data[n].icon_index
    draw_icon(icon_pos, @icon_ox + n * 28, 0, true)
  end

  def draw_item_name(item)
    change_color(normal_color, true)
    draw_text(4, 24, @cw - 32, line_height, item.name)
  end

  def draw_item_number(rect, item)
    draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  end

  def draw_no_item
    draw_text(4, 24, @cw - 32, line_height, NO_ITEM_FOUND)
  end

  def hide_backdrop
    @back_sprite.visible = false
  end

  def this_rect
    Rect.new(@icon_ox + @index * 28, 0, 24, 24)
  end

  def update_cursor
    if @index < 0
      cursor_rect.empty
      return
    end
    cursor_rect.set(this_rect)
  end

  def process_ok
    if current_item_enabled?
      Sound.play_ok
      Input.update
      call_ok_handler
    else
      Sound.play_buzzer
      call_cancel_handler
    end
    deactivate
  end

  def dispose
    super
    @back_bitmap.dispose
    @back_sprite.dispose
  end
end

class Window_Message
  def input_item
    @item_window.start
    Fiber.yield while @item_window.active
    @item_window.hide_backdrop
  end
end

Screenshots

2 Snapshots

Terms & Conditions

Free for ANY Gamer game.
Due credit is mandatory.
Mention this forum in your game credits.
That's it! Tongue sticking out


Attached Files
.jpg   select_key_item_ace01.jpg (Size: 103.48 KB / Downloads: 3)
.jpg   select_key_item_ace02.jpg (Size: 104.33 KB / Downloads: 3)
"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]
[Image: SP1-Writer.png]
[Image: SP1-Poet.png]
[Image: SP1-PixelArtist.png]
[Image: 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! Laughing + Tongue sticking out

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
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Battle Item Count kyonides 4 844 02-04-2024, 05:49 AM
Last Post: kyonides
   Skill Item Kost ACE kyonides 0 354 01-03-2024, 12:07 AM
Last Post: kyonides
   Fast Item Grouping DerVVulfman 1 2,471 06-12-2023, 05:28 PM
Last Post: DerVVulfman
   DoubleX RMMZ Skill Item Cooldown DoubleX 4 5,102 02-07-2021, 04:11 PM
Last Post: DoubleX
   DoubleX RMMZ Skill Item Triggers DoubleX 3 4,654 12-26-2020, 04:00 PM
Last Post: DoubleX
   DoubleX RMMV Unison Item Compatibility DoubleX 0 2,841 09-09-2019, 11:45 AM
Last Post: DoubleX
   Skyla's Unique Item Shop DerVVulfman 2 5,240 01-19-2018, 04:18 AM
Last Post: DerVVulfman
   Extra ITEM for MOG Scene Item Laura DerVVulfman 0 4,554 06-29-2017, 03:44 AM
Last Post: DerVVulfman
   Character Select Script Selwyn 3 9,560 03-07-2017, 04:14 AM
Last Post: JayRay
   DoubleX RMMV Item Cooldown DoubleX 0 4,156 08-28-2016, 02:44 PM
Last Post: DoubleX



Users browsing this thread: