[RESOLVED] [xp]Visible Equipment Problem

Started by Hovart, June 10, 2008, 02:12:49 pm

Previous topic - Next topic

Hovart

June 10, 2008, 02:12:49 pm Last Edit: June 10, 2008, 02:14:27 pm by Hovart
Hi again =P

I cannot save any party cause of an error who occured in this script :

"Script": ShowHide
#==============================================================================
# ? 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


I'm pretty sure, the error is because of the first comment. "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"

Maybe, Blizz-ABS changed the method for Window SaveFile, i don't know.

I'll try to explain how does it work.

You have a character : who is your item. When you put this item ( After putting this line on the editable area of the script '(33,"tpl_helmet_1")' for example ) tpl_helmet_1, the Hero will appairs on the map with the hat on his head.
Or, I cannot save since I put the script because there is an error.

I hope you'll be able to help me =)

Thanks =)

Blizzard

Nope, I didn't change anything in the save process. And posting the error message would help. xD
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Hovart

I didnt ? Oops sooooorry =P

Line 73 No Method Error Occured Undefined method `actors' for nil:NilClass

Good luck =P

Hovart

June 12, 2008, 11:41:47 am #3 Last Edit: June 13, 2008, 06:36:42 am by Hovart
I did'nt say the lines where the error occured x_x

"  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.weapon_id==id
        $visual_equipment[i+1].push(sprite)"

What is "nil" ? Can it be a sort of syntax error ?

[Resolved finally ^^]