Project1

标题: 关于商店 [打印本页]

作者: zdqhzs    时间: 2013-3-2 15:23
标题: 关于商店
版本是1.2,脚本也改过,但是对话选择后还是弹错误

作者: OCTSJimmy    时间: 2013-3-2 21:04
Scene_Shop初始化失败好像,请贴出Scene_Shop看看。。。。
作者: zdqhzs    时间: 2013-3-2 21:08
本帖最后由 zdqhzs 于 2013-3-2 21:22 编辑



,麻烦加个Q指导:237334560
作者: OCTSJimmy    时间: 2013-3-2 21:13
zdqhzs 发表于 2013-3-2 21:08
##==============================================================================
# ■ Scene_Map
#- ...

1、您贴的不是Scene_Shop,请找到class Scene_Shop  ………… 后贴出来,假如没有,就是缺少这个的问题
2、以后贴脚本请用框,框起来,源码框哦。
作者: zdqhzs    时间: 2013-3-2 21:20
OCTSJimmy 发表于 2013-3-2 21:13
1、您贴的不是Scene_Shop,请找到class Scene_Shop  ………… 后贴出来,假如没有,就是缺少这个的问题
2 ...

新手一只,多多包涵。。。。{:2_253:}

Scripts.rvdata

114.23 KB, 下载次数: 40


作者: OCTSJimmy    时间: 2013-3-2 21:27
zdqhzs 发表于 2013-3-2 21:20
新手一只,多多包涵。。。。

很奇怪,为什么你的Scene_Shop脚本会变成了Scene_Skill一模一样的内容。。。

