RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
+ [ On-Screen Shop ] +

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 86
On-Screen Shop
Version 1.0
by Woratana
Release Date: 14/05/2008


Introduction
It's not really new interface :P
Mostly just move windows and change the size.

But I think it's look not too bad though. So I'd like to share.

Enjoy~! :)


Screenshots



Script
Place it above main
[codebox]
Code: [Select]
#=======================================================================
# ? [VX] ? On-Screen Shop ? ?
#-------------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Released on: 14/05/2008
# ? Version: 1.0
#=======================================================================

class Scene_Shop < Scene_Base
 
  USE_SPRITESET = true
  # Do you want to use real map as background? (tile will animate)
 
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  alias wora_sceshop_str_oshop start
  def start
wora_sceshop_str_oshop
@spriteset = Spriteset_Map.new if USE_SPRITESET
@gold_window.x = Graphics.width - @gold_window.width - 24
@gold_window.y = Graphics.height - @gold_window.height - 24
@buy_window.x = @sell_window.x = 0
@number_window.x = 0
@dummy_window.y = @help_window.height
@buy_window.y = @sell_window.y = @help_window.height
@number_window.y = @status_window.y = @help_window.height
@buy_window.height = @sell_window.height = 200
@number_window.height = @status_window.height = 200
@dummy_window.y = Graphics.height
@status_window.create_contents
@help_window.visible = false
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  alias wora_sceshop_ter_oshop terminate
  def terminate
wora_sceshop_ter_oshop
@spriteset.dispose if USE_SPRITESET
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  alias wora_sceshop_upd_oshop update
  def update
wora_sceshop_upd_oshop
if @command_window.active
  @help_window.visible = false
elsif @buy_window.active
  @help_window.visible = @buy_window.visible
elsif @sell_window.active
  @help_window.visible = @sell_window.visible
end
@spriteset.update if USE_SPRITESET
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
s1 = Vocab::ShopBuy
s2 = Vocab::ShopSell
s3 = Vocab::ShopCancel
@command_window = Window_Command.new(120, [s1, s2, s3])
@command_window.y = Graphics.height - @command_window.height - 24
@command_window.x = 24
if $game_temp.shop_purchase_only
  @command_window.draw_item(1, false)
end
  end
end

class Window_ShopNumber < Window_Base
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
y = 64
self.contents.clear
draw_item_name(@item, 0, y)
self.contents.font.color = normal_color
self.contents.draw_text(212, y, 20, WLH, "×")
self.contents.draw_text(248, y, 20, WLH, @number, 2)
self.cursor_rect.set(244, y, 28, WLH)
draw_currency_value(@price * @number, 4, y + WLH * 2, 264)
  end
end

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
self.contents.clear
if @item != nil
  number = $game_party.item_number(@item)
  self.contents.font.color = system_color
  self.contents.draw_text(4, 0, 200, WLH, Vocab::Possession)
  self.contents.font.color = normal_color
  self.contents.draw_text(4, 0, 200, WLH, number, 2)
  for actor in $game_party.members
x = 4
y = WLH * (2 + actor.index)
draw_actor_parameter_change(actor, x, y)
  end
end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor's Current Equipment and Parameters
  #--------------------------------------------------------------------------
  def draw_actor_parameter_change(actor, x, y)
return if @item.is_a?(RPG::Item)
enabled = actor.equippable?(@item)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(x, y, 200, WLH, actor.name)
if @item.is_a?(RPG::Weapon)
  item1 = weaker_weapon(actor)
elsif actor.two_swords_style and @item.kind == 0
  item1 = nil
else
  item1 = actor.equips[1 + @item.kind]
end
if enabled
  if @item.is_a?(RPG::Weapon)
atk1 = item1 == nil ? 0 : item1.atk
atk2 = @item == nil ? 0 : @item.atk
change = atk2 - atk1
  else
def1 = item1 == nil ? 0 : item1.def
def2 = @item == nil ? 0 : @item.def
change = def2 - def1
  end
  if change > 0 # If increase status

  elsif change < 0 # If decrease status
self.contents.font.color.alpha = 128
  else # if not change status
self.contents.font.color.alpha = 128
  end
  self.contents.draw_text(x, y, 200, WLH, sprintf("%+d", change), 2)
end
  end
end
[/codebox]


Instruction
It's plug and play script.

So just put it in game and enjoy~  ^_^


Author's Notes
Free for use in your project if credit is included.

***
Rep:
Level 86
I hate everyone except the ones I don't hate...
;) I'm adding it to my game right now!
I wonder how many of my-reps are there for a reason, and not just because some jackass wanted to show off in front of some other jackasses...?
Probably a lot of them - and those people sure as hell don't deserve my pity, let alone my disgust.
That's right, let's see some more -Rep'ing! BOOYEAH!!