Ogłoszenie 

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


Administracja Forum


Poprzedni temat «» Następny temat
Okno HP MP EXP
Autor Wiadomość
serb7 



Preferowany:
RPG Maker VX

Dołączył: 19 Paź 2009
Posty: 17
Skąd: Lublin
Wysłany: Czw 05 Lis, 2009 15:12
Okno HP MP EXP
Oto skrypt który daje Okno Hp Mp Exp . Myśle że niektórym może się przydać ;-)

Spoiler:

Kod:
################################################################################
#                                                                              #
#                      ~~~~~ Copyright 2009 SojaBird ~~~~~                     #
#                                                                              #
################################################################################
# Tłumaczenie i korekta by Ayene
#
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud"
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud(true)" lub "hud(false)"

module AYENE
  # 0 - lewy górny róg
  # 1 - lewy dolny róg
  # 2 - prawy górny róg
  # 3 - prawy dolny róg
  POŁOŻENIE_HUD = 2
end

module HUD_HP_MP_EXP_NAME_FACE_LEVEL
  HUD_WIDTH = 152   # Szerokość okna
  FACE_OPACITY = 50 # przezroczystość twarzy bohatera [0~255]

  BG_DISPLAY = true # Ukrywa / wyświetla tło [true/false]

  EXP_NAME = "PD" # Tekst wyświetlany jako punkty doświadczenia
 
  ACTOR_ID = 0 # ID bohatera, którego statystyki mają się wyświetlać
               #(actor1=0, actor2=1...actorN=N-1)
 
  HIDE = true # Ukryj okno, gdy bohater jest za nim [true/false]
  OPACITY = 100 # Przezroczystość, gdy ukryty [0~255]
 
  HUD_START_DISPLAY = true # Wyświetlanie HUD od początku gry [true/false]
 
  CYCLE = true # Włącza / wyłącza zmianę bohaterów w drużynie za pomocą L&R
end

################################################################################
def hud(arg = nil)
  $game_system.hud_display = !$game_system.hud_display if arg == nil
  $game_system.hud_display = arg if arg != nil
