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 5110
공지 RPG VX ACE 유용한 링크 모음 16 아방스 2012.01.03 28925
137 기타 시디 플레이어 1.0 by 77er 1 file 77ER. 2013.08.20 1627
136 기타 사칙연산 게임 by 77er 1 file 77ER. 2013.08.19 1606
135 기타 77er 월드 맵 1.0 by 77er 3 file 77ER. 2013.08.14 2281
134 타이틀/게임오버 타이틀 스크린 커스터마이징 11 file 라실비아 2013.08.12 5153
133 맵/타일 XP Map Loader by LiTTleDRAgo Alkaid 2013.07.23 1703
132 HUD Galv's Explorer's HUD 4 file 천공대전 2013.07.21 3638
131 전투 GTBS v2 for VX Ace by GubiD 1 Alkaid 2013.07.19 3057
130 메뉴 System Options v1.00 시스템 환경설정, 이동속도 10 file 믛디 2013.07.18 3447
129 변수/스위치 변수/스위치 전역 저장 시스템 ( 게임이 종료 및 재시작되어도 값이 변하지 않는 변수와 스위치를 설정 ) 7 미루 2013.07.11 3165
128 이동 및 탈것 8 방향 이동 스크립트 ( 사선 이동 캐릭터 그래픽 지원 ) 9 file 미루 2013.07.11 4845
127 맵/타일 XPMAP-EX : XPマップスクリプト by A Crying Minister (WHITE-FLUTE) file 습작 2013.06.09 3125
126 퀘스트 CSCA]콜로세움 시스템 4 file 글쎄,왜 난 적용이 안될까? 2013.06.09 3623
125 스킬 galvs]매직샤드 시스템. 1 file 글쎄,왜 난 적용이 안될까? 2013.06.09 2876
124 맵/타일 안개 시스템 ( VXA ) 8 홍색의환상향 2013.05.19 4090
123 키입력 Mouse System Buttons update 2.0 by Falcao 11 file 습작 2013.05.14 2526
122 키입력 VA鼠标脚本——全操作鼠标化 v1.3e by Sion 4 file 습작 2013.05.14 2027
121 전투 Ra TBS Alpha by Eshra 1 file 습작 2013.05.13 3856
120 전투 多人数SRPGコンバータ for Ace by AD.Bank 6 습작 2013.05.13 4037
119 전투 Schala 전투 시스템 (XAS에 의해 구동) 11 홍색의환상향 2013.05.05 5321
118 퀘스트 Quest Journal by modern algebra 11 file 습작 2013.05.03 3695
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11