Visual_Equipment - by Rataime

Publié le par chindan

voila si certains utilisent l'equipement visible sur la map voici celui en combat testé et fonctionnel c'est ma 1ere modification de script et j'en suis assez fier bien que les scripteurs initiés le feraient en 10 secondes
Code:
#==============================================================================
# ■ Visual_Equipment
# Written by Rataime
#
# Edit below
#
# Note : If you have a custom Window_SaveFile, check the one at the end of the script,
# add the added lines to yours, and delete the whole Window_SaveFile class here
#==============================================================================
def equip_update(light=false)

$visual_equipment=Array.new
$visual_equipment[0]=light
for i in 0..3
  $visual_equipment[i+1]=[]
end

#===================================================
# ● EDIT HERE !
#===================================================   

#If weapon n°33 is equiped, add the charset tpl_helmet_1.png (I don't have a weapon charset ><)
#add_weapon_sprite(33,"tpl_helmet_1")

#If weapon n°6 is equiped, add the charset tpl_helmet_1.png
add_armor_sprite(6,"tpl_helmet_2")

add_weapon_sprite(7,"tpl_helmet_1")
add_armor_sprite(20,"tpl_armor_white")
add_armor_sprite(15,"tpl_armor_blue")
add_armor_sprite(21,"tpl_armor_cape")
add_armor_sprite(1,"shield")
add_weapon_sprite(9,"divinesword")

#===================================================
# ▼ Visual_equip functions
#===================================================
    RPG::Cache.clear
    @game_party = $game_party
    @game_party = $game_party2 if $visual_equipment[0]
    for i in 0...@game_party.actors.size
      for img in $visual_equipment[i+1]
        bitmap = RPG::Cache.battler(@game_party.actors[i].battler_name, @game_party.actors[i].character_hue)
        if img!=true and img!=false
          add_equip(bitmap,img,i)
        end
      end
    end
end

  def add_equip(sprite,to_add,character)
  @game_party = $game_party
  @game_party = $game_party2 if $visual_equipment[0]
  bmp = Sprite.new
  bmp.visible =false
  bmp.bitmap = RPG::Cache.character(to_add,@game_party.actors[character].battler_hue)
  color = bmp.bitmap.get_pixel(0, 0)
  x=sprite.width
  y=sprite.height
  if $visual_equipment[0]
    x=x/4
    y=y/4
  end
  for i in 0..x
    for j in 0..y
      color_get=bmp.bitmap.get_pixel(i, j)
      if color_get!=color
        sprite.set_pixel(i, j ,color_get)
      end
    end
  end
 
  bmp=nil
 
  end

  def add_weapon_sprite(id,sprite)
    @game_party = $game_party
    @game_party = $game_party2 if $visual_equipment[0]
    for i in 0...@game_party.actors.size
      if @game_party.actors[i].weapon_id==id
        $visual_equipment[i+1].push(sprite)
      end
    end
  end

  def add_armor_sprite(id,sprite)
    @game_party = $game_party
    @game_party = $game_party2 if $visual_equipment[0]
    for i in 0...@game_party.actors.size
      if @game_party.actors[i].armor1_id==id or @game_party.actors[i].armor2_id==id or @game_party.actors[i].armor3_id==id or @game_party.actors[i].armor4_id==id
        $visual_equipment[i+1].push(sprite)
      end
    end
  end

#===================================================
# ▼ CLASS Scene_Equip edit
#===================================================

class Scene_Equip
 
  alias visual_update_right update_right
 
  def update_right
    if Input.trigger?(Input::B)
      equip_update
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Menu.new(2)
      return
    end
    visual_update_right
  end
         
end

class Interpreter

  alias visual_command_319 command_319
 
  def command_319
    actor = $game_actors[@parameters[0]]
    if actor != nil
      actor.equip(@parameters[1], @parameters[2])
    end
    equip_update
    return true
  end
 
end

class Game_Character
  attr_accessor :battler_hue
end

class Game_Actor < Game_Battler
alias visual_setup setup
  def setup(actor_id)
    visual_setup(actor_id)
    @cbattler_hue = (@battler_hue+1)%256
  end
end

class Scene_Load
  alias visual_read_save_data read_save_data
  alias visual_on_cancel on_cancel
 
  def on_cancel
    equip_update
    visual_on_cancel
  end
 
  def read_save_data(file)
    visual_read_save_data(file)
    equip_update
  end
end

class Scene_Save
  alias visual_on_decision on_decision
  alias visual_on_cancel on_cancel
 
  def on_cancel
    equip_update
    visual_on_cancel
  end
 
  def on_decision(file)
    equip_update
    visual_on_decision(file)
  end
end

class Scene_Title
  alias visual_command_new_game command_new_game
 
  def command_new_game
    visual_command_new_game
    equip_update
  end

end

class Window_SaveFile < Window_Base

  def initialize(file_index, filename)
    super(0, 64 + file_index % 4 * 104, 640, 104)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = $fontface
    self.contents.font.size = $fontsize
    @file_index = file_index
    @filename = "Save#{@file_index + 1}.rxdata"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      @self_variables = Marshal.load(file)#added
      @game_screen = Marshal.load(file)#added
      @game_actors = Marshal.load(file)#added
      $game_party2=@game_party= Marshal.load(file)#added
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    equip_update(true)#added
    refresh
    @selected = false
  end
 
end

utilisation:
ajoutez a partir de la ligne 33 des lignes de code:
pour une armure:add_armor_sprite(1,"machin")
1=a l'ID de l'armur,accessoire,bouclier
machin:est le nom de 'image a superposer avec votre battler sans son extension noubliez pas les guillemets
pour une arme:add_weapon_sprite(1,"machin")
les images doivent se trouver dans le repertoire Graphics/characters
et voila en esperant avoir pu servir a quelque chose car moi je l'utilise
Publicité

Publié dans poubelle

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article