Auteur : ASHKA
Nombre de script : 1
Info : Alors, comment dire ...
Vous connaissez FF7 ? Vous connaissez la materia " Talent de l'ennemi " ?
Bah c'est ma source d'inspiration pour ce script ( avec un soupçon de Legend of Legaïa ... ).
Si un monstre attaque avec une certaine competence pouvant etre apprise un héros possedant un certain accessoire, celui ci a une certaine probabilité d'apprendre la dite competence et de pouvoir l'utiliser par la suite.
Contrairement à FF7 ( mais pas à Legend of legaïa ... ), le héros possedera la competence même s'il désequipe par la suite l'accessoire.
Créer un nouveau script dans " Materials " et collez y ceci :
# Avoir des accessoires permettant d'apprendre les competences de l'ennemi
module TE
# ID de l'accessoire ( ou des ... ) permettant d'apprendre les competences ennemis
ID_OBJ = [32]
# Associe l'ID d'un monstre aux competences pouvant etre apprise
SKILL = {1 => [59, 60, 61, 62], 2 => [4], 3 => [],
4 => [12], 5 => []}
# id monstre => [ id skill, id skill, id skill]
# Pourcentage d'apprentissage de la competence
PROBA = 40 # 40 % de chance d'apprendre la competence
end
################################################################################
class Game_Battler
def make_obj_damage_value(user, obj)
damage = obj.base_damage # get base damage
if damage > 0 # a positive number?
damage += user.atk * 4 * obj.atk_f / 100 # Attack F of the user
damage += user.spi * 2 * obj.spi_f / 100 # Spirit F of the user
unless obj.ignore_defense # Except for ignore defense
damage -= self.def * 2 * obj.atk_f / 100 # Attack F of the target
damage -= self.spi * 1 * obj.spi_f / 100 # Spirit F of the target
end
damage = 0 if damage < 0 # If negative, make 0
elsif damage < 0 # a negative number?
damage -= user.atk * 4 * obj.atk_f / 100 # Attack F of the user
damage -= user.spi * 2 * obj.spi_f / 100 # Spirit F of the user
end
damage *= elements_max_rate(obj.element_set) # elemental adjustment
damage /= 100
damage = apply_variance(damage, obj.variance) # variance
damage = apply_guard(damage) # guard adjustment
if user.actor? == false and self.actor? and obj.is_a?(RPG::Skill)
if TE::ID_OBJ.include?(self.equips[4].id)
if TE::SKILL[user.enemy_id].include?(obj.id)
if rand(101) < TE::PROBA
unless $game_temp.learn.include?([self.id, obj.id])
unless self.skills.include?(obj)
$game_temp.learn.push([self.id, obj.id])
end
end
end
end
end
end
if obj.damage_to_mp
@mp_damage = damage # damage MP
else
@hp_damage = damage # damage HP
end
end
end
################################################################################
class Scene_Battle < Scene_Base
def start
super
$game_temp.learn = []
$game_temp.in_battle = true
@spriteset = Spriteset_Battle.new
@message_window = Window_BattleMessage.new
@action_battlers = []
create_info_viewport
end
def process_victory
@info_viewport.visible = false
@message_window.visible = true
RPG::BGM.stop
$game_system.battle_end_me.play
unless $BTEST
$game_temp.map_bgm.play
$game_temp.map_bgs.play
end
display_exp_and_gold
display_drop_items
display_level_up
display_learn
battle_end(0)
end
def display_learn
for x in 0..($game_temp.learn.size - 1)
actor_id = $game_temp.learn[x][0]
skill_id = $game_temp.learn[x][1]
unless $game_actors[actor_id].skills.include?($data_skills[skill_id])
$game_actors[actor_id].learn_skill(skill_id)
text = $game_actors[actor_id].name.to_s + ' apprends le Talent " ' + $data_skills[skill_id].name.to_s + ' " !!'
$game_message.texts.push(text)
end
end
wait_for_message
end
end
################################################################################
class Game_Temp
attr_accessor :learn
alias new initialize
def initialize
@learn = []
new
end
end
################################################################################Configuration en debut de script ...
ASHKA

Connexion
Inscription
Aide
Ajouter une réponse



Multi-citation