Ace 스크립트

출처 : http://www.rpgmakervxace.net/topic/12848-shop-stock/

 

 

=begin
#===============================================================================
 Title: Shop Stock
 Author: Tsukihime
 Date: Feb 22, 2013
--------------------------------------------------------------------------------
 ** Change log
 Feb 22, 2013
   - Initial release
--------------------------------------------------------------------------------   
 ** Terms of Use
 * Free to use in commercial/non-commercial projects
 * No real support. The script is provided as-is
 * Will do bug fixes, but no compatibility patches
 * Features may be requested but no guarantees, especially if it is non-trivial
 * Preserve this header
--------------------------------------------------------------------------------
 ** Required
 
 -Shop Manager
 (http://himeworks.wordpress.com/2013/02/22/shop-manager/)
--------------------------------------------------------------------------------
 ** Description
 
 This script adds a "stock" count to each shop good.
 Once a good's stock reaches 0, it will no longer be available in the shop.

--------------------------------------------------------------------------------
 ** Usage
 
 In your event, before the Shop Processing command, use a script call
 
   @shop_stock[id] = amount
   
 Where
   `id` is the ID of the shop good, which is the index they appear in the
        shop list. The first item has ID of 1.
   
   `amount` is how much of the item they have in stock
   
--------------------------------------------------------------------------------
 ** Developers   
 
 How much stock that a shop has remaining of a shop good is stored in the
 "stock" attribute of that good. There are three cases

   stock < 0, then there is no limit
   stock == 0, then there is none left
   stock > 0, then there is that much left

#===============================================================================
=end
$imported = {} if $imported.nil?
$imported["TH_ShopStock"] = true
#===============================================================================
# ** Configuration
#=============================================================================== 
module TH
  module Shop_Stock
  end
end
#===============================================================================
# ** Rest of the Script
#=============================================================================== 
class Game_Interpreter
  
  alias :th_shop_stock_clear :clear
  def clear
    th_shop_stock_clear
    @shop_stock = []
  end
  
  alias :th_shop_stock_setup_good :setup_good
  def setup_good(good, id)
    th_shop_stock_setup_good(good, id)
    stock = @shop_stock[id]
    return unless stock
    good.stock = stock
  end
end
class Game_ShopGood
  attr_reader :stock
  
  alias :th_shop_stock_init :initialize
  def initialize(*args)
    th_shop_stock_init(*args)
    @stock = -1
    @unlimited = true
  end
  
  def stock=(amount)
    @stock = amount
    @unlimited = (amount < 0)
  end
  
  def unlimited?
    @unlimited
  end
  
  def increase_stock(amount)
    @stock += amount
  end
  
  def decrease_stock(amount)
    return if @unlimited
    @stock = [@stock - amount, 0].max
  end
end

class Game_Shop
  
  alias :th_shop_stock_include? :include?
  def include?(index)
    return false if stock(index) == 0
    th_shop_stock_include?(index)
  end
  
  def stock(index)
    @shop_goods[index].stock
  end
end

class Window_ShopBuy < Window_Selectable
  
  alias :th_shop_stock_include? :include?
  def include?(shopGood)
    return false if shopGood.stock == 0
    th_shop_stock_include?(shopGood)
  end
  
  alias :th_shop_stock_draw_item :draw_item
  def draw_item(index)
    th_shop_stock_draw_item(index)
    rect = item_rect(index)
    item = @data[index]
    shopGood = @goods[item]
    draw_text(rect, shopGood.stock, 1) unless shopGood.unlimited?
  end

  alias :th_shop_stock_process_ok :process_ok
  def process_ok
    unless @data[index]
      Sound.play_buzzer 
      return
    end
    th_shop_stock_process_ok
  end
end

class Scene_Shop < Scene_MenuBase
  
  #--------------------------------------------------------------------------
  # Get amount you could buy, compared to the amount in-stock
  #--------------------------------------------------------------------------
  alias :th_shop_stock_max_buy :max_buy
  def max_buy
    party_max = th_shop_stock_max_buy
    @selected_good.unlimited? ? party_max : [party_max, @selected_good.stock].min
  end
  
  #--------------------------------------------------------------------------
  # Decrease the amount of stock of the selected good
  #--------------------------------------------------------------------------
  alias :th_shop_stock_do_buy :do_buy
  def do_buy(number)
    th_shop_stock_do_buy(number)
    @selected_good.decrease_stock(number)
  end
end
 
 
사용법
이벤트 : 상점을했을때, 이벤트 페이지에 나열되는 목록의 맨 위부터 ID:1, ID:2, …로 명함
 
상점 표시 전 이벤트 - 스크립트로
@shop_stock[n] = n
 
괄호의 n은 물건의 아이디, =의 n은 판매가능한 물건 수를 뜻함.
 
shopStock1.jpg

Who's 스리아씨

?
뺘라뺘뺘
Atachment
첨부 '1'
  • ?
    marshall 2013.09.30 20:44
    이 스크립트만 넣으면 작동하지 않습니다.
    본문의 링크에서 샵매니져 스크립트를 추가로 넣어야 적용됩니다.
  • ?
    스리아씨 2013.09.30 20:49
    Aㅏ
    그렇군요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 5593
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 29399
137 퀘스트 Quest Journal by modern algebra 11 file 습작 2013.05.03 3713
136 HUD Galv's Explorer's HUD 4 file 천공대전 2013.07.21 3669
135 퀘스트 CSCA]콜로세움 시스템 4 file 글쎄,왜 난 적용이 안될까? 2013.06.09 3652
134 HUD SpriteIcon - 화면에 아이콘 그리기 4 file 허걱 2013.02.24 3649
133 아이템 VXAce 셋트장비 스크립트 9 file 아이미르 2013.03.08 3646
132 메시지 N.A.S.T.Y. Text Pop Over Events 3 file Mimesis 2013.04.08 3645
131 메시지 한국어 조사처리 스크립트 7 Ilike게임 2012.10.09 3641
130 장비 장비 장착을 통한 스킬 습득 및 삭제 4 아이미르 2012.02.05 3622
129 액터 Actor Creation System by Tsukihime 4 Alkaid 2012.09.16 3572
128 타이틀/게임오버 [VX ACE]타이틀 화면에 맵을 표시하는 스크립트 4 file 스리아씨 2013.12.07 3567
127 메뉴 스텟을 랭크로 나타내기 7 file Yeolde 2014.05.10 3558
126 맵/타일 Etude87_Map_Remember_Ace ver.1.2 11 습작 2012.07.17 3538
125 메시지 Etude87_VX_Style_Choice ver.1.00 11 file 습작 2013.02.14 3513
124 맵/타일 MGC님의 Mode 7 Ace 6 file 습작 2013.10.27 3494
123 기타 Picture Gallery Ace by MogHunter 1 Alkaid 2011.12.28 3482
122 메뉴 System Options v1.00 시스템 환경설정, 이동속도 10 file 믛디 2013.07.18 3474
121 메시지 ListBox - 선택지 확장 스크립트 11 file 허걱 2014.04.03 3409
120 타이틀/게임오버 시작 전 로고 띄우기 7 file 냐냐 2014.12.04 3396
119 변수/스위치 Etude87_Variables_Ace 6 file 습작 2012.04.13 3388
118 변수/스위치 TYPE74RX-T: 셀프 스위치를 실시간으로 조작 Alkaid 2011.12.23 3359
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11