Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Czw 04 Lis, 2010 15:27
Menu jedno osobowe
Autor Wiadomość
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Sob 30 Paź, 2010 12:52
Menu jedno osobowe
Chciałbym aby Menu jedno osobowe było kompatybilne ze skryptem rozdawania punktów.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 30 Paź, 2010 14:48
Heh, problem tylko w tym, że wszystkie komendy nie zmieszczą się w jednym rzędzie. Więc są dwa wyjścia - albo dam dwa rzędy poleceń, albo usunę jedną z komend, np. koniec gry (Game End), a w to miejsce dam "Poziom plus". Niemniej jednak rozwiązanie pierwsze wydaje się lepsze. Polskie odpowiedniki "Item", "Skill" itd. są dłuższe, więc można by wprowadzić 7 komend, cztery w górnym i trzy w dolnym rzędzie.

Podmień za Menu jednoosobowe:
Spoiler:

Kod:
#==============================================================================
# Menu Jednoosobowe [VX]
#==============================================================================
# Autor: Matheus2
# Poprawki by Ayene
# Skrypt zmienia menu na jednoosobowe - wyświetlane są dane tylko
# pierwszej osoby w drużynie.
#==============================================================================

module Ayene
  # Wyświetla awatar postaci zamiast characters
  AWATAR_ZAMIAST_CHARA = true
end
#------------------------------------------------------------------------------#
# Game_Party
#------------------------------------------------------------------------------#
class Game_Party < Game_Unit
  MAX_MEMBERS = 1
end

#------------------------------------------------------------------------------#
# Game_Map
#------------------------------------------------------------------------------#
class Game_Map
  attr_reader :map_id
  def namemap
    @name_map = load_data("Data/MapInfos.rvdata")
    @name_map[@map_id].name
  end
end

#------------------------------------------------------------------------------#
# Window_Status
#------------------------------------------------------------------------------#
class Window_Stats < Window_Base
  def initialize(actor)
    super(250, 264, 294, 152)
    @actor = actor
    refresh
  end

  def refresh
    self.contents.clear
    draw_actor_parameter(@actor, 0, 0 + WLH * 0, 0)
    draw_actor_parameter(@actor, 0, 0 + WLH * 1, 1)
    draw_actor_parameter(@actor, 0, 0 + WLH * 2, 2)
    draw_actor_parameter(@actor, 0, 0 + WLH * 3, 3)
  end
end

#------------------------------------------------------------------------------#
# Window_Time
#------------------------------------------------------------------------------#
class Window_Time < Window_Base
  def initialize(x,y)
    super(x, y, 144, 56)
    self.x = x
    self.y = y
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    @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, 0, 120, 24, text)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

#------------------------------------------------------------------------------#
# Window_Map
#------------------------------------------------------------------------------#
class Window_Map < Window_Base
  def initialize(x,y)
    super(x, y, 240, 56)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.font.color = normal_color
    self.contents.draw_text(0, -8, 200, 32, $game_map.namemap.to_s)
  end
end

#------------------------------------------------------------------------------#
# Window_Equips
#------------------------------------------------------------------------------#
class Window_Equips < Window_Base
  def initialize(actor)
    super(0, 264, 250, 152)
    @actor = actor
    refresh
  end

  def refresh
    self.contents.clear
    @data = []
    for item in @actor.equips do @data.push(item) end
    @item_max = @data.size
    self.contents.font.color = system_color
    draw_item_name(@data[0], 0, WLH * 0)
    draw_item_name(@data[1], 0, WLH * 1)
    draw_item_name(@data[2], 0, WLH * 2)
    draw_item_name(@data[3], 0, WLH * 3)
    draw_item_name(@data[4], 0, WLH * 4)
  end
end

#------------------------------------------------------------------------------#
# Window_MenuStatus
#------------------------------------------------------------------------------#

