Sign in to follow this  
Followers 0
Fegarur

Equipamiento Visible (Charas)

7 posts in this topic

Descripción:
Gracias a este script el chara de nuestro personaje llevará puesto todo lo que le hayamos equipado, viéndolo en el mapa.

Screen:
[SPOILER]user posted image[/SPOILER]

Script:
[spoiler]
CODE
#==============================================================================
# ■ Visual_Equipment
# Creado por Rataime
#
#
# Nota: Si tienes un Window_SaveFile diferente al normal, mira el del final de
# este script, añade las líneas al tuyo, y borra toda la clase Window_SaveFile
# en este script
#==============================================================================
def equip_update(light=false)

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

#===================================================
# ● ¡EDITA AQUÍ!
#===================================================    

#Si el arma n°33 está equipada, añade el chara tpl_helmet_1.png (No tengo chara de arma ><)
#add_weapon_sprite(33,"tpl_helmet_1")

#Si el arma n°6 está equipada, añade el chara 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
[/spoiler]

Instrucciones:
De la línea 26 a la 31 puedes ver las cosas que se verán. Supongo que querrás añadir más. happy.gif
Bien, la cosa funciona así... Por ejemplo, tomemos esto:
QUOTE
add_armor_sprite(6,"tpl_helmet_1")

Esto quiere decir que lo que se verá es una armadura ('armor'). El 6 es la ID del sprite en la abse de datos, y "tpl_helmet_1" es el nombre del chara, es decir, de la imagen.
Sí, chara, porque la imagen en cuestion será de este tipo:
user posted image

En definitiva, la estructura es:
add_weapon_sprite(ID,"nombre") para armas.
add_armor_sprite(ID,"nombre") para armaduras.

Crédito:
Script creado por Rataime. Edited by Fegarur
0

Share this post


Link to post
Share on other sites
muy buen aporte creo k eso le ba a kedarmuy bien a mijuego aun no lo e probado perose ve muy bien
0

Share this post


Link to post
Share on other sites
oye feregarur como de que la id que tiene sprite en la base de datos, no entiendo ??? espero tu respuesta gracias icon13.gif

ya entendi pero si le quiero poner un sombreoro o algo asi como hago???? o sea algo que no sea ni un arma ni una armadura gracias de antemano Edited by joseduartexbadboyx
0

Share this post


Link to post
Share on other sites
Ponlo como armadura. Los sombreros se consideran yelmos.
La verdad es que no se si tiene mucho que ver, pero en fin...
0

Share this post


Link to post
Share on other sites
eye lo e utilisado en miproyecto y le ba muy bien pero tengoun problemita es k en mi proyecto utiliso el scrip de xms-abs y cundo realisoun atake lo k traigo ekipado desaparese del mapasolo durante el atake es por poko tiempo pero asekse vea mal nosabes como o en k parte de el scrip cambiar para k eso no pase
0

Share this post


Link to post
Share on other sites
La verdad es que yo ahí ya no te lo sabría decir. Supongo que será al actualizar el chara, que tardará un poco en cargare ste script. Igual algún scripter o alguien que sepa más que yo te puede ayudar con esto. icon13.gif
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0