Project1

标题: 有关于处理物品选择的事件命令 [打印本页]

作者: qq1014850720    时间: 2014-10-30 23:13
标题: 有关于处理物品选择的事件命令
有没有办法 使该命令只显示指定的几个物品来选择    或者是 有没有类似这种命令的开关或变量的选择   另外再问一下 可不可以 在菜单的贵重物品里隐藏显示几个指定的已拥有的贵重物品
作者: qknight    时间: 2014-10-31 07:49
如果只是几个物品的话,推荐楼主还是用选项来选择送礼吧,另外附上拓展选项及开关控制的隐藏选项的脚本,使用方法为选项后接上 if(s[X]),X为开关的编号,这样只有该开关打开时才会出现这个选项
  1. =begin

  2. ▼ 選択肢拡張 ver 1.3

  3. RPGツクールVXAce用スクリプト

  4. 制作 : 木星ペンギン
  5. URL  : http://woodpenguin.blog.fc2.com/

  6. ------------------------------------------------------------------------------
  7. 概要

  8. □ 選択肢を連続して設定した場合、つなげて一つの選択肢にする機能の追加。
  9. □ 条件を設定することで、その項目を表示しない機能の追加。
  10. □ 選択肢内容が前回と同じだった場合、
  11.     カーソルの初期位置を前回選んだ項目にする機能の追加。

  12. ------------------------------------------------------------------------------
  13. 使い方

  14. □ 選択肢を繋げる方法
  15.   ・選択肢の表示を続けて配置すると、一つの選択肢にまとめられます。
  16.   ・まとめたくない場合は、間に注釈などを入れることで通常通り分けることができます。
  17.   ・「キャンセルの場合」の処理は、無効以外を設定したものが適用されます。
  18.   ・「キャンセルの場合」の処理が複数ある場合、
  19.    あとに設定された選択肢のものが適用されます。
  20.   
  21. □ 条件によって、項目を表示させない方法
  22.   ・選択肢の文章の最後に if(条件) と書くことで、
  23.    その条件が偽になると項目が表示されなくなります。
  24.   ・s でスイッチを参照できます。
  25.      (例 : if(s[3]) でスイッチ番号 3 が ON のとき項目が表示されます)
  26.   ・v で変数を参照できます。
  27.      (例 : if(v[5] >= 4) で変数番号 5 が 4 以上のとき項目が表示されます)
  28.   ・これらの条件は eval によって判定されてるので、and や or なども使用できます。
  29.   ・この機能により選択肢の項目数が 0 となった場合、
  30.    何も選択しなかったことになります。
  31.    「キャンセルの場合」の処理が適用されるわけではありません。
  32.   ・この機能により「キャンセルの場合」の項目が表示されない場合、
  33.    無効と同じ処理をします。

  34. =end
  35. module Wooden
  36. module ChoiceEX
  37. #//////////////////////////////////////////////////////////////////////////////
  38. #
  39. # 設定項目
  40. #
  41. #//////////////////////////////////////////////////////////////////////////////
  42.   #--------------------------------------------------------------------------
  43.   # ● 選択肢の最大行数
  44.   #     選択肢を表示するウィンドウの行数の最大数です。
  45.   #     選択肢がこの数より小さければ、通常通り行数は少なくなります。
  46.   #--------------------------------------------------------------------------
  47.   LineMax = 4
  48.   
  49.   #--------------------------------------------------------------------------
  50.   # ● 選択肢の位置記憶
  51.   #     前回表示した選択肢と全く同じ内容の選択肢を表示する場合、
  52.   #     カーソルの初期位置を前回選んだ項目にする機能です。
  53.   #     false で無効化できます。
  54.   #--------------------------------------------------------------------------
  55.   Store = true
  56.   
  57. end
  58. end

  59. #//////////////////////////////////////////////////////////////////////////////
  60. #
  61. # 以降、変更する必要なし
  62. #
  63. #//////////////////////////////////////////////////////////////////////////////

  64. #==============================================================================
  65. # ■ Game_Interpreter
  66. #==============================================================================
  67. class Game_Interpreter
  68.   #--------------------------------------------------------------------------
  69.   # ☆ 選択肢のセットアップ
  70.   #--------------------------------------------------------------------------
  71.   def setup_choices(params)
  72.     result = []
  73.     add_choices(params, @index, result)
  74.     unless $game_message.choices.empty?
  75.       result << $game_message.choice_cancel_type - 1
  76.       $game_message.choice_proc = Proc.new {|n| @branch[@indent] = result[n] }
  77.     else
  78.       @branch[@indent] = -1
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 選択肢の追加
  83.   #--------------------------------------------------------------------------
  84.   def add_choices(params, i, result, d = 0)
  85.     params[0].each_with_index do |s, n|
  86.       choice = s.dup
  87.       next if choice.slice!(/\s*if\((.+)\)$/i) && !choice_eval($1)
  88.       $game_message.choices << choice
  89.       result << n + d
  90.     end
  91.     if params[1] == 5 || (params[1] > 0 && result.include?(params[1] + d - 1))
  92.       $game_message.choice_cancel_type = params[1] + d
  93.     end
  94.     indent = @list[i].indent
  95.     i += 1 until @list[i].code == 404 && @list[i].indent == indent
  96.     i += 1
  97.     add_choices(@list[i].parameters, i, result, d + 5) if @list[i].code == 102
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 分岐終了の場合
  101.   #--------------------------------------------------------------------------
  102.   def choice_eval(formula)
  103.     s = $game_switches
  104.     v = $game_variables
  105.     begin
  106.       Kernel.eval(formula)
  107.     rescue
  108.       msgbox "以下の条件判定でエラーが出ました。\n\n", formula
  109.       true
  110.     end
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 分岐終了の場合
  114.   #--------------------------------------------------------------------------
  115.   def command_404
  116.     if next_event_code == 102
  117.       @branch[@indent] -= 5
  118.       @index += 1
  119.       command_skip
  120.     end
  121.   end
  122. end

  123. #==============================================================================
  124. # ■ Window_ChoiceList
  125. #==============================================================================
  126. class Window_ChoiceList
  127.   #--------------------------------------------------------------------------
  128.   # ● 指定行数に適合するウィンドウの高さを計算
  129.   #--------------------------------------------------------------------------
  130.   def fitting_height(line_number)
  131.     super([line_number, Wooden::ChoiceEX::LineMax].min)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ☆ 入力処理の開始
  135.   #--------------------------------------------------------------------------
  136.   def start
  137.     last_choices = @list.collect {|c| c[:name] }
  138.     update_placement
  139.     unless Wooden::ChoiceEX::Store && last_choices == $game_message.choices
  140.       refresh
  141.       select(0)
  142.     end
  143.     open
  144.     activate
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ☆ キャンセルハンドラの呼び出し
  148.   #--------------------------------------------------------------------------
  149.   def call_cancel_handler
  150.     $game_message.choice_proc.call(item_max)
  151.     close
  152.   end
  153. end
复制代码

作者: VIPArcher    时间: 2014-10-31 11:36
https://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=373105&pid=2562014
物品栏要隐藏道具的话就插入这段脚本
  1. class Window_ItemList < Window_Selectable
  2.   alias hide_include? include?
  3.   def include?(item)
  4.     hide_include?(item) && !item.note.include?("<key_hide>")
  5.   end
  6. end
复制代码
然后在需要隐藏的物品的备注栏备注<key_hide>
作者: 三途亚梦    时间: 2014-10-31 13:32
这种物品选择功能大扩张的脚本我有一个推荐。

该脚本来源于日站:CACAO SOFT
地址为:http://cacaosoft.web.fc2.com/
为本站授权推广素材站
该站有墙,且禁止二次发布,这次我搬运一次给你,之后如果有类似情况请到站点自取。

该脚本可以做到物品选择任何道具,
物品选择可以以任何形式过滤选择的道具。
我觉得这个脚本可以完美的达到你的要求。
脚本不要的部分已经帮你翻译了。


作者: qq1014850720    时间: 2014-10-31 20:40
三途亚梦 发表于 2014-10-31 13:32
这种物品选择功能大扩张的脚本我有一个推荐。

该脚本来源于日站:CACAO SOFT

Game_Interpreter的1411行:    eval(script)   出错
作者: qq1014850720    时间: 2014-10-31 20:49
三途亚梦 发表于 2014-10-31 13:32
这种物品选择功能大扩张的脚本我有一个推荐。

该脚本来源于日站:CACAO SOFT

显示说   unexpected‘=’,expecting$end=“keyword”
作者: qq1014850720    时间: 2014-10-31 20:56
我事件是写的  脚本$game_message.item_choice_hide_number = true
                    脚本$game_message.item_choice_category =“keyword”
                   处理物品选择【变量?】
                    条件分歧 当变量=?时

作者: qq1014850720    时间: 2014-10-31 20:57
qq1014850720 发表于 2014-10-31 20:56
我事件是写的  脚本$game_message.item_choice_hide_number = true
                    脚本$game_message ...

我将设置里改成了 变量是物品ID    PLUS_ID = 1
作者: qq1014850720    时间: 2014-10-31 21:11
三途亚梦 发表于 2014-10-31 13:32
这种物品选择功能大扩张的脚本我有一个推荐。

该脚本来源于日站:CACAO SOFT

层主在吗? 为什么会报错  下面说事件脚本没写对 我脚本句明明是从注释里复制的啊
作者: VIPArcher    时间: 2014-10-31 21:12
qq1014850720 发表于 2014-10-31 20:57
我将设置里改成了 变量是物品ID    PLUS_ID = 1

https://rpg.blue/thread-276636-1-1.html
试试这个,(链接没错,不用质疑
作者: 1575053778    时间: 2017-9-28 02:21
为啥我用不了啊

E1VX5$V@S[)QL~3TU_W4%H1.png (160.4 KB, 下载次数: 13)

E1VX5$V@S[)QL~3TU_W4%H1.png

作者: 1575053778    时间: 2017-9-28 02:22
求告知




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