end
################################################################################
class Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL < Window_Base
  include HUD_HP_MP_EXP_NAME_FACE_LEVEL
 
  attr_reader :index
 
  def initialize(index)
    @index = index
    @height = WLH * 4 + 32
    case AYENE::POŁOŻENIE_HUD
      when 0
       super(0, 0, HUD_WIDTH, @height)
      when 1
       super(0, 416-@height, HUD_WIDTH, @height)
      when 2
       super(544-HUD_WIDTH, 0, HUD_WIDTH, @height)
      when 3
       super(544-HUD_WIDTH, 416-@height, HUD_WIDTH, @height)
    end     
    self.visible = $game_system.hud_display
    self.opacity = OPACITY
    self.opacity = 0 if !BG_DISPLAY
    @actor = $game_party.members[@index]
    @width = HUD_WIDTH - 32
    hide_status
    refresh
  end
 
  def refresh
    contents.clear
    @hp = @actor.hp
    @mp = @actor.mp
    @exp = @actor.exp
    @name = @actor.name
    @level = @actor.level
    @face = [@actor.face_name, @actor.face_index]
    draw_actor_face_picture(@actor, 0, 0, FACE_OPACITY)
    draw_actor_name_and_level(@actor, 0, WLH * 0)
    draw_actor_hp(@actor, 0, WLH * 1, @width)
    draw_actor_mp(@actor, 0, WLH * 2, @width)
    draw_actor_exp_HUD(@actor, 0, WLH * 3, @width)
  end
 
  def hide_status
    if HIDE == true
      if $game_player.screen_x + 16 > self.x and
      $game_player.screen_y + 4 > self.y and
      $game_player.screen_x - 16 < self.x + self.width and
      $game_player.screen_y - 28 < self.y + self.height
        self.opacity = OPACITY if BG_DISPLAY
        self.contents_opacity = OPACITY
      else
        self.opacity = 255 if BG_DISPLAY
        self.contents_opacity = 255
      end
    end
  end
 
  def draw_actor_face_picture(actor, x, y, opacity, size = 94)
    bitmap = Cache.face(actor.face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = actor.face_index % 4 * 96 + (96 - size) / 2
    rect.y = actor.face_index / 4 * 96 + (96 - size) / 2
    rect.width = size
    rect.height = size
    self.contents.blt(x, y, bitmap, rect, opacity)
    bitmap.dispose
  end
 
  def draw_actor_name_and_level(actor, x, y)
    self.contents.font.color = hp_color(actor)
    self.contents.draw_text(x, y, @width - 20 - 24, WLH, actor.name)
    self.contents.font.color = system_color
    x = @width / 2
    width = (@width.to_f / 2) / (32 + 24)
    self.contents.draw_text(x, y, width * 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + width * 32, y, width * 24, WLH, actor.level, 2)
  end
 
  def draw_actor_exp_HUD(actor, x, y, width)
    s1 = actor.exp_s
    s2 = actor.next_rest_exp_s + s1
    if s1.is_a? String or s2.is_a? String
      s1 = actor.exp
      s2 = actor.exp
    end
    draw_actor_exp_gauge(actor, x, y, s1, s2, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, EXP_NAME)
    self.contents.font.color = normal_color
    last_font_size = self.contents.font.size
    xr = x + width   
    self.contents.draw_text(xr - 120, y, 120, WLH, s1, 2)   
  end
 
  def draw_actor_exp_gauge(actor, x, y, s1, s2, width)
    gw = width * s1 / s2
    gc1 = text_color(31)
    gc2 = text_color(27)
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
  def update
    self.visible = $game_system.hud_display
    return if !self.visible
    if @hp != @actor.hp or
      @mp != @actor.mp or
      @exp != @actor.exp or
      @name != @actor.name or
      @level != @actor.level or
      @face != [@actor.face_name, @actor.face_index]
      refresh
    end
    hide_status
  end
end

#------------------------------------------------------------
# * Scene_Map: Attach HUD to map
#------------------------------------------------------------
class Scene_Map < Scene_Base
  alias start_hmexp_name_face_lvl start
  alias terminate_hmexp_name_face_lvl terminate
  alias update_hmexp_name_face_lvl update
  def start
    start_hmexp_name_face_lvl
    @index = HUD_HP_MP_EXP_NAME_FACE_LEVEL::ACTOR_ID
    new_hud
   
  end
  def terminate
    @hp_mp_exp_name_face_hud.dispose
    terminate_hmexp_name_face_lvl
  end
  def update
    update_hmexp_name_face_lvl
    @hp_mp_exp_name_face_hud.update
    return if !HUD_HP_MP_EXP_NAME_FACE_LEVEL::CYCLE
    return if !@hp_mp_exp_name_face_hud.visible
    if Input.trigger?(Input::R)
      if @index == $game_party.members.size - 1
        @index = 0
      else
        @index += 1
      end
    elsif Input.trigger?(Input::L)
      if @index == 0
        @index = $game_party.members.size - 1
      else
        @index -= 1
      end
    end
    new_hud if @index != @hp_mp_exp_name_face_hud.index
  end
 
  def new_hud
    @hp_mp_exp_name_face_hud.dispose if !@hp_mp_exp_name_face_hud.nil?
    @hp_mp_exp_name_face_hud = Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL.new(@index)
  end
end

#------------------------------------------------------------
# * Game_System: Check for display
#------------------------------------------------------------
class Game_System
  alias hud_initialize initialize
  attr_accessor :hud_display
  def initialize
    hud_initialize
    @hud_display = HUD_HP_MP_EXP_NAME_FACE_LEVEL::HUD_START_DISPLAY
  end
end

 
 
Azsak von Triger 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Dołączył: 29 Paź 2009
Posty: 48
Skąd: Gdynia
Wysłany: Czw 05 Lis, 2009 17:20
Cześć :!:
W mojej grze używam ten sam HUD :!:
Tylko ,że zapomniałeś dodać screena a mało kto lubi ściągać na ciemno :-) .
A więc dodaje SCREENA:
 
 
 
Cyklop 




Nagrody:
UFT3 Winner

Ranga RM:
1 gra

