Krótki opis
Skrypt dodaje okienko pełne serduszek, reprezentujących pojedyncze punkty zdrowia pierwszej postaci z drużyny. Może przyda się komuś przy robieniu własnego ABSa. Właściwości:
* jeden punkt zdrowia (hp) oznacza jedno serduszko,
* zmiana położenia okienka (jeden z czterech rogów ekranu),
* modyfikacja położenia okienka (konkretne modyfikatory do x i y),
* dowolna ilość mieszczących się serduszek (zależnie od ich szerokości), okienko dopasowuje się do ich rozmiarów i ilości maksymalnych punktów zdrowia,
* okienko aktualizuje się przy każdej zmianie aktualnych punktów zdrowia i rozszerza/zwęża przy zmianie maksymalnych punktów zdrowia,
* okienko zanika, gdy w tle działa scenka.
Autor skryptu
Sabikku/slabix, czyli ja.
Kompatybilność
Tylko XP; nie powinno kłócić się z innymi skryptami.
class Scene_Map
attr_accessor :hud_window
# Main. --------------------------------------------------------
alias sab_map_main main
def main
# Making a hud window.
@hud_window=Window_Hud.new
# Remembering actor hp and maxhp.
@rem_hp=$game_party.actors[0].hp
@rem_maxhp=$game_party.actors[0].maxhp
sab_map_main # Normal initialize.
# Disposing a hud window.
@hud_window.dispose
end
# Update. ------------------------------------------------------
alias sab_map_update update
def update
# Checking actor hp and maxhp.
if @rem_hp!=$game_party.actors[0].hp
@rem_hp=$game_party.actors[0].hp
@hud_window.refresh # Refreshing hearts.
end
if @rem_maxhp!=$game_party.actors[0].maxhp
@rem_maxhp=$game_party.actors[0].maxhp
@hud_window.dispose
@hud_window=Window_Hud.new # Recorrecting a window size.
end
# Updating a hud window.
@hud_window.update
sab_map_update # Normal update.
end
end
# ================================================================
# ACTUAL SCRIPT
# ================================================================
class Window_Hud < Window_Base
# Initialize. --------------------------------------------------
def initialize
# Making a window.
char=$game_party.actors[0]
if ALIGN==3 or ALIGN==4
x=640-16-char.maxhp*HEART_WIDTH; y=480-HEART_HEIGHT-32
else
x=0; y=0
end
width=16+char.maxhp*HEART_WIDTH
super(x+HUD_X_MODIFICATOR, y+HUD_Y_MODIFICATOR, width, HEART_HEIGHT+32)
self.opacity=0
self.contents_opacity=0
# Making a bitmap.
self.contents = Bitmap.new(width - 32, height - 32)
# Drawing contents.
refresh
end
# Update. ------------------------------------------------------
def update
super
# Updating visibility.
unless $game_system.map_interpreter.running?
self.opacity=[self.opacity+50, HUD_OPACITY].min
self.contents_opacity=[self.contents_opacity+50, 255].min
else
self.opacity=[self.opacity-50, 0].max
self.contents_opacity=[self.contents_opacity-50, 0].max
end
end
# Refresh. -----------------------------------------------------
def refresh
self.contents.clear
# Drawing contents of the window.
hearts_max=(640/HEART_WIDTH).to_i
for i in 0...hearts_max
# Heart opacity settings.
char=$game_party.actors[0]
if char.hp > i
opacity=HEART_OPACITY
elsif i < char.maxhp
opacity=(HEART_OPACITY/3).to_i
else
opacity=0
end
# Drawing one heart.
self.contents.blt(i*HEART_WIDTH, 0, RPG::Cache.picture(HEART_NAME), Rect.new(0, 0, HEART_WIDTH, HEART_HEIGHT), opacity)
end
end
end
Fajny skrypt, ale mam pytanie czy da się zmienić tą grafikę, tych kółek na jakąś inną ? Chodzi mi oto żeby była jednolitym dużym czerwonym paskiem hp z wyświetlanym w liczbach ile zostało ci życia.
PS: Proszę o pomoc.
________________________ Z ogromną przyjemnością przedstawiam wam stronę, pierwszych zapisów do Alpha CBT Fenix OnLine !! www.fenixonline.pun.pl =D
Mamy nadzieję że nasza gra przypadnie wam do gustu i powitacie ją z otwartymi rękoma :>
Znajdź inny hud, dobrze poszukaj. Tutaj miałem na celu zrobienie czegoś prostego, do prostych adventurów na styl zeldy. Paski i liczby są w innych hudach
Aha, a jak dam np. załóżmy że to jest ten pasek hp- [ 10 ] i zaatakuje mnie potworek i j zabierze mi 1 hp to zmieni się na takie ? [ 9 ]. Czy muszę mieć więcej obrazków ?
________________________ Z ogromną przyjemnością przedstawiam wam stronę, pierwszych zapisów do Alpha CBT Fenix OnLine !! www.fenixonline.pun.pl =D
Mamy nadzieję że nasza gra przypadnie wam do gustu i powitacie ją z otwartymi rękoma :>
Pomógł: 2 razy Dołączył: 20 Mar 2010 Posty: 127 Skąd: z Netaa !
Wysłany: Czw 24 Cze, 2010 13:18
wito35, Opowiem Ci coś:
Masz w swoim projekcie załóżmy właśnie ten Skrypt.
załóżmy że tak jak na SS masz 6 "Serduszek".
Gdy zaatakuje Cie potwór tracisz jedno serduszko.
Możesz zrobić by po wypiciu jakiej mikstury serduszko wracało.
Widziałem ten Skrypt w grze "Dragon Adventure" i tak tam właśnie było.
Takie coś koguto-podobne mnie zaatakowało z 5 razy i musiałem grac od nowa
________________________ Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.
Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D
Siemka, mam pytanko odnośnie skryptu. Korzystam ze skryptu na intro przed ekranem tytułowym, gdzie podawany jest w obrazkach autor, nazwa gry itd. I podczas tego to okienko poprostu zasłania część tych napisów. Nie wiesz może jak wykasować skrypt, na czas intra a potem uruchomić go do gry? Wiem że chyba trzeba coś zrobić w poleceniu "Wywołaj skrypt", lub w pozycji tego okienka, ale sam tego nie umiem. Z góry dzięki.
Dwa sposoby.
1. Standardowo okienko chowa się automatycznie, podczas zdarzeń z triggerem player touch / event touch / autostart. Twoje intro musiałoby więc działać na autostarcie - jest to do zrobienia, ale trochę męczące, więc mamy też opcję drugą.
2. Znajdź ten fragment:
I zamień $game_system.map_interpreter.running? na $game_switches[1]
Dzięki temu włączenie przełącznika o id 1 spowoduje schowanie huda. Włączysz więc na początku intra i wyłączysz po wejściu we właściwą grę.
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