[Autres]Bestiaire avancé

La section pour les scripts de RPG Maker XP !

[Autres]Bestiaire avancé

Message par Amathlog » 18 Juin 2007, 20:17

Vient de la factory : http://rpgmakerxp-factory.net

Tout d'abord voici les screens:
En cas de fuite:
Image
En cas de victoire:
Image

Alors commencez par ajouter cette classtification tout en haut de Scene_Title :>:Avant meme [class Scene_Title]:
Code : Tout sélectionner
module KGC
$game_special_elements = {}
$imported = {}
$data_states = load_data("Data/States.rxdata")
$data_system = load_data("Data/System.rxdata")
end

Puis creez un nouveau scrîpt au dessus de Main:
Code : Tout sélectionner
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/Scene liste Monsrte modifie par knigt1[Original venant de KGC]
#_/----------------------------------------------------------------------------
#_/ The monster picture book is drawn up?
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#==============================================================================
# ? Customization item ?
#==============================================================================

module KGC
 # ????????????
 #  ?????????ID??????
 MG_HIDE_ENEMIES = [16]
end

class Window_MonsterGuideRight < Window_Base
 # ???????????(??ID)
 MG_ELEMENT_RANGE = 1..8

 # ????????
 MG_WEEK_COLOR = Color.new(255, 128, 128)
 # ????????
 MG_RESIST_COLOR = Color.new(128, 128, 255)
end

class Scene_MonsterGuide
 # ??????????????
 #  false ?????C ??????????????
 #  (????????? true ????OK)
 MG_MOVE_REFRESH = true
end

class Scene_Battle
 # ?????????
 #  false ??????????????????????
 MG_ORIGINAL_DEFEAT = true
end

#???????????????????????????????????????

$imported["MonsterGuide"] = true

class Object
 include KGC
end

#???????????????????????????????????????

#--------------------------------------------------------------------------
# ? ???????????
#--------------------------------------------------------------------------
def call_monster_guide
 # ???????????
 $game_player.straighten
 # ??????????????
 $scene = Scene_MonsterGuide.new
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_System
#==============================================================================

class Game_System
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 attr_accessor :enemy_encountered        # ???????
 attr_accessor :enemy_defeated           # ???????
 #--------------------------------------------------------------------------
 # ? ?????????
 #--------------------------------------------------------------------------
 alias initialize_KGC_MonsterGuide initialize
 def initialize
   # ???????
   initialize_KGC_MonsterGuide

   @enemy_encountered = []
   @enemy_defeated = []
 end
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 def enemy_exist?(enemy_id)
   return $data_enemies[enemy_id] != nil && $data_enemies[enemy_id].name != ""
 end
 #--------------------------------------------------------------------------
 # ? ???????????
 #--------------------------------------------------------------------------
 def all_enemies_count
   n = 0
   # ????????????
   for i in 1...$data_enemies.size
     next if !enemy_exist?(i) || MG_HIDE_ENEMIES.include?(i)
     n += 1
   end
   return n
 end
 #--------------------------------------------------------------------------
 # ? ???????????
 #--------------------------------------------------------------------------
 def defeated_enemies_count
   n = 0
   # ????????????
   for i in 1...$data_enemies.size
     next if !enemy_exist?(i) || !@enemy_encountered[i] ||
       !@enemy_defeated[i] || MG_HIDE_ENEMIES.include?(i)
     n += 1
   end
   return n
 end
 #--------------------------------------------------------------------------
 # ? ?????????????
 #--------------------------------------------------------------------------
 def monster_guide_completion
   return defeated_enemies_count * 100 / all_enemies_count
 end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 attr_reader   :original_id              # ????ID
 #--------------------------------------------------------------------------
 # ? ?????????
 #     troop_id     : ???? ID
 #     member_index : ???????????????
 #--------------------------------------------------------------------------
 alias initialize_KGC_MonsterGuide initialize
 def initialize(troop_id, member_index)
   # ???????
   initialize_KGC_MonsterGuide(troop_id, member_index)

   @original_id = []
   # ??????????
   unless @hidden
     $game_system.enemy_encountered[@enemy_id] = true
   end
 end
 #--------------------------------------------------------------------------
 # ? ??
 #     enemy_id : ???????? ID
 #--------------------------------------------------------------------------
 alias transform_KGC_MonsterGuide transform
 def transform(enemy_id)
   # ????ID???
   @original_id.push(@enemy_id)

   # ???????
   transform_KGC_MonsterGuide(enemy_id)

   # ?????????????
   $game_system.enemy_encountered[@enemy_id] = true
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def hidden=(value)
   @hidden = value
   # ?????????????????
   unless @hidden
     $game_system.enemy_encountered[@enemy_id] = true
   end
 end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_MonsterGuideTop
#------------------------------------------------------------------------------
#  ???????????????????????????
#==============================================================================

class Window_MonsterGuideTop < Window_Base
 #--------------------------------------------------------------------------
 # ? ?????????
 #--------------------------------------------------------------------------
 def initialize
   super(0, 0, 240, 96)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 160
   refresh
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   text = "???:#{$game_system.defeated_enemies_count}/#{$game_system.all_enemies_count}"
   self.contents.draw_text(0, 0, width - 32, 32, text)
   text = "???:#{$game_system.monster_guide_completion}%%"
   self.contents.draw_text(0, 32, width - 32, 32, text)
end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_MonsterGuideLeft
#------------------------------------------------------------------------------
#  ???????????????????????????????
#==============================================================================

class Window_MonsterGuideLeft < Window_Selectable
 #--------------------------------------------------------------------------
 # ? ?????????
 #--------------------------------------------------------------------------
 def initialize
   super(0, 96, 240, 384)
   self.index = 0
   self.back_opacity = 160
   refresh
 end
 #--------------------------------------------------------------------------
 # ? ??????????
 #--------------------------------------------------------------------------
 def item
   return @data[self.index]
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def refresh
   if self.contents != nil
     self.contents.dispose
     self.contents = nil
   end
   @data = []
   # ???????????
   for i in 1...$data_enemies.size
     next if !$game_system.enemy_exist?(i) || MG_HIDE_ENEMIES.include?(i)
     @data.push($data_enemies[i])
   end
   # ???? 0 ??????????????????????
   @item_max = @data.size
   if @item_max > 0
     self.contents = Bitmap.new(width - 32, row_max * 32)
     for i in 0...@item_max
       draw_item(i)
     end
   end
 end
 #--------------------------------------------------------------------------
 # ? ?????
 #     index : ????
 #--------------------------------------------------------------------------
 def draw_item(index)
   enemy = @data[index]
   # ?????????????????????????????
   if $game_system.enemy_defeated[enemy.id]
     self.contents.font.color = normal_color
   else
     self.contents.font.color = disabled_color
   end
   x = 4
   y = index * 32
   rect = Rect.new(x, y, self.width - 40, 32)
   self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
   # ???????????????????????
   if $game_system.enemy_encountered[enemy.id]
     self.contents.draw_text(x, y, self.width - 40, 32, enemy.name)
   else
     self.contents.draw_text(x, y, self.width - 40, 32, "Inconnu", 1)
   end
 end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Window_MonsterGuideRight
#------------------------------------------------------------------------------
#  ?????????????????????????????
#==============================================================================

