[Combat]Affichage des equipements dans les combats

La section pour les scripts de RPG Maker XP !

[Combat]Affichage des equipements dans les combats

Message par Amathlog » 18 Juin 2007, 20:42

Auteur : Rataime
Source : http://rmxp.net

Ce scrîpt permettra de rendre les équipements visibles sur votre perso !

Le script (comme d'hab', a mettre au dessus de main et à nommer comme vous voulez) :

Code : Tout sélectionner
#==============================================================================
# ¦ Visual_Equipment
# Written by Rataime
#
# Edit below
#
# Note : If you have a custom Window_SaveFile, check the one at the end of the scrîpt,
# 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_1")

add_armor_sprite(7,"tpl_helmet_2")
add_armor_sprite(20,"tpl_armor_white")
add_armor_sprite(15,"tpl_armor_blue")
add_armor_sprite(21,"tpl_armor_cape")

#===================================================
# ? 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.character(@game_party.actors[i].character_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].character_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 :character_hue
end

class Game_Actor < Game_Battler
alias visual_setup setup
  def setup(actor_id)
    visual_setup(actor_id)
    @character_hue = (@character_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


Ensuite, regardez entre les lignes 15 et 30 :

Code : Tout sélectionner
add_armor_sprite(6,"tpl_helmet_1")


Voilà, à cet endroit vous aurez à rajouter les lignes qui correspondront aux différents équipements. Elles se présenteront sous la forme suivante :

add_armor_sprite(ID,nom_image)
ou
add_weapon_sprite(ID,nom_image)

Armor pour armure, weapon pour arme.

Remplacez ID par le numéro correspondant à l'equipement dans la base de données, et nom_image par le nom de l'image que vous aurez placée dans le dossier "characters" de votre projet.

Reste à faire les images des équipements.
Allez hop, au boulot :P
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Re: Affichage des equipement dans les combats

Message par Shaolan » 19 Juin 2007, 10:13

par contre ça serait bien quelques screens, merci d'avance.
Avatar de l’utilisateur
Shaolan
Maitre
Maitre
 
Message(s) : 1710
Inscription : 25 Déc 2006, 21:37

Re: Affichage des equipement dans les combats

Message par Amathlog » 19 Juin 2007, 17:07

Eu désolé mais je n'ai pas de screen vu qu'il faut une image de ressources pour chaque armes...
J'ai essayer mais malheureusement mon perso disparait !
Donc je ne vois pas ce qu'il faut faire.
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Re: Affichage des equipement dans les combats

Message par Martial » 19 Juin 2007, 19:24

Merci pour ce script, mais les images doivent être sous quel format ? (l'extension)
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: Affichage des equipement dans les combats

Message par Amathlog » 20 Juin 2007, 12:20

Je ne sais pas a mon avis c'est .png
Avatar de l’utilisateur
Amathlog
Modérateur
Modérateur
 
Message(s) : 1510
Inscription : 14 Jan 2007, 19:53
Meilleurs scores: 2

Re: Affichage des equipement dans les combats

Message par Martial » 20 Juin 2007, 20:04

Oui, c'est du .png, désolé, je croyais avoir effacé mon message parce que j'ai vu ça juste après l'avoir posté:

Code : Tout sélectionner
#If weapon n°33 is equiped, add the charset tpl_helmet_1.png (I don't have a weapon charset ><)
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


Retour vers Scripts (RGSS)

Qui est en ligne ?

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

cron