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 Jednoosobowe [VX]
Autor Wiadomość
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Wto 27 Kwi, 2010 11:52
Menu Jednoosobowe [VX]
~ Menu Jednoosobowe [VX] ~

Krótki opis
Skrypt zmienia menu na jednoosobowe - wyświetlane są dane tylko pierwszej osoby w drużynie.

Autor skryptu
Matheus2

Poprawki
Ayene [yurika@o2.pl]

Kompatybilność
Tylko VX.

Skrypt
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, 240, 294, 176)
    @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, 240, 250, 176)
    @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, 57, 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, 184)
    @status_window = Window_MenuStatus.new(160, 0)
    @map_window = Window_Map.new(160, 184)
    @equips_window = Window_Equips.new($game_party.members[0])
    @time_window = Window_Time.new(400, 184)
    @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 = Vocab::save
    s6 = Vocab::game_end
    @command_window = Window_Command.new(544,[s1, s2, s3, s4, s5, s6],6,0,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(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
        $scene = Scene_Skill.new(0)
      when 2
        $scene = Scene_Equip.new(0)
      when 3
        $scene = Scene_Status.new(0)
      when 4
        $scene = Scene_File.new(true, false, false)
      when 5
        $scene = Scene_End.new
      end
    end
  end
end


Demo
niepotrzebne

Screenshot
Spoiler:


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

Piszcie w razie problemów.
________________________


 
 
 
mjack1234 




Preferowany:
RPG Maker VX

Dołączył: 02 Kwi 2010
Posty: 18
Wysłany: Sro 28 Kwi, 2010 09:27
Dzięki!
Zadziałało....ale czy mi się zdaję czy strona wygasła na parę dni??

[ Dodano: Sro 28 Kwi, 2010 19:04 ]
Mam prośbę.czy dało by się to samo zrobić(z charem zamiast awatara)w menu status.Nie używam żadnego skryptu na status window.

(Sorki że double postuje ale chciałem mieć pewność aby ktoś zauważył nowy wpis)
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 29 Kwi, 2010 15:26
Wejdź w klasę 'Window_Status', znajdź:
Kod:
draw_actor_face(@actor, 8, 32)

i zamień na:
Kod:
draw_actor_graphic(@actor, 40, 80)
________________________


 
 
 
mjack1234 




Preferowany:
RPG Maker VX

Dołączył: 02 Kwi 2010
Posty: 18
Wysłany: Czw 29 Kwi, 2010 18:06
Dzięki Ayene jesteś Boska !!!
Wiem że to jest lamowate wystarczyło zmienić jeden napis i położenie :mrgreen:
Ale może wiesz jakiś poradnik skryptowania zawsze chciałem tworzyć własne skrypty nie takie zaawansowane ale zawsze.
________________________
Chrono Cross.
 
 
 
cj2 




Preferowany:
RPG Maker VXAce

Ranga RM:
1 gra

Pomógł: 6 razy
Dołączył: 07 Mar 2010
Posty: 261
Skąd: Gliwice
Wysłany: Sro 02 Cze, 2010 06:16
W menu nie ma rozdawania punktów co poziom. Jak to zrobić?
________________________
Porady dla twórców gier
Nie ma śniegu, a zgubiłem normalny avatar :I
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: Pią 29 Paź, 2010 18:49
Nie działa mi.Może być to spowodowane skryptem rozdawanie punktów co poziom lub błędami polskiego makera.W czystym projekcie działa.PS.Mam też skrypt "Nazwa lokacji w menu"
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 30 Paź, 2010 09:20
W skrypcie wmontowana jest już nazwa lokacji na mapie, więc niepotrzebny jest Tobie dodatkowy skrypt. A co do połączenia skryptu rozdawania punktów z menu, to złóż osobne zamówienie w odpowiednim dziale, a zobaczę, co da się zrobić.
________________________


 
 
 
tracersgta 




Preferowany:
RPG Maker VX

Pomógł: 45 razy
Dołączył: 10 Sty 2011
Posty: 612
Skąd: mam wiedzieć?
Wysłany: Nie 30 Paź, 2011 11:25
Odświeżę ten tamet, akurat kiedy mija rok od ostatniego postu. Potrzebuję aby skrypt był kompatybilny z Reqiem Upgrade(pkt. co poziom), bo dzieje się takie coś:
Spoiler:



POMOCY :cry: !
________________________
I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!

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




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 30 Paź, 2011 12:00
Podmień skrypt na Menu na poniższy:
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 = "Punkty"
    s6 = Vocab::save
    s7 = Vocab::game_end   
    @command_window = Window_Command.new(544,[s1, s2, s3, s4, s5, s6, s7],4,0,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(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
        $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, true)
      when 5
        $scene = Scene_File.new(true, false, false)
      when 6
        $scene = Scene_End.new
      end
    end
  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



W skrypcie na rozdawanie punktów znajdź:
Kod:
class Scene_Menu < Scene_Base

i usuń wszystko co jest poniżej łącznie z tą linijką.
________________________


 
 
 
tracersgta 




Preferowany:
RPG Maker VX

Pomógł: 45 razy
Dołączył: 10 Sty 2011
Posty: 612
Skąd: mam wiedzieć?
Wysłany: Nie 30 Paź, 2011 12:45
Ayene to synonim do słowa "niezawodność" :mrgreen: . Dzięki wielkie!!!
________________________
I'm a tiger! I roar. I hunt, I climb, I eat, I wash, I sleep!

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




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 10 Kwi 2010
Posty: 88
Wysłany: Wto 24 Sty, 2012 20:06
Witajcie... Wiem, wiem... Miałem nie mieć problemów :killer:
Ale cóż... Wpadłem na pomysł i się pytam:
Czy nie można by, tam jak po prawej jest tyle miejsca, wstawić np. paska EXP (choć on by mógł być pod HP i MP), albo liczacza (wiem, że to niepoprawne...) kroków?
I tu moja prośba, drodzy skrypterzy, czy mógłby mi ktoś w tamto miejsce wstawić licznik kroków, lub inny bajer i pasek EXP pod HP i MP?
Z góry dzięki, jak będziecie mieli chwilę czasu, to może byście mogli się tym zająć. Sprawa nie jest pilna, ale po prostu uważam, że coś mogłoby tam być, a pasek EXP w menu, to coś co lubię :-P
Więc, jakby ktoś miał chwilę czasu i zdolnośći, to gdyby mógł...
Z góry dzięki. :mrgreen:
Wiem, że parę minut temu mówiłem, że postaram się nie mieć problemów... :-o
________________________
Obecny projekt - Chwilowo brak
 
 
 
Pawelsar1 




Preferowany:
RPG Maker VX

Pomógł: 2 razy
Dołączył: 05 Mar 2012
Posty: 52
Skąd: Lublin
Wysłany: Nie 08 Kwi, 2012 15:25
!!!!POMOCY!!!!
Mam problem z tym skryptem. Wszystko mi dobrze wyświetla, ale nie mogę dodać bohatera do drużyny. Mam skrypty odpowiadające za walkę w czasie rzeczywistym i bohater powinien wyświetlać się na mapie, a nie wyświetla.
________________________
ZAGŁOSUJ


Jeśli pomogłem, daj !!!POMÓGŁ!!!
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Nie 08 Kwi, 2012 19:07
Zanim dodałeś ten skrypt wszystko było w porządku? Jakoś nie wydaje mi się...
________________________


 
 
 
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