[]Consomation de PV à la place des PM version 1.0
Auteur : aminedbz1234
Version : 1.0
Compatibilité : Avec tout l'SDK (toute verisons) et la majorité des Custom Battle System (SAUF le RATB)
Introduction :J'ai créé ce script suite à une demande d'un membre du forum, qui -dans sa demande- voulait perdre des PV au lieu des PM, lors de l'utilisation de certains skills.
En bonus, j'ai ajouté 2 Statuts "Demi PM", et "Zero PM", qui rendent la consommation des PM (ou PV) sur 2 ou la rendre à zero (pas de consommation)
Le script :Placez le script APRES le Custom Battle System que vous utilisez (Sauf le RTAB)
- Code: Tout sélectionner
#====================================================================
# ** Consomation de PV à la place des PM
# ------------------------------------------------------------------------------------
# Auteur : aminedbz1234
# Date de création : 09/02/2009 à 20:32
# Version : 1.0
# Compatible avec le SDK, mais pas avec RTAB
#
# ------------------------------------------------------------------------------------
# Introduction :
#
# Ce script est une reponse à une petite demande par un ami sur créative.
# Le but de ce script est de consommer les PV à la place des PM lors de
# l'utilisation des compétences.
# En bonus, vous pouvez ajouter des stats qui devisent le cout du skill par 2
# ou le rendre zéro (pas de consommation), et ça va donner aussi son effet
# sur la consommation des PV au lieu des PM !
#
# Utilisation :
#
# Vous pouvez préciser les compétences qui consomment les PV à la place des
# PM, en mettant leurs ID (qui est le numéro a coté de la compétence dans la Base
# des données)
# Ici :
# PV_CONSOMMATION = [57, 60] (par exemple)
#
# Donc, les compétence dont l'id ne figurent pas dans la liste n'y seront pas affectés
# En bonus, vous pouvez avoir des statuts qui devisent la consommation des PM
# par 2, ou la rendre à 0
#
# DEMI_PM_STAT = "Le nom de votre stat"
#
# ZERO_PM_STAT = "Le nom de votre stat
#
# Les noms doivent figurer dans votre Base de Données
#
# Notes d'auteur :
#
# J'ai créé ce script EXEPTIONELLEMENT pour RPG CREATIVE.(et pour un ami en plus)
# Alors, si vous voulez le poster sur un autre forum que créative, la moindre
# chose a faire, c'est de m'informer. Merci de bien respecter cela.
#
# J'ai redifinis toute cette methode : make_skill_action_result de la class
# Scene_Battle(4 exactement)
# Donc, mettez ce script APRES n'importe quel Custom Battle System que vous utilisez,
# de préférence, aprés Scene_Debug (Ou aprés le SDK si vous l'utilisez aussi)
# sinon, le script pourra causer des bugs, ou peut étre il ne fonctionnra plus.
#
# Si vous voulez : Demander/Rapports de bugs, contactez moi sur
# [url=]rpgcreative.forumpro.fr[/url] (aminedbz1234 !)
#
#==================================================================
#==================================================================
# * Configuration *
#==================================================================
module AMN
PV_CONSOMMATION = [57, 60] # ID des compétence qui utilisent les PV aulieu des PM
DEMI_PM_STAT = "Demi PM" # Le nom du statut pour les PM / 2
ZERO_PM_STAT = "Zero PM" # Le nom du statut pour les zero PM (Pas de consommation)
# Ne touchez pas ici ! Ceci est resérvé au system !
$data_states = load_data("Data/States.rxdata")
$data_states.each_index do |index| $demi_pm=index if ($data_states[index]!=nil and $data_states[index].name==DEMI_PM_STAT) end
$data_states.each_index do |index| $zero_pm=index if ($data_states[index]!=nil and $data_states[index].name==ZERO_PM_STAT) end
end
#===================================================================
# * Fin de la configuration*
#===================================================================
# Tester si l'SDK est definit ?
if Object.const_defined?('SDK')
# Inscrir le script dans l'SDK
SDK.log('Consomation de PV à la place des PM', 'aminedbz1234', 2, '09.02.09')
# Ne pas désactiver le script si le SDK a confirmé le script
@amn_pm_disactive = true if !SDK.enabled?('Consomation de PV à la place des PM')
end
# Si le script n'est pas désactivé
if !@amn_pm_disactive
#------------------------------------------------------------------------------
# * Commencer le test SDK
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# * Debut du script officiel
#------------------------------------------------------------------------------
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
# Cette class contorle le déroulement des combats sur l'ecran.
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Make Skill Action Results (Resultat d'une action : compétence)
# ----------------------
# Note : J'ai pas mis d'alias, j'ai tout redefinis du début
#--------------------------------------------------------------------------
def make_skill_action_result
# Avoir la compétence
@skill = $data_skills[@active_battler.current_action.skill_id]
# Si c'est pas une action forcée
unless @active_battler.current_action.forcing
# Si les PM sont à zéro
unless @active_battler.skill_can_use?(@skill.id)
# Disposer le battler qui a une action forcée
$game_temp.forcing_battler = nil
# Passer à step 1
@phase4_step = 1
return
end
end
@id = @skill.id # Initialiser l'ID du skill
if AMN::PV_CONSOMMATION.include?(@id) # Verifier si l'ID de la compétence
# se trouve dans la liste
# Si oui
if @active_battler.state?($demi_pm)
@active_battler.hp -= @skill.sp_cost / 2 # Deviser le cout sur 2
elsif
@active_battler.state?($zero_pm)
@active_battler.hp -= 0 # Rendre le cout 0
else
# Sinon
@active_battler.hp -= @skill.sp_cost
end
end
if !AMN::PV_CONSOMMATION.include?(@id) # Verifier si l'ID de la compétence
# ne figure pas dans la liste
# Si oui
if @active_battler.state?($demi_pm)
@active_battler.sp -= @skill.sp_cost / 2 # Deviser le cout sur 2
elsif
@active_battler.state?($zero_pm)
@active_battler.sp -= 0 # Rendre le cout zéro
else
# Sinon
@active_battler.sp -= @skill.sp_cost # Normal
end
end
# Rafréchir la fenétre statuts
@status_window.refresh
# Montrer le nom du skill
@help_window.set_text(@skill.name, 1)
# Jouer les animations
@animation1_id = @skill.animation1_id
@animation2_id = @skill.animation2_id
# Verifier les events communs
@common_event_id = @skill.common_event_id
# Verifier la cible
set_target_battlers(@skill.scope)
# Appliquer les effets du skill
for target in @target_battlers
target.skill_effect(@active_battler, @skill)
end
end
end
#------------------------------------------------------------------------------
# * Fin du test SDK
#------------------------------------------------------------------------------
end
Explications : Lisez bien l'entéte du script avant de poster des comments juste comme ça.
DEMO :http://www.megaupload.com/?d=6VNYJLAS