| 
 
| 赞 | 295 |  
| VIP | 11 |  
| 好人卡 | 74 |  
| 积分 | 233 |  
| 经验 | 281171 |  
| 最后登录 | 2025-10-30 |  
| 在线时间 | 9469 小时 |  
 Lv5.捕梦者 (暗夜天使)   只有笨蛋才会看到 
	梦石1 星屑22284 在线时间9469 小时注册时间2012-6-19帖子7126  
 | 
| 本帖最后由 喵呜喵5 于 2013-9-26 18:25 编辑 
 复制代码=begin
===============================================================================
  变量商店 By喵呜喵5
===============================================================================
【说明】
  
  可以使用变量在商店进行购物
  
  首先先在事件中使用脚本命令输入:shop_set(变量的ID,"变量的单位"),例如:  
  shop_set(1,"节操")
  
  接着使用事件中的商店处理时,购买物品不会消耗金钱而是消耗对应的变量
  
  使用命令shop_set可以恢复原来使用金钱购物的商店
  
=end
#==============================================================================
#  脚本部分
#==============================================================================
$shop_set = [0,0] if $shop_set == nil
class Game_Interpreter
  def shop_set(gold=0,unit="")
    $shop_set = gold,unit
  end
end 
class Window_Gold_New < Window_Base
  def initialize(gold,unit)
    super(0, 0, window_width, fitting_height(1))
    [url=home.php?mod=space&uid=236945]@gold[/url] = gold
    @unit = unit
    refresh
  end
  def window_width
    return 160
  end
  def refresh
    contents.clear
    draw_currency_value(value, currency_unit, 4, 0, contents.width - 8)
  end
  def value
    if [url=home.php?mod=space&uid=236945]@gold[/url] == 0
      $game_party.gold
    else
      $game_variables[@gold]
    end
  end
  def currency_unit
    if @gold == 0
      Vocab::currency_unit
    else
      @unit
    end
  end
  def open
    refresh
    super
  end
end
class Scene_Shop < Scene_MenuBase  
  def create_gold_window
    @gold_window = Window_Gold_New.new($shop_set[0],$shop_set[1])
    @gold_window.viewport = @viewport
    @gold_window.x = Graphics.width - @gold_window.width
    @gold_window.y = @help_window.height
  end
  def do_buy(number)
    if $shop_set[0] == 0
      $game_party.lose_gold(number * buying_price)
    else
      $game_variables[$shop_set[0]] -= number * buying_price
    end
    $game_party.gain_item(@item, number)
  end
  def do_sell(number)
    if $shop_set[0] == 0
      $game_party.gain_gold(number * selling_price)
    else
      $game_variables[$shop_set[0]] += number * selling_price
    end
    $game_party.lose_item(@item, number)
  end  
  def money
      @gold_window.value   
  end
  def currency_unit
      @gold_window.currency_unit
  end  
  def selling_price
    if $shop_set[0] == 0
      @item.price / 2
    else
      buying_price / 2
    end  
  end  
end
 | 
 |