#############################################################################################
################################## Buy & Sell Counter ###########################################
#############################################################################################
# Auteur : Biward
# Date : 01/09/32 13h32
#
# Ce script permet d'avoir un compteur d'achat et de vente pour chaque objet
#
# Les commandes sont :
# - counterb_item(id) connaitre le nombre d'achat de l'objet ID
# - counters_item(id) connaitre le nombre de vente de l'objet ID
# - counterb_weap(id) connaitre le nombre d'achat de l'arme ID
# - counters_weap(id) connaitre le nombre de vente de l'arme ID
# - counterb_armo(id) connaitre le nombre d'achat de l'armure ID
# - counters_armo(id) connaitre le nombre de vente de l'armure ID
#
# Le tout est donc stockable dans une variable pour vous faciliter la vie !
#
#############################################################################################
#################################### Début du script ############################################
#############################################################################################
### Scene_Shop ###
class Scene_Shop
alias dnibico decide_number_input
def decide_number_input
case @command_window.index
when 0 # buy
$game_buycounter[@item] += @number_window.number
when 1 # sell
$game_sellcounter[@item] += @number_window.number
end
dnibico
end
end
### Game_BuySellCounter ###
class Game_BuySellCounter
def initialize
@data = Array.new
3.times { @data << [] }
end
def [](variable_id)
@data[which_type(variable_id)][variable_id.id] || 0
end
def []=(variable_id, value)
@data[which_type(variable_id)][variable_id.id] = value
end
def which_type(v)
w = 0 if v.is_a?(RPG::Item)
w = 1 if v.is_a?(RPG::Weapon)
w = 2 if v.is_a?(RPG::Armor)
w
end
end
### Scene_Title ###
class Scene_Title
alias cgobico2 create_game_objects
def create_game_objects
$game_buycounter = Game_BuySellCounter.new
$game_sellcounter = Game_BuySellCounter.new
cgobico2
end
end
### Scene_File ###
class Scene_File
alias wsdbico2 write_save_data
def write_save_data(file)
wsdbico2(file)
Marshal.dump($game_buycounter, file)
Marshal.dump($game_sellcounter, file)
end
alias rsdbico2 read_save_data
def read_save_data(file)
rsdbico2(file)
$game_buycounter = Marshal.load(file)
$game_sellcounter = Marshal.load(file)
end
end
### Game_Interpreter ###
class Game_Interpreter
def counterb_item(id)
$game_buycounter[$data_items[id]]
end
def counters_item(id)
$game_sellcounter[$data_items[id]]
end
def counterb_weap(id)
$game_buycounter[$data_weapons[id]]
end
def counters_weap(id)
$game_sellcounter[$data_weapons[id]]
end
def counterb_armo(id)
$game_buycounter[$data_armors[id]]
end
def counters_armo(id)
$game_sellcounter[$data_armors[id]]
end
end
#############################################################################################
#################################### Fin du Script ###############################################
#############################################################################################