Hi, i have Visual Equipment by Rataime. It's cool, because it is without SDK(i don't like SDK, don't ask), but i have one problem:
The script add sprites only, when I run menu, but when I change (eg.)armor from event character doesn't change graphic!
This is the script:
Is there a possibility to change sprites in map, to eg. refresh every second?
Help! : D
The script add sprites only, when I run menu, but when I change (eg.)armor from event character doesn't change graphic!
This is the script:
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(1,"001-Fighter01")
add_armor_sprite(0,"")
#===================================================
# ▼ 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
Is there a possibility to change sprites in map, to eg. refresh every second?
Help! : D