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 전투 XAS VX ACE 데모 한글 번역 ( 스크립트 번역 모음 ) 1 미루 2013.01.10 4595
136 전투 XAS Hero Edition Ace Experimental 0.5 6 Alkaid 2012.01.15 6162
135 전투 WhiteFlute: 자동전투 스크립트 3 file Alkaid 2012.09.20 3794
134 맵/타일 WhiteFlute - XPMap-EX (VX Ace에서 XP의 맵 데이터를 읽을 수 있게 함) 3 Alkaid 2012.12.26 1524
133 스킬 VXACE 패시브 스킬 스크립트 Ver. 0.82 21 file 아이미르 2012.03.07 6696
132 장비 VXAce 장비장착 스킬발동 스크립트 2 아이미르 2012.09.02 2421
131 스킬 VXAce 아츠장착 스킬습득 스크립트 1 file 아이미르 2013.02.24 2792
130 아이템 VXAce 아이템 합성 스크립트 Ver 0.8 17 아이미르 2012.08.23 4022
129 아이템 VXAce 아이템 채집 스크립트 23 file 아이미르 2012.11.23 4069
128 아이템 VXAce 아이템 도감 스크립트 7 file 아이미르 2012.12.31 3830
127 스킬 VXAce 스킬포인트 스크립트 5 file 아이미르 2013.03.21 4179
126 스킬 VXAce 스킬레벨, 스킬장착 스크립트 11 file 아이미르 2012.11.01 3831
125 아이템 VXAce 셋트장비 스크립트 9 file 아이미르 2013.03.08 3646
124 상점 VXAce 상점 스크립트 V0.9 17 아이미르 2012.06.29 5398
123 전투 VXAce 사이드뷰 스크립트 (번역) 23 아이미르 2012.12.10 6379
122 스킬 VXAce 경험치 스킬습득 스크립트 3 file 아이미르 2012.10.27 2757
121 버그픽스 VXAce SP1 2 Alkaid 2013.02.15 2080
120 상점 VXAce SkillShop 스크립트 3 file 아이미르 2012.10.30 2906
119 아이템 VXAce No Recipe 아이템합성 스크립트(버그 수정) 11 file 아이미르 2013.01.07 3324
118 제작도구 VXAce HUD Designer by Cidiomar R. Dias Jr 1 file 습작 2013.01.19 6786
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11