Advertisement
Zouzaka

Capture De Monstre

Jun 28th, 2014
488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.47 KB | None | 0 0
  1. =begin
  2. Auteur: Zouzaka
  3. Merci a Zangther pour les amelioration et conseille qu'il ma apporté =)
  4. Utilisation :
  5. Créez un hero qui aura les caracteristique d'un monstre standard
  6. Créez une classe pour chaque monstre de la BDD
  7. Inserez dans les notes d'un monstre ca :
  8.  
  9.  
  10.     <capture_dmg: 2000>
  11.     <class_id: 11>
  12.     <chara_name: rien>
  13.     <chara_id: 5>
  14.     <face_name: rien>
  15.     <face_id: 5>
  16.    
  17.  
  18. Explications :
  19. ** <capture_dmg: 2000>
  20.   Modifiez 2000 par le nombre de dommages nessesaire a la capture
  21. ** <class_id: 11>
  22.   Modifiez 11 par l'id de la class qui correspend au monstre
  23. ** <chara_name: rien>
  24.   Mettez "rien" si vous voulez garder le chara de base sinon mettez le nom
  25.   du chara du monstre
  26. ** <chara_id: 5>
  27.   mettez l'index du chara
  28. ** <face_name: rien>
  29.   Mettez "rien" si vous voulez garder le face de base sinon mettez le nom
  30.   du chara du monstre
  31. ** <face_id: 5>
  32.   mettez l'index du face
  33. =end
  34. module Dressage
  35.   #indiquez l'id du hero avez les caracteristiques d'un monstre
  36.   Actor_model_id = 1
  37.   Window_pos = [100,100]
  38.   Back = "Back"
  39.   Jauge = "Jauge"
  40.   #id du sort de capture
  41.   ID = [80]
  42.   Complet = "Erreur: Equipe Complete"
  43. end
  44. #===============================================================================
  45. #Scene_battle modified
  46. #===============================================================================
  47. class Scene_Battle < Scene_Base
  48.   alias :dresser_update_basic :update_basic
  49.   alias :dresser_create_all_windows :create_all_windows
  50.   alias :dresser_on_skill_ok :on_skill_ok
  51.   alias :dresser_on_enemy_ok :on_enemy_ok
  52.   alias :dresser_use_item :use_item
  53.   def create_all_windows
  54.     dresser_create_all_windows
  55.     creat_luck_sprits
  56.   end
  57.   def creat_luck_sprits
  58.     @capture_viewport = Viewport.new(Dressage::Window_pos[0], Dressage::Window_pos[1], 150, 50)
  59.     @capture_back = Sprite.new(@capture_viewport)
  60.     @capture_back.bitmap = Cache.system(Dressage::Back)
  61.     @capture_back.opacity = 0
  62.     @capture_jauge = Sprite.new(@capture_viewport)
  63.     @capture_jauge.bitmap = Cache.system(Dressage::Jauge)
  64.     @capture_jauge.opacity = 0
  65.   end
  66.   def on_skill_ok
  67.     @skill = @skill_window.item
  68.     @capture_skill = is_capture_skill?
  69.     dresser_on_skill_ok
  70.   end
  71.   def on_enemy_ok
  72.     @capture_cible = @enemy_window.enemy
  73.     @cible_id = @capture_cible.enemy_id
  74.     @lanceur = BattleManager.actor
  75.     dresser_on_enemy_ok
  76.   end
  77.   def is_capture_skill?
  78.     Dressage::ID.each do |id|
  79.       return true if @skill.id == id
  80.     end
  81.   end
  82.   def capture_effect
  83.     @taille = get_taille
  84.     @capture_jauge.zoom_x = @taille.to_f/100
  85.     if @taille < 100
  86.       @red_tone = Tone.new(255, 0, 0)
  87.       @capture_jauge.tone = @red_tone
  88.     end
  89.     26.times do |i|
  90.       @capture_back.opacity += 10
  91.       @capture_jauge.opacity += 10
  92.       wait(2)
  93.     end
  94.     26.times do |i|
  95.       @capture_back.opacity -= 10
  96.       @capture_jauge.opacity -= 10
  97.       wait(2)
  98.     end
  99.   end
  100.   def get_taille
  101.     @a = /<capture_dmg: (?<number>\d+)>/.match($data_enemies[@cible_id].note)
  102.     if(@capture_damage*100)/(@a["number"].to_i) > 100
  103.       return 100
  104.     else
  105.       return (@capture_damage.to_f*100)/(@a["number"].to_i.to_f)
  106.     end
  107.   end
  108.   def use_item
  109.     dresser_use_item
  110.     @capture_damage = @capture_cible.result.hp_damage
  111.     capture_monster if @capture_skill && can_capture?
  112.     capture_effect if @capture_skill
  113.     @capture_skill = false
  114.   end
  115.   def can_capture?
  116.     @a = /<capture_dmg: (?<number>\d+)>/.match($data_enemies[@cible_id].note)
  117.     return true if @a["number"].to_i <= @capture_damage
  118.   end
  119.   def capture_monster
  120.     if $game_party.battle_members.size == 4
  121.       @log_window.add_text(Dressage::Complet)
  122.     else
  123.       $game_actors.add_capture
  124.       set_capture_param
  125.       $game_party.add_actor($data_actors.size-1)
  126.     end
  127.   end
  128.   def set_capture_param
  129.     #set class id
  130.     @a = /<class_id: (?<number>\d+)>/.match($data_enemies[@cible_id].note)
  131.     $data_actors.last.class_id = @a["number"].to_i
  132.     $game_captured.last.class_id = @a["number"].to_i
  133.     #set chara
  134.     @a = /<chara_name: (?<string>\w+)>/.match($data_enemies[@cible_id].note)
  135.     unless @a["string"] == "rien"
  136.       $data_actors.last.character_name = @a["string"].to_s
  137.       $game_captured.last.character_name = @a["string"].to_s
  138.       @a = /<chara_id: (?<number>\d+)>/.match($data_enemies[@cible_id].note)
  139.       $data_actors.last.character_index = @a["number"].to_i
  140.       $game_captured.last.character_index = @a["number"].to_i
  141.     end
  142.     #set face
  143.     @a = /<face_name: (?<string>\w+)>/.match($data_enemies[@cible_id].note)
  144.     unless @a["string"] == "rien"
  145.       $data_actors.last.face_name = @a["string"].to_s
  146.       $game_captured.last.face_name = @a["string"].to_s
  147.       @a = /<face_id: (?<number>\d+)>/.match($data_enemies[@cible_id].note)
  148.       $data_actors.last.face_index = @a["number"].to_i
  149.       $game_captured.last.face_index = @a["number"].to_i
  150.     end
  151.     $data_actors.last.name = $data_enemies[@cible_id].name
  152.     $game_captured.last.name = $data_enemies[@cible_id].name
  153.   end
  154. end
  155. #===============================================================================
  156. #Save Changer
  157. #===============================================================================
  158. module DataManager
  159.   #-------------------------------------------------------------------------
  160.   # * Aliased methods
  161.   #-------------------------------------------------------------------------
  162.   class << self
  163.     alias :make_capture_save :make_save_contents
  164.     alias :extract_capture_save :extract_save_contents
  165.     alias :creat_capture_object :create_game_objects
  166.     def make_save_contents
  167.       make_capture_save.merge({:captured =>$game_captured})
  168.     end
  169.     #--------------------------------------------------------------------------
  170.     # * Extract Save Contents
  171.     #--------------------------------------------------------------------------
  172.     def extract_save_contents(contents)
  173.       extract_capture_save(contents)
  174.       $game_captured        = contents[:captured]
  175.       $data_actors.concat($game_captured)
  176.     end
  177.     def create_game_objects
  178.       $game_captured          = Array.new
  179.       creat_capture_object
  180.     end
  181.   end
  182. end
  183. #===============================================================================
  184. #Actor Manipulation
  185. #===============================================================================
  186. class Game_Actors
  187.   def add_capture
  188.     @copy = $data_actors[Dressage::Actor_model_id]
  189.     $game_captured << @copy
  190.     $data_actors << @copy
  191.   end
  192. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement