[RGSS]Combo System
5 participantes
Página 1 de 1
[RGSS]Combo System
Script permite adicionar o sistemas de Hits
cada acerto consecutivo é contado como hit, e a cada Hit o seu
dano aumenta
cada acerto consecutivo é contado como hit, e a cada Hit o seu
dano aumenta
- Código:
##################################################################
######################### ▼▲▼ XRXS▼▲▼#############################
##################################################################
#Script permite adicionar o sistemas de Hits
#cada acerto consecutivo é contado como hit, e a cada Hit o seu
#dano aumenta
##################################################################
class XRXS_BP19
#tempo de duração para que o sistema considere HIT
COMBOHIT_DURATION = 100
end
class Game_Battler
#Definição do dano a cada Hit
DAMAGE_INCREASE_PER_HIT = 5
end
class Window_ComboHit < Window_Base
COMBOHIT_FONTNAME = "Georgia"
COMBOHIT_FONTCOLOR = Color.new(255,255,255,255)
end
#==============================================================================
# □ Window_ComboHit
#------------------------------------------------------------------------------
# 戦闘中にコンボ数を表示する透明なウィンドウです。
#==============================================================================
class Window_ComboHit < Window_Base
#--------------------------------------------------------------------------
# ○ オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(512, 64, 128, 80)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
self.visible = false
@active = false
@show_duration = 0
@sliding_duration = 0
self.contents.clear
end
#--------------------------------------------------------------------------
# ○ クリア
#--------------------------------------------------------------------------
def clear
self.contents.clear
self.visible = false
end
#--------------------------------------------------------------------------
# ○ リフレッシュ
#--------------------------------------------------------------------------
def refresh(hit_combo, duration)
# 可視化
self.contents_opacity = 255
self.visible = true
# 設定
@show_duration = duration
@sliding_duration = 0
# 描写(縁取り仕様)
self.contents.clear
self.contents.font.name = COMBOHIT_FONTNAME
self.contents.font.bold = true
text = hit_combo.to_s + " "
self.contents.font.size = 36
self.contents.font.color.set( 0, 0, 0, 192)
self.contents.draw_text(-1, -1, 64, 44, text, 2)
self.contents.draw_text(-1, 1, 64, 44, text, 2)
self.contents.draw_text( 1, -1, 64, 44, text, 2)
self.contents.draw_text( 1, 1, 64, 44, text, 2)
self.contents.font.color = COMBOHIT_FONTCOLOR
self.contents.draw_text( 0, 0, 64, 44, text, 2)
text ="HITS"
self.contents.font.size = 22
self.contents.font.color.set( 0, 0, 0, 192)
self.contents.draw_text(63, 13, 32, 32, text, 0)
self.contents.draw_text(65, 13, 32, 32, text, 0)
self.contents.draw_text(63, 15, 32, 32, text, 0)
self.contents.draw_text(65, 15, 32, 32, text, 0)
self.contents.font.color = COMBOHIT_FONTCOLOR
self.contents.draw_text(64, 14, 32, 32, text, 0)
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
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
def combohit
@combohit = 0 if @combohit.nil?
return @combohit
end
def combohit_duration
@combohit_duration = 0 if @combohit_duration.nil?
return @combohit_duration
end
#--------------------------------------------------------------------------
# ○ コンボヒットを更新
#--------------------------------------------------------------------------
def combohit_update
@combohit_duration = 0 if @combohit_duration.nil?
if @combohit_duration > 0
@combohit_duration -= 1
if @combohit_duration == 0
@combohit = 0
end
end
end
#--------------------------------------------------------------------------
# ○ コンボヒットをカウント
#--------------------------------------------------------------------------
def combohit_count
@combohit = 0 if @combohit.nil?
@combohit += 1
if @motion.nil?
@combohit_duration = XRXS_BP19::COMBOHIT_DURATION
else
# ちとFMBS仕様
@combohit_duration = @motion.knock_back_duration
end
end
#--------------------------------------------------------------------------
# ○ コンボヒットをクリア
#--------------------------------------------------------------------------
def combohit_clear
@combohit = nil
@combohit_duration = nil
end
#--------------------------------------------------------------------------
# ● 通常攻撃の効果適用
#--------------------------------------------------------------------------
alias xrxs_bp19_attack_effect attack_effect
def attack_effect(attacker)
# 呼び戻す
bool = xrxs_bp19_attack_effect(attacker)
# 攻撃成功時( 行動有効 & Missでない )
if bool and self.damage != "Miss"
# ヒット補正
if self.damage.is_a?(Numeric)
add_damage = self.damage * ([self.combohit * DAMAGE_INCREASE_PER_HIT,-100].max)/100
self.hp -= add_damage
self.damage += add_damage
end
# コンボヒット+1
self.combohit_count
end
return bool
end
#--------------------------------------------------------------------------
# ● スキルの効果適用
#--------------------------------------------------------------------------
alias xrxs_bp19_skill_effect skill_effect
def skill_effect(user, skill)
# ヒット補正( ダメージスキルのみ )
if skill.power >= 1
skill = skill.dup
skill.power = skill.power * (100 + [self.combohit * DAMAGE_INCREASE_PER_HIT,-100].max)/100
end
# 呼び戻す
bool = xrxs_bp19_skill_effect(user, skill)
# 攻撃成功時( ダメージスキル & 行動有効 & Missでない )
if skill.power >= 1 and bool and self.damage != "Miss"
# コンボヒット+1
self.combohit_count
end
return bool
end
#--------------------------------------------------------------------------
# ● アイテムの効果適用
#--------------------------------------------------------------------------
alias xrxs_bp19_item_effect item_effect
def item_effect(item)
# ダメージアイテムではない場合
unless (item.recover_hp < 0 or item.recover_hp_rate < 0)
# 呼び戻す
return xrxs_bp19_item_effect(item)
end
# 複製
item = item.dup
# ヒット補正
rate = (100 + [self.combohit * DAMAGE_INCREASE_PER_HIT,-100].max)
item.recover_hp = item.recover_hp * rate / 100
item.recover_hp_rate = item.recover_hp_rate * rate / 100
# 呼び戻す
bool = xrxs_bp19_item_effect(item)
# 攻撃成功時( 行動有効 & Missでない )
if (bool and self.damage != "Miss")
# コンボヒット+1
self.combohit_count
end
return bool
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
alias xrxs_bp19_main main
def main
# 呼び戻す
xrxs_bp19_main
# ウィンドウを解放
@combohit_window.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias xrxs_bp19_update update
def update
# フレーム更新
@combohit_window.update
for actor in $game_party.actors
actor.combohit_update
end
for enemy in $game_troop.enemies
enemy.combohit_update
end
# 呼び戻す
xrxs_bp19_update
end
#--------------------------------------------------------------------------
# ● プレバトルフェーズ開始
#--------------------------------------------------------------------------
alias xrxs_bp19_start_phase1 start_phase1
def start_phase1
# 呼び戻す
xrxs_bp19_start_phase1
# コンボヒットウィンドウを作成
@combohit_window = Window_ComboHit.new
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
#--------------------------------------------------------------------------
alias xrxs_bp19_update_phase4_step5 update_phase4_step5
def update_phase4_step5
# 呼び戻す
xrxs_bp19_update_phase4_step5
# コンボ数の最も高いターゲットを探す
max = 0
hit_target = nil
for target in @target_battlers
if target.combohit > max
max = target.combohit
hit_target = target
end
end
if max >= 2 and !hit_target.nil?
@combohit_window.x = hit_target.is_a?(Game_Enemy) ? 512 : 0
@combohit_window.refresh(max, hit_target.combohit_duration)
end
end
end
Crhonos- Número de Mensagens : 118
Idade : 30
Especialidade : Eventos
Data de inscrição : 01/12/2008
RMB Games
Nível de Reputação: 2
Reputação:
(19/100)
Gamescore:
(0/0)
Re: [RGSS]Combo System
Só uma pergunta, para qual sistema de batalha é esse script?
+1 Reputação
Bônus de Natal: +1 Reputação
Total: +2 Reputação!
+1 Reputação
Bônus de Natal: +1 Reputação
Total: +2 Reputação!
Dark Dudu- Número de Mensagens : 385
Idade : 30
Localização : São Vicente - SP
Especialidade : Eventos
Data de inscrição : 01/12/2008
RMB Games
Nível de Reputação: 2
Reputação:
(61/100)
Gamescore:
(0/0)
Re: [RGSS]Combo System
Qualquer um compátivel U.U
Tbm já tinha este
Tbm já tinha este
Alan- Número de Mensagens : 224
Idade : 31
Especialidade : Eventos
Data de inscrição : 02/12/2008
RMB Games
Nível de Reputação: 1
Reputação:
(55/100)
Gamescore:
(0/0)
Re: [RGSS]Combo System
Já to utilizando. =P
É, eu voltei a mecher no programa.
É, eu voltei a mecher no programa.
Revin- Número de Mensagens : 235
Idade : 32
Localização : Aracaju
Especialidade : Pixel Artist
Data de inscrição : 21/12/2008
RMB Games
Nível de Reputação: 1
Reputação:
(13/100)
Gamescore:
(0/0)
Re: [RGSS]Combo System
Bem legal, parece bem interessante!!!
vlw mesmo cara
vlw mesmo cara
Borus- Número de Mensagens : 79
Idade : 30
Data de inscrição : 10/12/2008
RMB Games
Nível de Reputação: 1
Reputação:
(18/100)
Gamescore:
(0/0)
Tópicos semelhantes
» [RGSS]Multiplayer System 2.5
» [RGSS]Crhonos Password System
» [RGSS]Cheat Input System
» [RGSS]Crhonos Ocarina System
» [RGSS] GTA Loading
» [RGSS]Crhonos Password System
» [RGSS]Cheat Input System
» [RGSS]Crhonos Ocarina System
» [RGSS] GTA Loading
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos