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

Project1

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

[已经过期] 脚本新手试写失败 想请教错在哪里 关於增设选单

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
跳转到指定楼层
1
发表于 2018-3-4 05:43:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 真紅樂章 于 2018-3-4 05:45 编辑

其实想要在选单里再制作一个自制选单来查看一些自制数值的说
但是教程看了又看还是不太懂
尝试着用默认脚本里的Window_MenuCommandScene_Menu勉强改出来了以下这个插件脚本(是叫插件吗?)出来了
虽然终於能看到自制选单而且也不会报错跳出可是效果始终强差人意
所以想请教一下改善方法

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2. # ● 增设能力值
  3. #--------------------------------------------------------------------------
  4.  
  5. class Scene_Menu < Scene_MenuBase
  6.   #--------------------------------------------------------------------------
  7.   # ● 生成指令窗口(增设「七」窗口)
  8.   #--------------------------------------------------------------------------
  9.   def create_command_window
  10.     @command_window = Window_MenuCommand.new
  11.     @command_window.set_handler(:item,      method(:command_item))
  12.     @command_window.set_handler(:skill,     method(:command_skill))
  13.     @command_window.set_handler(:equip,     method(:command_equip))
  14.     @command_window.set_handler(:scommand,  method(:command_scommand))
  15.     @command_window.set_handler(:save,      method(:command_save))
  16.     @command_window.set_handler(:game_end,  method(:command_game_end))
  17.     @command_window.set_handler(:cancel,    method(:return_scene))
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● 生成状态窗口
  21.   #--------------------------------------------------------------------------
  22.   def create_status_window
  23.     @status_window = Window_Status.new(@actor)
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 指令“七”
  27.   #--------------------------------------------------------------------------
  28.   def command_scommand
  29.     SceneManager.call(Scene_scommand)
  30.   end
  31.  
  32.   def command_skill
  33.     SceneManager.call(Scene_Skill)
  34.   end
  35.  
  36.   def command_equip
  37.     SceneManager.call(Scene_Equip)
  38.   end
  39. end
  40.  
  41. class Window_MenuCommand < Window_Command
  42.   #--------------------------------------------------------------------------
  43.   # ● 向指令列表添加主要的指令(增设「七」指令)
  44.   #--------------------------------------------------------------------------
  45.   def add_original_commands
  46.     add_command("七",        :scommand, main_commands_enabled)
  47.   end
  48. end
  49.  
  50. #--------------------------------------------------------------------------
  51. # ● 增设统计
  52. #--------------------------------------------------------------------------
  53.  
  54. class Scene_scommand < Scene_MenuBase
  55.   #--------------------------------------------------------------------------
  56.   # ● 开始处理
  57.   #--------------------------------------------------------------------------
  58.   def start
  59.     super
  60.     create_scommand_window
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 生成指令窗口
  64.   #--------------------------------------------------------------------------
  65.   def create_scommand_window
  66.     @scommand_window = Window_SuCommand.new
  67.     @scommand_window.set_handler(:aaa,     method(:command_aaa))
  68.     @scommand_window.set_handler(:bbb,     method(:command_bbb))
  69.     @scommand_window.set_handler(:ccc,     method(:command_ccc))
  70.     @scommand_window.set_handler(:ddd,     method(:command_ddd))
  71.     @scommand_window.set_handler(:eee,     method(:command_eee))
  72.     @scommand_window.set_handler(:fff,     method(:command_fff))
  73.     @scommand_window.set_handler(:cancel,  method(:return_scene))
  74.   end
  75.   def command_aaa
  76.     SceneManager.call(Scene_aaa_window)
  77.   end
  78.  
  79.   def command_bbb
  80.     SceneManager.call(Scene_bbb_window)
  81.   end
  82.  
  83.   def command_ccc
  84.     SceneManager.call(Scene_ccc_window)
  85.   end
  86.  
  87.   def command_ddd
  88.     SceneManager.call(Scene_ddd_window)
  89.   end
  90.  
  91.   def command_eee
  92.     SceneManager.call(Scene_eee_window)
  93.   end
  94.  
  95.   def command_fff
  96.     SceneManager.call(Scene_fff_window)
  97.   end
  98. end
  99.  
  100. class Window_SuCommand < Window_HorzCommand
  101.   #--------------------------------------------------------------------------
  102.   # ● 初始化指令选择位置(类方法)
  103.   #--------------------------------------------------------------------------
  104.   def self.init_command_position
  105.     @@last_command_symbol = nil
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 初始化对象
  109.   #--------------------------------------------------------------------------
  110.   def initialize
  111.     super(0, 0)
  112.     select_last
  113.   end
  114.   #--------------------------------------------------------------------------
  115.   # ● 获取窗口的宽度
  116.   #--------------------------------------------------------------------------
  117.   def window_width
  118.     return 544
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 获取窗口的高度
  122.   #--------------------------------------------------------------------------
  123.   def window_height
  124.     return 48
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 获取列数
  128.   #--------------------------------------------------------------------------
  129.   def col_max
  130.     return 6
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 生成指令列表
  134.   #--------------------------------------------------------------------------
  135.   def make_command_list
  136.     add_main_commands
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 向指令列表添加主要的指令
  140.   #--------------------------------------------------------------------------
  141.   def add_main_commands
  142.     add_command("一", :aaa,)
  143.     add_command("二", :bbb,)
  144.     add_command("三", :ccc,)
  145.     add_command("四", :ddd,)
  146.     add_command("五", :eee,)
  147.     add_command("六", :fff,)
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # ● 按下确定键时的处理
  151.   #--------------------------------------------------------------------------
  152.   def process_ok
  153.     @@last_command_symbol = current_symbol
  154.     super
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● 返回最后一个选项的位置
  158.   #--------------------------------------------------------------------------
  159.   def select_last
  160.   end
  161. end
  162.  
  163. class Scene_aaa_window < Scene_MenuBase
  164.   #--------------------------------------------------------------------------
  165.   # ● 开始处理
  166.   #--------------------------------------------------------------------------
  167.   def start
  168.     super
  169.     @aaa_window = Window_aaa.new(@actor)
  170.     @aaa_window.set_handler(:cancel,   method(:return_scene))
  171.   end
  172. end
  173.  
  174. class Scene_bbb_window < Scene_MenuBase
  175.   #--------------------------------------------------------------------------
  176.   # ● 开始处理
  177.   #--------------------------------------------------------------------------
  178.   def start
  179.     super
  180.     @bbb_window = Window_bbb.new(@actor)
  181.     @bbb_window.set_handler(:cancel,   method(:return_scene))
  182.   end
  183. end
  184.  
  185. class Scene_ccc_window < Scene_MenuBase
  186.   #--------------------------------------------------------------------------
  187.   # ● 开始处理
  188.   #--------------------------------------------------------------------------
  189.   def start
  190.     super
  191.     @ccc_window = Window_ccc.new(@actor)
  192.     @ccc_window.set_handler(:cancel,   method(:return_scene))
  193.   end
  194. end
  195.  
  196. class Scene_ddd_window < Scene_MenuBase
  197.   #--------------------------------------------------------------------------
  198.   # ● 开始处理
  199.   #--------------------------------------------------------------------------
  200.   def start
  201.     super
  202.     @ddd_window = Window_ddd.new(@actor)
  203.     @ddd_window.set_handler(:cancel,   method(:return_scene))
  204.   end
  205. end
  206. class Scene_eee_window < Scene_MenuBase
  207.   #--------------------------------------------------------------------------
  208.   # ● 开始处理
  209.   #--------------------------------------------------------------------------
  210.   def start
  211.     super
  212.     @eee_window = Window_eee.new(@actor)
  213.     @eee_window.set_handler(:cancel,   method(:return_scene))
  214.   end
  215. end
  216.  
  217. class Scene_fff_window < Scene_MenuBase
  218.   #--------------------------------------------------------------------------
  219.   # ● 开始处理
  220.   #--------------------------------------------------------------------------
  221.   def start
  222.     super
  223.     @fff_window = Window_fff.new(@actor)
  224.     @fff_window.set_handler(:cancel,   method(:return_scene))
  225.   end
  226. end