class Window_MenuStatus < Window_Selectable
  def initialize(x, y)
    super(0, 80, 544, 128)
    refresh
    self.active = false
    self.index = -1
  end

  def refresh
    self.contents.clear
    actor = $game_party.members[0]   
    if Ayene::AWATAR_ZAMIAST_CHARA
      draw_actor_face(actor, 2, 2, 92)
    else     
      draw_actor_graphic(actor, 40, 60)
    end   
    x = 104
    y = actor.index * 96 + WLH / 2
    draw_actor_name(actor, x, y)
    draw_actor_class(actor, x + 120, y)
    draw_actor_level(actor, x, y + WLH * 1)
    draw_actor_state(actor, x, y + WLH * 2)
    draw_actor_hp(actor, x + 120, y + WLH * 1)
    draw_actor_mp(actor, x + 120, y + WLH * 2)
  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

#------------------------------------------------------------------------------#
# Scene_Menu
#------------------------------------------------------------------------------#
class Scene_Menu < Scene_Base
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  def start
    super
    create_menu_background
    create_command_window
    @gold_window = Window_Gold.new(0, 208)
    @status_window = Window_MenuStatus.new(160,0)
    @map_window = Window_Map.new(160, 208)
    @equips_window = Window_Equips.new($game_party.members[0])
    @time_window = Window_Time.new(400, 208)
    @stats_window = Window_Stats.new($game_party.members[0])
  end

  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @gold_window.dispose
    @status_window.dispose
    @map_window.dispose
    @equips_window.dispose
    @time_window.dispose
    @stats_window.dispose
  end

  def update
    super
    update_menu_background
    @command_window.update   
    @gold_window.update
    @status_window.update
    @time_window.update   
    update_command_selection
  end

  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::skill
    s3 = Vocab::equip
    s4 = Vocab::status
    s5 = "Poziom plus"
    s6 = Vocab::save
    s7 = Vocab::game_end
    @command_window = Window_Command.new(544,[s1, s2, s3, s4, s5, s6, s7],4,2,10)
    @command_window.index = @menu_index
    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(5, 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
        $scene = Scene_Skill.new(0)
      when 2
        $scene = Scene_Equip.new(0)
      when 3
        $scene = Scene_Status.new(0)
      when 4
        $scene = Scene_RequiemUpgrade.new(0)         
      when 5
        $scene = Scene_File.new(true, false, false)
      when 6
        $scene = Scene_End.new
      end
    end
  end
end



Za Poziom plus:
Spoiler:

Kod:
#==============================================================================
# Requiem Upgrade
#==============================================================================

Points_Gained = 5 # Points that hero will gain when level-up

#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
 
  attr_accessor :points
 
  alias requiem_upgwnd_initialize initialize
  alias requiem_upgwnd_lvlup level_up
 
  def initialize(actor_id)
    requiem_upgwnd_initialize(actor_id)
    @points = 0
  end
 
  def level_up
    requiem_upgwnd_lvlup
    @points += Points_Gained
  end
 
end

#------------------------------------------------------------------------------
class Requiem_UpgradeWindow < Window_Base
 
  def initialize(actor)
    super(0,0,320,320)
    @actor = actor
    update
  end
 
  def update
    self.contents.clear
    draw_actor_face(@actor,0,0,92)
    draw_actor_name(@actor,160,0)
    self.contents.font.color = normal_color
    self.contents.draw_text(224,32,64,WLH,@actor.level)
    self.contents.draw_text(224,24*2,64,WLH,@actor.points)
    self.contents.draw_text(128,24*5,96,WLH,@actor.maxhp)
    self.contents.draw_text(128,24*6,96,WLH,@actor.maxmp)
    self.contents.draw_text(128,24*7,96,WLH,@actor.atk)
    self.contents.draw_text(128,24*8,96,WLH,@actor.def)
    self.contents.draw_text(128,24*9,96,WLH,@actor.spi)
    self.contents.draw_text(128,24*10,96,WLH,@actor.agi)
    refresh
  end
 
  def refresh
    self.contents.font.color = system_color
    self.contents.draw_text(128,32,128,WLH,Vocab::level+":")
    self.contents.draw_text(128,24*2,128,WLH,"Punkty:")
    self.contents.draw_text(0,24*5,128,WLH,Vocab::hp_a+":")
    self.contents.draw_text(0,24*6,128,WLH,Vocab::mp_a+":")
    self.contents.draw_text(0,24*7,128,WLH,Vocab::atk+":")
    self.contents.draw_text(0,24*8,128,WLH,Vocab::def+":")
    self.contents.draw_text(0,24*9,128,WLH,Vocab::spi+":")
    self.contents.draw_text(0,24*10,128,WLH,Vocab::agi+":")
  end
 
end
#------------------------------------------------------------------------------
class Scene_RequiemUpgrade < Scene_Base
 
  def initialize(actor_index=0, from_menu=false)
    create_menu_background
    @actor_index = actor_index
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background
    @actor = $game_party.members[@actor_index]
    @requiem_upgwindow = Requiem_UpgradeWindow.new(@actor)
    @requiem_upgwindow.x = (544 - @requiem_upgwindow.width) / 2
    @requiem_upgwindow.y = (416 - @requiem_upgwindow.height) / 2
    @requiem_upgcmdwnd  = Window_Command.new(64,[" +"," +"," +"," +"," +"," +"])
    @requiem_upgcmdwnd.index = 0
    @requiem_upgcmdwnd.x = @requiem_upgwindow.x + 192
    @requiem_upgcmdwnd.y = @requiem_upgwindow.y + 120
    @requiem_upgcmdwnd.opacity = 0
  end
 
  def update
    super
    update_menu_background
    @requiem_upgwindow.update
    @requiem_upgcmdwnd.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Menu.new(4)
    elsif Input.trigger?(Input::C)
      if @actor.points > 0
        Sound.play_decision
      else
        Sound.play_buzzer
        return
      end
      case @requiem_upgcmdwnd.index
      when 0
        @actor.points -= 1
        @actor.maxhp += 10
      when 1
        @actor.points -= 1
        @actor.maxmp += 10
      when 2
        @actor.points -= 1
        @actor.atk += 1
      when 3
        @actor.points -= 1
        @actor.def += 1
      when 4
        @actor.points -= 1
        @actor.spi += 1
      when 5
        @actor.points -= 1
        @actor.agi += 1
      end
    end
  end
 
  def terminate
    super
    dispose_menu_background
    @requiem_upgwindow.dispose
    @requiem_upgcmdwnd.dispose
  end
   
end
#------------------------------------------------------------------------------
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

#------------------------------------------------------------------------------
class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

________________________


 
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Pon 01 Lis, 2010 17:50
Dzięki wielkie Ayene!!!

PS. Czy mogłabyś jeszcze dodać samo wyskakujące okno?
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pon 01 Lis, 2010 20:08
Nie rozumiem. Samo wyskakujące?
________________________


 
 
 
FireBlade 




Preferowany:
RPG Maker VX

Pomogła: 8 razy
Dołączyła: 04 Kwi 2010
Posty: 243
Skąd: Opole
Wysłany: Pon 01 Lis, 2010 20:23
Chodziło mu chyba o floating windows od thieffera czyli wyskakujące okienka w Ruby
________________________
"Nigdy się nie tłumacz, przyjaciele tego nie potrzebują a wrogowie i tak nie uwierzą.,"

"Oklaski są z łaski a brawa to wielka sprawa"

"Akcpetuję tylko wodę, mountain dew i coca colę zero..."

DeviantArt : http://divinekataroshie.deviantart.com/
 
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Wto 02 Lis, 2010 20:32
Podawałaś na forum dodatek z samo wyskakującym oknem (z rozdawaniem punktów) po zdobyciu levela.Jeśli już jest to przepraszam za kłopot.
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 03 Lis, 2010 19:11
Sprawdź ten temat :arrow: http://www.ultimateam.pl/...p?p=18014#18014
________________________


 
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Sro 03 Lis, 2010 19:56
Tak, ale żeby to był ten skrypt
Ayene napisał/a:
Podmień za Poziom plus
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 03 Lis, 2010 20:24
Sprawdź ten skrypt:
Spoiler:

Kod:
#==============================================================================
# Requiem Upgrade
# Autor: Requiem
# Zamieścił: Karsznickus
# Modyfikacja z samowyskakującym oknem: Ayene
#==============================================================================

module Ayene
 
  # Samowyświetlające się okno - przy każdym następnym awansie okno samo będzie
  # się pojawiać
  OKNO_UP = true    # true / false
 
end

Points_Gained = 5 # Ilość punktów co poziom

#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
 
  attr_accessor :points
 
  alias requiem_upgwnd_initialize initialize
  alias requiem_upgwnd_lvlup level_up
 
  def initialize(actor_id)
    requiem_upgwnd_initialize(actor_id)
    @points = 0
  end
 
  def level_up
    requiem_upgwnd_lvlup
    @points += Points_Gained
    # gdy awans na poziom następuje poprzez bezpośrednie dodanie exp drużynie
    if Ayene::OKNO_UP == true
      $scene = Scene_RequiemUpgrade.new(0,false) unless $game_temp.in_battle == true     
    end
    end
end

# by Ayene
# okno ze statystykami wyświetla się po walce, gdy ktoś z drużyny ma awans
if Ayene::OKNO_UP == true
class Scene_Battle < Scene_Base   
  alias ayene_proc_vic process_victory
  def process_victory
    ayene_proc_vic   
    if $game_party.members.any? {|actor| actor.points > 0}
      $scene = Scene_RequiemUpgrade.new(0,false)
    else
     battle_end(0)
    end
  end
end
end
# koniec

#------------------------------------------------------------------------------
class Requiem_UpgradeWindow < Window_Base
 
  def initialize(actor)
    super(0,65,320,320)
    @actor = actor
    update
  end
 
  def update
    self.contents.clear
    draw_actor_face(@actor,0,0,92)
    draw_actor_name(@actor,160,0)
    self.contents.font.color = normal_color
    self.contents.draw_text(224,28,64,WLH,@actor.level)
    self.contents.draw_text(224,26*2,64,WLH,@actor.points)
    self.contents.draw_text(128,24*5,96,WLH,@actor.maxhp)
    self.contents.draw_text(128,24*6,96,WLH,@actor.maxmp)
    self.contents.draw_text(128,24*7,96,WLH,@actor.atk)
    self.contents.draw_text(128,24*8,96,WLH,@actor.def)
    self.contents.draw_text(128,24*9,96,WLH,@actor.spi)
    self.contents.draw_text(128,24*10,96,WLH,@actor.agi)
    refresh
  end
 
  def refresh
    self.contents.font.color = system_color
    self.contents.draw_text(128,28,128,WLH,Vocab::level+":")
    self.contents.draw_text(128,26*2,128,WLH,"Punkty:")
    self.contents.draw_text(0,24*5,128,WLH,Vocab::hp_a+":")
    self.contents.draw_text(0,24*6,128,WLH,Vocab::mp_a+":")
    self.contents.draw_text(0,24*7,128,WLH,Vocab::atk+":")
    self.contents.draw_text(0,24*8,128,WLH,Vocab::def+":")
    self.contents.draw_text(0,24*9,128,WLH,Vocab::spi+":")
    self.contents.draw_text(0,24*10,128,WLH,Vocab::agi+":")
  end
 
end

# by Ayene
# Niewielka modyfikacja Window_Help
class Window_Help < Window_Base
  def initialize (y = 0, width = 544)
    super(0, y, width, WLH + 32)
  end
end
# koniec
#------------------------------------------------------------------------------
class Scene_RequiemUpgrade < Scene_Base
 
  def initialize(actor_index=0, from_menu=false)
    create_menu_background
    @actor_index = actor_index
    @from_menu = from_menu
  end
 
  def start
    super
    create_menu_background   
    @actor = $game_party.members[@actor_index]
    @requiem_upgwindow = Requiem_UpgradeWindow.new(@actor)
    @requiem_upgwindow.x = (544 - @requiem_upgwindow.width) / 2
    @requiem_upgcmdwnd  = Window_Command.new(64,[" +"," +"," +"," +"," +"," +"])
    @requiem_upgcmdwnd.index = 0
    @requiem_upgcmdwnd.x = @requiem_upgwindow.x + 192
    @requiem_upgcmdwnd.y = @requiem_upgwindow.y + 120
    @requiem_upgcmdwnd.opacity = 0
    # by Ayene
    # Dodany Window_Help
    @help_window = Window_Help.new (10, 320)
    @help_window.x = (544 - @requiem_upgwindow.width) / 2
    @help_window.set_text("L/R - Zmiana bohatera",1)
    # koniec
  end

# by Ayene
# następny / poprzedni bohater
  def next_actor
    @actor_index += 1
    @actor_index %= $game_party.members.size
    if @from_menu == true
    $scene = Scene_RequiemUpgrade.new(@actor_index,true)
    else
    $scene = Scene_RequiemUpgrade.new(@actor_index,false)
    end
  end
 
  def prev_actor
    @actor_index += $game_party.members.size - 1
    @actor_index %= $game_party.members.size
    if @from_menu == true
    $scene = Scene_RequiemUpgrade.new(@actor_index,true)
    else
    $scene = Scene_RequiemUpgrade.new(@actor_index,false)
    end
  end
# koniec
 
  def update
    super
    update_menu_background
    @requiem_upgwindow.update
    @requiem_upgcmdwnd.update
    @help_window.update
    if Input.trigger?(Input::B)
      Sound.play_cancel
      if @from_menu
        $scene = Scene_Menu.new(4)
      else
        $scene = Scene_Map.new
      end
    # by Ayene
    # następny / poprzedni bohater
    elsif Input.trigger?(Input::R)
      Sound.play_cursor
      next_actor
    elsif Input.trigger?(Input::L)
      Sound.play_cursor
      prev_actor
    # koniec   
    elsif Input.trigger?(Input::C)
      if @actor.points > 0
        Sound.play_decision
      else
        Sound.play_buzzer
        return
      end
      case @requiem_upgcmdwnd.index
      when 0
        @actor.points -= 1
        @actor.maxhp += 10
      when 1
        @actor.points -= 1
        @actor.maxmp += 10
      when 2
        @actor.points -= 1
        @actor.atk += 1
      when 3
        @actor.points -= 1
        @actor.def += 1
      when 4
        @actor.points -= 1
        @actor.spi += 1
      when 5
        @actor.points -= 1
        @actor.agi += 1
      end     
    end
  end
 
  def terminate
    super
    dispose_menu_background
    @requiem_upgwindow.dispose
    @requiem_upgcmdwnd.dispose
    @help_window.dispose
  end
   
end

#------------------------------------------------------------------------------
class Scene_File < Scene_Base
  def return_scene
    if @from_title
      $scene = Scene_Title.new
    elsif @from_event
      $scene = Scene_Map.new
    else
      $scene = Scene_Menu.new(5)
    end
  end
end

#------------------------------------------------------------------------------
class Scene_End < Scene_Base
  def return_scene
    $scene = Scene_Menu.new(6)
  end
end

________________________


 
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Czw 04 Lis, 2010 14:04
Tak to to, temat do zamknięcia.
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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