Ici, je posterai des effets pour les compétences régulièrement. Si vous en avez besoin d'un en particulier demandez, je chercherai !
TOUS LES SCRIPTS ONT ÉTÉ FAITS PAR Trickster !!!
1. CruautéDescription : le plus bas est le nombre de PV de l'ennemi, le plus de dommages cette attaque infligera.
Code : Tout d'abord créez un attribut "Cruauté" dans la base de données. Allez ensuite dans Game_Battler 3, ligne 173, et ajoutez ça en dessous :
- Code:
-
if skill.element_set.include?(ID de l'attribut)
@damage_hp = 10 * user.maxhp / user.hp + self.damage
#changez la formule si ça vous dit
end
N'oubliez pas de changer (ID de l'attribut) en...l'ID de votre attribut cruauté...
En dessous, mettez :
- Code:
-
if @damage_hp != 0 and @damage_hp != nil
self.damage = @damage_hp
last_hp = self.hp
self.hp -= @damage_hp if @damage_hp.is_a?(Numeric)
@hp_damaging = true
else
last_hp = self.hp
self.hp -= self.damage
end
Puis mettez ça en dessous de la ligne 104 :
- Code:
-
@hp_damaging = false
@damage_hp = 0
Ligne 183 et en dessous, il y a ça :
- Code:
-
if skill.power == 0
# ダメージに空文字列を設定
self.damage = ""
# ステートに変化がない場合
unless @state_changed
# ダメージに "Manqué" を設定
self.damage = "Manqué"
end
end
Remplacez le par :
- Code:
-
if skill.power == 0 and not @hp_damaging
# Set damage to an empty string
self.damage = ""
# If state is unchanged
unless @state_changed
# Set damage to "Manqué"
self.damage = "Manqué"
end
end
En dessous il y a ces lignes :
- Code:
-
last_hp = self.hp
self.hp -= self.damage
Enlevez les. Tous les événements avec l'attribut "Cruauté" font maintenant plus de dégâts quand les PV sont bas !
2. Pourcentage d'effetDescription : avec ce script, vous pourrez calculer les dégâts en % de PV : 50%, 25%, et même 100% pour une super attaque !
Code : En dessous de la ligne 173 (un peu plus bas si vous avez ajouté d'autre effets), ajoutez ça :
- Code:
-
if skill.element_set.include?(DIRECT HP ID)
@damage_hp = self.hp * (100 - skill.power) / 100
end
OPTIONAL
if skill.element_set.include?(DIRECT MAX HP ID)
@damage_hp = self.maxhp * (100 - skill.power) / 100
end
Le taux d'effet d'une attaque est maintenant le pourcentage de PV qu'elle enlève à l'ennemi.
3. ÉchangeDescription : vous échangez les PV et les MP avec la cible. Utile contre un boss où comme "sacrifice" : un perso nul mais en pleine force donne ses PV à un super combattant gravement blessé.
Code : Créez un attribut nommé "échange" et ligne 173 dans Game_Battler 3 (un peu en dessous si vous avez mis d'autres effets) ajoutez ça :
- Code:
-
if skill.element_set.include?(ELEMENT ID)
savehp = 0
savesp = 0
savehp += self.hp
savesp += self.sp
self.hp = user.hp
self.sp = user.sp
user.hp = savehp
user.sp = savesp
self.damage = "Swapped"
end
Encore une fois, n'oubliez pas de changer (ELEMENT ID).
À PARTIR DE MAINTENANT TOUS LES SCRIPTS VONT SOUS LA LIGNE 173 À PEU PRÈS À PART MENTION SPÉCIALE N'oubliez pas que si vous devez ajoutez un script en dessous de la ligne 183 au lieu de 173, ce que vous devriez ajouter en dessous de 183 va se placer sous 193. Il faut un peu calculer...4. Absorber les PVDescription : Cette compétence aspire les dégâts de l'ennemi et les donne au joueur.
Code : Où vous savez mettez ça :
- Code:
-
if skill.element_set.include?(ELEMENT ID)
if skill.variance == 0 and self.damage.abs > 0
user.hp += rand(self.damage)
else
user.hp += self.damage * skill.variance / 100
end
end
Ligne 153 (ne la descendez pas, elle ne bouge pas), trouvez ça :
- Code:
-
if skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * skill.variance / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
Et remplacez le par :
- Code:
-
if skill.element_set.include?(ELEMENT ID)
if skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
else
if skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * skill.variance / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
end
Mais les PV ne viendront qu'au tour suivant...
5. Dégâts calculés par le nombre d'objets détenusDescription : Le dégâts des attaques augmente avec le nombre d'objets détenus.
Code : Ajoutez ça à l'endroit habituel :
- Code:
-
if skill.element_set.include?(17)
@damage_hp = $game_party.items.size
@damage_hp *= skill.variance
end
Et dans Game_Party, ajoutez attr_reader : items au début, vous verrez vite où...
6. Dégâts calculés par le nombre de compétences connuesDescription : un peu comme le 5 sauf que c'est par rapport aux compétences apprises...
Code : (je ne dis plus où mettre, vous connaissez l'endroit par défaut...)
- Code:
-
if skill.element_set.include?(18) and user.is_a?(Game_Actor)
@damage_hp = user.skills.size
@damage_hp *= skill.variance
elsif skill.element_set.include?(18) and user.is_a?(Game_Enemy)
@damage_hp = self.skills.size
@damage_hp *= skill.variance
end
7. Dégâts par rapport à l'argent possédéDescription : Même que 5 et 6 mais avec l'or...
Code :
- Code:
-
if skill.element_set.include?(18) and user.is_a?(Game_Actor)
@damage_hp = user.skills.size
@damage_hp *= skill.variance
elsif skill.element_set.include?(18) and user.is_a?(Game_Enemy)
@damage_hp = self.skills.size
@damage_hp *= skill.variance
end
8. Le plus on l'utilise le mieux c'estDescription : le plus vous utilisez une attaque, le plus efficace elle est.
Code :
- Code:
-
if skill.element_set.include?(18) and user.is_a?(Game_Actor)
@damage_hp = user.skills.size
@damage_hp *= skill.variance
elsif skill.element_set.include?(18) and user.is_a?(Game_Enemy)
@damage_hp = self.skills.size
@damage_hp *= skill.variance
end
9. Le plus on l'utilise le mieux c'est (2)Description : même que 8 mais toutes les attaques d'un attribut augmente quand on utilise une attaque de cet attribut.
Code :
- Code:
-
if skill.element_set.include?(21)
multiplier = 0
for i in user.skills
if $data_skills[i].element_set.include?(skill.variance)
multiplier += 1
end
if multiplier == user.skills.size
multiplier *= 1.5
end
end
@damage_hp = self.damage * (1.20625 ** multiplier) + rand(5 * multiplier)
@damage_hp = Integer(@damage_hp)
end
Ligne 153 à peu près trouvez ça :
- Code:
-
if skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * skill.variance / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
Et remplacez le par :
- Code:
-
if not skill.element_set.include?(21) and not skill.element_set.include?(22)
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
elsif skill.variance > 0 and self.damage.abs > 0
amp = [self.damage.abs * skill.variance / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
10. Plus on est de fous, plus on fait mal...Description : si un autre membre de l'équipe connaît la même attaque elle fait plus de dégâts.
Code :
- Code:
-
if skill.element_set.include?(22)
for actor in $game_party.actors
if actor.skills.include?(skill.variance)
multiplier += 1
end
if multiplier == $game_party.actors.size
multiplier += 1
end
end
@damage_hp = self.damage * (1.5 ** multiplier) + rand(5 * multiplier)
@damage_hp = Integer(@damage_hp)
end
11. Formule de combat PokémonDescription : dans Pokémon, il y a une autre formule de dégâts que dans RMXP. La voilà.
Code :
- Code:
-
if skill.element_set.include?(25) and not user.is_a?(Game_Enemy)
level = user.level
power = get_power
attack = skill.atk_f
attack1 = user.atk
defense = skill.pdef_f
defense1 = self.pdef
eff = elements_correct(skill.element_set) / 100
multiplier = rand(255 - 217 + 1) + 217 - 1
critical = 1
if rand(100) < 4 * attacker.dex / self.agi
critical = 2
end
@damage_hp = ((2 * level / 5 + 2) * power * (attack1 * attack)/(defense1 * defense) / 50 + 2) * eff * multiplier / 255 * critical
end
12. Clonage Description : vous clonez un ennemi et le rajoutez à vos ennemis. Utile si la personne à cloner est affectée de folie ou si vous voulez tout plein d'expérience.
Code :
- Code:
-
if elements.include?(17) #Clone
$game_party.add_enemy(self)
$game_party.actors[-1].remove_after = true
if skill.variance != 0
$game_party.actors[-1].remove_turns = skill.variance
end
end
Dans Game_Temp, ajoutez ça, vous verrez vite où :
- Code:
-
attr_accessor :remove_after # remove at end of battle 19
attr_accessor :remove_turns # number of turns to be removed 19
En dessous ajoutez :
- Code:
-
def remove_states_battle
for i in @states.clone
if $data_states[i].battle_only
remove_state(i)
end
end
if self.remove_after
$game_party.remove_actor(self.id)
end
end
def remove_states_auto
for i in @states_turn.keys.clone
if @states_turn[i] > 0
@states_turn[i] -= 1
elsif rand(100) < $data_states[i].auto_release_prob
remove_state(i)
end
end
if self.remove_turns != nil
self.remove_turns -= 1
if self.remove_turns == 0
self.remove_turns = nil
$game_party.remove_actor(self.id)
end
end
end
end
N'importe où dans Game_Party, mettez ça :
- Code:
-
def add_enemy(enemy)
i = 0
while @actors.include?($game_actors[9+i])
i += 1
end
$game_actors[9+i].setup(9+i)
$game_actors[9+i].copy_stats(enemy, 9+i)
if @actors.size < 4
@actors.push($game_actors[9+i])
$game_player.refresh
end
end
Et n'importe où dans Game_Party, mettez :
- Code:
-
def copy_stats(enemy, id)
actor = $data_actors[id]
@actor_id = id
@name = enemy.name
@character_name = self.character_name
@character_hue = self.character_hue
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@class_id = 9 #Enemy class id
@weapon_id = 0
@armor1_id = 0
@armor2_id = 0
@armor3_id = 0
@armor4_id = 0
@level = 1
@exp_list = Array.new(101)
make_exp_list
@exp = @exp_list[@level]
@skills = []
for action in enemy.actions
@skills.push(action.skill_id) if action.skill_id != nil
end
@hp = enemy.maxhp
@sp = enemy.maxsp
@states = []
@states_turn = {}
@maxhp_plus = enemy.maxhp - base_maxhp
@maxsp_plus = enemy.maxsp - base_maxsp
@str_plus = enemy.str - base_str
@dex_plus = enemy.dex - base_dex
@agi_plus = enemy.agi - base_agi
@int_plus = enemy.int - base_int
@eva_plus = enemy.eva
@atk_plus = enemy.atk
@pdef_plus = enemy.pdef
@mdef_plus = enemy.mdef
end
13. Résurrection MAXDescription : ressuscite tous vos alliés et fait mal à l'ennemi.
Code :
- Code:
-
if elements.include?(18) #+ revive
for actor in $game_party.actors
if actor.hp0?
actor.states_minus([1])
actor.hp = skill.variance * actor.maxhp / 100
end
end
end
14. BarrièreDescription : la personne ciblée défend ses alliés et évite toutes les attaques.
Code :
- Code:
-
if elements.include?(19) #Defender
self.battle_flags = 'defender'
self.turns_bf = skill.variance
end
if elements.include?(20) #Hidden
self.battle_flags = 'hidden'
self.turns_bf = skill.variance
end
Dans Game_Temp (voyez où), ajoutez ça :
- Code:
-
attr_accessor :battle_flags #21-22 special flags
attr_accessor :turns_bf #21-22 turns for above
Et ça n'importe où dans le même script :
- Code:
-
def remove_states_battle
for i in @states.clone
if $data_states[i].battle_only
remove_state(i)
end
end
self.battle_flags = nil
self.turns_bf = nil
end
def remove_states_auto
for i in @states_turn.keys.clone
if @states_turn[i] > 0
@states_turn[i] -= 1
elsif rand(100) < $data_states[i].auto_release_prob
remove_state(i)
end
end
if self.turns_bf != nil
self.turns_bf -= 1
if self.turns_bf == 0
self.turns_bf = nil
self.battle_flags = nil
end
end
end
end
Enfin mettez ça quelque part dans Game_Party :
- Code:
-
def smooth_target_actor(actor_index)
# Get an actor
# If an actor exists
for actor in @actors
if actor.battle_flags == 'defender'
index = @actors.index(actor)
return @actors[index]
end
end
actor = @actors[actor_index]
if actor != nil and actor.exist?
if actor.battle_flags != 'hidden'
return actor
end
end
# Loop
for actor in @actors
# If an actor exists
if actor.exist?
if actor.battle_flags != 'hidden'
return actor
end
end
end
end
15. Longues batailles = gros dégâtsDescription : quand la bataille s'allonge, les attaques deviennnent plus efficaces.
Code :
- Code:
-
if elements.include?(21) #turn damage
@damage_hp = @num_turns + self.damage
@damage_hp *= Integer(1.01625 ** @num_turns)
end
Mettez ça dans Game_Temp (voyez où) :
- Code:
-
attr_accessor :num_turns #number of turns of battle
Et n'importe où dans le même script :
- Code:
-
def remove_states_battle
for i in @states.clone
if $data_states[i].battle_only
remove_state(i)
end
end
self.num_turns = 0
end
def remove_states_auto
for i in @states_turn.keys.clone
if @states_turn[i] > 0
@states_turn[i] -= 1
elsif rand(100) < $data_states[i].auto_release_prob
remove_state(i)
end
end
@num_turns += 1
end
16. Trop sauver c'est mauvais pour la santé !Description : plus on sauve, moins les attaques sont efficaces.
Code :
- Code:
-
if elements.include?(22) #save damage
@damage_hp = $game_system.save_count + self.damage
@damage_hp *= Integer(100 ** (1.0/$game_system.save_count)) - 1
end
17. Échange (2)Description : vous échangez vos PV avec vos MP. Sympa pour un guerrier affaibli !
Code :
- Code:
-
if elements.include?(23) #Swap 2
save_hp = self.hp
save_sp = self.sp
self.hp = save_sp
self.sp = save_hp
end
(Faites en sorte que l'attribut 23 soit "échange 2". Toutes les attaques avec cette attribut seront un échange 2.)
18. Échange (3)Description : la résistance est inversée. Si un monstre résiste bien au feu, il y est maintenant vulnérable !
Code :
- Code:
-
if elements.include?(24) #inversion
@damage_hp = 100 / self.damage + rand(self.damage)
end
(Faites en sorte que l'attribut 30 soit "échange 3". Toutes les attaques avec cette attribut seront un échange 3.)
19. CadeauDescription : le joueur gagne un cadeau quand il utilise cette attaque.
Code :
- Code:
-
if elements.include?(31)
@damage_hp = self.damage
if rand(100) > skill.variance
@damage_hp *= -1
end
end
(Faites en sorte que l'attribut 32 soit "cadeau". Toutes les attaques avec cette attribut donneront un cadeau.)