[ADD-ON SBS] Ambidextrie Améliorée
Auteur : Blockade, d'une requête
Date : 04/08/2010
Version : 1.1
Description du script :Ce script ajoute une petite fonction du SBS. En effet de base, lorsque le héros est ambidextre mais qu'il n'a pas d'arme il ne tape qu'une fois même s'il est ambidextre. Cet petit ADD-ON
permet de frapper deux fois sans aucune arme d'équipée.
Installation : Placez le en dessous des scripts du SBS, et au-dessus de main.
Notes et remarques :Ce script n'est compatible avec le SBS qu'a partir de la version 3.4
Si vous utilisez la version 3.3c j'ai fait une version spéciale que vous trouverez ici :
https://rpg-maker-vx.bbactif.com/demande-de-scripts-f23/skill-animations-de-sbs-style-kung-fu-double-coup-sans-arme-t10026.htmJe vous conseille fortement de passer à la 3.4 après vous faites comme vous voulez.
Il se peut, comme le SBS évolue pas mal que ce script devienne incompatible avec les prochaine versions vu qu'il réécrit une méthode importante.Pour le rendre compatible avec n'importe quelle version du SBS il suffira dans ce script de supprimer les lignes à partir de
- Code:
-
#==============================================================================
# ■ Sprite_Battler for Sideview Ver3.4b
#------------------------------------------------------------------------------
# This sprite is used to display battlers. It observes a instance of the
# Game_Battler class and automatically changes sprite conditions.
#==============================================================================
Jusqu'a :
- Code:
-
# ウエイト設定
@wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4] && !waitflug
end
end
end
Supprimez aussi cette ligne :
- Code:
-
if $imported["TankentaiSideview"]
Ensuite derniére étape, il suffira d'aller dans le script Sideview 1 et de chercher :
- Code:
-
def battle_anime
Vous pourrez ensuite remplacer cette ligne :
- Code:
-
return if @active_action[5] && @battler.weapons[1] == nil
par celle ci :
- Code:
-
return if (@active_action[5] && @battler.weapons[1] == nil) && !@battler.two_swords_style
Et voila ca marchera ! Ça peut paraitre compliqué dit comme ca, mais c'est en réalité ultra simple. Mais bon pour l'instant si vous utilisez la 3.4 (a,b,c,d) ou la 3.3c vous avez pas à vous en faire =)
Script : - Code:
-
#===============================================================================
# ▼ [VX] ADD-ON SBS : Ambidextrie améliorée
#------------------------------------------------------------------------
# Blockade Script Library - Ambidextrie améliorée
# Date : 04/08/2010
# Niveau : Facile
# Version : 1.1
# Forum d'origine : http://rpg-maker-vx.bbactif.com/forum.htm
#
# Ce script ajoute une petite fonction du SBS. En effet de base, lorsque le héros est ambidextre
# mais qu'il n'a pas d'arme il ne tape qu'une fois même s'il est ambidextre. Cet petit ADD-ON
# permet de frapper deux fois sans aucune arme d'équipée.
#=======================================================================
# ▼ Mises à jour
# -------------------------------------------------------------------------
# ¤ 02/08/2010 - Version 1.0 - Création du script
# ¤ 04/08/2010 - Version 1.1 - Correction d'un bug
#=======================================================================
# ▼ Installation
# --------------------------------------------------------------------------
# Placez ce script au dessus de main, et en dessous des scripts du SBS.
#=======================================================================
# ▼ Alias et compatibilité
# --------------------------------------------------------------------------
# ► Méthodes réecrites :
# > Game_Actor : atk_animation_id2
# > Sprite_Battler > battle_anime
# ► Notes et remarques :
# /!\ Ce script n'est compatible avec le SBS qu'a partir de la version 3.4
#===============================================================================
if $imported["TankentaiSideview"]
#==============================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
# This class handles actors. It's used within the Game_Actors class
# ($game_actors) and referenced by the Game_Party class ($game_party).
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * overwrite method : atk_animation_id2
#--------------------------------------------------------------------------
def atk_animation_id2
if two_swords_style
# On utilise la même animation que celle pour l'attaque avec acune arme équipé de base
return weapons[1] == nil ? N01::NO_WEAPON : weapons[1].animation_id
else
return 0
end
end
end
#==============================================================================
# ■ Sprite_Battler for Sideview Ver3.4b
#------------------------------------------------------------------------------
# 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
#--------------------------------------------------------------------------
# ● overwrite method : battle_anime
#--------------------------------------------------------------------------
def battle_anime
return if @active_action[5] && !@battler.actor?
# On lui dit de continuer quand même, même si le héros n'a pas de deuxiéme arme et qu'il est ambidextre
return if (@active_action[5] && @battler.weapons[1] == nil) && !@battler.two_swords_style
if @battler.actor?
return if !@active_action[5] && @battler.weapons[0] == nil && @battler.weapons[1] != nil
end
anime_id = @active_action[1]
if @battler.is_a?(Game_Enemy) # 3.4a
mirror = false
mirror = true if @battler.action_mirror
end
# バックアタック時にアニメ画像を反転
if $back_attack
mirror = true if !@active_action[3] # 3.4a
mirror = false if @active_action[3] || (@battler.is_a?(Game_Enemy) && @battler.action_mirror) # 3.4a
end
# 武器とスキルアニメの場合
# 3.4a
if anime_id < 0
# 行動の種類でアニメ先を分岐
if @battler.action.skill? && anime_id != -2
### UNOFFICAL CODE v3.3b ###
anime_id = @battler.action.skill.animation_id unless @battler.action.skill.animation_id == -1
if @battler.action.skill.animation_id == -1
anime_id = N01::NO_WEAPON
if @battler.actor?
weapon_id = @battler.weapon_id
anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
anime_id = @battler.atk_animation_id2 if @active_action[5]
else
weapon_id = @battler.weapon
anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
end
end
elsif @battler.action.item? && anime_id != -2
anime_id = 0
anime_id = @battler.action.item.animation_id unless @battler.action.item.animation_id == -1
if @battler.action.item.animation_id == -1
anime_id = N01::NO_WEAPON
weapon_id = @battler.weapon_id
anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
anime_id = @battler.atk_animation_id2 if @active_action[5]
end
### UNOFFICIAL CODE v3.3b END ###
else
# 武器がなければ素手アニメを使用
anime_id = N01::NO_WEAPON
if @battler.actor?
weapon_id = @battler.weapon_id
anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
# 二刀アニメの場合
anime_id = @battler.atk_animation_id2 if @active_action[5]
else
weapon_id = @battler.weapon
anime_id = $data_weapons[weapon_id].animation_id if weapon_id != 0
end
end
# No animation if battle anime hash ID is -3
anime_id = 0 if @active_action[1] == -3 # 3.4a
# Set wait value, temporarily delays action sequence processing
@wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4]
waitflug = true
# ダメージ表示のアニメなら、ダメージ計算を先に済ませるため処理を中断
# 3.4a new argument added
damage_action = [anime_id, mirror, true]
return @battler.play = ["OBJ_ANIM",damage_action] if @battler.active && @active_action[1] != -4 # 3.4a
end
# アニメ実行
if @active_action[2] == 0 && $data_animations[anime_id] != nil
@battler.animation_id = anime_id
@battler.animation_mirror = mirror
elsif $data_animations[anime_id] != nil
for target in @target_battler
target.animation_id = anime_id
target.animation_mirror = mirror
end
end
# ウエイト設定
@wait = $data_animations[anime_id].frame_max * 4 if $data_animations[anime_id] != nil && @active_action[4] && !waitflug
end
end
end