Ikony w Oknie Poleceń / Command Window Icons

 

screen command window icons

 

Autor: Ayene [ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. ]

Kompatybilność: RPG Maker XP

Krótki opis:

Skrypt umożliwia ustawienie ikon dla poszczególnych poleceń w oknach, np. w menu lub ekranie tytułowym. Może nie być kompatybilny ze skryptami, które wprowadzają własne okna poleceń.

Instrukcja:

Przyporządkowanie ikon poszczególnym poleceniom odbywa się poprzez dodanie fragmentu kodu po linijcew seksji Konfiguracja kodu po linijce:

ICON_COMMANDS = { # <- nie usuwać

zgodnie ze wzorem:

# "Nazwa Komendy" => 'Nazwa Ikony',

Należy pamiętać o tym, by na końcu każdej linijki dodać przecinek.

Skrypt:

#===================================================================
# Ikony w Oknie Poleceń [XP] / Command Window Icons [XP]
# Autor: Ayene [ Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript. ]
# www.ultimateam.pl
#===================================================================
# Opis:
# Skrypt umożliwia ustawienie ikon dla poszczególnych poleceń w oknach, np.
# w menu lub ekranie tytułowym. Może nie być kompatybilny ze skryptami, które
# wprowadzają własne okna poleceń.
#
# Instrukcja:
# Wklej skrypt nad Main. Konfiguracja poniżej.
#===================================================================
module Ayene

# KONFIGURACJA
  ICON_COMMANDS = { # <- nie usuwać
 
  # "Nazwa Komendy" => 'Nazwa Ikony',
 
  # Ekran tytułowy
  "Nowa Gra" => "029-Key01",
  "Wczytaj" => "037-Item06",
  "Wyjście" => "046-Skill03",
   
  # Menu gry
  "Przedmioty" => "032-Item01",
  "Zdolności" => "044-Skill01",
  "Ekwipunek" => "009-Shield01",
  "Status" => "038-Item07",
  "Zapis" => "037-Item06",
  "Koniec gry" => "046-Skill03",
 
  # Walka
  "Atak" => "001-Weapon01",
  "Obrona" => "009-Shield01",
 
  # Koniec gry
  "Ekran tytułowy" => "038-Item07",
  "Zakończ grę" => "048-Skill05",
  "Anuluj" => "047-Skill04",
 
  # Sklep
  "Kupuj" => "038-Item07",
  "Sprzedaj" => "048-Skill05",
 
  }  # <- nie usuwać   
end

#==============================================================================
# ** Window_Selectable
#==============================================================================
class Window_Selectable < Window_Base
  include Ayene
  #--------------------------------------------------------------------------
  # * Draw Command Icon
  #     rect  : command rect
  #     text  : command text
  #--------------------------------------------------------------------------
  def draw_command_icon(rect, text)
    bitmap = RPG::Cache.icon(ICON_COMMANDS[text])
    self.contents.blt(rect.x, 4 + rect.y, bitmap, Rect.new(0, 0, 24, 24))   
    bitmap.dispose
  end
end

#==============================================================================
# ** Window_Command
#==============================================================================
class Window_Command < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #     color : text color
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    text = @commands[index]
    self.contents.font.color = color
    rect = Rect.new(2, 32 * index, self.contents.width - 8, 32)
    if ICON_COMMANDS.include?(text)
      draw_command_icon(rect, text)
      rect.x += 26
    end
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, text)
  end   
end

#==============================================================================
# ** Window_ShopCommand
#==============================================================================
class Window_ShopCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index)
    text = @commands[index]
    rect = Rect.new(2 + index * 160, 0, 128, 32)
    if ICON_COMMANDS.include?(text)
      draw_command_icon(rect, text)
      rect.x += 26
    end
    self.contents.draw_text(rect, text)   
  end
end

Dodatkowe informacje:

1. Wklej skrypt nad "Main" w Edytorze Skryptu.
2. Reszta instrukcji znajduje się w treści skryptu.