给出个官方版,将Scene_Shop里面的全部内容替换成这个吧,官方版如下:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Shop
  3. #------------------------------------------------------------------------------
  4. #  处理商店画面的类。
  5. #==============================================================================
  6.  
  7. class Scene_Shop < Scene_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 开始处理
  10.   #--------------------------------------------------------------------------
  11.   def start
  12.     super
  13.     create_menu_background
  14.     create_command_window
  15.     @help_window = Window_Help.new
  16.     @gold_window = Window_Gold.new(384, 56)
  17.     @dummy_window = Window_Base.new(0, 112, 544, 304)
  18.     @buy_window = Window_ShopBuy.new(0, 112)
  19.     @buy_window.active = false
  20.     @buy_window.visible = false
  21.     @buy_window.help_window = @help_window
  22.     @sell_window = Window_ShopSell.new(0, 112, 544, 304)
  23.     @sell_window.active = false
  24.     @sell_window.visible = false
  25.     @sell_window.help_window = @help_window
  26.     @number_window = Window_ShopNumber.new(0, 112)
  27.     @number_window.active = false
  28.     @number_window.visible = false
  29.     @status_window = Window_ShopStatus.new(304, 112)
  30.     @status_window.visible = false
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 结束处理
  34.   #--------------------------------------------------------------------------
  35.   def terminate
  36.     super
  37.     dispose_menu_background
  38.     dispose_command_window
  39.     @help_window.dispose
  40.     @gold_window.dispose
  41.     @dummy_window.dispose
  42.     @buy_window.dispose
  43.     @sell_window.dispose
  44.     @number_window.dispose
  45.     @status_window.dispose
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 更新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     super
  52.     update_menu_background
  53.     @help_window.update
  54.     @command_window.update
  55.     @gold_window.update
  56.     @dummy_window.update
  57.     @buy_window.update
  58.     @sell_window.update
  59.     @number_window.update
  60.     @status_window.update
  61.     if @command_window.active
  62.       update_command_selection
  63.     elsif @buy_window.active
  64.       update_buy_selection
  65.     elsif @sell_window.active
  66.       update_sell_selection
  67.     elsif @number_window.active
  68.       update_number_input
  69.     end
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 生成命令窗口
  73.   #--------------------------------------------------------------------------
  74.   def create_command_window
  75.     s1 = Vocab::ShopBuy
  76.     s2 = Vocab::ShopSell
  77.     s3 = Vocab::ShopCancel
  78.     @command_window = Window_Command.new(384, [s1, s2, s3], 3)
  79.     @command_window.y = 56
  80.     if $game_temp.shop_purchase_only
  81.       @command_window.draw_item(1, false)
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 释放命令窗口
  86.   #--------------------------------------------------------------------------
  87.   def dispose_command_window
  88.     @command_window.dispose
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● 更新命令窗口
  92.   #--------------------------------------------------------------------------
  93.   def update_command_selection
  94.     if Input.trigger?(Input::B)
  95.       Sound.play_cancel
  96.       $scene = Scene_Map.new
  97.     elsif Input.trigger?(Input::C)
  98.       case @command_window.index
  99.       when 0  # 买入
  100.         Sound.play_decision
  101.         @command_window.active = false
  102.         @dummy_window.visible = false
  103.         @buy_window.active = true
  104.         @buy_window.visible = true
  105.         @buy_window.refresh
  106.         @status_window.visible = true
  107.       when 1  # 卖出
  108.         if $game_temp.shop_purchase_only
  109.           Sound.play_buzzer
  110.         else
  111.           Sound.play_decision
  112.           @command_window.active = false
  113.           @dummy_window.visible = false
  114.           @sell_window.active = true
  115.           @sell_window.visible = true
  116.           @sell_window.refresh
  117.         end
  118.       when 2  # 离开
  119.         Sound.play_decision
  120.         $scene = Scene_Map.new
  121.       end
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 更新买入选择
  126.   #--------------------------------------------------------------------------
  127.   def update_buy_selection
  128.     @status_window.item = @buy_window.item
  129.     if Input.trigger?(Input::B)
  130.       Sound.play_cancel
  131.       @command_window.active = true
  132.       @dummy_window.visible = true
  133.       @buy_window.active = false
  134.       @buy_window.visible = false
  135.       @status_window.visible = false
  136.       @status_window.item = nil
  137.       @help_window.set_text("")
  138.       return
  139.     end
  140.     if Input.trigger?(Input::C)
  141.       @item = @buy_window.item
  142.       number = $game_party.item_number(@item)
  143.       if @item == nil or @item.price > $game_party.gold or number == 99
  144.         Sound.play_buzzer
  145.       else
  146.         Sound.play_decision
  147.         max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  148.         max = [max, 99 - number].min
  149.         @buy_window.active = false
  150.         @buy_window.visible = false
  151.         @number_window.set(@item, max, @item.price)
  152.         @number_window.active = true
  153.         @number_window.visible = true
  154.       end
  155.     end
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 更新卖出选择
  159.   #--------------------------------------------------------------------------
  160.   def update_sell_selection
  161.     if Input.trigger?(Input::B)
  162.       Sound.play_cancel
  163.       @command_window.active = true
  164.       @dummy_window.visible = true
  165.       @sell_window.active = false
  166.       @sell_window.visible = false
  167.       @status_window.item = nil
  168.       @help_window.set_text("")
  169.     elsif Input.trigger?(Input::C)
  170.       @item = @sell_window.item
  171.       @status_window.item = @item
  172.       if @item == nil or @item.price == 0
  173.         Sound.play_buzzer
  174.       else
  175.         Sound.play_decision
  176.         max = $game_party.item_number(@item)
  177.         @sell_window.active = false
  178.         @sell_window.visible = false
  179.         @number_window.set(@item, max, @item.price / 2)
  180.         @number_window.active = true
  181.         @number_window.visible = true
  182.         @status_window.visible = true
  183.       end
  184.     end
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # ● 更新数值输入
  188.   #--------------------------------------------------------------------------
  189.   def update_number_input
  190.     if Input.trigger?(Input::B)
  191.       cancel_number_input
  192.     elsif Input.trigger?(Input::C)
  193.       decide_number_input
  194.     end
  195.   end
  196.   #--------------------------------------------------------------------------
  197.   # ● 取消数值输入
  198.   #--------------------------------------------------------------------------
  199.   def cancel_number_input
  200.     Sound.play_cancel
  201.     @number_window.active = false
  202.     @number_window.visible = false
  203.     case @command_window.index
  204.     when 0  # 买入
  205.       @buy_window.active = true
  206.       @buy_window.visible = true
  207.     when 1  # 卖出
  208.       @sell_window.active = true
  209.       @sell_window.visible = true
  210.       @status_window.visible = false
  211.     end
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 确认数值输入
  215.   #--------------------------------------------------------------------------
  216.   def decide_number_input
  217.     Sound.play_shop
  218.     @number_window.active = false
  219.     @number_window.visible = false
  220.     case @command_window.index
  221.     when 0  # 买入
  222.       $game_party.lose_gold(@number_window.number * @item.price)
  223.       $game_party.gain_item(@item, @number_window.number)
  224.       @gold_window.refresh
  225.       @buy_window.refresh
  226.       @status_window.refresh
  227.       @buy_window.active = true
  228.       @buy_window.visible = true
  229.     when 1  # 卖出
  230.       $game_party.gain_gold(@number_window.number * (@item.price / 2))
  231.       $game_party.lose_item(@item, @number_window.number)
  232.       @gold_window.refresh
  233.       @sell_window.refresh
  234.       @status_window.refresh
  235.       @sell_window.active = true
  236.       @sell_window.visible = true
  237.       @status_window.visible = false
  238.     end
  239.   end
  240. end

作者: zdqhzs    时间: 2013-3-2 21:55
OCTSJimmy 发表于 2013-3-2 21:27
很奇怪,为什么你的Scene_Shop脚本会变成了Scene_Skill一模一样的内容。。。

给出个官方版,将Scene_Sho ...

谢谢,问题解决了~{:2_264:}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1