O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Loja de Venda

Iniciado por Takkun, 15/06/2014 às 22:10





Permite que você possa ter uma "loja" de apenas Venda de itens ou seja o herói apenas pode vender seus itens e não comprar como na convencional. Para chamar o script basta  usar o comando: "Chamar Script" na ultima aba de comandos de eventos e colocar o seguinte código:

SceneManager.call(Scene_ShopSell)





[box2 class=black title=Script]
#===============================================================================
# * [VXACE] Loja de Venda
#-------------------------------------------------------------------------------
# * Por Takkun
# * Versão: 1.0 BR
# * Lançada em: 15/06/2014
#===============================================================================
# Para chamar o script basta usar o comando: "Chamar Script" na ultima aba de
# comandos de eventos e colocar o seguinte código:
#
# SceneManager.call(Scene_ShopSell)
#===============================================================================
($imported ||= {})[:shop_sell] = true
#===============================================================================
# ■  Window_SellShop
#===============================================================================
class Window_SellShop < Window_HorzCommand
  def initialize(window_width, purchase_only)
    @window_width = window_width
    super(0, 0)
  end
  def window_width
    @window_width
  end
  def col_max
    return 2
  end
  def make_command_list
    add_command(Vocab::ShopSell,   :sell)
    add_command(Vocab::ShopCancel, :cancel)
  end
end
#===============================================================================
# ■  Scene_ShopSell
#===============================================================================
class Scene_ShopSell < Scene_MenuBase
  def start
    super
    create_help_window
    create_gold_window
    create_command_window
    create_dummy_window
    create_number_window
    create_status_window
    create_category_window
    create_sell_window
  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_SellShop.new(@gold_window.x, @purchase_only)
    @command_window.viewport = @viewport
    @command_window.y = @help_window.height
    @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_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_sell_window
    @category_window.show
    @sell_window.refresh
    @sell_window.show.activate
    @status_window.hide
  end
  def command_sell
    @dummy_window.hide
    @category_window.show.activate
    @sell_window.show
    @sell_window.unselect
    @sell_window.refresh
  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 :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_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 :sell
      activate_sell_window
    end
  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 selling_price
    @item.price / 2
  end
end
[/box2]

Créditos:

  • Eu: Por criar o Script.

Parabéns takkun   :XD:, eu gostei bastante, muda um pouco aquela convencional scene de venda! Ajuda bastante, ótimo trabalho!

Citação de: miguel8884 online 15/06/2014 às 22:38
Parabéns takkun   :XD:, eu gostei bastante, muda um pouco aquela convencional scene de venda! Ajuda bastante, ótimo trabalho!

Obrigado Miguel.
Na verdade esse script meu e bem antigo, fiz ele para o Erynea antigo projeto meu mais decidi dar uma concertada em alguns errinhos que o script tinha e deu uma atualizada no código.
Mas obrigado pelo seu comentário parceiro.
Abraço.

Takkun!-

Maneiro, Takkun! É útil para jogos de simulação tipo The sims ou Harvest Moon. Só um adendo, loja de vendas pode ser chamado também de Tenda de 2a mão, que é a loja que você pode vender qualquer coisa do seu inventário pela metade do preço, ou algo do tipo.

O/

Script bem diferente, até engraçado... mas não deixa de
ser uma obra de arte, bem criativo tio Takkun!

Parabéns pelo trabalho!
Prazer, Terror dos Modinha

Citação de: Strong Rock online 15/06/2014 às 22:55
Maneiro, Takkun! É útil para jogos de simulação tipo The sims ou Harvest Moon. Só um adendo, loja de vendas pode ser chamado também de Tenda de 2a mão, que é a loja que você pode vender qualquer coisa do seu inventário pela metade do preço, ou algo do tipo.

O/

Obrigado Strong.
Sim e bastante útil para esse estilo de jogo, sim eu ia colocar Tenda de Vendas o nome mais preferi mesmo esse já para passar para a galera do que se tratava esse script. Obrigado mesmo pelo seu comentário queria agradeço bastante, o sistema de o preço pela metade já vem junto com o script e natural do RPG Maker pelo que me lembro.
Abraço.

Takkun!-


Citação de: Makers online 15/06/2014 às 23:00
Script bem diferente, até engraçado... mas não deixa de
ser uma obra de arte, bem criativo tio Takkun!

Parabéns pelo trabalho!


Obrigado Makers.
Agradeço pelo seu comentário parceiro.
Aquele abraço.

Takkun!-


Parça...Esse script é perfeito pro meu projeto.Parece bobo mas não, vai fazer uma baita diferença aqui!
Muito agradecido.Thks! :ok:
Gifts: Mistyrol | [

Citação de: STRATØ online 15/06/2014 às 23:29
Parça...Esse script é perfeito pro meu projeto.Parece bobo mas não, vai fazer uma baita diferença aqui!
Muito agradecido.Thks! :ok:

Obrigado Strato.
Espero que o mesmo possa ser bastante útil para você parceiro.
Agradeço pelo seu comentário parceiro.
Abraços.

Takkun!-

Bom trabalho tio, não sei porque me lembro o sistema de vendas de chrono trigger, pra mim se parece
um pouco kk

Citação de: SimonMuran online 16/06/2014 às 07:55
Bom trabalho tio, não sei porque me lembro o sistema de vendas de chrono trigger, pra mim se parece
um pouco kk

Obrigado Simon.
Nossa sempre fazendo anologias com CT. Haha
Obrifsdonpelo seu comentário.
Abraço.

Takkun!-

 :wow: Gostaria de saber se poderia utilizar o script em um projetopara uso comercial, com os devidos créditos...  :ok: