- Code:
-
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def escape
# ヒドゥンフラグをセット
@hidden = true
# カレントアクションをクリア
self.current_action.clear
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def transform(enemy_id)
# エネミー ID を変更
@enemy_id = enemy_id
# バトラー グラフィックを変更
@battler_name = $data_enemies[@enemy_id].battler_name
@battler_hue = $data_enemies[@enemy_id].battler_hue
# アクション再作成
make_action
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
#scrïpt amélioré par RPG Advocate
def make_action
self.current_action.clear
unless self.movable?
return
end
available_actions = []
rating_max = 0
for action in self.actions
n = $game_temp.battle_turn
a = action.condition_turn_a
b = action.condition_turn_b
if (b == 0 and n != a) or
(b > 0 and (n < 1 or n < a or n % b != a % b))
next
end
if self.hp * 100.0 / self.maxhp > action.condition_hp
next
end
if $game_party.max_level < action.condition_level
next
end
switch_id = action.condition_switch_id
if switch_id > 0 and $game_switches[switch_id] == false
next
end
if exclude_pointless_actions(action)
next
end
available_actions.push(action)
if action.rating > rating_max
rating_max = action.rating
end
end
ratings_total = 0
for action in available_actions
ratings_total += action.rating
end
if ratings_total > 0
choose_action = []
for action in available_actions
for j in 1..action.rating
choose_action.push(action)
end
end
enemy_action = choose_action[rand(choose_action.size - 1)]
self.current_action.kind = enemy_action.kind
self.current_action.basic = enemy_action.basic
self.current_action.skill_id = enemy_action.skill_id
self.current_action.decide_random_target_for_enemy
end
end
# --------------------------------
def exclude_pointless_actions(action)
if action.kind == 0
return false
end
if action.kind == 1
s = action.skill_id
if self.sp < $data_skills[s].sp_cost
return true
end
if $data_skills[s].common_event_id > 0
return false
end
if $data_skills[s].scope == 0 || $data_skills[s].scope == 1 ||
$data_skills[s].scope == 2
return false
end
if $data_skills[s].scope == 3 || $data_skills[s].scope == 4
if $game_troop != nil
fullhpflag = true
statusflag = true
for i in $game_troop.enemies
if i.hp < i.maxhp && i.exist?
fullhpflag = false
end
for j in $data_skills[s].plus_state_set
if not i.state?(j) && i.exist?
statusflag = false
end
end
for j in $data_skills[s].minus_state_set
if i.state?(j) && i.exist?
statusflag = false
end
end
end
end
if $data_skills[s].power == 0 && statusflag
return true
end
if $data_skills[s].power < 0 && statusflag && fullhpflag
return true
end
end
if $data_skills[s].scope == 5 || $data_skills[s].scope == 6
nonedeadflag = true
if $game_troop != nil
for i in $game_troop.enemies
if i.dead? and not i.hidden
nonedeadflag = false
end
end
end
if nonedeadflag
return true
end
end
if $data_skills[s].scope == 7
if $game_troop != nil
fullhpflag = true
statusflag = true
if self.hp < self.maxhp
fullhpflag = false
end
for j in $data_skills[s].plus_state_set
if not self.state?(j)
statusflag = false
end
end
for j in $data_skills[s].minus_state_set
if self.state?(j)
statusflag = false
end
end
end
if $data_skills[s].power == 0 && statusflag
return true
end
if $data_skills[s].power < 0 && statusflag && fullhpflag
return true
end
end
end
return false
end
end
Manuel d'utilisation: Voilà les choses qui changeront :
dans la création d'un monstre vous aviez :
PV max
PM max*
Force
Defence*
Agilité *
Intelligence*
Attaque
Def physique
Def magique
Esquive *
Légende: Les données qui ont un * devant restent inchangées, vous choisissez ce
que vous voulez, elles resteront stables tout au long au jeu.
Maintenant voilà ce que deviennent les autres valeurs : PV max : c'est le pourcentage de la somme des PV max de l'équipe.
Je m'explique : vous avez 2 héros de PV maximums 450 et 500.
La somme est 950. Si vous mettez 10 dans les champ "PV max" du monstre" ça donnera :
950*10/100 (10% de la somme) = 95
Rien de vous empèche de mettre des grands nombres comme 200% pour un
boss, mais je vous préviens : 80% cest déjà du gros monstre dure à
battre !
Force : cette fois c'est le pourcentage de la moyenne des forces de l'équipe.
Exemple : 2 héros de forces 30 et 50. Moyenne : 40
Vous placez par exemple 50 dans le champ "Force" du monstre, vous obtenez 40*50/100 = 20
L'attaque, la défence physique et la défence magique fonctionnent sur
le même principe que la force, avec une moyenne des données de
l'équipe, et non pas une somme comme pour les PVmax.
Plus:
Précision : pour l'expérience donnée par le monstre, elle est égale au
produit de l'expérience que vous avez inscrit dans le champs
"expérience" du monstre, et du niveau du héro n°1 (uniquement).
Mais cette relation est modifiables, si elle ne vous plait pas demandez
moi je vous la modifierai.
Exemple : un héro de level 34 combat un monstre censé donne 10 en exp, ça donne un total de 10*34 = 340 pts d'expérience.
Ne mettez donc pas de trop grand nombre, de toute façon, puisqu'il s'adapte :
au niveau 1 : le héro tue le monstre et gagne 10 pts
au niveau 34 : le héro tu le monstre et gagne 340 pts
ça parait normal, puisque plus le niveau monte, plus il faut de points pour passer au suivant.
ATTENTION : ce scrïpt implique de revoir TOUS
les monstres que vous avez déjà créé pour votre jeu, car les valeurs de
HP, SP, etc. ne sont pas des valeurs réelle, mais des vecteurs
d'adaptation.