# =============================================================================
# OmegaX Zelda Health System.
# Author: Omegas7
# Tłumaczenie : Thiefstory
# Version: 0.1.
# =============================================================================
# Co ten skrypt robi?
# Ten Hud pokazuje nam inny system HP idealny do takich jakby zręcznościówek.
# Po prostu widzisz serduszka jako twoje HP
#
#---------------------------------
#Czego potrzebujesz i gdzie ten skrypt wkleić? Dr.Thief pomoże
# Wklej skrypt pod Materials w edytorze skryptów.
# Skopiuj do folderu 'System' obrazki 'Heart' oraz 'Heartback'
#Ciesz się nowym skryptem z Ultimy
# =======================================================================
#Początek skryptu, również jego edycja :
module OmegaX
module ZeldaHealth
HeartsPerRow = 300 #Dosłowne tłumaczenie: Serca na rząd
HeartGraphic = 'Heart' #Nazwa obrazka od tego serduszka ^^
HeartBack = 'HeartBack' #Nazwa pustego serduszka ^^
SWITCH = 1 # Przełącznik, który wyłącza/włącza HUD
end
end
#Nie edytuj poniżej, chyba, że wiesz co robisz (tekst chyba Ayene
class ZeldaHealth
include OmegaX::ZeldaHealth#Jakieś RGSS-owe znaczki ;-P
def initialize#Jakieś RGSS-owe znaczki ;-P
@member = $game_party.members[0]#Jakieś RGSS-owe znaczki ;-P
@id = 0#Jakieś RGSS-owe znaczki ;-P
if @member != nil#Jakieś RGSS-owe znaczki ;-P
@id = @member.id#Jakieś RGSS-owe znaczki ;-P
@hp = $game_party.members[0].hp#Jakieś RGSS-owe znaczki ;-P
@maxhp = $game_party.members[0].maxhp#Jakieś RGSS-owe znaczki ;-P
end
@backs = []#Jakieś RGSS-owe znaczki ;-P
@hearts = []#Jakieś RGSS-owe znaczki ;-P
@switch = $game_switches[SWITCH]#Jakieś RGSS-owe znaczki ;-P
draw_sprites if @id != 0#Jakieś RGSS-owe znaczki ;-P
refresh if @id != 0#Jakieś RGSS-owe znaczki ;-P
end
def clear#Jakieś RGSS-owe znaczki ;-P
for i in
0...@hearts.size#Jakieś RGSS-owe znaczki ;-P
@hearts[i].finish#Jakieś RGSS-owe znaczki ;-P
@hearts[i] = nil#Jakieś RGSS-owe znaczki ;-P
@backs[i].finish#Jakieś RGSS-owe znaczki ;-P
@backs[i] = nil#Jakieś RGSS-owe znaczki ;-P
end
@hearts.compact! #Jakieś RGSS-owe znaczki ;-P
@backs.compact! #Jakieś RGSS-owe znaczki ;-P
end
def draw_sprites #Jakieś RGSS-owe znaczki ;-P
row = 0 #Jakieś RGSS-owe znaczki ;-P
requirement_for_row = HeartsPerRow #Jakieś RGSS-owe znaczki ;-P
x = 0
for i in 0...((@maxhp/4.0).ceil)#Jakieś RGSS-owe znaczki ;-P
if i < requirement_for_row#Jakieś RGSS-owe znaczki ;-P
@backs.push(ZeldaHeartBack.new(x,row))#Jakieś RGSS-owe znaczki ;-P
@hearts.push(ZeldaHeart.new(x,row))#Jakieś RGSS-owe znaczki ;-P
x += 1
else
row += 1#DOBRA, NIŻEJ NIE CHCĘ MI SIĘ TEGO WKLEJAĆ CO ZAWSZE ;-P
x = 0
requirement_for_row += (HeartsPerRow)
@backs.push(ZeldaHeartBack.new(x,row))
@hearts.push(ZeldaHeart.new(x,row))
x = 1
end
@hearts[@hearts.size - 1].visible(@switch)
@backs[@hearts.size - 1].visible(@switch)
end
end
def refresh
hp = @hp
done = false
if hp > 0
for heart in
0...@hearts.size
for switch in 0...@hearts[heart].switches.size
if @hearts[heart].switches[switch] == false && hp > 0
@hearts[heart].switches[switch] = true
hp -= 1
done = true if hp <= 0
end
end
end
end
for i in
0...@hearts.size
@hearts[i].update
end
end
def update
if $game_party.members[0] == nil
if @id != 0
@id = 0
finish
end
else
if @id != $game_party.members[0].id
@id = -1
end
end
if @id != 0
if @hp != $game_party.members[0].hp ||
@maxhp != $game_party.members[0].maxhp ||
@switch != $game_switches[SWITCH] ||
@id != $game_party.members[0].id
@id = $game_party.members[0].id
@switch = $game_switches[SWITCH]
@hp = $game_party.members[0].hp
@maxhp = $game_party.members[0].maxhp
clear
draw_sprites
refresh
end
end
end
def finish
for i in
0...@hearts.size
@hearts[i].finish
@backs[i].finish
end
end
end
class ZeldaHeartBack
include OmegaX::ZeldaHealth
def initialize(index,row)
@sprite = Sprite_Base.new
@sprite.bitmap = Cache.system(HeartBack)
@sprite.x = index * @sprite.width
@sprite.y = row * @sprite.height
@sprite.z = 100
end
def visible(value)
@sprite.visible = value
end
def finish
@sprite.dispose
end
end
class ZeldaHeart
include OmegaX::ZeldaHealth
attr_accessor :switches
def initialize(index,row)
bitmap = Cache.system(HeartGraphic)
@switches = [false,false,false,false]
@current = [false,false,false,false]
@parts = []
@sprite = Sprite_Base.new
@sprite.bitmap = Bitmap.new(bitmap.width,bitmap.height)
@sprite.x = index * bitmap.width #ALBO JESZCZE BĘDĘ SOBIE TO WKLEJAŁ....
@sprite.y = row * bitmap.height
@sprite.z = 101
for i in 0...4
@parts.push(Bitmap.new(bitmap.width/2,bitmap.height/2))
case i
when 0
@parts[i].blt(0,0,bitmap,Rect.new(0,0,bitmap.width/2,bitmap.height/2))
when 1
@parts[i].blt(0,0,bitmap,Rect.new(bitmap.width/2,0,bitmap.width/2,bitmap.height/2))
when 2
@parts[i].blt(0,0,bitmap,Rect.new(0,bitmap.height/2,bitmap.width/2,bitmap.height/2))
when 3
@parts[i].blt(0,0,bitmap,Rect.new(bitmap.width/2,bitmap.height/2,bitmap.width/2,bitmap.height/2))
end
end
end
def update#Jakieś RGSS-owe znaczki ;-P
if @current != @switches#Jakieś RGSS-owe znaczki ;-P
refresh#Jakieś RGSS-owe znaczki ;-P
end
end
def refresh#Jakieś RGSS-owe znaczki ;-P
@sprite.bitmap.clear#Jakieś RGSS-owe znaczki ;-P
@current = @switches#Jakieś RGSS-owe znaczki ;-P
for i in
0...@current.size#Jakieś RGSS-owe znaczki ;-P
if @current[i]#Jakieś RGSS-owe znaczki ;-P
case i#Jakieś RGSS-owe znaczki ;-P
when 0#Jakieś RGSS-owe znaczki ;-P
@sprite.bitmap.blt(0,0,@parts[i], Rect.new(0,0,@parts[i].width,@parts[i].height))
when 1
@sprite.bitmap.blt(@parts[i].width,0,@parts[i], Rect.new(0,0,@parts[i].width,@parts[i].height))
when 2
@sprite.bitmap.blt(0,@parts[i].height,@parts[i], Rect.new(0,0,@parts[i].width,@parts[i].height))
when 3
@sprite.bitmap.blt(@parts[i].width,@parts[i].height,@parts[i], Rect.new(0,0,@parts[i].width,@parts[i].height))
end
end
end
end
def visible(value)#Jakieś RGSS-owe znaczki ;-P
@sprite.visible = value#Jakieś RGSS-owe znaczki ;-P
end
def finish#Jakieś RGSS-owe znaczki ;-P
@sprite.dispose#Jakieś RGSS-owe znaczki ;-P
end
end
class Scene_Map
alias omegax_zelda_health_initialize initialize#Jakieś RGSS-owe znaczki ;-P
alias omegax_zelda_health_update update#Jakieś RGSS-owe znaczki ;-P
alias omegax_zelda_health_terminate terminate#Jakieś RGSS-owe znaczki ;-P
def initialize#Jakieś RGSS-owe znaczki ;-P
omegax_zelda_health_initialize#Jakieś RGSS-owe znaczki ;-P
@zeldahealth = ZeldaHealth.new#Jakieś RGSS-owe znaczki ;-P
end
def update#Jakieś RGSS-owe znaczki ;-P
omegax_zelda_health_update#Jakieś RGSS-owe znaczki ;-P
@zeldahealth.update#Jakieś RGSS-owe znaczki ;-P
end
def terminate#Jakieś RGSS-owe znaczki ;-P
omegax_zelda_health_terminate#Jakieś RGSS-owe znaczki ;-P
@zeldahealth.finish#Jakieś RGSS-owe znaczki ;-P
end
end
# THE END