主要问题在於脚本中「● 返回最后一个选项的位置」如果加入「select_symbol(@@last_command_symbol)」这句就会报错
所以删除後会变成按Esc跳出来选项框总会在「」位置而不会回到之前选项的位置……
请教↓这部份的问题其实是在哪里以及怎麽改善的说

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 返回最后一个选项的位置
  3.   #--------------------------------------------------------------------------
  4.   def select_last
  5.     select_symbol(@@last_command_symbol)
  6.   end


另外其实更想要造成不用按进去就能显示光标圈着的视窗的喔
然而因为默认脚本中似乎没有类似的东西
於是……

RUBY 代码复制
  1. class Scene_scommand < Scene_MenuBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始处理
  4.   #--------------------------------------------------------------------------
  5.   def start
  6.     super
  7.     create_scommand_window
  8.     create_se_window
  9.   end
  10.  
  11.   def create_se_window
  12.     @se_window = Window_aaa.new(@actor)
  13.   end
  14. end


勉强只能造成这样了
虽然在脚本里更改「@se_window = Window_aaa.new(@actor)」这句可以得出想要的效果
可是不知道该怎样加入判断才能让游戏中能够自动由aaa→bbb→ccc……

补充:由於是单角色所以不用考虑转换角色问题的说
然後由於打算造的小黄游所以以上转换了一些敏感字词了喔……

