XP 스크립트

http://www.dubealex.com/asylum/index.php?showtopic=9869

맵상에서 파티의 HP,SP,EXP등을 보여주는 스크립트 중 하나입니다. 게임 중 스위치를 이용해서 HUD 표시를 ON/OFF할 수 있습니다.



class Scene_Map

SWITCH_ID = 1
$center_hud = false

alias raz_hud_main main
alias raz_hud_update update

def main
@size = $game_party.actors.size
raz_hud_main
@hud_window.dispose
for i in 0...$game_party.actors.size
@hud_dummy[i].dispose
end
end

def update
if @size != $game_party.actors.size
@hud_window.refresh
show_window
end
if @hud != true
main_window
end
turn_hud_on_off
@hud_window.update
raz_hud_update
end

def show_window
@size = $game_party.actors.size
for i in 0..3
@hud_dummy[i].visible = ($game_party.actors[i] != nil)
end
end

def main_window
@opacity = 200
@hud_dummy = []
for i in 0...4
y = $game_party.actors.size - 1
x = 240 - (y * 80)
if $center_hud == true
@hud_dummy[i] = Window_Base.new(160 * i + x, 372,160, 108)
else
@hud_dummy[i] = Window_Base.new(160 * i, 372,160, 108)
end
@hud_dummy[i].opacity = @opacity
@hud_dummy[i].visible = false
end
@hud_window = Window_HUD.new
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = $game_party.actors[i] != nil
end
@hud = true
end

def turn_hud_on_off
if $game_switches[SWITCH_ID] == false
@hud_window.visible = false
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = false
end
end


if $game_switches[SWITCH_ID] == true
@hud_window.visible = true
for i in 0...$game_party.actors.size
@hud_dummy[i].visible = true
end
end
end

end


class Window_HUD < Window_Base
def initialize
super(0, 0, 800, 600)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
end
refresh
end

def refresh
self.contents.clear
for i in 0...$game_party.actors.size
a = $game_party.actors.size - 1
actor = $game_party.actors[i]
if $center_hud == true
x = (i * 160 + 25) + (240 - (a * 80))
else
x = i * 160 + 25
end
self.contents.font.size = 21
draw_actor_graphic(actor, x - 15, 445)
self.contents.font.color = normal_color
self.contents.draw_text(x - 25, 360, 100, 32, actor.name)
width = 100
height = 6
draw_slant_bar(x + 8, 396, actor.hp, actor.maxhp, width, height, Color.new(150, 0, 0), Color.new(155, 155, 60))
draw_slant_bar(x + 8, 416, actor.sp, actor.maxsp, width, height, Color.new(0, 0, 150), Color.new(60, 155, 155))
unless actor.level == 99
draw_slant_bar(x + 8, 436, actor.now_exp, actor.next_exp, width, height, Color.new(0, 150, 0), Color.new(60, 255, 60))
else
draw_slant_bar(x + 8, 436, 1, 1, width = 100, height = 6, Color.new(0, 150, 0), Color.new(60, 255, 60))
end
self.contents.font.size = 16
draw_actor_state(actor, x + 45, 360)
self.contents.font.color = normal_color
self.contents.font.bold = true
self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 16, 382, 100, 32, "#{actor.hp}/#{actor.maxhp}", 1)
self.contents.font.color = actor.sp == 0 ? crisis_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(x + 16, 402, 100, 32, "#{actor.sp}/#{actor.maxsp}", 1)
self.contents.font.color = system_color
self.contents.font.size = 20
self.contents.font.bold = false
self.contents.draw_text(x, 384, 50, 32, $data_system.words.hp)
self.contents.draw_text(x, 404, 50, 32, $data_system.words.sp)
self.contents.draw_text(x, 424, 50, 32, "Exp")
end
end

def update
super
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
if (eval("@old_hp#{i+1}") != actor.hp or eval("@old_sp#{i+1}") != actor.sp or
eval("@old_exp#{i+1}") != actor.now_exp)
refresh
eval("@old_hp#{i+1} = actor.hp; @old_sp#{i+1} = actor.sp; @old_exp#{i+1} = actor.now_exp")
end
end
end
end

class Window_Base < Window
def draw_slant_bar(x, y, min, max, width = 152, height = 6,
bar_color = Color.new(150, 0, 0, 255), end_color = Color.new(255, 255, 60, 255))
for i in 0..height
self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
end
for i in 1..(height - 1)
r = 100 * (height - i) / height + 0 * i / height
g = 100 * (height - i) / height + 0 * i / height
b = 100 * (height - i) / height + 0 * i / height
a = 255 * (height - i) / height + 255 * i / height
self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
end
for i in 1..( (min / max.to_f) * width - 1)
for j in 1..(height - 1)
r = bar_color.red * (width - i) / width + end_color.red * i / width
g = bar_color.green * (width - i) / width + end_color.green * i / width
b = bar_color.blue * (width - i) / width + end_color.blue * i / width
a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
end
end
end
end

class Game_Actor
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
Comment '6'

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 6153
881 전투 전투 특수효과 ActionEX 스크립트 1 file 백호 2009.02.21 1659
880 전투 전투 카메라 스크립트 5 file 백호 2009.02.21 2454
879 기타 전투 승리 BGM+페이드아웃 스크립트 1 file 백호 2009.02.21 1159
878 전투 전투 속도 조정 스크립트 2 file 백호 2009.02.21 1261
877 전투 전투 난이도 설정 스크립트 file 백호 2009.02.21 1441
876 전투 전투 관련 횟수 취득 스크립트 백호 2009.02.21 783
875 전투 전투 결과 화면 개조 스크립트 10 file 백호 2009.02.21 2496
874 전체화면 스크립트[해상도 스크립트랑 중복사용 불가] 24 file - 하늘 - 2009.08.06 3975
873 키입력 전체키 입력 스크립트 v4 by Cybersam 5 file 백호 2009.02.22 1947
872 장비 전체키 이용을 위한 장비창 스크립트 백호 2009.02.21 1234
871 키입력 전체 키 사용 스크립트 1 백호 2009.02.21 1423
870 전투 적의 여러차례 행동 스크립트 1 백호 2009.02.22 1320
869 HUD 적의 남은 HP만큼 적의 이름 색깔 변하는 스크립트 6 file 백호 2009.02.21 2337
868 전투 적 한계 HP수치 돌파 스크립트 ■ RPGモジュール 3 쉴더 2009.02.21 1783
867 저상 슬롯 15개 스크립트 9 WMN 2008.03.18 1496
866 장비 장비품개조 - KGC_AlterEquipment (8/12일자) 2 file 백호 2009.02.22 1694
865 장비 장비창을 다른거로 바꾸기 [헬악이님 제공] 10 file 아방스 2007.11.09 3049
864 장비 장비창업그레이드 ps인간 2009.01.23 2478
863 장비 장비창 개조 스크립트 from Harts Horn 7 백호 2009.02.22 1768
862 장비 장비착용시 올스탯 표시 2 file 백호 2009.02.21 1664
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52