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 - 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 - 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 - 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)"
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 - Pią 19 Lut, 2010 18:29 Dobra a mam jedno pytanie bo ja jestem nowy na forum. Jak to sciągnąć?Ayene - 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 http://www.ultimateam.pl/viewtopic.php?t=1896radek02 - Pią 19 Lut, 2010 18:32 Morhyg :
skopiuj skrypt Sprocik - 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ć ?FilipsO - 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)Ayene - Czw 03 Cze, 2010 11:00 Na samej górze skryptu masz dodane:
FilipsO - 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.CreeperCrisis - 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 - 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 odpowiedzAyene - 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 - Nie 27 Cze, 2010 10:59 dzieki wielkie, wszystko dziala :)kongi93 - Czw 08 Lip, 2010 22:09 Jestem nowy i mam pytanie czy da się zrobić żeby Okno Hp Mp Exp pokazywało się na rpg maker xp?Ulvran - Czw 08 Lip, 2010 22:10 Od RPG Makera XP jest osobny dział ;)
masz tu linka na HUD do XP'ka
http://www.ultimateam.pl/viewtopic.php?t=2383kongi93 - Pią 09 Lip, 2010 09:56 A. Dzięki za pomoc.PtasiAGrypAA - Sro 25 Sie, 2010 22:37 A wiec ja mam prosbe z innej manki otoz nie moge obczaic jak tworzyc misje w stylu -Misja 1 -idz i zaciukaj 4pelzaki - Misja 2 idz i zaciukaj 4 pszczoly blagam pomoz ktos bo sie z tym mecze... z gory wielkie T.H.X.cj2 - Czw 26 Sie, 2010 07:54 Po zabiciu pszczoły czy pełzka dodaj 1 do zmiennej, a w innym warunku że równe 4
Lub
Wszystko po ustalonej drodze.PtasiAGrypAA - Pią 10 Wrz, 2010 19:49
jajco2 napisał/a:
Po zabiciu pszczoły czy pełzka dodaj 1 do zmiennej, a w innym warunku że równe 4
Lub
Wszystko po ustalonej drodze.
Dzieki ze wogole odpowiedziales , ale jesli mozna by troche jasniej dla nowicjuszy Tjef - Sob 02 Paź, 2010 10:17 Mam mały problem z HUDEM. Znaczy się - wszystko działa, ale zamiast Face Bohatera chciałbym jego character. Ayene - Sob 02 Paź, 2010 19:07 Znajdź w skrypcie:
Tjef - Sob 02 Paź, 2010 20:05 Dzięki Ayene :)Marvolo37 - Pon 11 Paź, 2010 20:12 Yo?Itaki - Pon 18 Paź, 2010 18:28 Fajny skrypt może się przyda w moim projekciePaKiTos - Sro 20 Paź, 2010 15:29 Fajny HUD, przydaje się na ABSy!Angius - Pon 08 Lis, 2010 18:14 A ja mam pytanko... Czy dałoby się maksymalnie zminimalizować tego HUD-a?
W sensie, same paski, bez żadnych napisów. I kolory jakoś zmienić (MP niebieskie, HP czerwone, EXP żółty)?Ayene - Pon 08 Lis, 2010 22:01 Sprawdź to:
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)"
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
class Game_Actor < Game_Battler
def gained_exp(current_level, current_exp)
return (current_exp - @exp_list[current_level])
end
def needed_exp(current_level)
return (@exp_list[current_level + 1] - @exp_list[current_level])
end
end
Jeśli nie chcesz imienia i poziomu usuń linijkę:
Kod:
draw_actor_name_and_level(@actor, 0, WLH * 0)
Angius - Wto 09 Lis, 2010 18:08 Dzięki bardzo :)Avara - Czw 16 Gru, 2010 13:10 Po dodaniu tego skryptu do gry przy próbie jej uruchomienia wyskakuje mi błąd
Pomógłby mi ktoś zrozumieć dlaczego?Ayene - Czw 16 Gru, 2010 13:14 A masz w ogóle jakiegoś bohatera w drużynie?Avara - Czw 16 Gru, 2010 14:51 Tak jednegoAyene - Czw 16 Gru, 2010 14:57 A próbowałaś umieścić skrypt w czystym projekcie? Spróbuj, może to problem kompatybilności. Ewentualnie możesz spakować swój projekt, shostować go na www.mediafire.com i wysłać mi link na PW. Zobaczę wtedy, co w nim jest "nie tak".Avara - Czw 16 Gru, 2010 15:43 W nowym projekcie jest wszystko ok. W tej chwili bawię się różnymi skryptami i któryś musi się najwyraźniej z tym kłócić. Sprawdzę z którym i zobaczymy. Dzięki za pomoc.Killerczyc - Sro 19 Sty, 2011 07:54 A dałoby się usunąć okno - windowskin - wokół HUD'a, by zostały same paski HP/MP?Ayene - Sro 19 Sty, 2011 15:11 A nie możesz zmienić wartości?
Kod:
OPACITY = 100 # Przezroczystość, gdy ukryty [0~255]
Daj 0, a okienko będzie przezroczyste.Killerczyc - Sro 19 Sty, 2011 18:29 Tylko to zadziała jak główny bohater będzie za Hud'em - i właśnie w tym momencie gdy ustawiłem OPACITY = 100 # Przezroczystość, gdy ukryty [0~255] - Okno całkiem znikło...
Chodziło mi o usunięcie tła a pozostawienie pasków HP/MP i nie gdy bohater wejdzie za Hud.
Mam nadzieje że pomożesz Ayene, bo nie chce mi się tak nabijać postów...Ayene - Wto 25 Sty, 2011 14:58 Podmień skrypt na ten:
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)"
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
Azux - Czw 03 Mar, 2011 17:24 skrypcik fajny ale mam taki pomysl ze na poczatku gry pojawia sie obrazek ze wstepem (w malej wiosc zyl..bleblebel)ten obrazek chcialbym miec na calej mapie lecz zaslania go wlasnie te okienko da sie zrobic jakos zeby on nie pojawial sie na samym poczatku gry tylko po zniknieciu obrazka (obrazek raz sie wyswietla w grze wiec zeby po zmianie mapy okienko bylo odrazu )Seyfer - Sob 19 Mar, 2011 12:15 A dałoby radę przerobić tak ten skrypt, aby HUD pokazywał się po iluś tam sekundach jeżeli nie ruszamy naszym bohaterem?Azzazeal - Nie 10 Kwi, 2011 11:06 Witam.
Mam 2 sprawy co do tego skryptu.
Uno:
Dla mojej gry muszę mieć pustą drużynę startową i chciałbym się dowiedzieć co muszę zrobić żeby nie wywalało błędu jak nie mam żadnego bohatera w drużynie.
Drugo:
Chciałbym zmienić odstępy między tymi paskami.najlepiej jak by były minimalne :)
Pozdrawiam.Ayene - Nie 10 Kwi, 2011 16:11 Można przed wyrzuceniem wszystkich graczy z drużyny wywołać za pomocą polecenia 'Script' w zdarzeniu odpowiednio:
Kod:
# By wyświetlić/ukryć HUD, wywołaj skrypt "hud(true)" lub "hud(false)"
Albo można wrzucić trzy warunki w skrypt:
znajdź linijikę:
Kod:
@index = HUD_HP_MP_EXP_NAME_FACE_LEVEL::ACTOR_ID
linijkę pod nią:
Kod:
new_hud
zamień na:
Kod:
new_hud if $game_party.members.size > 0
następnie znajdź:
Kod:
@hp_mp_exp_name_face_hud.dispose
zamień na:
Kod:
@hp_mp_exp_name_face_hud.dispose if $game_party.members.size > 0
kolejno znajdź:
Kod:
@hp_mp_exp_name_face_hud.update
przed tą linijką dodaj:
Kod:
return if $game_party.members.size == 0
Żeby zmniejszyć odległości między paskami (swoją drogą sprawi to, że napisy będą na siebie nachodzić), wystarczy znaleźć fragment:
na przykładzie pierwszej linijki, argumenty w nawiasie odpowiadają kolejno:
@actor - bohater, którego parametry mają zostać wyświetlone
0 - współrzędna x paska,
WLH * 1 - współrzędna y paska, gdzie WLH to stała wartość odległości między kolejnymi liniami w oknach, taka interlinia, która domyślnie wynosi 24.
@width - długość paska.
Spróbuj edytować tę wartość WLH * 1, np. na '15*1' albo na stałą wartość - 20, itd.
Zastanów się do tego, czy nie lepiej by było skorzystać z tego przerobionego już skryptu http://www.ultimateam.pl/...p?p=52482#52482Azzazeal - Wto 31 Maj, 2011 09:08 Ok dzięki, poradziłem sobie z tym błędem odrobinę inaczej :) a dokładniej w drużynie na początku jest bohater bez twarzy, a potem kiedy ma się gra zacząć to jest dodawany główny bohater i usuwany ten już nie potrzebny pusty :)mazik - Czw 23 Cze, 2011 18:19 THX Zaje skrypt !!! bardzo mi pomogles :)qadam - Sob 01 Paź, 2011 14:04 wiem wiem ...Kenji666 - Nie 29 Lip, 2012 15:18 Siemanko mam pytanie ponieważ wgrałem tego skypta i podczas uruchomiania sie walki wyskakuje mi blad. "Line 88 NoMethodError occured." Co z tym zrobic?