C'est un script qui permet de créer ce qu'on appelle une overdrive .C'est une barre qui va monter a chaque coups donnés à l'adversaire(par defaut). Lorsque la barre est au maximum, le personnage peut faire un skill spécial!
auteur:inconnu mais par Ojiro
Créez un nouveau script au dessus de main et appellez le overdrive.
auteur:inconnu mais par Ojiro
Créez un nouveau script au dessus de main et appellez le overdrive.
- Code:
# script Overdrive (cf.FFX) traduit par Ojiro
# Voilà un script qui permet d'installer une jauge Overdrive
# qui se remplit selon les types : Aggressif, Tenace, Victorieux,
# Lâche, Solo, Leader ou Revenant.
# Le type peut être modifié en cours de jeu grâce à :
# $game_actors [ID].overdrive_type = x
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/ ?Overdrive - KGC_OverDrive? Traduit par Ojiro
#_/----------------------------------------------------------------------------
#_/ Jauge privé d'un joueur lui permettant d'activer une technique unique.
#_/============================================================================
#==============================================================================
# ? Paramètres ?
#==============================================================================
module KGC
# ?Jauge Max
# Indique la valeur pour que la jauge soit pleine
OD_jauge_MAX = 1000
# ?Progression de la barre Si
# Dépend du Drive Mode du joueur
# Pour le 0 et 1, le Drive s'effectue selon la valeurs des dommages reçus.
OD_GAIN_RATE = [10, 30, 200, 100, 160, 40, 160]
# ?jauge d'Overdrive incliné
OD_jauge_SLANT = true
# ?Position Y de la jauge overdrive en non Combat
OD_jauge_OFF_Y = 26
# ?Position Y de la jauge overdrive en Combat
OD_jauge_OFF_Y_BATTLE = 26
# ?Barre caché en non Combat / True (Vrai) ou False (Faux)
OD_jauge_HIDE = false
end
class Window_Base < Window
# ?Image de la jauge Overdrive
@@_od_jauge = RPG::Cache.picture("od_gauge.png")
end
#???????????????????????????????????????
$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")
$imported["OverDrive"] = true
# OverDrive??
$game_special_elements["overdrive"] = $data_system.elements.index("Overdrive")
#???????????????????????????????????????
#==============================================================================
# ¦ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ? Exécute le processus d'origineExécute le processus d'origine?????
#--------------------------------------------------------------------------
attr_accessor :base_damage # Valeur des Dommmages de Base
#--------------------------------------------------------------------------
# ? Activation de l'Overdrive
#--------------------------------------------------------------------------
alias skill_can_use_KGC_OverDrive skill_can_use?
def skill_can_use?(skill_id)
# Activation de l'Overdrive
if self.is_a?(Game_Actor)
skill = $data_skills[skill_id]
if skill != nil && skill.element_set.include?($game_special_elements["overdrive"])
if self.overdrive < KGC::OD_jauge_MAX
return false
end
end
end
# Exécute le processus d'origine
return skill_can_use_KGC_OverDrive(skill_id)
end
#--------------------------------------------------------------------------
# ? Application effective d'une Aggresif normale
#--------------------------------------------------------------------------
alias attack_effect_KGC_OverDrive attack_effect
def attack_effect(attacker)
@base_damage = nil
# Exécute le processus d'origine
result = attack_effect_KGC_OverDrive(attacker)
if @base_damage == nil
# Retient les dommages de base d'origine
@base_damage = [attacker.atk - self.pdef / 2, 0].max *
(20 + attacker.str) / 20
end
# Dommages reçus
if result && self.damage.is_a?(Numeric)
# Augmentation d'Aggresif
if attacker.is_a?(Game_Actor) && self.is_a?(Game_Enemy) &&
attacker.overdrive_type == 0 && self.base_damage > 0
# Calcul du Drive
od_up = [[self.damage * KGC::OD_GAIN_RATE[0] * 10 / self.base_damage, 1].max, 160].min
# Drive
attacker.overdrive += od_up
# Lors des dégâts reçus
elsif attacker.is_a?(Game_Enemy) && self.is_a?(Game_Actor) &&
self.overdrive_type == 1 && self.base_damage > 0
od_up = [self.damage * KGC::OD_GAIN_RATE[1] * 10 / self.maxhp, 1].max
self.overdrive += od_up
end
end
return result
end
#--------------------------------------------------------------------------
# ? Application effective de la technique
#--------------------------------------------------------------------------
alias skill_effect_KGC_OverDrive skill_effect
def skill_effect(user, skill)
@base_damage = nil
# Exécute le processus d'origine
result = skill_effect_KGC_OverDrive(user, skill)
if @base_damage == nil
# Calcul de la Puissance
power = skill.power + user.atk * skill.atk_f / 100
if power > 0
power -= self.pdef * skill.pdef_f / 200
power -= self.mdef * skill.mdef_f / 200
power = [power, 0].max
end
# Calcul d'augmentation en pourcentage
rate = 20
rate += (user.str * skill.str_f / 100)
rate += (user.dex * skill.dex_f / 100)
rate += (user.agi * skill.agi_f / 100)
rate += (user.int * skill.int_f / 100)
# Retient les dommages de base
@base_damage = power * rate / 20
end
# Lors des Tenaces reçus
if result && self.damage.is_a?(Numeric)
# Augmentation des dégâts
if user.is_a?(Game_Actor) && self.is_a?(Game_Enemy) &&
user.overdrive_type == 0 && self.base_damage > 0
# Calcul du Drive
od_up = [[self.damage * KGC::OD_GAIN_RATE[0] * 10 / self.base_damage, 1].max, 160].min
# Drive
user.overdrive += od_up
# Lors des Tenaces reçus
elsif user.is_a?(Game_Enemy) && self.is_a?(Game_Actor) &&
self.overdrive_type == 1 && self.base_damage > 0
od_up = [self.damage * KGC::OD_GAIN_RATE[1] * 10 / self.maxhp, 1].max
self.overdrive += od_up
end
end
# Lors de l'utilisation de l'Overdrive
if user.is_a?(Game_Actor) && skill.element_set.include?($game_special_elements["overdrive"])
user.overdrive = 0
end
return result
end
end
#???????????????????????????????????????
#==============================================================================
# ¦ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ? Installation
#--------------------------------------------------------------------------
alias setup_KGC_OverDrive setup
def setup(actor_id)
# Exécute le processus d'origine
setup_KGC_OverDrive(actor_id)
@overdrive, @overdrive_type = 0, 0
end