HUNTERMiér Mayo 23, 2012 5:11 pm
Super Usuario
Bueno Hice mi Script 100% Oficial Mio xD Bueno lo unico que hace es Mostrar el Scene Shop
en Opacity
Instrucciones:
Pegar encima de Main
Creditos:Los Creditos no son necesarios ya que podria hacerlo cualquiera que sepa
un Poco de RGSS.
Screens:
Script:
Un Cordial Saludo.
en Opacity
Instrucciones:
Pegar encima de Main
Creditos:Los Creditos no son necesarios ya que podria hacerlo cualquiera que sepa
un Poco de RGSS.
Screens:
Script:
- Código:
#==============================================================================
#Scene Shop By:HUNTER
#Creditos:Los Creditos son como Ustedes quieren Yo no obligo a nadie a dar
#creditos pero me parece un Buen acto dar creditos al Autor Original.
#-----------------------------------------------------------------------------
class Scene_Shop < Scene_MenuBase
#--------------------------------------------------------------------------
def prepare(goods, purchase_only)
@goods = goods
@purchase_only = purchase_only
end
#--------------------------------------------------------------------------
def start
super
create_help_window
@help_window.opacity = 0
create_gold_window
@gold_window.opacity = 0
create_command_window
@command_window.opacity = 0
create_dummy_window
@dummy_window.opacity = 0
create_number_window
create_status_window
@status_window.opacity = 0
create_buy_window
@buy_window.opacity = 0
create_category_window
@category_window.opacity = 0
create_sell_window
@sell_window.opacity = 0
end
#--------------------------------------------------------------------------
def create_gold_window
@gold_window = Window_Gold.new
@gold_window.viewport = @viewport
@gold_window.x = Graphics.width - @gold_window.width
@gold_window.y = @help_window.height
end
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_ShopCommand.new(@gold_window.x, @purchase_only)
@command_window.viewport = @viewport
@command_window.y = @help_window.height
@command_window.set_handler(:buy, method(:command_buy))
@command_window.set_handler(:sell, method(:command_sell))
@command_window.set_handler(:cancel, method(:return_scene))
end
#--------------------------------------------------------------------------
def create_dummy_window
wy = @command_window.y + @command_window.height
wh = Graphics.height - wy
@dummy_window = Window_Base.new(0, wy, Graphics.width, wh)
@dummy_window.viewport = @viewport
end
#--------------------------------------------------------------------------
def create_number_window
wy = @dummy_window.y
wh = @dummy_window.height
@number_window = Window_ShopNumber.new(0, wy, wh)
@number_window.viewport = @viewport
@number_window.hide
@number_window.set_handler(:ok, method(:on_number_ok))
@number_window.set_handler(:cancel, method(:on_number_cancel))
end
#--------------------------------------------------------------------------
def create_status_window
wx = @number_window.width
wy = @dummy_window.y
ww = Graphics.width - wx
wh = @dummy_window.height
@status_window = Window_ShopStatus.new(wx, wy, ww, wh)
@status_window.viewport = @viewport
@status_window.hide
end
#--------------------------------------------------------------------------
def create_buy_window
wy = @dummy_window.y
wh = @dummy_window.height
@buy_window = Window_ShopBuy.new(0, wy, wh, @goods)
@buy_window.viewport = @viewport
@buy_window.help_window = @help_window
@buy_window.status_window = @status_window
@buy_window.hide
@buy_window.set_handler(:ok, method(:on_buy_ok))
@buy_window.set_handler(:cancel, method(:on_buy_cancel))
end
#--------------------------------------------------------------------------
def create_category_window
@category_window = Window_ItemCategory.new
@category_window.viewport = @viewport
@category_window.help_window = @help_window
@category_window.y = @dummy_window.y
@category_window.hide.deactivate
@category_window.set_handler(:ok, method(:on_category_ok))
@category_window.set_handler(:cancel, method(:on_category_cancel))
end
#--------------------------------------------------------------------------
def create_sell_window
wy = @category_window.y + @category_window.height
wh = Graphics.height - wy
@sell_window = Window_ShopSell.new(0, wy, Graphics.width, wh)
@sell_window.viewport = @viewport
@sell_window.help_window = @help_window
@sell_window.hide
@sell_window.set_handler(:ok, method(:on_sell_ok))
@sell_window.set_handler(:cancel, method(:on_sell_cancel))
@category_window.item_window = @sell_window
end
#--------------------------------------------------------------------------
def activate_buy_window
@buy_window.money = money
@buy_window.show.activate
@status_window.show
end
#--------------------------------------------------------------------------
def activate_sell_window
@category_window.show
@sell_window.refresh
@sell_window.show.activate
@status_window.hide
end
#--------------------------------------------------------------------------
def command_buy
@dummy_window.hide
activate_buy_window
end
#--------------------------------------------------------------------------
def command_sell
@dummy_window.hide
@category_window.show.activate
@sell_window.show
@sell_window.unselect
@sell_window.refresh
end
#--------------------------------------------------------------------------
def on_buy_ok
@item = @buy_window.item
@buy_window.hide
@number_window.set(@item, max_buy, buying_price, currency_unit)
@number_window.show.activate
end
#--------------------------------------------------------------------------
def on_buy_cancel
@command_window.activate
@dummy_window.show
@buy_window.hide
@status_window.hide
@status_window.item = nil
@help_window.clear
end
#--------------------------------------------------------------------------
def on_category_ok
activate_sell_window
@sell_window.select(0)
end
#--------------------------------------------------------------------------
def on_category_cancel
@command_window.activate
@dummy_window.show
@category_window.hide
@sell_window.hide
end
#--------------------------------------------------------------------------
def on_sell_ok
@item = @sell_window.item
@status_window.item = @item
@category_window.hide
@sell_window.hide
@number_window.set(@item, max_sell, selling_price, currency_unit)
@number_window.show.activate
@status_window.show
end
#--------------------------------------------------------------------------
def on_sell_cancel
@sell_window.unselect
@category_window.activate
@status_window.item = nil
@help_window.clear
end
#--------------------------------------------------------------------------
def on_number_ok
Sound.play_shop
case @command_window.current_symbol
when :buy
do_buy(@number_window.number)
when :sell
do_sell(@number_window.number)
end
end_number_input
@gold_window.refresh
@status_window.refresh
end
#--------------------------------------------------------------------------
def on_number_cancel
Sound.play_cancel
end_number_input
end
#--------------------------------------------------------------------------
def do_buy(number)
$game_party.lose_gold(number * buying_price)
$game_party.gain_item(@item, number)
end
#--------------------------------------------------------------------------
def do_sell(number)
$game_party.gain_gold(number * selling_price)
$game_party.lose_item(@item, number)
end
#--------------------------------------------------------------------------
def end_number_input
@number_window.hide
case @command_window.current_symbol
when :buy
activate_buy_window
when :sell
activate_sell_window
end
end
#--------------------------------------------------------------------------
def max_buy
max = $game_party.max_item_number(@item) - $game_party.item_number(@item)
buying_price == 0 ? max : [max, money / buying_price].min
end
#--------------------------------------------------------------------------
def max_sell
$game_party.item_number(@item)
end
#--------------------------------------------------------------------------
def money
@gold_window.value
end
#--------------------------------------------------------------------------
def currency_unit
@gold_window.currency_unit
end
#--------------------------------------------------------------------------
def buying_price
@buy_window.price(@item)
end
#--------------------------------------------------------------------------
def selling_price
@item.price / 2
end
end
################################################################################
#Fin
Un Cordial Saludo.