设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2964|回复: 2
打印 上一主题 下一主题

[已经解决] 关于丢弃物品脚本的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
34 小时
注册时间
2016-6-19
帖子
38
跳转到指定楼层
1
发表于 2016-9-11 17:49:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
没错又是我
这次我想问的是一个小问题……因为本人不会脚本……
这个脚本是在选择物品界面按A就可以弹出丢弃物品的窗口但是贵重物品无法丢弃,但是我想要的是价值=0的普通物品和贵重物品都无法丢弃
嗯脚本在下面



  1. #==============================================================================
  2. # ■ VXAce-RGSS3-2 アイテム捨てる [Ver.1.0.0]         by Claimh
  3. #------------------------------------------------------------------------------
  4. #  アイテム画面上でXボタンを押すと、アイテムを捨てることができます。
  5. #==============================================================================


  6. #==============================================================================
  7. # ■ Window_ItemList
  8. #==============================================================================
  9. class Window_ItemList < Window_Selectable
  10.   #--------------------------------------------------------------------------
  11.   # ● 決定やキャンセルなどのハンドリング処理
  12.   #--------------------------------------------------------------------------
  13.   def process_handling
  14.     return unless open? && active
  15.     return call_handler(:append_x)   if handle?(:append_x) && Input.trigger?(:X)
  16.     super
  17.   end
  18. end

  19. #==============================================================================
  20. # ■ Window_ItemNumber
  21. #==============================================================================
  22. class Window_ItemNumber < Window_ShopNumber
  23.   #--------------------------------------------------------------------------
  24.   # ● 公開インスタンス変数
  25.   #--------------------------------------------------------------------------
  26.   attr_reader   :number                   # 入力された個数
  27.   #--------------------------------------------------------------------------
  28.   # ● オブジェクト初期化
  29.   #--------------------------------------------------------------------------
  30.   def initialize
  31.     x = (Graphics.width - window_width) / 2
  32.     super(x, 200, line_height*2 + 32)
  33.     @item = nil
  34.     [url=home.php?mod=space&uid=25307]@Max[/url] = 1
  35.     @number = 1
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● アイテム、最大個数の設定
  39.   #--------------------------------------------------------------------------
  40.   def set(item, max)
  41.     @item = item
  42.     @max = max
  43.     @number = 1
  44.     refresh
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● リフレッシュ
  48.   #--------------------------------------------------------------------------
  49.   def refresh
  50.     contents.clear
  51.     contents.draw_text(0, 0, 200, line_height, "丢弃的数量:")
  52.     draw_item_name(@item, 4, line_height)
  53.     draw_number
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● アイテム名表示行の Y 座標
  57.   #--------------------------------------------------------------------------
  58.   def item_y
  59.     line_height
  60.   end
  61. end


  62. #==============================================================================
  63. # ■ Scene_Item
  64. #==============================================================================
  65. class Scene_Item < Scene_ItemBase
  66.   #--------------------------------------------------------------------------
  67.   # ● 開始処理
  68.   #--------------------------------------------------------------------------
  69.   alias start_dump start
  70.   def start
  71.     start_dump
  72.     create_item_dump_window
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● アイテムウィンドウの作成
  76.   #--------------------------------------------------------------------------
  77.   alias create_item_window_dump create_item_window
  78.   def create_item_window
  79.     create_item_window_dump
  80.     @item_window.set_handler(:append_x, method(:on_item_dump))
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● アイテム数選択ウィンドウの作成
  84.   #--------------------------------------------------------------------------
  85.   def create_item_dump_window
  86.     @number_window = Window_ItemNumber.new
  87.     @number_window.viewport = @viewport
  88.     @number_window.hide
  89.     @number_window.set_handler(:ok,     method(:on_number_ok))
  90.     @number_window.set_handler(:cancel, method(:on_number_cancel))
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● アイテム[捨てる]
  94.   #--------------------------------------------------------------------------
  95.   def on_item_dump
  96.     if item_dumpable?
  97.       Sound.play_ok
  98.       @number_window.set(item, max_item)
  99.       @number_window.show.activate
  100.       @item_window.deactivate
  101.     else
  102.       Sound.play_buzzer
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 個数入力[決定]
  107.   #--------------------------------------------------------------------------
  108.   def on_number_ok
  109.     Sound.play_ok
  110.     do_item_dump(@number_window.number)
  111.     @number_window.hide
  112.     activate_item_window
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 個数入力[キャンセル]
  116.   #--------------------------------------------------------------------------
  117.   def on_number_cancel
  118.     Sound.play_cancel
  119.     @number_window.hide
  120.     activate_item_window
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 捨てるの実行
  124.   #--------------------------------------------------------------------------
  125.   def do_item_dump(number)
  126.     $game_party.lose_item(item, number)
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● アイテムを捨てる判定
  130.   #--------------------------------------------------------------------------
  131.   def item_dumpable?
  132.     item.is_a?(RPG::Item) ? !item.key_item? : (!item.nil?)
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● 所持数の取得
  136.   #--------------------------------------------------------------------------
  137.   def max_item
  138.     $game_party.item_number(item)
  139.   end
  140. end

复制代码

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2016-9-11 19:47:04 | 只看该作者
代码框里136~138行的↓这个方法内容加一条试试看:
  1.   def item_dumpable?
  2.     if item.is_a?(RPG::Item)
  3.       return !(item.key_item? or item.price.zero?)
  4.     else
  5.       return !(item.nil?)
  6.     end
  7.   end
复制代码

点评

好的谢谢啦ww  发表于 2016-9-12 21:49

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答

查看全部评分

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 19:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表