[VX] HP Wrogów

Problemy związane z pracą w RM, poszukiwania współpracowników. Uwaga na zasady zakładania tematów!

Moderatorzy: GameBoy, Dragon Kamillo

ODPOWIEDZ
Awatar użytkownika
Yoroiookami

GF 2019 - Pełne Wersje (miejsce 2); GF 2017 - Dema (miejsce 1); GF 2015 - Pełne Wersje (miejsce 2); GF 2014 - Pełne Wersje (miejsce 3); GF 2010 - Gry (miejsce 2); GF Special III - Recenzje (zwycięstwo)
Posty: 679
Rejestracja: 02 wrz 2014, 12:45

[VX] HP Wrogów

Post autor: Yoroiookami »

Poszukuję skryptu, który wyświetlałby punkty życia przeciwników podczas walki. Ten skrypt poniżej robi dokładnie to. Lecz przy większej ilości przeciwników, te paski zajmują połowę ekranu, ładnie zasłaniając battlery. :<
Dodatkowo, ukryci przeciwnicy też mają taki pasek niezależnie od tego czy już się pojawili, czy nie.

Zna ktoś może inny skrypt? Najlepiej taki, który pokazywałby HP tylko w chwili wybierania celu. :>
A jeżeli nie, to mógłby ktoś pomniejszyć te paski mniej więcej o połowę, łącznie z napisami? Zwyczajnie szkoda mi tego całego miejsca i dosyć brzydko to wygląda.

Dodam, że dużo już szukałem po internecie, ale niczego nie znalazłem. :|
Obrazek

Kod: Zaznacz cały

# HP/MP PRZECIWNIKÓW POPRAWIONE PRZEZ OZZMA
#======================================================================
module OZZMA
 
  ALWAYS_UPDATE = true  # BIEŻĄCA AKTUALIZACJA KONDYCJI PRZECIWNIKA   
  SPACING_X = 80    # WOLNA PRZESTRZEŃ MIĘDZY BARAMI (POZIOM)   
  SPACING_Y = 40        #   WOLNA PRZESTRZEŃ MIĘDZY BARAMI (PION)
  COLUMNS = 4             # LICZBA KOLUMN Z HP PRZECIWNIKA
  SHOW_STATES = true     # POKAZUJE STATUSY PRZECIWNIKA
                           
end
                       
#======================================================================
# Start Game_System Edit
#======================================================================
class Game_System
  attr_accessor :enemy_hp       # Show enemy HP on battle
 
  alias flower_system_initialize_enemy_hp initialize
#=============================================
# Initialize Values
#=============================================
  def initialize
    # Initialize enemy hp window to true
    @enemy_hp = true
    # Call previous methods
    flower_system_initialize_enemy_hp
  end
 
end # END Game system Edit
 

class Window_Base
#====================================
# Define Enemy Name                 
#====================================
  def draw_enemy_name(enemy, x, y)
    self.contents.font.color = normal_color
    self.contents.draw_text (x, y, 120, 32, enemy.name)
  end
 
#==========================
# Define Enemy State
#========================
  def draw_enemy_state(enemy, x, y)
    count = 0
    for state in enemy.states
      draw_icon(state.icon_index, x + 24 * count, y)
      count += 1
      break if (24 * count > width - 24)
    end
  end
#--------------------------------------------------------------------------
# * Draw Enemy HP
#     actor : actor
#     x     : draw spot x-coordinate
#     y     : draw spot y-coordinate
#     width : Width
#--------------------------------------------------------------------------
  def draw_enemy_hp(enemy, x, y, width = 120)
    draw_enemy_hp_gauge(enemy, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
    last_font_size = self.contents.font.size
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 44, y, 44, WLH, enemy.hp, 2)
    else
      self.contents.draw_text(xr - 99, y, 44, WLH, enemy.hp, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 55, y, 11, WLH, "/", 2)
      self.contents.draw_text(xr - 44, y, 44, WLH, enemy.maxhp, 2)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw HP gauge
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     width : Width
  #--------------------------------------------------------------------------
  def draw_enemy_hp_gauge(enemy, x, y, width = 120)
    gw = width * enemy.hp / enemy.maxhp
    gc1 = hp_gauge_color1
    gc2 = hp_gauge_color2
    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
 
end #End of Window_Base Class


#=====================================#
# Window_EnemyHP                      # 
# Class handles window for Enemy's HP #
#=====================================#
class Window_EnemyHP < Window_Selectable
  def initialize
    super ( 0, 0, 545, 300)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    @column_max = OZZMA::COLUMNS
    refresh
  end
 
  def refresh
    self.contents.clear
    for i in 0...$game_troop.members.size
      enemy = $game_troop.members[i]
      x = i % @column_max * (OZZMA::SPACING_X + @spacing)
   