Lv4.逐梦者

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

开拓者

2
发表于 2018-3-4 10:28:29 | 只看该作者
Window_选项窗口中添加选项的指令
add_command("选项名称",        :选项对应的键,         判断选项是否有效)

Scene_选项窗口对应的选项场景
@command_window = Window_MenuCommand.new
@command_window.set_handler(:选项对应的键,      method(:按下该按键后会触发的方法))

如果是单角色不考虑切换,搜索def prev_actor和def next_actor然后把里面的内容改掉就可以了
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
3
 楼主| 发表于 2018-3-4 12:42:57 | 只看该作者
本帖最后由 真紅樂章 于 2018-3-4 12:50 编辑
chd114 发表于 2018-3-4 10:28
Window_选项窗口中添加选项的指令
add_command("选项名称",        :选项对应的键,         判断选项是否有 ...

添加的选项有效的说
按键进入触发的画面合符预期
问题是按键退出时的画面有点……
或许上图可以把问题描述得更清晰一些

这里

Enter进入这里

再按Enter进入这里 ↓ 都没有问题

然後Ecs退出这里 ↓ 还是没问题

再从这里

Enter进入这里

然後按Ecs退出 却变成这样 ↓ (光标圈着「」而不是进入前的「」)

所以才想问如何可以记录进入前的选项作为退出时返回的目标的说

另外其实更想做的是下面这种效果

这里

Enter就进入这里

然後光标移到旁边可以直接变这样

而不用再按Enter的说

既然上图就再追加提问一个好了


异常状态图标被上满一行之後如何可以让它们自动换行继续显示全部被上的状态出来
附上自写脚本的说 ↓
  1. #--------------------------------------------------------------------------
  2. # ● 显示多个异常状态图标
  3. #--------------------------------------------------------------------------

  4. class Window_Base < Window
  5.   #--------------------------------------------------------------------------
  6.   # ● 绘制强化/弱化状态的图标
  7.   #--------------------------------------------------------------------------
  8.   def draw_actor_icons(actor, x, y, width = 480)
  9.     icons = (actor.state_icons + actor.buff_icons)[0, width / 24]
  10.     icons.each_with_index {|n, i| draw_icon(n, x + 24 * i, y) }
  11.   end
  12. end

  13. class Window_BattleStatus < Window_Selectable
  14.   #--------------------------------------------------------------------------
  15.   # ● 绘制基本区域
  16.   #--------------------------------------------------------------------------
  17.   def draw_basic_area(rect, actor)
  18.     draw_actor_name(actor, rect.x + 0, rect.y, 100)
  19.     draw_actor_icons(actor, rect.x + 0, rect.y + line_height * 1, 384)
  20.   end
  21. end
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

4
发表于 2018-3-4 13:26:49 | 只看该作者
本帖最后由 chd114 于 2018-3-4 13:28 编辑
真紅樂章 发表于 2018-3-4 12:42
添加的选项也有效的说
按键进入後触发的画面也合符预期喔
问题是按键退出时的画面有点 ...


在退出去的方法里修改选框的位置


用@窗口变量名.index=x之类的就可以了(不过我记得不需要特意加这条)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
5
 楼主| 发表于 2018-3-4 15:28:11 | 只看该作者
chd114 发表于 2018-3-4 13:26
在退出去的方法里修改选框的位置


请问可以解说详细一点
比如「@窗口变量名.index=x」要放在脚本的哪里甚麽的
又或者「退出去的方法里修改选框的位置」的那个位置又在哪个脚本哪里那些可以提示一下吗……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

6
发表于 2018-3-4 18:48:23 | 只看该作者
真紅樂章 发表于 2018-3-4 15:28
请问可以解说得详细一点吗
比如「@窗口变量名.index=x」要放在脚本的哪里甚麽的
又或 ...

如果你要做的是一个类似物品界面的窗口,那你的场景应该参考这个,而不是每个窗口都弄一个场景,这里面,当你的光标在物品背包内活动时,选择取消,回到的就是物品分类选项上你之前选着的分类

RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Scene_Item
  4. #------------------------------------------------------------------------------
  5. #  物品画面
  6. #==============================================================================
  7.  
  8. class Scene_Item < Scene_ItemBase
  9.   #--------------------------------------------------------------------------
  10.   # ● 开始处理
  11.   #--------------------------------------------------------------------------
  12.   def start
  13.     super
  14.     create_help_window
  15.     create_category_window
  16.     create_item_window
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 生成分类窗口
  20.   #--------------------------------------------------------------------------
  21.   def create_category_window
  22.     @category_window = Window_ItemCategory.new
  23.     @category_window.viewport = @viewport
  24.     @category_window.help_window = @help_window
  25.     @category_window.y = @help_window.height
  26.     @category_window.set_handler(:ok,     method(:on_category_ok))
  27.     @category_window.set_handler(:cancel, method(:return_scene))
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 生成物品窗口
  31.   #--------------------------------------------------------------------------
  32.   def create_item_window
  33.     wy = @category_window.y + @category_window.height
  34.     wh = Graphics.height - wy
  35.     @item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
  36.     @item_window.viewport = @viewport
  37.     @item_window.help_window = @help_window
  38.     @item_window.set_handler(:ok,     method(:on_item_ok))
  39.     @item_window.set_handler(:cancel, method(:on_item_cancel))
  40.     @category_window.item_window = @item_window
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 分类“确定”
  44.   #--------------------------------------------------------------------------
  45.   def on_category_ok
  46.     @item_window.activate
  47.     @item_window.select_last
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 物品“确定”
  51.   #--------------------------------------------------------------------------
  52.   def on_item_ok
  53.     $game_party.last_item.object = item
  54.     determine_item
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 物品“取消”
  58.   #--------------------------------------------------------------------------
  59.   def on_item_cancel
  60.     @item_window.unselect
  61.     @category_window.activate
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 播放使用物品声效
  65.   #--------------------------------------------------------------------------
  66.   def play_se_for_item
  67.     Sound.play_use_item
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 使用物品
  71.   #--------------------------------------------------------------------------
  72.   def use_item
  73.     super
  74.     @item_window.redraw_current_item
  75.   end
  76. end
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
7
 楼主| 发表于 2018-3-4 21:11:20 | 只看该作者
chd114 发表于 2018-3-4 18:48
如果你要做的是一个类似物品界面的窗口,那你的场景应该参考这个,而不是每个窗口都弄一个场景,这里面, ...

前面不堪
改到這裏就無法再繼續
完全想不出來要如何判斷光標在哪裏又要顯示哪個的說

RUBY 代码复制
  1. class Window_SuCommand < Window_HorzCommand
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_reader   :scommand_window
  6.   #--------------------------------------------------------------------------
  7.   # ● 初始化对象
  8.   #--------------------------------------------------------------------------
  9.   def initialize
  10.     super(0, 0)
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 获取窗口的宽度
  14.   #--------------------------------------------------------------------------
  15.   def window_width
  16.     Graphics.width
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取列数
  20.   #--------------------------------------------------------------------------
  21.   def col_max
  22.     return 6
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 更新画面
  26.   #--------------------------------------------------------------------------
  27.   def update
  28.     super
  29.     @item_window.category = current_symbol if @item_window
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成指令列表
  33.   #--------------------------------------------------------------------------
  34.   def make_command_list
  35.     add_command("一", :aaa,)
  36.     add_command("二", :bbb,)
  37.     add_command("三", :ccc,)
  38.     add_command("四", :ddd,)
  39.     add_command("五", :eee,)
  40.     add_command("六", :fff,)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 设置物品窗口
  44.   #--------------------------------------------------------------------------
  45.   def scommand_window=(scommand_window)
  46.     @scommand_window = scommand_window
  47.     update
  48.   end
  49. end
  50.  
  51. class Scene_scommand < Scene_MenuBase
  52.   #--------------------------------------------------------------------------
  53.   # ● 开始处理
  54.   #--------------------------------------------------------------------------
  55.   def start
  56.     super
  57.     create_category_window
  58.     create_scommand_window
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 生成分类窗口
  62.   #--------------------------------------------------------------------------
  63.   def create_category_window
  64.     @category_window = Window_SuCommand.new
  65.     @category_window.viewport = @viewport
  66.     @category_window.help_window = @help_window
  67.     @category_window.y = 0
  68.     @category_window.set_handler(:cancel, method(:return_scene))
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 生成物品窗口
  72.   #--------------------------------------------------------------------------
  73.   def create_scommand_window
  74.     應該是卡死在這裏了吧?
  75.   end
  76. end

点评

你删了什么···  发表于 2018-3-4 21:14
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
8
 楼主| 发表于 2018-3-4 21:45:33 | 只看该作者
本帖最后由 真紅樂章 于 2018-3-4 21:46 编辑
chd114 发表于 2018-3-4 21:14
你删了什么···

删删改改弄成这样
● 生成物品窗口 ← 觉得这里应该是重点但是完全看不懂……

RUBY 代码复制
  1. class Window_SuCommand < Window_HorzCommand
  2.   #--------------------------------------------------------------------------
  3.   # ● 定义实例变量
  4.   #--------------------------------------------------------------------------
  5.   attr_reader   :scommand_window
  6.   #--------------------------------------------------------------------------
  7.   # ● 初始化对象
  8.   #--------------------------------------------------------------------------
  9.   def initialize
  10.     super(0, 0)
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 获取窗口的宽度
  14.   #--------------------------------------------------------------------------
  15.   def window_width
  16.     Graphics.width
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 获取列数
  20.   #--------------------------------------------------------------------------
  21.   def col_max
  22.     return 6
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 更新画面
  26.   #--------------------------------------------------------------------------
  27.   def update
  28.     super
  29.     @item_window.category = current_symbol if @item_window
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 生成指令列表
  33.   #--------------------------------------------------------------------------
  34.   def make_command_list
  35.     add_command("一", :aaa,)
  36.     add_command("二", :bbb,)
  37.     add_command("三", :ccc,)
  38.     add_command("四", :ddd,)
  39.     add_command("五", :eee,)
  40.     add_command("六", :fff,)
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 设置物品窗口
  44.   #--------------------------------------------------------------------------
  45.   def scommand_window=(scommand_window)
  46.     @scommand_window = scommand_window
  47.     update
  48.   end
  49. end
  50.  
  51. class Scene_scommand < Scene_MenuBase
  52.   #--------------------------------------------------------------------------
  53.   # ● 开始处理
  54.   #--------------------------------------------------------------------------
  55.   def start
  56.     super
  57. #    create_help_window
  58.     create_category_window
  59.     create_scommand_window
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 生成分类窗口
  63.   #--------------------------------------------------------------------------
  64.   def create_category_window
  65.     @category_window = Window_SuCommand.new
  66.     @category_window.viewport = @viewport
  67.     @category_window.help_window = @help_window
  68.     @category_window.y = 0
  69. #    @category_window.set_handler(:ok,     method(:on_category_ok))
  70.     @category_window.set_handler(:cancel, method(:return_scene))
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 生成物品窗口
  74.   #--------------------------------------------------------------------------
  75.   def create_scommand_window
  76. #    wh = Graphics.height - wy
  77. #    @scommand_window = Window_SuCommand.new(0, wy, Graphics.width, wh)
  78. #    @scommand_window.viewport = @viewport
  79. #    @scommand_window.help_window = @help_window
  80. #    @scommand_window.set_handler(:ok,     method(:on_scommand_ok))
  81. #    @scommand_window.set_handler(:cancel, method(:on_scommand_cancel))
  82. #    @category_window.scommand_window = @scommand_window
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 分类“确定”
  86.   #--------------------------------------------------------------------------
  87. #  def on_category_ok
  88. #    @scommand_window.activate
  89. #    @scommand_window.select_last
  90. #  end
  91.   #--------------------------------------------------------------------------
  92.   # ● 物品“确定”
  93.   #--------------------------------------------------------------------------
  94. #  def on_item_ok
  95. #    $game_party.last_item.object = item
  96. #    determine_item
  97. #  end
  98.   #--------------------------------------------------------------------------
  99.   # ● 物品“取消”
  100.   #--------------------------------------------------------------------------
  101. #  def on_item_cancel
  102. #    @item_window.unselect
  103. #    @category_window.activate
  104. #  end
  105.   #--------------------------------------------------------------------------
  106.   # ● 播放使用物品声效
  107.   #--------------------------------------------------------------------------
  108. #  def play_se_for_item
  109. #    Sound.play_use_item
  110. #  end
  111.   #--------------------------------------------------------------------------
  112.   # ● 使用物品
  113.   #--------------------------------------------------------------------------
  114. #  def use_item
  115. #    super
  116. #    @item_window.redraw_current_item
  117. #  end
  118. end
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
9
 楼主| 发表于 2018-3-11 19:48:38 | 只看该作者
请问大家为甚麽不再回答小紅了呢
是不是小紅做错了甚麽让大家都不想要回答了呢
如果是不会有人回答了的话可不可以也告诉小紅一声让小紅改到别的地方去提问或者放弃提问可以吗

话说在唯一回答了小紅的chd114君的提示之下……小紅还是完全不懂
於是小紅又再次在自己能力范围乱改了一下
成果如下……
  1. class Scene_scommand < Scene_MenuBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 开始处理
  4.   #--------------------------------------------------------------------------
  5.   def start
  6.     super
  7.     create_scommand_window
  8.     create_status_window
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 生成指令窗口
  12.   #--------------------------------------------------------------------------
  13.   def create_scommand_window
  14.     @scommand_window = Window_SuCommand.new
  15.     @scommand_window.set_handler(:aaa,     method(:command_aaa))
  16.     @scommand_window.set_handler(:bbb,     method(:command_bbb))
  17.     @scommand_window.set_handler(:ccc,     method(:command_ccc))
  18.     @scommand_window.set_handler(:ddd,     method(:command_ddd))
  19.     @scommand_window.set_handler(:eee,     method(:command_eee))
  20.     @scommand_window.set_handler(:fff,     method(:command_fff))
  21.     @scommand_window.set_handler(:cancel,  method(:return_scene))
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 生成状态窗口
  25.   #--------------------------------------------------------------------------
  26.   def create_status_window
  27.     r = 1
  28.     r == 6 ? r = 1 : r += 1 if Input.repeat?(:RIGHT)
  29.     r == 1 ? r = 6 : r -= 1 if Input.repeat?(:LEFT)
  30.     case r
  31.     when 1
  32.       @status_window = Window_aaa.new(@actor)
  33.     when 2
  34.       @status_window = Window_bbb.new(@actor)
  35.     when 3
  36.       @status_window = Window_ccc.new(@actor)
  37.     when 4
  38.       @status_window = Window_ddd.new(@actor)
  39.     when 5
  40.       @status_window = Window_eee.new(@actor)
  41.     when 6
  42.       @status_window = Window_fff.new(@actor)
  43.     end
  44.   end

  45.   def command_aaa
  46.     SceneManager.call(Scene_aaa_window)
  47.   end
  48.   def command_bbb
  49.     SceneManager.call(Scene_bbb_window)
  50.   end
  51.   def command_ccc
  52.     SceneManager.call(Scene_ccc_window)
  53.   end
  54.   def command_ddd
  55.     SceneManager.call(Scene_ddd_window)
  56.   end
  57.   def command_eee
  58.     SceneManager.call(Scene_eee_window)
  59.   end
  60.   def command_fff
  61.     SceneManager.call(Scene_fff_window)
  62.   end
  63. end
复制代码


虽然小紅知道这东西已经乱成一团了不过在r = 1那行手动在脚本里改成r = 其他数字有能达成小紅想要的效果……
  1.     r = 2
复制代码
  1.     r = 3
复制代码
  1.     r = 4
复制代码


所以小紅想要问一下为甚麽下面利用按键来进行逻辑判断的两行不起效用
  1.     r == 6 ? r = 1 : r += 1 if Input.repeat?(:RIGHT)
  2.     r == 1 ? r = 6 : r -= 1 if Input.repeat?(:LEFT)
复制代码


小紅知道在大家看来这种问题应该是很愚蠢
但是如果是因为太愚蠢而不想回答的话可否也如实告知小紅就因为问题太蠢所以没有人会回答

点评

也欢迎加入推荐的QQ群,按“交流讨论”分类就能看到帖子了  发表于 2018-3-11 19:59
建议重开新的帖子,把目前已经更改到的部分和遇到问题的部分贴出来  发表于 2018-3-11 19:56
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 10:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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