Nombres de monstres tuée


1.Preparation

Deja faudrai modifier quelques petitres choses ^^ :

dans Scene_Battle 2 il va falloir rajouter une ligne, cela se situe normallement vers la ligne 148, juste après le unless enemy.hidden

Il fau mettre apres ca :
# Ajout pour la liste des monstres par Krazplay
$game_variables[100 + enemy.id] += 1



2.Script

Passons au script maintenent ^^ :

Si vous avez tout callé :p, vous devriez avoir ça si vous n'avez rien modifier (ligne 130 a 166) :


#--------------------------------------------------------------------------
# ● アフターバトルフェーズ開始
#--------------------------------------------------------------------------
def start_phase5
# フェーズ 5 に移行
@phase = 5
# バトル終了 ME を演奏
$game_system.me_play($game_system.battle_end_me)
# バトル開始前の BGM に戻す
$game_system.bgm_play($game_temp.map_bgm)
# EXP、ゴールド、トレジャーを初期化
exp = 0
gold = 0
treasures = []
# ループ
for enemy in $game_troop.enemies
# エネミーが隠れ状態でない場合
unless enemy.hidden
# Ajout pour la liste des monstres par Krazplay
$game_variables[100 + enemy.id] += 1
# 獲得 EXP、ゴールドを追加
exp += enemy.exp
gold += enemy.gold
# トレジャー出現判定
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end


Maintenant que cela est fait il faut créer un nouveau scrîpt au-dessus de main, qui contient cela(Appelez le Scene_Liste_Monstres ) :


#==============================================================================
# ■ Scene_Liste_Monstres par Krazplay
#------------------------------------------------------------------------------
# Ce scrîpt ne fonctionne qu'avec le scrîpt Window_Monstres.
# N'oubliez pas que les variables 101 à 100+Nbre de monstres dans votre database
# sont utilisés pour mémoriser le nombre de monstres tués de chaque sorte.
# Pour appeller ce menu il suffit d'écrire la ligne suivante :
# $scene = Scene_Liste_Monstres.new
#==============================================================================

class Scene_Liste_Monstres
def main
@monstres_window = Window_Monstres.new
Graphics.transition
@monstres_window.refresh
loop do
Graphics.update #Efface ce qu'on pourrait voir par transparence
Input.update
update_command
if $scene != self #Si la scène ne doit plus être celle-ci
@monstres_window.dispose #On efface la fenêtre des monstres
break #On casse la boucle sinon on restera tjs ici
end
end
end #main

def update_command
if Input.trigger?(Input::B) #B = Bouton échap
$game_system.se_play($data_system.cancel_se)
if $vientdumenu == 1
$vientdumenu = 0
$scene = Scene_Menu.new(0) #On repart dans le menu (curseur sur Objets)
else
$scene = Scene_Map.new #On repart sur la carte
end
Graphics.freeze #Pour éviter une transition trop brutal
end

if Input.trigger?(Input::RIGHT)
@monstres_window.nettoyage
@monstres_window.pageplusun
@monstres_window.refresh
end

if Input.trigger?(Input::LEFT)
@monstres_window.nettoyage
@monstres_window.pagemoinsun
@monstres_window.refresh
end
end #update_command
end #class Scene_Liste_Monstres


Maintenant il faut en créer un second, toujours au-dessus de main (Qu'on appelera : Window_Monstres) :

#==============================================================================
# ■ Window_Monstres par Krazplay
#------------------------------------------------------------------------------
#Permet de créer une fenêtre avec le nom de tout les ennemis tués et combien de
#fois ils ont été tués.
#==============================================================================
class Window_Monstres < Window_Base

def initialize
@page = 0
#Taille du cadre que l'on voie, mais dont on ne peut pas écrire dessus :
super(0, 0, 640, 480)
#Image invisible où l'on va pouvoir écrire dessus :
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = "Arial"
self.contents.font.size = 24
self.contents.clear
self.contents.draw_text(20, 0, 500, 32, "Noms des monstres :")
self.contents.draw_text(400, 0, 500, 32, "Nombres tués :")
#Calcul de la dernière page :
@dernierepage = Integer($data_enemies.size / 15) + 1
refresh
end #def initialize

def refresh
self.contents.draw_text(240, 420, 500, 32, "Page " + (@page+1).to_s + " / " + @dernierepage.to_s)
m = 1
if @page == @dernierepage - 1
monstremoins = 15 - (($data_enemies.size - 1) % 15)
else
monstremoins = 0
end
for i in (1 + 15*@page)...(16 + 15*@page - monstremoins)
if $game_variables[100 + i] != 0
self.contents.draw_text(20, (26 * m) + 15, 500, 26, $data_enemies[i].name)
else
self.contents.draw_text(20, (26 * m) + 15, 500, 26, "Ennemi inconnu")
end
self.contents.draw_text(470, (26 * m) + 15, 500, 26, $game_variables[100 + i].to_s)
m += 1
end
end #end refresh

def pageplusun
if @page < @dernierepage -1
@page += 1
end
end

def pagemoinsun
if @page > 0
@page -= 1
end
end

def nettoyage
self.contents.clear
self.contents.draw_text(20, 0, 500, 32, "Noms des monstres :")
self.contents.draw_text(400, 0, 500, 32, "Nombres tués :")
end

end #class Window_Monstres


Maintenant comment faire pour accéder à ce menu ?
C'est à vous de voir, vous pouvez rajouter une option dans le menu, et mettre que cette option fait cela :


$game_system.se_play($data_system.decision_se)
$vientdumenu = 1
$scene = Scene_Liste_Monstres.new


Ou alors vous pouvez tout simplement créer un évènement qui executera ce scrîpt (dernière page, tout en bas à droite il y a "Insérer un script") :
$scene = Scene_Liste_Monstres.new