Dołączył: 03 Sie 2008
Posty: 54
Skąd: ???
Wysłany: Czw 05 Lis, 2009 17:42
Fajne choć przydałoby się nieco poprawić je graficznie żeby tekstu nie zwężało. Ale i tak wielki plus :)
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Wto 01 Gru, 2009 08:22
Postanowiłam nieco poprawić skrypt zamieszczony przez serb7. Dodałam opcję zmiany położenia HUD - wystarczy zmienić cyfrę przy POŁOŻENIE_HUD. Reszta informacji w skrypcie.

A to skrypt:
Spoiler:

Kod:
################################################################################
#                                                                              #
#                      ~~~~~ Copyright 2009 SojaBird ~~~~~                     #
#                                                                              #
################################################################################
# Tłumaczenie i korekta by Ayene
#
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud"
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud(true)" lub "hud(false)"

module AYENE
  # 0 - lewy górny róg
  # 1 - lewy dolny róg
  # 2 - prawy górny róg
  # 3 - prawy dolny róg
  POŁOŻENIE_HUD = 2 
end

module HUD_HP_MP_EXP_NAME_FACE_LEVEL
  HUD_WIDTH = 152   # Szerokość okna
  FACE_OPACITY = 50 # przezroczystość twarzy bohatera [0~255]

  BG_DISPLAY = true # Ukrywa / wyświetla tło [true/false]

  EXP_NAME = "PD" # Tekst wyświetlany jako punkty doświadczenia
 
  ACTOR_ID = 0 # ID bohatera, którego statystyki mają się wyświetlać
               #(actor1=0, actor2=1...actorN=N-1)
 
  HIDE = true # Ukryj okno, gdy bohater jest za nim [true/false]
  OPACITY = 100 # Przezroczystość, gdy ukryty [0~255]
 
  HUD_START_DISPLAY = true # Wyświetlanie HUD od początku gry [true/false]
 
  CYCLE = true # Włącza / wyłącza zmianę bohaterów w drużynie za pomocą L&R
end

################################################################################
def hud(arg = nil)
  $game_system.hud_display = !$game_system.hud_display if arg == nil
  $game_system.hud_display = arg if arg != nil
end
################################################################################
class Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL < Window_Base
  include HUD_HP_MP_EXP_NAME_FACE_LEVEL
 
  attr_reader :index
 
  def initialize(index)
    @index = index
    @height = WLH * 4 + 32
    case AYENE::POŁOŻENIE_HUD
      when 0
       super(0, 0, HUD_WIDTH, @height)
      when 1
       super(0, 416-@height, HUD_WIDTH, @height)
      when 2
       super(544-HUD_WIDTH, 0, HUD_WIDTH, @height)
      when 3
       super(544-HUD_WIDTH, 416-@height, HUD_WIDTH, @height)
    end     
    self.visible = $game_system.hud_display
    self.opacity = OPACITY
    self.opacity = 0 if !BG_DISPLAY
    @actor = $game_party.members[@index]
    @width = HUD_WIDTH - 32
    hide_status
    refresh
  end
 
  def refresh
    contents.clear
    @hp = @actor.hp
    @mp = @actor.mp
    @exp = @actor.exp
    @name = @actor.name
    @level = @actor.level
    @face = [@actor.face_name, @actor.face_index]
    draw_actor_face_picture(@actor, 0, 0, FACE_OPACITY)
    draw_actor_name_and_level(@actor, 0, WLH * 0)
    draw_actor_hp(@actor, 0, WLH * 1, @width)
    draw_actor_mp(@actor, 0, WLH * 2, @width)
    draw_actor_exp_HUD(@actor, 0, WLH * 3, @width)
  end
 
  def hide_status
    if HIDE == true
      if $game_player.screen_x + 16 > self.x and
      $game_player.screen_y + 4 > self.y and
      $game_player.screen_x - 16 < self.x + self.width and
      $game_player.screen_y - 28 < self.y + self.height
        self.opacity = OPACITY if BG_DISPLAY
        self.contents_opacity = OPACITY
      else
        self.opacity = 255 if BG_DISPLAY
        self.contents_opacity = 255
      end
    end
  end
 
  def draw_actor_face_picture(actor, x, y, opacity, size = 94)
    bitmap = Cache.face(actor.face_name)
    rect = Rect.new(0, 0, 0, 0)
    rect.x = actor.face_index % 4 * 96 + (96 - size) / 2
    rect.y = actor.face_index / 4 * 96 + (96 - size) / 2
    rect.width = size
    rect.height = size
    self.contents.blt(x, y, bitmap, rect, opacity)
    bitmap.dispose
  end
 
  def draw_actor_name_and_level(actor, x, y)
    self.contents.font.color = hp_color(actor)
    self.contents.draw_text(x, y, @width - 20 - 24, WLH, actor.name)
    self.contents.font.color = system_color
    x = @width / 2
    width = (@width.to_f / 2) / (32 + 24)
    self.contents.draw_text(x, y, width * 32, WLH, Vocab::level_a)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + width * 32, y, width * 24, WLH, actor.level, 2)
  end
 
  def draw_actor_exp_HUD(actor, x, y, width)
    s1 = actor.exp_s
    s2 = actor.next_rest_exp_s + s1
    if s1.is_a? String or s2.is_a? String
      s1 = actor.exp
      s2 = actor.exp
    end
    draw_actor_exp_gauge(actor, x, y, s1, s2, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, EXP_NAME)
    self.contents.font.color = normal_color
    last_font_size = self.contents.font.size
    xr = x + width   
    self.contents.draw_text(xr - 120, y, 120, WLH, s1, 2)   
  end
 
  def draw_actor_exp_gauge(actor, x, y, s1, s2, width)
    gw = width * s1 / s2
    gc1 = text_color(31)
    gc2 = text_color(27)
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
 
  def update
    self.visible = $game_system.hud_display
    return if !self.visible
    if @hp != @actor.hp or
      @mp != @actor.mp or
      @exp != @actor.exp or
      @name != @actor.name or
      @level != @actor.level or
      @face != [@actor.face_name, @actor.face_index]
      refresh
    end
    hide_status
  end