class Window_MonsterGuideRight < Window_Base
 #--------------------------------------------------------------------------
 # ? ?????????
 #--------------------------------------------------------------------------
 def initialize
   super(240, 0, 400, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.back_opacity = 160
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #     enemy       : ????
 #     show_status : ???????
 #--------------------------------------------------------------------------
 def refresh(enemy, show_status = true)
   self.contents.clear
   # ??????????No data
   unless $game_system.enemy_encountered[enemy.id]
     self.contents.font.color = disabled_color
     self.contents.draw_text(0, 208, 368, 32, "- Pas de Données -", 1)
     return
   end
   # ?????????
   bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
   cw = bitmap.width; ch = bitmap.height
   src_rect = Rect.new(0, 0, cw, ch)
   self.contents.blt(184 - cw / 2, 0, bitmap, src_rect)
   # ??????????????
   return unless show_status
   # ???????????????
   if $game_system.enemy_defeated[enemy.id]
     # ????????
     self.contents.font.color = system_color
     self.contents.draw_text(0, 224, 64, 32, $data_system.words.hp)
     self.contents.draw_text(0, 244, 64, 32, $data_system.words.sp)
     self.contents.draw_text(0, 264, 64, 32, "Force")
      self.contents.draw_text(0, 284, 64, 32, $data_system.words.dex)
     self.contents.draw_text(0, 304, 64, 32, "Vit.")
     self.contents.draw_text(0, 324, 64, 32, "Int.")
     self.contents.draw_text(0, 344, 64, 32, "Att.")
     self.contents.draw_text(0, 364, 64, 32, "Def.P.")
     self.contents.draw_text(0, 384, 64, 32, "Def.M.")
     self.contents.draw_text(130, 320, 96, 32, "Vulnérabilitée")
     self.contents.draw_text(130, 260, 96, 32, "Exp.")
     self.contents.draw_text(130, 350, 384, 32, $data_system.words.gold)
     self.contents.draw_text(130, 290, 64, 32, $data_system.words.item)
     # ????
     self.contents.font.color = normal_color
     hp = enemy.maxhp; sp = enemy.maxsp
     str = enemy.str; dex = enemy.dex; agi = enemy.agi; int = enemy.int
     atk = enemy.atk; pdef = enemy.pdef; mdef = enemy.mdef
     exp = enemy.exp; gold = enemy.gold
     if $imported["LimitBreak"]
       hp *= $maxhp_correct
       sp *= $maxsp_correct
     end
     if $imported["BattleDifficulty"]
       hp *= get_difficulty[1]
       sp *= get_difficulty[2]
       correct = get_difficulty[3]
       str *= correct; dex *= correct; agi *= correct; int *= correct
       atk *= correct; pdef *= correct; mdef *= correct
       exp *= get_difficulty[4]; gold *= get_difficulty[5]
     end
     self.contents.draw_text(48, 224, 64, 32, Integer(hp).to_s, 2)
     self.contents.draw_text(48, 244, 64, 32, Integer(sp).to_s, 2)
     self.contents.draw_text(48, 264, 64, 32, Integer(str).to_s, 2)
     self.contents.draw_text(48, 284, 64, 32, Integer(dex).to_s, 2)
     self.contents.draw_text(48, 304, 64, 32, Integer(agi).to_s, 2)
     self.contents.draw_text(48, 324, 64, 32, Integer(int).to_s, 2)
     self.contents.draw_text(48, 344, 64, 32, Integer(atk).to_s, 2)
     self.contents.draw_text(48, 364, 64, 32, Integer(pdef).to_s, 2)
     self.contents.draw_text(48, 384, 64, 32, Integer(mdef).to_s, 2)
     self.contents.draw_text(170, 260, 144, 32, Integer(exp).to_s, 2)
     self.contents.draw_text(170, 350, 144, 32, Integer(gold).to_s, 2)
     # ??????
     text = ""
     for i in MG_ELEMENT_RANGE
       # ????3??(A,B)?????
       if enemy.element_ranks[i] < 3
         # ??????
         text += "/" if text != ""
         text += $data_system.elements[i]
       end
     end
     self.contents.font.color = MG_WEEK_COLOR.dup
     self.contents.draw_text(250, 320, 264, 32, text)
     # ??????
     text = ""
     for i in MG_ELEMENT_RANGE
       # ????3?????(D,E,F)?????
       if enemy.element_ranks[i] > 3
         # ??????
         text += "/" if text != ""
         text += $data_system.elements[i]
       end
     end
     self.contents.font.color = MG_RESIST_COLOR.dup
     self.contents.draw_text(170, 290, 264, 32, text)
     self.contents.font.color = normal_color
     # ??????
     n = enemy.treasure_prob
     n *= get_difficulty[6] if $imported["BattleDifficulty"]
     prob = "#{Integer(n)}%"
     if enemy.item_id > 0
       icon = RPG::Cache.icon($data_items[enemy.item_id].icon_name)
       text = $data_items[enemy.item_id].name
     elsif enemy.weapon_id > 0
       icon = RPG::Cache.icon($data_weapons[enemy.weapon_id].icon_name)
       text = $data_weapons[enemy.weapon_id].name
     elsif enemy.armor_id > 0
       icon = RPG::Cache.icon($data_armors[enemy.armor_id].icon_name)
       text = $data_armors[enemy.armor_id].name
     else
       icon = Bitmap.new(24, 24)
       text = "Aucun."
       prob = ""
     end
     self.contents.blt(190, 290, icon, Rect.new(0, 0, 24, 24))
     self.contents.draw_text(200 , 290, 204, 32, text)
     self.contents.draw_text(300, 416, 64, 32, prob)
   # ?????????
   else
     self.contents.font.color = disabled_color
     self.contents.draw_text(0, 280, 368, 32, "- Pas encore Battu -", 1)
   end
 end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_MonsterGuide
#------------------------------------------------------------------------------
#  ?????????????????????
#==============================================================================

class Scene_MonsterGuide
 #--------------------------------------------------------------------------
 # ? ?????
 #--------------------------------------------------------------------------
 def main
   # ??????????
   @spriteset = Spriteset_Map.new
   # ??????????
   @guide_top_window = Window_MonsterGuideTop.new
   @guide_left_window = Window_MonsterGuideLeft.new
   @guide_right_window = Window_MonsterGuideRight.new
   # ???????
   @show_status = true
   # ?????????????
   enemy = @guide_left_window.item
   # ????
   @guide_right_window.refresh(enemy, @show_status)
   # ?????????
   Graphics.transition
   # ??????
   loop do
     # ????????
     Graphics.update
     # ???????
     Input.update
     # ??????
     update
     # ????????????????
     if $scene != self
       break
     end
   end
   # ?????????
   Graphics.freeze
   # ????????
   @spriteset.dispose
   @guide_top_window.dispose
   @guide_left_window.dispose
   @guide_right_window.dispose
 end
 #--------------------------------------------------------------------------
 # ? ??????
 #--------------------------------------------------------------------------
 def update
   # ????????
   @guide_top_window.update
   @guide_left_window.update
   @guide_right_window.update
   # B ??????????
   if Input.trigger?(Input::B)
     # ????? SE ???
     $game_system.se_play($data_system.cancel_se)
     # ??????????
     $scene = Scene_Menu.new
     return
   end
   # A ??????????
   if Input.trigger?(Input::A)
     # ?? SE ???
     $game_system.se_play($data_system.decision_se)
     # ????????????
     @show_status = !@show_status
     # ?????????????
     enemy = @guide_left_window.item
     # ????
     @guide_right_window.refresh(enemy, @show_status)
     return
   end
   # C ??????????
   if Input.trigger?(Input::C)
     # ?? SE ???
     $game_system.se_play($data_system.decision_se)
     # ?????????????
     enemy = @guide_left_window.item
     # ????
     @guide_right_window.refresh(enemy, @show_status)
     return
   end
   if MG_MOVE_REFRESH
     # ???????????
     if @last_index != @guide_left_window.index
       # ????????
       @last_index = @guide_left_window.index
       # ?????????????
       enemy = @guide_left_window.item
       # ????
       @guide_right_window.refresh(enemy, @show_status)
       return
     end
   end
 end
end

#???????????????????????????????????????

#==============================================================================
# ¦ Scene_Battle (???? 2)
#------------------------------------------------------------------------------
#  ?????????????????
#==============================================================================

class Scene_Battle
 #--------------------------------------------------------------------------
 # ? ?????????????
 #--------------------------------------------------------------------------
 alias start_phase5_KGC_MonsterGuide start_phase5
 def start_phase5
   # ??????????
   for enemy in $game_troop.enemies
     # ???????????????
     next if enemy.hidden
     # ??????????
     $game_system.enemy_defeated[enemy.id] = true
     # ?????????????
     if MG_ORIGINAL_DEFEAT
       enemy.original_id.each do |id|
         next if id == nil
         $game_system.enemy_defeated[id] = true
       end
     end
   end

   # ???????
   start_phase5_KGC_MonsterGuide
 end
end


Ensuit appeler le scrîpt depuis un evenement,un objet,le menu[Bref ce que vous voulez] avec ce code ci:
Code : Tout sélectionner
$scene = Scene_MonsterGuide.new


Note:
scrîpt original par KGC modifie par knigt1
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Re: Bestiaire avancé

Message par Kyubi » 25 Juin 2007, 13:27

Donc il faut appeler le scripts Scene_MonsterGuide ????

je fait l'apprenti sorcier donc....
Kyubi
Membre apprécié
Membre apprécié
 
Message(s) : 65
Inscription : 14 Nov 2006, 23:26

Re: Bestiaire avancé

Message par Martial » 25 Juin 2007, 14:25

Qu'est-ce que tu entends par "appeler" ?

Le nom du script dans la case "Nom" de l'éditeur de script n'a pas d'importance (si ce n'est mieux se retrouver).

Sinon, pour que le bestiaire s'affiche, il faut que tu appelles le script grâce à la commande d'évènement "Insérez un script" (Page 3) ou en bidouillant le script Scene_menu.
Pièces jointes
Bestiaire.png
Appeler le script Bestiaire !
L'important n'est pas de connaître mais de savoir trouver !
La gentillesse ou la franchise ? Que choisir ?
Vive les otakus !!
Retourner sur le site
Avatar de l’utilisateur
Martial
Administrateur
Administrateur
 
Message(s) : 2520
Inscription : 10 Nov 2006, 23:41
Localisation : Rambouillet
Meilleurs scores: 12

Re: Bestiaire avancé

Message par Kyubi » 25 Juin 2007, 19:30

Ah d'accord je pensais que le nom du script avais une importance :oops:
merci
Kyubi
Membre apprécié
Membre apprécié
 
Message(s) : 65
Inscription : 14 Nov 2006, 23:26


Retour vers Scripts (RGSS)

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron