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

Project1

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

[已经过期] 能否利用脚本制作生存解谜类游戏菜单和系统

[复制链接]

Lv2.观梦者

梦石
0
星屑
316
在线时间
85 小时
注册时间
2012-4-13
帖子
39
跳转到指定楼层
1
发表于 2014-11-2 00:41:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
RT,最近在下想要用尘封已久的rmvx制作一个现实风格的冒险解谜类游戏
开头剧情啦,开始画面啦,剧本神马的都已经弄得差不多了
突然想到一个问题
就是像这样的游戏如果纯是用事件之类的制作密码、道具解锁之类的有点简单
最近玩了几款解密游戏,发现背包限制系统和道具组合系统非常不错,能够大大的增加谜题难度和游戏的多样性
那么问题就来了。。。。。
现在站里搜索到的合成系统多数是以rpg游戏里的打造或炼成这样感觉的系统脚本为多,达不到预期的效果啊
好比拥有“小恢复剂”2个,能够合成一个“中恢复剂”,合成菜单全都是固定的显示在一边,一点就直接合成了,这样合成感觉一点没有解谜性吗。。。如果有些需要动点脑子考虑用什么道具合成的状况就和毫无意义了
所以现在想要的结果就是,可以再游戏菜单中增加一个“合成/分解”的选项
然后可以对手中的道具进行操作,选择2种道具进行合成(手电(空)+电池=手电),或将1件道具分解成多个道具(?盒子=包装盒+宝石)这样的效果
具体范例可以想象为早期的生化危机,或是同为vx的游戏黑暗研究所
身为一名复出新手,这样的脚本真心有点难搞定,望哪位大大可以帮忙看一下,或者有相同研究方向的人也可以联系我,大家一起探讨下
感激不尽!

Lv1.梦旅人

梦石
0
星屑
98
在线时间
1617 小时
注册时间
2013-8-15
帖子
4459
2
发表于 2014-11-2 00:56:02 | 只看该作者
Q.能否利用脚本制作生存解谜类游戏菜单和系统
A.能。

版主可以结帖了。

点评

虽说你说的确实有理......我承认错误T0T  发表于 2014-11-2 01:09
请不要这样.....欺负新人表达不清嘛‘A’#  发表于 2014-11-2 01:07
神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦神烦
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
316
在线时间
85 小时
注册时间
2012-4-13
帖子
39
3
 楼主| 发表于 2014-11-2 00:59:36 | 只看该作者
  1. ==============================================================================
  2. # ■ Survival Engine's Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  サバイバルホラー風のメニュースクリプトです
  5. #==============================================================================

  6. class Scene_Menu < Scene_Base  
  7.    
  8.   ###################################################################
  9.   
  10.   CMENU_S1 = "档案"
  11.   CMENU_S2 = "使用"
  12.   CMENU_S3 = "装备"
  13.   CMENU_S4 = "合成"
  14.   CMENU_S5 = "排列/丢弃"
  15.   CMENU_S6 = "状态"

  16.   CMENU_S8 = "保存"
  17.   CMENU_S9 = "退出"
  18.   
  19.   CMENU_COM1 = "浏览目前为止登记的档案"
  20.   CMENU_COM2 = "使用背包里的物品"
  21.   CMENU_COM3 = "装备背包里的物品"
  22.   CMENU_COM4 = "组合背包里的物品"
  23.   CMENU_COM5 = "对背包的物品进行排列/丢弃"
  24.   CMENU_COM6 = "确认目前所引发的症状"
  25.   
  26.   CMENU_COM8 = "保存进度"
  27.   CMENU_COM9 = "结束游戏"
  28.   ###################################################################
  29.   #--------------------------------------------------------------------------
  30.   # ● 初期化処理
  31.   #--------------------------------------------------------------------------
  32.   def initialize(dind = 0, aflg = false)
  33.     @animflg = aflg
  34.     @defind = dind
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 初期openness処理
  38.   #--------------------------------------------------------------------------
  39.   def get_openness
  40.     if ( @animflg == false )
  41.       return 0
  42.     else
  43.       return 255
  44.     end
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 開始処理
  48.   #--------------------------------------------------------------------------
  49.   def start
  50.     create_menu_background
  51.     @info_window = Window_Help.new()
  52.     @info_window.openness = get_openness
  53.     @info_window.open
  54.     create_mainmenu_window
  55.     @mainmenu_window.openness = get_openness
  56.     @mainmenu_window.open
  57.     create_itemmenu_window
  58.     @itemmenu_window.openness = get_openness
  59.     @itemmenu_window.open
  60.     @menumode = 0
  61.     @getval_message_window = -1
  62.     @selecting_message_window = false
  63.     create_status_window
  64.    
  65.     @window_oppoint = [0, -3, -6, -9, -12, -15, -18]
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 終了処理
  69.   #--------------------------------------------------------------------------
  70.   def terminate
  71.     dispose_menu_background
  72.     @mainmenu_window.dispose
  73.     @itemmenu_window.dispose
  74.     @info_window.dispose
  75.     dispose_status_window
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 背景作成
  79.   #--------------------------------------------------------------------------
  80.   def create_menu_background
  81.     super
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● メインメニューウィンドウ作成
  85.   #--------------------------------------------------------------------------
  86.   def create_mainmenu_window
  87.     @mainmenucolumn = [0, 0]
  88.     @mainmenucolumn_description = [CMENU_COM1, CMENU_COM2, CMENU_COM3, CMENU_COM4, CMENU_COM5, CMENU_COM6, CMENU_COM8, CMENU_COM9]
  89.     @mainmenu_window = Window_Command.new(140, [CMENU_S1, CMENU_S2, CMENU_S3, CMENU_S4, CMENU_S5, CMENU_S6, CMENU_S8, CMENU_S9], 1, 0, 32, 1)
  90.     @mainmenu_window.height = 416 - @info_window.height - 132
  91.     @mainmenu_window.x =  0
  92.     @mainmenu_window.y =  @info_window.height
  93.     @mainmenu_window.index = @defind
  94.     if $game_system.save_disabled             # セーブ禁止の場合
  95.       @mainmenu_window.draw_item(6, false)     # セーブを無効化
  96.     end
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ● アイテムウィンドウ作成
  100.   #--------------------------------------------------------------------------
  101.   def create_itemmenu_window
  102.     itemmenucolumn_name = [0, 0]
  103.     for i in 0..$se_gs.get_item_capacity - 1
  104.       itemmenucolumn_name[i] = $se_gs.get_item(i, "name")
  105.     end
  106.     @itemmenu_window = Window_Command.new(544 - @mainmenu_window.width, itemmenucolumn_name, 2, 0, 32)
  107.     @itemmenu_window.x = @mainmenu_window.width
  108.     @itemmenu_window.y = @info_window.height
  109.     @itemmenu_window.index = -1
  110.     @itemmenu_window.height = @mainmenu_window.height
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● アイテムウィンドウ再絵画
  114.   #--------------------------------------------------------------------------
  115.   def redraw_itemmenu_window
  116.     tempindex = @itemmenu_window.index
  117.     itemmenucolumn_name = [0, 0]
  118.     for i in 0..$se_gs.get_item_capacity - 1
  119.       itemmenucolumn_name[i] = $se_gs.get_item(i, "name")
  120.     end
  121.     @itemmenu_window.redraw(itemmenucolumn_name)
  122.     disabling_unselectable_item
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● ステータスウィンドウ作成
  126.   #--------------------------------------------------------------------------
  127.   def create_status_window
  128.     @hp_window = Window_Base.new(544 - 132 - 99, 416 - 132, 132, 132)
  129.     @hp_window.openness = get_openness
  130.     @hp_window.open
  131.     @stamina_window = Window_Base.new(544 - 132 - 132 - 99, 416 - 132, 132, 132)
  132.     @stamina_window.openness = get_openness
  133.     @stamina_window.open
  134.     @profile_window = Window_Base.new(0, 416 - 132, 544 - 132 - 132 - 99, 132)
  135.     @profile_window.openness = get_openness
  136.     @profile_window.open
  137.     @status_window = Window_Command.new(99, $se_gs.get_visible_state_list("name"), 1, 0, 32, 1)
  138.     @status_window.x = 544 - 99
  139.     @status_window.y = @itemmenu_window.y + @itemmenu_window.height
  140.     @status_window.height = 416 - @info_window.height - @itemmenu_window.height
  141.     @status_window.openness = get_openness
  142.     @status_window.open
  143.     @status_window.index = -1
  144.    
  145.     redraw_status_window
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● ステータスウィンドウ開放
  149.   #--------------------------------------------------------------------------
  150.   def dispose_status_window
  151.     @hp_window.dispose
  152.     @stamina_window.dispose
  153.     @profile_window.dispose
  154.     @status_window.dispose
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● ステータスウィンドウ再絵画
  158.   #--------------------------------------------------------------------------
  159.   def redraw_status_window
  160.     @hp_window.contents.clear
  161.     hpper = $se_gs.get_state_hp * 100 / $se_gs.get_state_hpmax
  162.     if 80 < hpper
  163.       hpbmp = Cache.picture("life_fine")
  164.     elsif 60 < hpper
  165.       hpbmp = Cache.picture("life_good")
  166.     elsif 40 < hpper
  167.       hpbmp = Cache.picture("life_passable")
  168.     elsif 20 < hpper
  169.       hpbmp = Cache.picture("life_bad")
  170.     else
  171.       hpbmp = Cache.picture("life_danger")
  172.     end
  173.     rect = Rect.new(0, 0, hpbmp.width, hpbmp.height )
  174.     @hp_window.contents.blt(0, 0, hpbmp, rect)
  175.     @hp_window.contents.draw_text(0, 0, 100, 24 , "LIFE")
  176.     if $game_switches[1] == true
  177.       @hp_window.contents.draw_text(0, 100 - 24, 100, 24, sprintf("%d/%d", $se_gs.get_state_hp, $se_gs.get_state_hpmax), 2)
  178.     end
  179.    
  180.     @stamina_window.contents.clear
  181.     staminaper = $se_gs.get_state_stamina * 100 / $se_gs.get_state_staminamax
  182.     if 80 < staminaper
  183.       staminabmp = Cache.picture("stamina_fine")
  184.     elsif 60 < staminaper
  185.       staminabmp = Cache.picture("stamina_good")
  186.     elsif 40 < staminaper
  187.       staminabmp = Cache.picture("stamina_passable")
  188.     elsif 20 < staminaper
  189.       staminabmp = Cache.picture("stamina_bad")
  190.     else
  191.       staminabmp = Cache.picture("stamina_danger")
  192.     end
  193.     rect = Rect.new(0, 0, staminabmp.width, staminabmp.height )
  194.     @stamina_window.contents.blt(0, 0, staminabmp, rect)
  195.     @stamina_window.contents.draw_text(0, 0, 100, 24 , "STAMINA")
  196.     if $game_switches[1] == true
  197.       @stamina_window.contents.draw_text(0, 100 - 24, 100, 24, sprintf("%d/%d", $se_gs.get_state_stamina, $se_gs.get_state_staminamax), 2)
  198.     end
  199.    
  200.     @profile_window.contents.clear
  201.     @profile_window.contents.draw_text(0, 0, @profile_window.width - 32, 24, "P.N:" + $game_actors[1].name, 0)
  202.     @profile_window.contents.draw_text(0, 24, 200, 24, "第" + $se_gs.get_time_day.to_s + "天", 0)
  203.     @profile_window.contents.draw_text(0, 48, 200, 24, $se_gs.get_time_hou.to_s + ":" + $se_gs.get_time_min.to_s + ":" + $se_gs.get_time_sec.to_s, 0)
  204.    
  205.     equipname = $se_gs.get_equip.name
  206.    
  207.     @profile_window.contents.draw_text(0, @profile_window.height - 32 - 24, @profile_window.width - 32, 24, "EQ[" + equipname + "]", 0)
  208.    
  209.     @status_window.contents.clear
  210.     @status_window.redraw($se_gs.get_visible_state_list("name"))
  211.     @status_window.index = -1
  212.   end

  213.   #--------------------------------------------------------------------------
  214.   # ● 更新処理
  215.   #--------------------------------------------------------------------------
  216.   def update
  217.     super
  218.     returnflg = false
  219.     if ( @mainmenu_window.opening? )
  220.       if ( @window_oppoint[0] >= 0 )
  221.         @mainmenu_window.update
  222.       else
  223.         @window_oppoint[0] += 1
  224.       end
  225.       returnflg = true
  226.     end
  227.     if ( @itemmenu_window.opening? )
  228.       if ( @window_oppoint[1] >= 0 )
  229.         @itemmenu_window.update
  230.       else
  231.         @window_oppoint[1] += 1
  232.       end
  233.       returnflg = true
  234.     end
  235.     if ( @info_window.opening? )
  236.       if ( @window_oppoint[2] >= 0 )
  237.         @info_window.update
  238.       else
  239.         @window_oppoint[2] += 1
  240.       end
  241.       returnflg = true
  242.     end
  243.     if ( @hp_window.opening? )
  244.       if ( @window_oppoint[3] >= 0 )
  245.         @hp_window.update
  246.       else
  247.         @window_oppoint[3] += 1
  248.       end
  249.       returnflg = true
  250.     end
  251.     if ( @stamina_window.opening? )
  252.       if ( @window_oppoint[4] >= 0 )
  253.         @stamina_window.update
  254.       else
  255.         @window_oppoint[4] += 1
  256.       end
  257.       returnflg = true
  258.     end
  259.     if ( @profile_window.opening? )
  260.       if ( @window_oppoint[5] >= 0 )
  261.         @profile_window.update
  262.       else
  263.         @window_oppoint[5] += 1
  264.       end
  265.       returnflg = true
  266.     end
  267.     if ( @status_window.opening? )
  268.       if ( @window_oppoint[6] >= 0 )
  269.         @status_window.update
  270.       else
  271.         @window_oppoint[6] += 1
  272.       end
  273.       returnflg = true
  274.     end
  275.    
  276.     if ( returnflg == true )
  277.       return
  278.     end
  279.    
  280.    
  281.     if ( @selecting_message_window == true )
  282.       @message_window.update
  283.       @getval_message_window = @message_window.get_retval
  284.       if ( @getval_message_window != -1 )
  285.         dispose_message_window
  286.       end
  287.     else
  288.       case @menumode
  289.       when 0 #メインメニュー選択状態の場合
  290.         @mainmenu_window.update
  291.         update_mainmenu_selection
  292.       when 1, 2, 3, 4  #アイテムメニュー選択状態の場合
  293.         update_item_selection
  294.       when 5
  295.         @status_window.update
  296.         update_state_selection
  297.       end
  298.     end
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # ● メニュー選択処理
  302.   #--------------------------------------------------------------------------
  303.   def update_mainmenu_selection
  304.     #ヘルプウィンドウを更新する
  305.     @info_window.set_text(@mainmenucolumn_description[@mainmenu_window.index])
  306.     #決定、キャンセルの処理
  307.     if Input.trigger?(Input::B)
  308.       Sound.play_cancel
  309.       $scene = Scene_Map.new
  310.     elsif Input.trigger?(Input::C)
  311.       Sound.play_decision
  312.       case @mainmenu_window.index
  313.       when 0      # RESUME
  314.         $scene = Scene_Menu_Files.new
  315.       when 1,2,3,4  # USE,EQUIP,COMBINE,SORT/DISPOSE
  316.         start_item_selection
  317.       when 5
  318.         start_state_selection
  319. #~       when 6      # OPTION
  320. #~         start_option
  321.       when 6      # SAVE
  322.         if ( $game_system.save_disabled ) #セーブ禁止の場合
  323.           Sound.play_buzzer
  324.         else
  325.           $scene = Scene_File.new(true, false, false)
  326.         end
  327.       when 7      # QUIT
  328.         $scene = Scene_End.new
  329.       end
  330.     end
  331.   end
  332.   #--------------------------------------------------------------------------
  333.   # ● アイテム選択開始処理
  334.   #--------------------------------------------------------------------------
  335.   def start_item_selection
  336.     @menumode = @mainmenu_window.index
  337.     @itemmenu_window.index = 0
  338.     @mainmenu_window.index = -1
  339.     case @menumode
  340.     when 1, 2 #USE,EQUIP
  341.       #Nothing
  342.     when 3, 4 #COMBINE,SORT/DISPOSE
  343.       create_seconditemmenu_window
  344.     end
  345.     @itemselect_phase = 0
  346.     disabling_unselectable_item
  347.   end
  348.   #--------------------------------------------------------------------------
  349.   # ● 選択不可能のアイテム名を半透明化させる
  350.   #--------------------------------------------------------------------------
  351.   def disabling_unselectable_item
  352.     @itemmenucolumn_selectable = [0, 0]
  353.     for i in 0..$se_gs.get_item_capacity - 1
  354.       disablefragg = false
  355.       #アイテム選択を開始した時のメインメニューのインデックスで半透明化を判断
  356.       case @menumode
  357.       when 1 #USE
  358.         if /<使用可能>/ === $se_gs.get_item(i, "note")
  359.           disablefragg = false
  360.         else
  361.           disablefragg = true
  362.         end
  363.       when 2 #EQUIP
  364.         if /<装備可能>/ === $se_gs.get_item(i, "note") or ( $se_gs.get_equip.id != 0 and $se_gs.get_item(i, "id" ) == 0 )
  365.           disablefragg = false
  366.         else
  367.           disablefragg = true
  368.         end
  369.       when 3 #COMBINE
  370.         if ( $se_gs.get_item(i, "id") == 0 )
  371.           disablefragg = true
  372.         else
  373.           disablefragg = false
  374.         end
  375.       when 4 #SORT/DISPOSE
  376.         disablefragg = false
  377.       end
  378.       #絵画&フラグ設定
  379.       if ( disablefragg == true )
  380.         @itemmenu_window.draw_item(i, false)
  381.         @itemmenucolumn_selectable[i] = false
  382.       else
  383.         @itemmenucolumn_selectable[i] = true
  384.       end
  385.     end
  386.   end
  387.   #--------------------------------------------------------------------------
  388.   # ● 全アイテムの透明を解除する
  389.   #--------------------------------------------------------------------------
  390.   def enabling_all_items
  391.     for i in 0..$se_gs.get_item_capacity - 1
  392.       @itemmenu_window.draw_item(i, true)
  393.     end
  394.   end
  395.   #--------------------------------------------------------------------------
  396.   # ● アイテム更新処理
  397.   #--------------------------------------------------------------------------
  398.   def update_item_selection
  399.     if ( @getval_message_window != -1 )
  400.       process_item_action
  401.       @getval_message_window = -1
  402.       @itemselect_phase = 0
  403.       return
  404.     end
  405.    
  406.     if ( @itemselect_phase == 1 )
  407.       @seconditemmenu_window.update
  408.     else
  409.       @itemmenu_window.update
  410.     end

  411.     #ヘルプウィンドウを更新する
  412.     if ( @itemselect_phase == 0 )
  413.       @info_window.set_text($se_gs.get_item(@itemmenu_window.index, "description"))
  414.     elsif ( @itemselect_phase == 1 )
  415.       @info_window.set_text($se_gs.get_item(@seconditemmenu_window.index, "description"))
  416.     end

  417.       
  418.     #決定、キャンセルの処理
  419.     if Input.trigger?(Input::B) #キャンセルの場合
  420.       Sound.play_cancel
  421.       if ( @itemselect_phase == 0 ) #第一アイテム選択時
  422.         start_mainmenu_selection
  423.       elsif ( @itemselect_phase == 1 ) #第二アイテム選択時
  424.         @itemmenu_window.index = @seconditemmenu_window.index
  425.         @seconditemmenu_window.index = -1
  426.         @itemmenu_window.active = true
  427.         @itemselect_phase = 0
  428.       end
  429.     elsif Input.trigger?(Input::C) #決定の場合
  430.       Sound.play_decision
  431.       case @menumode
  432.       when 1, 2 #USE,EQUIPの場合
  433.         process_item_select
  434.       when 3, 4 #CONBINE,SORT/DISPOSEの場合
  435.         if ( @itemselect_phase == 0 )
  436.           if ( @itemmenucolumn_selectable[@itemmenu_window.index] == true )
  437.             @itemmenu_window.active = false
  438.             @seconditemmenu_window.index = @itemmenu_window.index
  439.             @itemselect_phase = 1
  440.           else
  441.             Sound.play_buzzer
  442.           end
  443.         elsif ( @itemselect_phase == 1 )
  444.           if ( @itemmenucolumn_selectable[@seconditemmenu_window.index] == true )
  445.             process_item_select
  446.             @itemmenu_window.index = @seconditemmenu_window.index
  447.             @seconditemmenu_window.index = -1
  448.             @itemmenu_window.active = true
  449.             @itemselect_phase = 0
  450.           else
  451.             Sound.play_buzzer
  452.           end
  453.         end
  454.       end
  455.     end
  456.    
  457.   end
  458.   #--------------------------------------------------------------------------
  459.   # ● アイテム選択終了処理
  460.   #--------------------------------------------------------------------------
  461.   def start_mainmenu_selection
  462.     @mainmenu_window.index = @menumode
  463.     @menumode = 0
  464.     @itemmenu_window.index = -1
  465.     case @menumode
  466.     when 1, 2 #USE,EQUIP
  467.       #Nothing
  468.     when 3, 4 #COMBINE,SORT/DISPOSE
  469.       @seconditemmenu_window.dispose
  470.     end
  471.     enabling_all_items
  472.   end
  473.   #--------------------------------------------------------------------------
  474.   # ● 第二アイテム選択用のウィンドウを作成
  475.   #--------------------------------------------------------------------------
  476.   def create_seconditemmenu_window
  477.     menucolumn_name = [0, 0]
  478.     for i in 0..$se_gs.get_item_capacity - 1
  479.       menucolumn_name[i] = ""
  480.     end
  481.     @seconditemmenu_window = Window_Command.new(@itemmenu_window.width, menucolumn_name, 2, 0, 32)
  482.     @seconditemmenu_window.x = @mainmenu_window.width
  483.     @seconditemmenu_window.y = @info_window.height
  484.     @seconditemmenu_window.opacity = 0
  485.     @seconditemmenu_window.index = -1
  486.   end
  487.   #--------------------------------------------------------------------------
  488.   # ● アイテム選択完了時の処理を実行
  489.   #--------------------------------------------------------------------------
  490.   def process_item_select
  491.     #選択不能アイテムを選択した時に処理を終了する
  492.     returnflg = false
  493.     case @menumode
  494.     when 1, 2 #USE,EQUIP
  495.       if ( @itemmenucolumn_selectable[@itemmenu_window.index] == false )
  496.         returnflg = true
  497.       end
  498.     when 3, 4 #COMBINE,SORT/DISPOSE
  499.       if ( @itemselect_phase == 0 )
  500.         if ( @itemmenucolumn_selectable[@itemmenu_window.index] == false )
  501.           returnflg = true
  502.         end
  503.       elsif ( @itemselect_phase == 1 )
  504.         if ( @itemmenucolumn_selectable[@seconditemmenu_window.index] == false )
  505.           returnflg = true
  506.         end
  507.       end
  508.     end
  509.     if ( returnflg == true )
  510.       Sound.play_buzzer
  511.       return
  512.     end
  513.    
  514.     #ここから
  515.     case @menumode
  516.     when 1 #USE
  517.       @getval_message_window = 1
  518.     when 2 #EQUIP
  519.       $se_gs.set_equip_equiping(@itemmenu_window.index)
  520.       $se_gs.gd_equip_activate = false
  521.       Audio.se_play("Audio/SE/Equip", 80, 100)
  522.       redraw_status_window
  523.       redraw_itemmenu_window
  524.     when 3 #COMBINE
  525.       #同じアイテムを選択したらエラー
  526.       if ( @itemmenu_window.index == @seconditemmenu_window.index )
  527.         Sound.play_buzzer
  528.         create_message_window("选择了相同的物品", "okonly")
  529.       else
  530.         #合成できるかどうかの判定
  531.         combineflg = false
  532.         combinedid = 0
  533.         dcombinedid = 0
  534.         
  535.         
  536.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  537.         if /<合成1 (\d+),(\d+)>/ =~ nt
  538.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  539.             combineflg = true
  540.             combinedid = $2.to_i
  541.           end
  542.         end
  543.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  544.         if /<合成1 (\d+),(\d+)>/ =~ nt
  545.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  546.             combineflg = true
  547.             combinedid = $2.to_i
  548.           end
  549.         end
  550.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  551.         if /<合成2 (\d+),(\d+)>/ =~ nt
  552.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  553.             combineflg = true
  554.             combinedid = $2.to_i
  555.           end
  556.         end
  557.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  558.         if /<合成2 (\d+),(\d+)>/ =~ nt
  559.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  560.             combineflg = true
  561.             combinedid = $2.to_i
  562.           end
  563.         end
  564.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  565.         if /<合成3 (\d+),(\d+)>/ =~ nt
  566.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  567.             combineflg = true
  568.             combinedid = $2.to_i
  569.           end
  570.         end
  571.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  572.         if /<合成3 (\d+),(\d+)>/ =~ nt
  573.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  574.             combineflg = true
  575.             combinedid = $2.to_i
  576.           end
  577.         end
  578.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  579.         if /<合成4 (\d+),(\d+)>/ =~ nt
  580.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  581.             combineflg = true
  582.             combinedid = $2.to_i
  583.           end
  584.         end
  585.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  586.         if /<合成4 (\d+),(\d+)>/ =~ nt
  587.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  588.             combineflg = true
  589.             combinedid = $2.to_i
  590.           end
  591.         end
  592.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  593.         if /<合成5 (\d+),(\d+)>/ =~ nt
  594.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  595.             combineflg = true
  596.             combinedid = $2.to_i
  597.           end
  598.         end
  599.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  600.         if /<合成5 (\d+),(\d+)>/ =~ nt
  601.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  602.             combineflg = true
  603.             combinedid = $2.to_i
  604.           end
  605.         end
  606.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  607.         if /<合成6 (\d+),(\d+)>/ =~ nt
  608.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  609.             combineflg = true
  610.             combinedid = $2.to_i
  611.           end
  612.         end
  613.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  614.         if /<合成6 (\d+),(\d+)>/ =~ nt
  615.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  616.             combineflg = true
  617.             combinedid = $2.to_i
  618.           end
  619.         end
  620.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  621.         if /<合成7 (\d+),(\d+)>/ =~ nt
  622.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  623.             combineflg = true
  624.             combinedid = $2.to_i
  625.           end
  626.         end
  627.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  628.         if /<合成7 (\d+),(\d+)>/ =~ nt
  629.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  630.             combineflg = true
  631.             combinedid = $2.to_i
  632.           end
  633.         end
  634.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  635.         if /<合成8 (\d+),(\d+)>/ =~ nt
  636.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  637.             combineflg = true
  638.             combinedid = $2.to_i
  639.           end
  640.         end
  641.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  642.         if /<合成8 (\d+),(\d+)>/ =~ nt
  643.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  644.             combineflg = true
  645.             combinedid = $2.to_i
  646.           end
  647.         end
  648.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  649.         if /<合成9 (\d+),(\d+)>/ =~ nt
  650.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  651.             combineflg = true
  652.             combinedid = $2.to_i
  653.           end
  654.         end
  655.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  656.         if /<合成9 (\d+),(\d+)>/ =~ nt
  657.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  658.             combineflg = true
  659.             combinedid = $2.to_i
  660.           end
  661.         end
  662.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  663.         if /<合成10 (\d+),(\d+)>/ =~ nt
  664.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  665.             combineflg = true
  666.             combinedid = $2.to_i
  667.           end
  668.         end
  669.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  670.         if /<合成10 (\d+),(\d+)>/ =~ nt
  671.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  672.             combineflg = true
  673.             combinedid = $2.to_i
  674.           end
  675.         end
  676.         
  677.         
  678.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  679.         if /<合成1 (\d+),(\d+)and(\d+)>/ =~ nt
  680.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  681.             combineflg = "double"
  682.             combinedid = $2.to_i
  683.             dcombinedid = $3.to_i
  684.           end
  685.         end
  686.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  687.         if /<合成1 (\d+),(\d+)and(\d+)>/ =~ nt
  688.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  689.             combineflg = "double"
  690.             combinedid = $2.to_i
  691.             dcombinedid = $3.to_i
  692.           end
  693.         end
  694.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  695.         if /<合成2 (\d+),(\d+)and(\d+)>/ =~ nt
  696.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  697.             combineflg = "double"
  698.             combinedid = $2.to_i
  699.             dcombinedid = $3.to_i
  700.           end
  701.         end
  702.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  703.         if /<合成2 (\d+),(\d+)and(\d+)>/ =~ nt
  704.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  705.             combineflg = "double"
  706.             combinedid = $2.to_i
  707.             dcombinedid = $3.to_i
  708.           end
  709.         end
  710.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  711.         if /<合成3 (\d+),(\d+)and(\d+)>/ =~ nt
  712.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  713.             combineflg = "double"
  714.             combinedid = $2.to_i
  715.             dcombinedid = $3.to_i
  716.           end
  717.         end
  718.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  719.         if /<合成3 (\d+),(\d+)and(\d+)>/ =~ nt
  720.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  721.             combineflg = "double"
  722.             combinedid = $2.to_i
  723.             dcombinedid = $3.to_i
  724.           end
  725.         end
  726.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  727.         if /<合成4 (\d+),(\d+)and(\d+)>/ =~ nt
  728.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  729.             combineflg = "double"
  730.             combinedid = $2.to_i
  731.             dcombinedid = $3.to_i
  732.           end
  733.         end
  734.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  735.         if /<合成4 (\d+),(\d+)and(\d+)>/ =~ nt
  736.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  737.             combineflg = "double"
  738.             combinedid = $2.to_i
  739.             dcombinedid = $3.to_i
  740.           end
  741.         end
  742.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  743.         if /<合成5 (\d+),(\d+)and(\d+)>/ =~ nt
  744.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  745.             combineflg = "double"
  746.             combinedid = $2.to_i
  747.             dcombinedid = $3.to_i
  748.           end
  749.         end
  750.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  751.         if /<合成5 (\d+),(\d+)and(\d+)>/ =~ nt
  752.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  753.             combineflg = "double"
  754.             combinedid = $2.to_i
  755.             dcombinedid = $3.to_i
  756.           end
  757.         end
  758.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  759.         if /<合成6 (\d+),(\d+)and(\d+)>/ =~ nt
  760.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  761.             combineflg = "double"
  762.             combinedid = $2.to_i
  763.             dcombinedid = $3.to_i
  764.           end
  765.         end
  766.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  767.         if /<合成6 (\d+),(\d+)and(\d+)>/ =~ nt
  768.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  769.             combineflg = "double"
  770.             combinedid = $2.to_i
  771.             dcombinedid = $3.to_i
  772.           end
  773.         end
  774.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  775.         if /<合成7 (\d+),(\d+)and(\d+)>/ =~ nt
  776.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  777.             combineflg = "double"
  778.             combinedid = $2.to_i
  779.             dcombinedid = $3.to_i
  780.           end
  781.         end
  782.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  783.         if /<合成7 (\d+),(\d+)and(\d+)>/ =~ nt
  784.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  785.             combineflg = "double"
  786.             combinedid = $2.to_i
  787.             dcombinedid = $3.to_i
  788.           end
  789.         end
  790.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  791.         if /<合成8 (\d+),(\d+)and(\d+)>/ =~ nt
  792.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  793.             combineflg = "double"
  794.             combinedid = $2.to_i
  795.             dcombinedid = $3.to_i
  796.           end
  797.         end
  798.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  799.         if /<合成8 (\d+),(\d+)and(\d+)>/ =~ nt
  800.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  801.             combineflg = "double"
  802.             combinedid = $2.to_i
  803.             dcombinedid = $3.to_i
  804.           end
  805.         end
  806.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  807.         if /<合成9 (\d+),(\d+)and(\d+)>/ =~ nt
  808.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  809.             combineflg = "double"
  810.             combinedid = $2.to_i
  811.             dcombinedid = $3.to_i
  812.           end
  813.         end
  814.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  815.         if /<合成9 (\d+),(\d+)and(\d+)>/ =~ nt
  816.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  817.             combineflg = "double"
  818.             combinedid = $2.to_i
  819.             dcombinedid = $3.to_i
  820.           end
  821.         end
  822.         nt = $se_gs.get_item(@itemmenu_window.index, "note")
  823.         if /<合成10 (\d+),(\d+)and(\d+)>/ =~ nt
  824.           if ( $se_gs.get_item(@seconditemmenu_window.index, "id") == $1.to_i )
  825.             combineflg = "double"
  826.             combinedid = $2.to_i
  827.             dcombinedid = $3.to_i
  828.           end
  829.         end
  830.         nt = $se_gs.get_item(@seconditemmenu_window.index, "note")
  831.         if /<合成10 (\d+),(\d+)and(\d+)>/ =~ nt
  832.           if ( $se_gs.get_item(@itemmenu_window.index, "id") == $1.to_i )
  833.             combineflg = "double"
  834.             combinedid = $2.to_i
  835.             dcombinedid = $3.to_i
  836.           end
  837.         end

  838.         
  839.         
  840.         
  841.         if ( combineflg == "double" )
  842.           Sound.play_use_skill
  843.           $se_gs.set_item(@seconditemmenu_window.index, combinedid)
  844.           $se_gs.set_item(@itemmenu_window.index, dcombinedid)
  845.           create_message_window("[" + $data_items[combinedid].name + "]、[" + $data_items[dcombinedid].name + "]が完成しました", "okonly")
  846.         elsif ( combineflg == true )
  847.           Sound.play_use_skill
  848.           $se_gs.set_item(@seconditemmenu_window.index, combinedid)
  849.           $se_gs.set_item(@itemmenu_window.index, 0)
  850.           create_message_window("[" + $data_items[combinedid].name + "]已合成完毕", "okonly")
  851.         else
  852.           Sound.play_buzzer
  853.           create_message_window("无法进行组合", "okonly")
  854.         end
  855.         
  856.         
  857.       end
  858.     when 4 #SORT/DISPOSE
  859.       #同じアイテムを二度選択したら捨てるコマンド、それ以外なら並べ替え
  860.       if ( @itemmenu_window.index == @seconditemmenu_window.index )
  861.         if ( $se_gs.get_item(@itemmenu_window.index, "id") == 0 )
  862.           #処理なし
  863.         else
  864.           if /<破棄許可/ === $se_gs.get_item(@itemmenu_window.index, "note")
  865.             /<破棄許可 (\d+)>/ =~ $se_gs.get_item(@itemmenu_window.index, "note")
  866.             getval = $1
  867.             getval = getval.to_i
  868.             if ( $game_switches[getval] == true )
  869.               create_message_window("[" + $se_gs.get_item(@itemmenu_window.index, "name") + "]将被丢弃,可以吗?", "okcancel")
  870.             else
  871.               Sound.play_buzzer
  872.               create_message_window("现阶段作为重要的物品而无法丢弃", "okonly")
  873.             end
  874.           else
  875.             create_message_window("[" + $se_gs.get_item(@itemmenu_window.index, "name") + "]将被丢弃,可以吗?", "okcancel")
  876.           end
  877.         end
  878.       else
  879.         $se_gs.change_item(@itemmenu_window.index, @seconditemmenu_window.index )
  880.         redraw_itemmenu_window
  881.       end
  882.     end
  883.   end
  884.   #--------------------------------------------------------------------------
  885.   # ● 実際にアイテムへのアクションを実行する処理
  886.   #--------------------------------------------------------------------------
  887.   def process_item_action
  888.     case @menumode
  889.     when 1 #USE
  890.       if ( @getval_message_window == 1 )#OKを選択した場合
  891.         nt = $se_gs.get_item( @itemmenu_window.index, "note" )
  892.         appedret = $se_gs.application_note(nt, "mustlive")
  893.         if ( $se_gs.get_item(@itemmenu_window.index, "all").delete_one == true )
  894.           if /<使用変化 (\d+)>/ =~ nt
  895.             nxtget = $1.to_i
  896.           else
  897.             nxtget = 0
  898.           end
  899.           $se_gs.set_item( @itemmenu_window.index, nxtget )
  900.         end
  901.         Sound.play_use_item
  902.         redraw_itemmenu_window
  903.         redraw_status_window
  904.         if ( appedret == "menuend" )
  905.           $scene = Scene_Map.new
  906.         end
  907.       end
  908.     when 2 #EQUIP
  909.       #アイテムを装備する処理(ここでは必要ない)
  910.     when 3 #COMBINE
  911.       #アイテムを合成する処理
  912.       #合成等の処理はここではおこなわれない。ここではウィンドウ更新のみ
  913.       redraw_itemmenu_window
  914.     when 4 #SORT/DISPOSE
  915.       #アイテムを破棄する処理
  916.       #入れ替えの場合(異なる二つのアイテムを選択した場合)はこの処理は実行されない
  917.       if ( @getval_message_window == 1 ) #OKを選択した場合
  918.         
  919.         nt = $se_gs.get_item( @itemmenu_window.index, "note" )
  920.         nxtget = 0
  921.         if /<破棄時使用変化連動>/ =~ nt
  922.           if /<使用変化 (\d+)>/ =~ nt
  923.             nxtget = $1.to_i
  924.           end
  925.         end
  926.         $se_gs.set_item( @itemmenu_window.index, nxtget )
  927.         Audio.se_play("Audio/SE/Key", 80, 50)
  928.         redraw_itemmenu_window
  929.       end
  930.     end
  931.    
  932.   end
  933.   #--------------------------------------------------------------------------
  934.   # ● 簡易メッセージウィンドウを作成する
  935.   #--------------------------------------------------------------------------
  936.   def create_message_window(message, type)
  937.     @message_window = Window_Msg.new(message, type)
  938.     @selecting_message_window = true
  939.   end
  940.   #--------------------------------------------------------------------------
  941.   # ● 簡易メッセージウィンドウを削除する
  942.   #--------------------------------------------------------------------------
  943.   def dispose_message_window
  944.     @message_window.dispose
  945.     @selecting_message_window = false
  946.   end
  947.   #--------------------------------------------------------------------------
  948.   # ● ステート選択関連全般
  949.   #--------------------------------------------------------------------------
  950.   def start_state_selection
  951.     @status_window.index = 0
  952.     @mainmenu_window.index = -1
  953.     @menumode = 5
  954.     @status_window_stateidlist = $se_gs.get_visible_state_list("id")
  955.   end
  956.   def update_state_selection
  957.     stat = $se_gs.search_state_name(@status_window.commands[@status_window.index])
  958.     ser = $se_gs.gd_state[stat].get_seriousery
  959.     case ser
  960.     when 0
  961.       com = ""
  962.     when 1
  963.       com = "<軽>"
  964.     when 2
  965.       com = "<中>"
  966.     when 3
  967.       com = "<重>"
  968.     else
  969.       com = ""
  970.     end
  971.     if ( $se_gs.gd_state[stat].get_serious_exist == false )
  972.       com = ""
  973.     end
  974.     if $game_switches[1] == true
  975.       i = $se_gs.search_state(@status_window_stateidlist[@status_window.index])
  976.       ev = $se_gs.gd_state[i].get_eval
  977.       @info_window.set_text(com + "[" + ev.to_s + "]" + $se_gs.gd_state[stat].get_name + $data_states[@status_window_stateidlist[@status_window.index]].message1)
  978.     else
  979.       @info_window.set_text(com + $data_states[@status_window_stateidlist[@status_window.index]].message1)
  980.     end
  981.     if Input.trigger?(Input::B) #キャンセルの場合
  982.       Sound.play_cancel
  983.       end_state_selection
  984.       return
  985.     end
  986.   end
  987.   def end_state_selection
  988.     @status_window.index = -1
  989.     @mainmenu_window.index = 5
  990.     @menumode = 0
  991.   end
  992.   #--------------------------------------------------------------------------
  993.   # ● オプション開始処理
  994.   #--------------------------------------------------------------------------
  995.   def start_option

  996.   end
  997.   



  998. end
复制代码
对了,这个是很久之前忘了从哪保存的一个黑暗研究所版本的菜单脚本
但是使用起来会报错
wrong number of arguments(6 for 5)
哪位研究脚本的大大帮忙改一下这个也可以
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
4
发表于 2014-11-23 08:56:29 | 只看该作者
新建窗口需要先视窗定位然后New窗口定义
你可以参考主菜单的生成过程 照搬的捏一个
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
发表于 2014-11-23 09:43:48 | 只看该作者
现在站里搜索到的合成系统多数是以rpg游戏里的打造或炼成这样感觉的系统脚本为多,达不到预期的效果啊
好比拥有“小恢复剂”2个,能够合成一个“中恢复剂”,合成菜单全都是固定的显示在一边,一点就直接合成了,这样合成感觉一点没有解谜性吗。。。如果有些需要动点脑子考虑用什么道具合成的状况就和毫无意义了
所以现在想要的结果就是,可以再游戏菜单中增加一个“合成/分解”的选项
然后可以对手中的道具进行操作,选择2种道具进行合成(手电(空)+电池=手电),或将1件道具分解成多个道具(?盒子=包装盒+宝石)这样的效果
具体范例可以想象为早期的生化危机,或是同为vx的游戏黑暗研究所

你是希望合成的时候不知道会合出什么东西?然后这个合成系统可以拆分合成的东西?

点评

找不到了TT,大大的主题太多了  发表于 2014-11-30 22:29
不是这个  发表于 2014-11-29 20:18
大人,您说的改进版莫非是http://rm.66rpg.com/forum.php?mod=viewthread&tid=234009&highlight=%E5%90%88%E6%88%90 这个? 可这还是直接出结果的合成啊  发表于 2014-11-29 20:07
分解什么的其实并不是很重要,而且可以通过两件道具合成的另一种用法做到(刀+结实的袋子=xxx) 主要还是自选合成道具的判断和处理不知道怎么写  发表于 2014-11-29 19:49
不过逆操作什么的还是没弄OTZ当时技术问题···  发表于 2014-11-28 21:36
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
483
在线时间
750 小时
注册时间
2012-11-10
帖子
924
6
发表于 2014-11-23 23:20:42 | 只看该作者
我记得va可以做到
有本事就来阻止我啊,主体单元『天照』!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
316
在线时间
85 小时
注册时间
2012-4-13
帖子
39
7
 楼主| 发表于 2014-11-27 09:58:20 | 只看该作者
5说的意思对了,但现在就是弄不出来,我知道怎么创建出这样的菜单但是在道具选择的时候就会出错,因为选择完第1件道具再选另一件之后的处理不知道怎么做

点评

精灵已经超出了脚本的范围  发表于 2014-11-30 22:59
是多个光标,但是有的光标是选定的框,活动的只有一个,我发了点图,还麻烦您看下能否做主这种效果  发表于 2014-11-30 22:29
那样的话就应该出现多个光标的吧?  发表于 2014-11-29 20:18
想弄的是选完道具一,然后出现新的光标框,选道具2.而不是选完一就自行判断是否有道具2 在弄出选择框的时候就不知道咋弄了  发表于 2014-11-29 19:51
P.S.另外一件物品里基本一致,除了条件分歧写持有这一件物品的情况下。  发表于 2014-11-27 11:49
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
316
在线时间
85 小时
注册时间
2012-4-13
帖子
39
8
 楼主| 发表于 2014-11-29 22:09:06 | 只看该作者
本帖最后由 KaiRus 于 2014-11-29 22:12 编辑

如图,这是站里的一个生化游戏的范例工程------可惜是xp,不通用
就是这样的合成过程,多么亲切的效果
就是在处理执行出现第二个选框并判断能否合成的时候出错T0T

另外,黑暗研究所的虽然是vx,但是那个菜单脚本太过复杂,牵扯其他类脚本太多,没法单独使用
不过效果真的是没话说啊........

以上,另外有什么其他的方法也敬请不吝赐教

0W@1$AQ9U6[TSG)E2T%K (226.01 KB, 下载次数: 23)

0W@1$AQ9U6[TSG)E2T%K

(W_MR~1S`P7CX{2XNS3GVR6.jpg (35.44 KB, 下载次数: 19)

(W_MR~1S`P7CX{2XNS3GVR6.jpg

Q9C_@YG@DJBPP$CR5JNS86B.jpg (109.82 KB, 下载次数: 23)

Q9C_@YG@DJBPP$CR5JNS86B.jpg
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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