Paski HP przeciwników - Crashykk - 02-05-13 15:24
~ Basic Enemy HP Bars ~
Krótki opis:
Skrypt wyświetla nam nad/pod przeciwnikami bardzo ładne paski pokazujące ich życie. Możemy ustalać ich długość, szerokość, kolor, możemy włączać i wyłączać wyświetlanie wartości liczbowych, etc.
Autor:
V.M. & D.T.
Tłumaczenie:
Angius
Skrypt:
Kod:
## Basic Enemy HP Bars ##
# Dodaje łatwe do dostosowania paski HP przeciwników. Zobacz konfigurację
# po więcej szczegółów.
#
# Użytkowania: Plug'n'Play.
#------#
#-- Script by: V.M of D.T
#--- Używaj gdzie chcesz, byleby były creditsy
class Window_HPBar < Window_Base
#-----#
#Ustawia kolor paska: (wartości w RGB, 0-255)
#-----#
COLOR_OUTSIDE = Color.new( 0, 0, 0) #Ramka paska
COLOR_INSIDE = Color.new(255,255,255) #Baza paska
COLOR_BACK = Color.new( 0, 0, 0) #Tło paska
COLOR_HP = Color.new(250, 50, 50) #Pierwszy kolor gradientu paska
COLOR_HP2 = Color.new(150, 30, 30) #Drugi kolor gradientu paska
#-----#
#Ustawia parametry paska
#-----#
BAR_HEIGHT = 8 #Wysokość paska (5 lub więcej)
BAR_WIDTH = 75 #Długośc paska (5 lub więcej)
#-----#
#Ustawia położenie paska
#-----#
X_OFFSET = -35 #Przesunięcie względem osi X
Y_OFFSET = 0 #Przesunięcie względem osi Y
ABOVE_MONSTER = true #True - pasek nad battlerem, false - pod
#-----#
#Ustawia wartości numeryczne pasków
#-----#
DISPLAY_NUMBER= false #True by wyświetlić HP liczbowo
SHOW_ABSOLUTE = false #True dla liczby całkowitej, false dla procentowej wartości
DISPLAY_ABOVE = false #True - numer nad paskiem, false - pod
THRESHOLD = 101 #Pokazuje numer tylko poniżej tej wartości
#(101 pokazuje zawsze)
#-----#
# KONIEC KONFIGURACJI
#-----#
def initialize
super(0,0,544,416)
self.z = 0
self.opacity = 0
end
def update
refresh
end
def refresh
self.contents.clear
for enemy in $game_troop.members
if enemy.hp_rate != 0
hpwidth = ((BAR_WIDTH - 4) * enemy.hp_rate).to_i
if ABOVE_MONSTER
tmpbit = Cache.battler(enemy.battler_name, 0)
yy = (enemy.screen_y - tmpbit.height) - 35 + Y_OFFSET
if yy < BAR_HEIGHT + 24 then yy = BAR_HEIGHT + 24 end
else
yy = enemy.screen_y + Y_OFFSET
end
xx = enemy.screen_x + X_OFFSET
self.contents.fill_rect(xx, yy, BAR_WIDTH, BAR_HEIGHT, COLOR_OUTSIDE)
self.contents.fill_rect(xx+1,yy+1, BAR_WIDTH-2, BAR_HEIGHT-2, COLOR_INSIDE)
self.contents.fill_rect(xx+2,yy+2, BAR_WIDTH-4, BAR_HEIGHT-4, COLOR_BACK)
self.contents.gradient_fill_rect(xx+2,yy+2, hpwidth, BAR_HEIGHT-4, COLOR_HP, COLOR_HP2)
if DISPLAY_NUMBER
percentage = enemy.hp_rate * 100
if DISPLAY_ABOVE then yy -= BAR_HEIGHT + 24 end
if SHOW_ABSOLUTE
draw_text(xx,yy+BAR_HEIGHT,width,24,enemy.hp)
elsif percentage < THRESHOLD
draw_text(xx,yy+BAR_HEIGHT,width,24,percentage.to_i.to_s + "%")
end
end
end
end
end
end
class Scene_Battle < Scene_Base
alias hpbar_update update
alias hpbar_create_all_windows create_all_windows
def update
@wdam.update
hpbar_update
end
def create_all_windows
hpbar_create_all_windows
@wdam = Window_HPBar.new
end
end
Screeny:
RE: Paski HP przeciwników - MrDawnok - 03-05-13 09:42
Możliwość edycji pasków czyni go dla mnie atrakcyjnym ;)
Na 100% użyję.
RE: Paski HP przeciwników - pepczakk - 26-08-13 02:12
Przydatny skrpyt, możliwy do edycji, już go używam :)
RE: Paski HP przeciwników - Nexter - 05-04-16 07:47
Skrypt bardzo przydatny! Brakuje jeszcze tylko pasków MP...
RE: Paski HP przeciwników - dudekmenPL - 20-04-16 20:37
jest taki bajer na xp ?
RE: Paski HP przeciwników - Mateusz SSJ8 - 26-04-16 07:41
@dudekmenPL
W zasadzie zapewne jest, ale można samemu napisać coś takiego.Przykładowo zrzut ekranu z jednego z projektów, nad którymi aktualnie pracuję. Wygląd może się różnić w finalnej wersji.
![[Obrazek: SsZp5IM.png]](http://i.imgur.com/SsZp5IM.png)
Od góry
+Pasek zdrowia bohatera - po lewej liczba
+Pasek magii bohatera - po lewej liczba
+Pasek wytrzymałości bohatera - po lewej liczba
+Nazwa przeciwnika - będzie pokazywać się tylko przy bossie.
+Pasek zdrowia przeciwnika -będzie pokazywać się tylko przy bossie.
Grafika odpowiadająca za paski nie jest jeszcze kompletna, ale to z niej są one wczytywane.
![[Obrazek: 4NjA64T.png]](http://i.imgur.com/4NjA64T.png)
Tak mnie naszło, że się podzielę swoim rozwiązaniem.
RE: Paski HP przeciwników - Yotta - 06-11-16 22:07
Da się ukryć pasek dla wybranych potworów?
RE: Paski HP przeciwników - Mateusz SSJ8 - 09-11-16 22:09
Może i by się dało, ale to wymagałoby skryptowania, a niektórym się nie chce. Ewentualnie, że paski pojawiają się w określonym miejscu lub podczas ataku w określonym momencie.
RE: Paski HP przeciwników - AlmostNoRuby - 10-11-16 20:42
Chciałem tam wcisnąć przełącznik $health_bars[index] po linijce if enemy.hp_rate != 0, ale albo wyskakuje błąd, albo efekt jest komleptnie odwrotny.
|