조회 수 612 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
출처 : http://www.hbgames.org/forums/viewtopic.php?f=11&t=75877

사용법은 다들 아시리라 생각됩니다.
아래 빨간색 부분을 스크립트에 붙여주시면 됩니다.


#==============================================================================
# ** Damage Popup
#------------------------------------------------------------------------------
# © Dargor, 2011
# 01/12/11
# Version 1.0
#------------------------------------------------------------------------------
# VERSION HISTORY:
# - 1.0 (01/12/11), Initial release
#------------------------------------------------------------------------------
# INSTRUCTIONS:
# - Paste this above main
# - Edit the constants in Damage_Popup module
#==============================================================================

#==============================================================================
# ** Damage Popup Customization Module
#==============================================================================

module Damage_Popup
HP_Damage_Color = Color.new(255,255,255)
MP_Damage_Color = Color.new(172,0,234)
TP_Damage_Color = Color.new(253,157,62)
HP_Recover_Color = Color.new(0,255,0)
MP_Recover_Color = Color.new(48,192,255)
TP_Recover_Color = Color.new(255,242,0)
end

#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
# This sprite is used to display battlers. It observes a instance of the
# Game_Battler class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Battler < Sprite_Base
#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
alias dargor_ace_dmgpopup_sprite_battler_initialize initialize
alias dargor_ace_dmgpopup_sprite_battler_setup_new_effect setup_new_effect
alias dargor_ace_dmgpopup_sprite_battler_start_effect start_effect
alias dargor_ace_dmgpopup_sprite_battler_update_effect update_effect
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(viewport, battler = nil)
# The Usual
dargor_ace_dmgpopup_sprite_battler_initialize(viewport, battler)
# Create damage sprite
@damage_sprite = Sprite_Base.new(viewport)
@damage_sprite.bitmap = Bitmap.new(160,48)
@damage_sprite.bitmap.font.bold = true
@damage_sprite.bitmap.font.outline = true
@damage_sprite.bitmap.font.size = 32
@damage_sprite.visible = false
@damage_duration = 0
@damage_effect = nil
end
#--------------------------------------------------------------------------
# * Setup New Effect
#--------------------------------------------------------------------------
def setup_new_effect
# The Usual
dargor_ace_dmgpopup_sprite_battler_setup_new_effect
# Check for HP Damage
if display_damage_sprite? && @battler.result.hp_damage > 0
start_damage(:hp_damage)
# Check for MP Damage
elsif display_damage_sprite? && @battler.result.mp_damage > 0
start_damage(:mp_damage)
# Check for TP Damage
elsif display_damage_sprite? && @battler.result.tp_damage > 0
start_damage(:tp_damage)
# Check for HP Recover
elsif display_damage_sprite? && @battler.result.hp_damage < 0
start_damage(:hp_recover)
# Check for MP Recover
elsif display_damage_sprite? && @battler.result.mp_damage < 0
start_damage(:mp_recover)
# Check for TP Recover
elsif display_damage_sprite? && @battler.result.tp_damage < 0
start_damage(:tp_recover)
end
end
#--------------------------------------------------------------------------
# * Damage Display Test
#--------------------------------------------------------------------------
def display_damage_sprite?
return (@battler.result.success && @damage_duration == 0)
end
#--------------------------------------------------------------------------
# * Start Damage Effect
#--------------------------------------------------------------------------
def start_damage(effect_type)
@damage_effect = effect_type
@damage_duration = 60
case @damage_effect
when :hp_damage
@damage_sprite.bitmap.font.color = Damage_Popup::HP_Damage_Color
when :mp_damage
@damage_sprite.bitmap.font.color = Damage_Popup::MP_Damage_Color
when :tp_damage
@damage_sprite.bitmap.font.color = Damage_Popup::TP_Damage_Color
when :hp_recover
@damage_sprite.bitmap.font.color = Damage_Popup::HP_Recover_Color
when :mp_recover
@damage_sprite.bitmap.font.color = Damage_Popup::MP_Recover_Color
when :tp_recover
@damage_sprite.bitmap.font.color = Damage_Popup::TP_Recover_Color
end
update_damage_popup_position
update_damage_popup_text
@damage_sprite.visible = true
@damage_sprite.opacity = 255
end
#--------------------------------------------------------------------------
# * Update Effects
#--------------------------------------------------------------------------
def update_effect
# Update effects
if @damage_duration > 0
@damage_duration -= 1
update_damage
if @damage_duration == 0
@damage_sprite.visible = false
@damage_type = nil
@battler.result.clear_hit_flags
end
end
# The Usual
dargor_ace_dmgpopup_sprite_battler_update_effect
end
#--------------------------------------------------------------------------
# * Update Damage Sprite Potision
#--------------------------------------------------------------------------
def update_damage_popup_position
if @battler && @battler.use_sprite?
@damage_sprite.x = @battler.screen_x
@damage_sprite.y = @battler.screen_y - 48
@damage_sprite.z = @battler.screen_z + 10
end
end
#--------------------------------------------------------------------------
# * Update Damage Sprite Text
#--------------------------------------------------------------------------
def update_damage_popup_text
case @damage_effect
when :hp_damage, :hp_recover
string = @battler.result.hp_damage.abs.to_s
when :mp_damage, :mp_recover
string = @battler.result.mp_damage.abs.to_s
when :tp_damage, :tp_recover
string = @battler.result.tp_damage.abs.to_s
end
rect = @damage_sprite.bitmap.text_size(string)
@damage_sprite.bitmap.clear
@damage_sprite.bitmap.draw_text(rect, string, 1)
end
#--------------------------------------------------------------------------
# * Update Damage
#--------------------------------------------------------------------------
def update_damage
case @damage_duration
when 58..59
@damage_sprite.y -= 4
when 56..57
@damage_sprite.y -= 2
when 54..55
@damage_sprite.y += 2
when 48..53
@damage_sprite.y += 4
end
if @damage_duration <= 20
@damage_sprite.opacity = @damage_duration * 11
end
end
end
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
22 RPGVX Ace 스크립트 VXA에서 XBOX360 컨트롤러 사용 여부 체크 file 러닝은빛 2018.07.15 689 0
21 RPGVX Ace 스크립트 LuD Script Package 1 file LuD 2017.08.16 1218 0
20 RPGVX Ace 스크립트 [VXAce] 레이어 맵 <layer> 시스템 file LuD 2017.08.07 785 0
19 RPGVX Ace 스크립트 VX Ace 용 8방향 이동 스크립트 1 도라지power 2016.03.17 1653 0
18 RPGVX Ace 스크립트 지속데미지 스크립트(MBS) 天下太平 2016.02.14 1516 0
17 RPGVX Ace 스크립트 Custom Icon Sheets (커스텀 아이콘 적용 스크립트) plam 2016.01.10 470 0
» RPGVX Ace 스크립트 Damage Popup by Dargor (데미지 수치 팝업하는 스크립트) plam 2016.01.10 612 0
15 RPGVX Ace 스크립트 파티원 기차처럼 줄줄이 붙는 스크립트. 1 file 천무 2015.11.12 3086 0
14 RPGVX Ace 스크립트 타이틀 메뉴 위치 바꾸기 vx 및 vx ace 여줄가리 2015.09.21 1995 0
13 RPGVX Ace 스크립트 Mog Hunter 스페셜 철창노틸 2015.03.26 762 1
12 RPGVX Ace 스크립트 추천 스크립트 모음 2 철창노틸 2015.03.26 5850 1
11 RPGVX Ace 스크립트 Random Dungeon Generator - Random Room 7 JunkMan 2014.10.11 928 0
10 RPGVX Ace 스크립트 Random Dungeon Generator - Random Cave JunkMan 2014.10.08 607 0
9 RPGVX Ace 스크립트 RPG Maker VX Lite Maze(미로) 만들기 (DFS 사용) 1 JunkMan 2014.10.06 965 2
8 RPGVX Ace 스크립트 Ace로 만든 습작 랜덤 위치로 지형변환. JunkMan 2014.10.04 511 0
7 RPGVX Ace 스크립트 VX Ace 스크립트 사이트 1 제피 2014.08.07 2672 0
6 RPGVX Ace 스크립트 RPG Maker VX Ace용 640*480 리사이징 스크립트 3 HUR 2014.08.04 1267 0
5 RPGVX Ace 스크립트 RPG Maker VX Ace용 로고 스크립트 3 HUR 2014.08.04 1179 0
4 RPGVX Ace 스크립트 Rpg Vx Ace 에서 이벤트 이름 팝업 3 빙냥이 2014.01.17 1892 0
3 RPGVX Ace 스크립트 텍스트 파일생성 1 휴리드 2013.09.30 654 0
Board Pagination Prev 1 2 Next
/ 2






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)