end

#------------------------------------------------------------
# * Scene_Map: Attach HUD to map
#------------------------------------------------------------
class Scene_Map < Scene_Base
  alias start_hmexp_name_face_lvl start
  alias terminate_hmexp_name_face_lvl terminate
  alias update_hmexp_name_face_lvl update
  def start
    start_hmexp_name_face_lvl
    @index = HUD_HP_MP_EXP_NAME_FACE_LEVEL::ACTOR_ID
    new_hud
   
  end
  def terminate
    @hp_mp_exp_name_face_hud.dispose
    terminate_hmexp_name_face_lvl
  end
  def update
    update_hmexp_name_face_lvl
    @hp_mp_exp_name_face_hud.update
    return if !HUD_HP_MP_EXP_NAME_FACE_LEVEL::CYCLE
    return if !@hp_mp_exp_name_face_hud.visible
    if Input.trigger?(Input::R)
      if @index == $game_party.members.size - 1
        @index = 0
      else
        @index += 1
      end
    elsif Input.trigger?(Input::L)
      if @index == 0
        @index = $game_party.members.size - 1
      else
        @index -= 1
      end
    end
    new_hud if @index != @hp_mp_exp_name_face_hud.index
  end
 
  def new_hud
    @hp_mp_exp_name_face_hud.dispose if !@hp_mp_exp_name_face_hud.nil?
    @hp_mp_exp_name_face_hud = Window_HUD_HP_MP_EXP_NAME_FACE_LEVEL.new(@index)
  end
end

#------------------------------------------------------------
# * Game_System: Check for display
#------------------------------------------------------------
class Game_System
  alias hud_initialize initialize
  attr_accessor :hud_display
  def initialize
    hud_initialize
    @hud_display = HUD_HP_MP_EXP_NAME_FACE_LEVEL::HUD_START_DISPLAY
  end
end



A tu w razie czego screenshot:
Spoiler:

________________________


 
 
 
Morhyg 




Dołączył: 15 Lut 2010
Posty: 2
Wysłany: Pią 19 Lut, 2010 18:29
Dobra a mam jedno pytanie bo ja jestem nowy na forum. Jak to sciągnąć?
________________________
Pozdro wszystkim!
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pią 19 Lut, 2010 18:31
U góry w spoilerze znajduje się kod, który należy skopiować i wkleić według załączonej instrukcji :arrow: http://www.ultimateam.pl/viewtopic.php?t=1896
________________________


 
 
 
radek02 



