Project1
标题:
关于RTAB中 连击 问题
[打印本页]
作者:
共产主义红星
时间:
2008-8-17 22:37
标题:
关于RTAB中 连击 问题
请问如何设置才能使出连击效果?
"显示部分"脚本如下
#==============================================================================
#RTAB观光游第六站,连击效果+连击数显示 (显示部分)
#==============================================================================
# ▼▲▼ XRXS_BP19. コンボ表示+ヒットボーナス ver.3β ▼▲▼ built 201409
# by 桜雅 在土
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class XRXS_BP19
#
# コンボ持続時間[単位:F](40F が 一秒)
#
COMBOHIT_DURATION = 90
#
# スキン ファイル名
#
SKIN_NUMBER = "SixRice_Number.png"
SKIN_HIT = "SixRice_HITS.png"
end
class Game_Battler
#
# コンボヒットによるダメージ補正力/ヒット数[単位:%]
#
DAMAGE_INCREASE_PER_HIT = 1
end
#==============================================================================
# --- XRXS.ナンバースプライト スキン対応! ---
#==============================================================================
class NumberSprite
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(skin)
@skin = skin
@sprites = []
@width = skin.width/10
@height = skin.height
set_digit(4) # 基本設定値
set(0)
end
#--------------------------------------------------------------------------
# ○ 桁の設定
#--------------------------------------------------------------------------
def set_digit(digit)
@sprites.each{|sprite| sprite.dispose}
@sprites.clear
digit.times do
sprite = Sprite.new
sprite.bitmap = @skin
sprite.z = 999
sprite.src_rect.set(0, 0, @width, @height)
@sprites.push(sprite)
end
end
#--------------------------------------------------------------------------
# ○ 値の設定
#--------------------------------------------------------------------------
def set(number)
# 例外補正 0.17b更新
digit = (number ==0) ? 0 : Math.log10(number)
if digit > @sprites.size
set_digit(digit)
end
# 各桁の適用
for sprite in @sprites
sprite.src_rect.x = number%10 * @width
number /= 10
end
# ゼロ表示 上から判定し、一度でも 0 でなければそこから表示
zero_display = false
for sprite in @sprites.reverse
zero_display |= (sprite.src_rect.x != 0)
sprite.visible = zero_display
end
end
#--------------------------------------------------------------------------
# ○ 座標などの設定の経由
#--------------------------------------------------------------------------
def x=(n)
@sprites.each{|sprite|
sprite.x = n
n -= @width
}
end
def y=(n)
@sprites.each{|sprite| sprite.y = n }
end
def opacity=(n)
@sprites.each{|sprite| sprite.opacity = n }
end
def dispose
@sprites.each{|sprite| sprite.dispose }
end
end
#==============================================================================
# □ Window_ComboHit
#------------------------------------------------------------------------------
# 戦闘中にコンボ数を表示する透明なウィンドウです。
#==============================================================================
class Window_ComboHit < Window_Base
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
@number = NumberSprite.new(RPG::Cache.windowskin(XRXS_BP19::SKIN_NUMBER))
super(200, 80, 200, 80)
self.opacity = 0
self.z = 999
self.visible = false
self.contents = RPG::Cache.windowskin(XRXS_BP19::SKIN_HIT).dup
@active = false
@show_duration = 0
@sliding_duration = 0
end
#--------------------------------------------------------------------------
# ○ クリア ほか
#--------------------------------------------------------------------------
def clear
self.visible = false
end
def x=(n)
super
@number.x = n if @number != nil
end
def y=(n)
super
@number.y = n if @number != nil
end
def contents_opacity=(n)
super
@number.opacity = n if @number != nil
end
def dispose
@number.dispose
super
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh(hit_combo, duration)
# 可視化
self.contents_opacity = 255
self.visible = true
# 設定
@show_duration = duration
@sliding_duration = 0
# 描写
@number.set(hit_combo)
end
#--------------------------------------------------------------------------
# ○ フレーム更新
#--------------------------------------------------------------------------
def update
if @sliding_duration > 0
@sliding_duration -= 1
self.contents_opacity -= 32
self.x += 1
if @sliding_duration == 0
self.visible = false
end
elsif @show_duration > 0
@show_duration -= 1
if @show_duration == 0
@sliding_duration = 8
end
end
end
end
复制代码
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
殲滅天使·玲
时间:
2008-8-17 23:24
数据库 - 动画里 设置动画的闪烁. 闪烁一次+1HIT
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
共产主义红星
时间:
2008-8-17 23:31
是对象还是画面啊?我试过不行
作者:
殲滅天使·玲
时间:
2008-8-17 23:33
都一样.
只要动画设置了闪烁 就行了.
不行的话 你上传工程
让大家看看.
作者:
共产主义红星
时间:
2008-8-18 00:02
这是工程
ftp://
[email protected]
/game/连击问题.rar
作者:
黑鏻
时间:
2008-8-18 01:08
推荐使用彩虹神剑多伤害判定的脚本插件,它可以在播放动画时根据闪烁帧数来显示伤害,十分好用。
新彩虹神剑——连击蹦血,爽快战斗动画的制作
http://rpg.blue/web/htm/news542.htm
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1