if OZZMA::SHOW_STATES
      y = (i / @column_max * (OZZMA::SPACING_Y + WLH) )
    else
      y = (i / @column_max * ((OZZMA::SPACING_Y - 34) + WLH) )
    end
     #========================================
      # If Using Game_Switch
      #=========================================
        if OZZMA::SHOW_STATES
        draw_enemy_state(enemy, x, y +44)
        end
   
      #==========================================
      # If Using Script Switch
      #==========================================
     
        if $game_system.enemy_hp == true # Start check if Window Flag is On
          draw_enemy_hp(enemy, x, y+20, 90)
          draw_enemy_name(enemy, x, y)
          if OZZMA::SHOW_STATES
          draw_enemy_state(enemy, x, y +44)
          end # END CHECK
        end #End flag check
     
      end
  end #End Refresh

end #End of Window_EnemyHP Class

#====================================#
# Scene_Battle                       #
# New methods that were aliased:     #
#====================================#
class Scene_Battle
 
alias flower_create_info_viewport create_info_viewport
alias flower_dispose_info_viewport dispose_info_viewport
alias flower_start_item_selection start_item_selection
alias flower_start_skill_selection start_skill_selection
alias flower_end_item_selection end_item_selection
alias flower_end_skill_selection end_skill_selection
alias flower_process_victory process_victory

alias flower_update_info_viewport update_info_viewport

alias flower_start_party_command_selection start_party_command_selection
alias flower_execute_action execute_action
alias flower_turn_end turn_end

# Create Information
def create_info_viewport
   flower_create_info_viewport
   @enemy_window = Window_EnemyHP.new
end
# Dispose Information
def dispose_info_viewport
   flower_dispose_info_viewport
   @enemy_window.dispose
end

#=============================================
# Always Update Window
#============================================
def update_info_viewport
  if OZZMA::ALWAYS_UPDATE == true
    @enemy_window.refresh
    flower_update_info_viewport
  else
    flower_update_info_viewport
  end
end

#=============================================
# Update Only When Turn starts and ends
#============================================
def start_party_command_selection
  if OZZMA::ALWAYS_UPDATE == true
    flower_start_party_command_selection
    else
    @enemy_window.visible = true
    @enemy_window.refresh
    flower_start_party_command_selection
  end
end

def execute_action
  if OZZMA::ALWAYS_UPDATE == true
    flower_execute_action
  else
    @enemy_window.visible = false
    flower_execute_action
  end
end

def turn_end
  if OZZMA::ALWAYS_UPDATE == true
    flower_turn_end
  else
    @enemy_window.refresh
    flower_turn_end
  end
end
#============================================
# END OF UPDATE CHECK
#===========================================

#=====================================
# Remove Window During Selection 
def start_item_selection
   @enemy_window.visible = false
   flower_start_item_selection
end
# Remove Window During Selection
def start_skill_selection
   @enemy_window.visible = false
   flower_start_skill_selection
end
# True Visibility after slection
def end_item_selection
   flower_end_item_selection
   @enemy_window.visible = true
end
# True Visibility after selection
def end_skill_selection
   flower_end_skill_selection
   @enemy_window.visible = true
end
# Refresh When Victorious
def process_victory
   @enemy_window.refresh
   flower_process_victory
  end

#=====================================#
# End of Scene_Battle Method Edits    #
#=====================================#

end

# HP/MP PRZECIWNIKÓW POPRAWIONE PRZEZ OZZMA
Obrazek
Obrazek
Awatar użytkownika
Revlis

Golden Forki 2016 - Pełne Wersje (miejsce 3) Dema (miejsce 3); Golden Forki 2016 - Pełne Wersje (miejsce 3) Dema (miejsce 2); Konrad Championship I (wyróżnienie)
Posty: 151
Rejestracja: 13 wrz 2016, 22:59
Lokalizacja: Kraina RM

Re: [VX] HP Wrogów

Post autor: Revlis »

https://i.imgur.com/YV2qRz2.png
Revlis to śmierdzący leń.
Zbija bąki cały dzień.
Awatar użytkownika
Yoroiookami

GF 2019 - Pełne Wersje (miejsce 2); GF 2017 - Dema (miejsce 1); GF 2015 - Pełne Wersje (miejsce 2); GF 2014 - Pełne Wersje (miejsce 3); GF 2010 - Gry (miejsce 2); GF Special III - Recenzje (zwycięstwo)
Posty: 679
Rejestracja: 02 wrz 2014, 12:45

Re: [VX] HP Wrogów

Post autor: Yoroiookami »

Idealnie. Dziękuję ci, Revlisku. :>
Obrazek
Obrazek
ODPOWIEDZ