Preferowany:
RPG Maker VX

Pomógł: 13 razy
Dołączył: 17 Lut 2010
Posty: 257
Skąd: klikasz ?
Wysłany: Pią 19 Lut, 2010 18:32
Morhyg :
skopiuj skrypt ;-)
________________________
2009-10-12 - dzień , od którego jestem uczestnikiem na polskiej scenie RPG Makera [/b]

Dołącz do grupy makerowiczów na nk ! http://nk.pl/#grupy/29610
 
 
 
Sprocik 




Preferowany:
RPG Maker XP

Pomógł: 1 raz
Dołączył: 20 Maj 2010
Posty: 60
Skąd: Wrocław
Wysłany: Czw 03 Cze, 2010 09:22
witam
dodałem właśnie ten skrypt ale mi się coś nie pokazuje ten HUD co mam robić ?
________________________
''Non omnis moriar''
''Cogito ergo sum''

Spoiler:



^^ New animation by me� ^^

 
 
 
FilipsO 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 1 raz
Dołączył: 21 Maj 2010
Posty: 236
Skąd: z nikąd
Wysłany: Czw 03 Cze, 2010 10:25
Ja mam problem: chcę aby HUD było w lewym dolnym rogu,
ale nie umiem zmienić położenia. Proszę o pomoc.
(nie mówcie tylko abym zmienił cyrfrę przy Położenie_Hud, bo nie umiem)
________________________
89% graczy uważa, że najważniejsza jest grafika.
Jeśli należysz do pozostałych 11% wklej to do swojego podpisu.

Moja Gra MMORPG Erathia:
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 03 Cze, 2010 11:00
Na samej górze skryptu masz dodane:
Kod:
module AYENE
  # 0 - lewy górny róg
  # 1 - lewy dolny róg
  # 2 - prawy górny róg
  # 3 - prawy dolny róg
  POŁOŻENIE_HUD = 2
end


Wystarczy że zmienisz cyferkę przy:
Kod:
POŁOŻENIE_HUD = 2
________________________


 
 
 
FilipsO 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 1 raz
Dołączył: 21 Maj 2010
Posty: 236
Skąd: z nikąd
Wysłany: Czw 03 Cze, 2010 17:53
Wiem, ale mi się to nie zmienia.
Gra się uruchamia, wszystko chodzi,
ale położenie się nie zmienia.
________________________
89% graczy uważa, że najważniejsza jest grafika.
Jeśli należysz do pozostałych 11% wklej to do swojego podpisu.

Moja Gra MMORPG Erathia:
 
 
CreeperCrisis 



Preferowany:
RPG Maker VXAce

Pomógł: 32 razy
Dołączył: 01 Maj 2010
Posty: 395
Wysłany: Sob 05 Cze, 2010 10:08
Sprocik, na samej górze jest fragment:
Kod:
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud(true)" lub "hud(false)"
 
 
Karos 



Dołączył: 26 Cze 2010
Posty: 4
Wysłany: Sob 26 Cze, 2010 18:59
witam wszystkich. jestem poczatkujacy w tych sprawach i mam drobny problem, a mianowicie nie wiem jak w RPG MAKER VX zrobic aby za pomocą klawisza X ( w grze A) wyswietlala sie minimapka, a po ponownym wcisnieciu aby sie wylaczala. prosze o szybka odpowiedz
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sob 26 Cze, 2010 20:07
Najszybciej będzie jak znajdziesz:
Kod:
if Input.trigger?(Input::R)

i dodasz przed tym:
Kod:
if Input.trigger?(Input::X)
      if @hp_mp_exp_name_face_hud.visible
        @hp_mp_exp_name_face_hud.visible = false
      else
        @hp_mp_exp_name_face_hud.visible = true
      end     
    end

oraz znajdziesz i postawisz znaczek "#" na początku poniższych linijek:
Kod:
return if !@hp_mp_exp_name_face_hud.visible

Kod:
self.visible = $game_system.hud_display

Ostania pojawia się dwa razy w skrypcie.
Powinno działać.
________________________


 
 
 
Karos 



Dołączył: 26 Cze 2010
Posty: 4
Wysłany: Nie 27 Cze, 2010 10:59
dzieki wielkie, wszystko dziala :)
 
 
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