Project1

标题: 如何在更换装备后马上强制退出菜单 [打印本页]

作者: 1458888846    时间: 2016-8-24 00:59
标题: 如何在更换装备后马上强制退出菜单
比如装备了A装备  就会强制退出菜单 而不会在菜单页面滞留! 这么问的主要原因是  用事件做穿戴装备效果  即使装备了A装备 事件依旧会在玩家完全退出菜单后才发动 !
作者: congwsbn    时间: 2016-8-24 09:31
返回地图 SceneManager.goto(Scene_Map)  插在最后试试?
作者: 七重    时间: 2016-8-24 10:19
本帖最后由 七重 于 2016-8-24 10:21 编辑
  1. class Game_Actor < Game_Battler
  2.   alias ero change_equip
  3.   def change_equip(slot_id, item)
  4.     ero(slot_id, item)
  5.     return if item.nil?
  6.     @target = {1=>0,2=>0}
  7.     @target[item.is_a?(RPG::Weapon) ? 1 : 2] = item.id
  8.     if @target[2] == 2  #a装备的编号
  9.       SceneManager.goto(Scene_Map)
  10.     end
  11.   end
  12. end
复制代码


自己在脚本里面设a装备的编号。
那么被选中的装备穿上时,就会关闭菜单

顺带一提
@target[2]是指铠甲
[1]就是指武器
作者: 1458888846    时间: 2016-8-24 11:39
七重 发表于 2016-8-24 10:19
自己在脚本里面设a装备的编号。
那么被选中的装备穿上时,就会关闭菜单

谢谢大神上面这段代码确实解决了我提问的问题。 不过我似乎想的太简单了。  我期望的效果是 当1号角色穿上X号装备时 返回地图,而如果2号角色脱下X号装备时返回地图。  这要如何实现吶!
作者: 1458888846    时间: 2016-8-24 11:43
congwsbn 发表于 2016-8-24 09:31
返回地图 SceneManager.goto(Scene_Map)  插在最后试试?

这方法也可以解决穿装备的时候返回地图的问题。但是在脱装备的事件中加入这个脚本却无效。
作者: 七重    时间: 2016-8-24 14:00
本帖最后由 七重 于 2016-8-24 14:33 编辑
1458888846 发表于 2016-8-24 11:39
谢谢大神上面这段代码确实解决了我提问的问题。 不过我似乎想的太简单了。  我期望的效果是 当1号角色穿 ...


RUBY 代码复制
  1. class Game_Actor < Game_Battler
  2.   @@ero_1 = false
  3.   @@ero_2 = false
  4.  
  5.   alias ero_2 change_equip
  6.   def change_equip(slot_id, item)
  7.     ero_2(slot_id, item)
  8.     return if item.nil?
  9.     @target_2 = {1=>0,2=>0}
  10.     @target_2[item.is_a?(RPG::Weapon) ? 1 : 2] = item.id
  11.     if @target_2[2] == 3  #特殊装备的编号
  12.       @@ero_1 = true
  13.     end
  14.     if @@ero_2 == true
  15.       SceneManager.goto(Scene_Map)
  16.       @@ero_2 = false
  17.       @@ero_1 = false
  18.     end
  19.   end
  20.  
  21.   alias ero_equip_change_ok? equip_change_ok?
  22.   def equip_change_ok?(slot_id)
  23.     ero_equip_change_ok?(slot_id)
  24.     if @@ero_1 == true
  25.       @@ero_2 = true
  26.     end
  27.     return false if equip_type_fixed?(equip_slots[slot_id])
  28.     return false if equip_type_sealed?(equip_slots[slot_id])
  29.     return true
  30.   end
  31. end



特殊装备设置你需要的装备编号

没有写关于 最强装备 和 全部脱掉 的控制。

==
唔 不行,这个写得有问题。。
  这样设置的话,只能在换掉的时候有效。。。

  关于unselect我也还没弄明白。


作者: 1458888846    时间: 2016-8-24 18:55
七重 发表于 2016-8-24 14:00
class Game_Actor < Game_Battler
  @@ero_1 = false
  @@ero_2 = false

这段代码用起来后 连原来穿装备返回地图的效果也没有了.  
作者: 七重    时间: 2016-8-24 20:08
1458888846 发表于 2016-8-24 18:55
这段代码用起来后 连原来穿装备返回地图的效果也没有了.

唔。。这段代码是连着上面第一段一起用的啦。。

不过因为解除装备那里我不知道怎么改,所以无能为力了。


光标选空解除装备的时候,调用的好像是unselect,不过我找不到具体是什么方法控制的。

作者: 1458888846    时间: 2016-8-24 21:56
七重 发表于 2016-8-24 20:08
唔。。这段代码是连着上面第一段一起用的啦。。

不过因为解除装备那里我不知道怎么改,所以无能为力了 ...

大神有QQ吗?   我这么说可能简洁点    我在游戏中按事件来写的的话
按事件分支的说话
当A角色已经装备X装备时 得到物品M 否则 无操作!
当B角色已经装备X装备时 无操作 否则 得到物品M!这一段是有效的但是要手动退出菜单后才生效。
而当换一种结果
当A角色已经装备X装备时 返回地图 否则 无操作!这半段有效!
当B角色已经装备X装备时 无操作 否则 返回地图!这半段却无效了!

请大神看看这种情况,会不会比想象中容易解决一点。
可以不用调用解除装备的语句, 而是关于当B角色未装备X装备时的另一结果  这样会不会容易一点!
作者: shencao    时间: 2016-8-24 22:24
lz抱歉我没办法帮忙解决,但是我觉得你这个情况,换装备(可能会多换几种对比下效果),关闭菜单(好的我决定就这个装备了),然后才发动效果——这不是挺正常的吗?
否则如果我手抖换错了,都不给我反悔的机会就立刻给关了,我还得再开菜单换回来,岂不是反而麻烦?
作者: 1458888846    时间: 2016-8-24 22:29
七重 发表于 2016-8-24 20:08
唔。。这段代码是连着上面第一段一起用的啦。。

不过因为解除装备那里我不知道怎么改,所以无能为力了 ...

啊关于卸装备的问题我想到个更明确的分支说法!刚才试了一下可行,就差编一段代码给返回地图了。      
连续俩个分支  
if B角色在队伍时
if持有X物品(不包含已装备)#内分支
      则返回地图
      否则无响应。

作者: 1458888846    时间: 2016-8-24 22:35
七重 发表于 2016-8-24 20:08
唔。。这段代码是连着上面第一段一起用的啦。。

不过因为解除装备那里我不知道怎么改,所以无能为力了 ...

角色就调用ID  ID2角色存在时 持有A物品(不包含装备)就返回地图。  这样我可以自己加分支 ID3角色存在时 持有B物品(不包含装备)就返回地图。
作者: 1458888846    时间: 2016-8-24 22:46
shencao 发表于 2016-8-24 22:24
lz抱歉我没办法帮忙解决,但是我觉得你这个情况,换装备(可能会多换几种对比下效果),关闭菜单(好的我决 ...

针对特殊事件时使用的!




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