Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Menu Final Fantasy VI
Autor Wiadomość
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
Wysłany: Czw 17 Lis, 2011 20:33
Menu Final Fantasy VI
Opis

Skrypt tworzy okno na wzór menu z FF VI. Zamiast liczby kroków dodałem nazwę lokacji. :mrgreen:

Autor skryptu

Orygiał: Moghunter
Hack: CrasheR
korekta orygniału by SaE

Skrypt

Spoiler:

Kod:
##################################################
# Orygiał: Mog Basic Menu Plus V 1.0
# Teraz: Final Fantasy VI Menu #
##################################################
# Orygiał: Moghunter
# Hack: CrasheR
# korekta orygniału by SaE
##############

module Szkodnik_Sae       
Lokacja = "Lokacja"
Czas_gry = "Czas Gry"
Pieniądze = "Pieniądze"     
end

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  ゲーム中のすべてのウィンドウのスーパークラスです。
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # &#9679; &#23450;&#25968;
  #--------------------------------------------------------------------------
  WLH = 24                  # &#34892;&#12398;&#39640;&#12373;&#22522;&#28310;&#20516; (Window Line Height)
  #--------------------------------------------------------------------------
  # &#9679; &#12458;&#12502;&#12472;&#12455;&#12463;&#12488;&#21021;&#26399;&#21270;
  #     x      : &#12454;&#12451;&#12531;&#12489;&#12454;&#12398; X &#24231;&#27161;
  #     y      : &#12454;&#12451;&#12531;&#12489;&#12454;&#12398; Y &#24231;&#27161;
  #     width  : &#12454;&#12451;&#12531;&#12489;&#12454;&#12398;&#24133;
  #     height : &#12454;&#12451;&#12531;&#12489;&#12454;&#12398;&#39640;&#12373;
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super()
    self.windowskin = Cache.system("Window")
    self.x = x
    self.y = y
    self.width = width
    self.height = height
    self.z = 100
    self.back_opacity = 2000
    self.openness = 255
    create_contents
    @opening = false
    @closing = false
end

  def draw_actor_level_menu(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x - 170, y + 29, 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x -125, y + 29, 24, WLH, actor.level, 2)
  end
end

class Window_MenuStatus < Window_Selectable
  def initialize(x, y)
    super(x, y, 544, 416)
    refresh
    self.active = false
    self.index = -1
  end
  def refresh
    self.contents.clear
    @item_max = $game_party.members.size
    for actor in $game_party.members
      draw_actor_face(actor, 2, actor.index * 96 + 2, 92)
      x = 104
      y = actor.index * 96 + WLH / 2
      draw_actor_name(actor, x, y)
      draw_actor_level_menu(actor, x + 200, y)
      draw_actor_state(actor, x, y + WLH * 2)
      draw_actor_hp(actor, x + 30, y + 44* 1)
      draw_actor_mp(actor, x + 30, y + 29* 2)
    end
  end
  def update_cursor
    if @index < 0               
      self.cursor_rect.empty
    elsif @index < @item_max   
      self.cursor_rect.set(0, @index * 96, contents.width, 96)
    elsif @index >= 100         
      self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
    else                     
      self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
    end
  end
end

class Game_Map
attr_reader   :map_id
def mpname
$mpname = load_data("Data/MapInfos.rvdata")
$mpname[@map_id].name
end
end

class Window_Mapname < Window_Base
  def initialize(x, y)
    super(x, y, 180, 120)
    refresh
  end
def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, Szkodnik_Sae::Lokacja)
    self.contents.font.color = normal_color
    self.contents.draw_text(25, 20, 120, 32, $game_map.mpname.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(4, 45, 120, 32, Szkodnik_Sae::Pieniądze)
    draw_currency_value($game_party.gold, 25, 65, 120)
end
end

class Window_Time < Window_Base
  def initialize(x, y)
    super(x, y, 160, WLH + 64)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, Szkodnik_Sae::Czas_gry)
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, text, 2)
end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

