Auteur : ASHKA
Nombre de script : 1
Info : Le but de ce script est de faire un systeme de spécialité proche de celui de Saga frontier 2.
Chaques héros a un type d'arme preferé avec laquelle il infligera plus de degats.
Il y en a aussi qu'il manie tres mal, causant peu de degats.
( On a donc comme facteur : Atk héros / atk arme / maitrise arme / pdef cible )
Fonctionne pour les attaques normales.
Créer un nouveau script dans " Materials " et collez y ceci :
=begin
Systeme de spécialité dans le maniement des armes
Le principe est de faire qu'un guerrier rompu au maniement de l'épée fasse plus
de degats quand il utilise une épée ...
Utilisation :
Dans l'onglet " Systeme " de la base de donnée, crée autant d'elements qu'il y
aura de type d'arme dans votre jeu ( épée, lance, hache, arc, couteau, ... )
Associé ensuite ces élements aux armes qu'ils representent dans l'onglet " Arme "
Configurer ensuite les lignes à pour spécifier les aptitudes de vos héros.
$spécialité[ID du héros] = [[2, [20, 21, 22]], [1, [23, 24, 25]], [0.1, [26, 27, 28, 29]]]
Entre crochets se trouve les aptitudes particuliere du héros
Premier bloc : 2 est l'indice de degats ( degats doublé )
[20, 21, 22] sont les attributs qui sont associé à cet indice ( les elements de la
base de donnée )
Crée autant de bloc que vous voulez sur le même schema :
[indice, [element, element, element]]
Quand le héros utilise son arme, les degats seront modifiés par l'indice qui lui correspond
=end
class Game_Battler
$spécialité = {}
for id in 1..8 # Nombre de héros dans la base de donnée
$spécialité[id] = {}
end
$spécialité[1] = [[2, [20, 21, 22]], [1, [23, 24, 25]], [0.1, [26, 27, 28, 29]]]
$spécialité[2] = [[0.2, [20, 21, 22]], [1, [23, 24, 25, 26, 27]], [5, [28, 29]]]
def make_attack_damage_value(attacker)
damage = attacker.atk * 4 - self.def * 2 # base calculation
damage = 0 if damage < 0 # if negative, make 0
damage *= elements_max_rate(attacker.element_set) # elemental adjustment
damage /= 100
if damage == 0 # if damage is 0,
damage = rand(2) # half of the time, 1 dmg
elsif damage > 0 # a positive number?
@critical = (rand(100) < attacker.cri) # critical hit?
@critical = false if prevent_critical # criticals prevented?
damage *= 3 if @critical # critical adjustment
end
damage = apply_variance(damage, 20) # variance
damage = apply_guard(damage)
####
if attacker.actor?
max = $spécialité[attacker.id].size - 1
for x in 0..max
for y in $data_weapons[attacker.weapon_id].element_set
if $spécialité[attacker.id][x][1].include?(y)
damage *= $spécialité[attacker.id][x][0]
end
end
end
end
####
@hp_damage = damage.to_i # damage HP
end
endIl y a quelques configurations à faire, tout est expliqué au debut du script !!
ASHKA

Connexion
Inscription
Aide
Ajouter une réponse



Multi-citation