class Scene_Menu   
  def main
    start                         
    perform_transition           
    Input.update                 
    loop do
      Graphics.update           
      Input.update             
      update                     
      break if $scene != self     
    end
    Graphics.update
    pre_terminate             
    Graphics.freeze               
    terminate                   
  end
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.color.set(16, 16, 16, 128)
    update_menu_background
  end
  def create_menu_background
    @menuback_sprite = Sprite.new
    @menuback_sprite.bitmap = $game_temp.background_bitmap
    @menuback_sprite.color.set(16, 16, 16, 128)
    update_menu_background
  end
  def dispose_menu_background
    @menuback_sprite.dispose
  end
  def update_menu_background
  end
  def perform_transition
     Graphics.transition(10)
  end
  def start
    create_menu_background
    create_command_window
    @status_window = Window_MenuStatus.new(0, 0)
    @playtime_window = Window_Time .new(385, 210)
    @mapname_window = Window_Mapname.new(365, 296)
    @status_window.openness = 0
    @playtime_window.openness = 0
    @mapname_window.openness = 0
    @status_window.open
    @playtime_window.open
    @mapname_window.open
  end
  def pre_terminate
    @status_window.close
    @playtime_window.close
    @mapname_window.close
    @command_window.close
    begin
    @status_window.update
    @playtime_window.update
    @mapname_window.update
    @command_window.update
    Graphics.update
    end until @status_window.openness == 0
  end
  def terminate
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
    @playtime_window.dispose
    @mapname_window.dispose
  end
  def update
    update_menu_background
    @command_window.update
    @status_window.update
    @mapname_window.update
    @playtime_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.z = 1000
    @command_window.openness = 0
    @command_window.open
    @command_window.x = 544 - @command_window.width
    @command_window.y = 0
    if $game_party.members.size == 0           
      @command_window.draw_item(0, false)     
      @command_window.draw_item(1, false)     
      @command_window.draw_item(2, false)     
      @command_window.draw_item(3, false)   
    end
    if $game_system.save_disabled             
      @command_window.draw_item(4, false)     
    end
  end
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 4
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0     
        $scene = Scene_Item.new
      when 1,2,3   
        start_actor_selection
      when 4       
        $scene = Scene_File.new(true, false, false)
      when 5     
        $scene = Scene_End.new
      end
    end
  end
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1
        $scene = Scene_Skill.new(@status_window.index)
      when 2   
        $scene = Scene_Equip.new(@status_window.index)
      when 3
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
 end
$mogscript = {} if $mogscript == nil
$mogscript["basic_menu_plus"] = true



Screen

Oryginał:
Spoiler:


Menu FF VI:
Spoiler:




Window

________________________



Ostatnio zmieniony przez CrasheR Czw 17 Lis, 2011 21:52, w całości zmieniany 1 raz  
 
 
 
MrBoomGood 




Preferowany:
RPG Maker VX

Pomógł: 3 razy
Dołączył: 07 Kwi 2011
Posty: 292
Skąd: Katowice
Wysłany: Czw 17 Lis, 2011 21:23
Dodaj skrypt do code...
 
 
 
tracersgta 




Preferowany:
RPG Maker VX

Pomógł: 45 razy
Dołączył: 10 Sty 2011
Posty: 612
Skąd: mam wiedzieć?
Wysłany: Czw 17 Lis, 2011 21:34
Niezły... Ten styl mi się podoba... 10/10 oczywiście, ale zostanę przy moim CMS-ie bo robiłem już ze sto przeróbek...
________________________
I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!

Gość, jeżeli pomogłem daj "Pomógł" ;-)
 
 
 
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
Wysłany: Czw 17 Lis, 2011 21:55
Dzięki, dzięki :mrgreen:
________________________



Ostatnio zmieniony przez CrasheR Pią 18 Lis, 2011 16:36, w całości zmieniany 1 raz  
 
 
 
Finwe 




Preferowany:
RPG Maker VXAce

Pomógł: 34 razy
Dołączył: 30 Lip 2011
Posty: 322
Skąd: Rzeszów
Wysłany: Pią 18 Lis, 2011 16:45
Bardzo ładne menu! Szkoda już po raz któryś widzę kolejne zmodyfikowane menu... Trochę dużo tego, acz fajnie wyglądają wszystkie. Aż trudno wybrać jakie chcemy menu do gry :-P
 
 
 
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
Wysłany: Pią 18 Lis, 2011 16:49
Te menu akurat stworzyłem(edytowałem) dla fanów FF VI.
________________________



 
 
 
Finwe 




Preferowany:
RPG Maker VXAce

Pomógł: 34 razy
Dołączył: 30 Lip 2011
Posty: 322
Skąd: Rzeszów
Wysłany: Pią 18 Lis, 2011 17:00
Cóż miło widzieć fanmady. Myślę że prawdopodobnie bym użył w przyszłości. Mam tylko jedno pytanie? Czy w kontynuacji należałoby użyć podobnych skryptów co wcześniej?
 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene