查看: 4165|回复: 13

[已经解决] 如何在更换装备后马上强制退出菜单

[复制链接]
梦石
0
星屑
50
在线时间
36 小时
注册时间
2016-8-18
回帖
23
发表于 2016-8-24 00:59:41 | 显示全部楼层 |阅读模式

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

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

×
比如装备了A装备  就会强制退出菜单 而不会在菜单页面滞留! 这么问的主要原因是  用事件做穿戴装备效果  即使装备了A装备 事件依旧会在玩家完全退出菜单后才发动 !

葱

梦石
26
星屑
13753
在线时间
2230 小时
注册时间
2012-12-12
回帖
567

极短28获奖

发表于 2016-8-24 09:31:47 | 显示全部楼层
返回地图 SceneManager.goto(Scene_Map)  插在最后试试?

▶ 葱兔の游戏列表 (´・ω・`)
回复

使用道具 举报

梦石
0
星屑
3557
在线时间
2337 小时
注册时间
2015-8-25
回帖
928

开拓者

发表于 2016-8-24 10:19:24 | 显示全部楼层
本帖最后由 七重 于 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]就是指武器

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答(按照1楼的问题).

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
36 小时
注册时间
2016-8-18
回帖
23
 楼主| 发表于 2016-8-24 11:39:34 | 显示全部楼层
七重 发表于 2016-8-24 10:19
自己在脚本里面设a装备的编号。
那么被选中的装备穿上时,就会关闭菜单

谢谢大神上面这段代码确实解决了我提问的问题。 不过我似乎想的太简单了。  我期望的效果是 当1号角色穿上X号装备时 返回地图,而如果2号角色脱下X号装备时返回地图。  这要如何实现吶!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
36 小时
注册时间
2016-8-18
回帖
23
 楼主| 发表于 2016-8-24 11:43:43 | 显示全部楼层
congwsbn 发表于 2016-8-24 09:31
返回地图 SceneManager.goto(Scene_Map)  插在最后试试?

这方法也可以解决穿装备的时候返回地图的问题。但是在脱装备的事件中加入这个脚本却无效。
回复

使用道具 举报

梦石
0
星屑
3557
在线时间
2337 小时
注册时间
2015-8-25
回帖
928

开拓者

发表于 2016-8-24 14:00:05 | 显示全部楼层
本帖最后由 七重 于 2016-8-24 14:33 编辑
1458888846 发表于 2016-8-24 11:39
谢谢大神上面这段代码确实解决了我提问的问题。 不过我似乎想的太简单了。  我期望的效果是 当1号角色穿 ...


[pre lang="ruby"]class Game_Actor < Game_Battler
  @@ero_1 = false
  @@ero_2 = false
  
  alias ero_2 change_equip
  def change_equip(slot_id, item)
    ero_2(slot_id, item)
    return if item.nil?
    @target_2 = {1=>0,2=>0}
    @target_2[item.is_a?(RPG::Weapon) ? 1 : 2] = item.id
    if @target_2[2] == 3  #特殊装备的编号
      @@ero_1 = true
    end
    if @@ero_2 == true
      SceneManager.goto(Scene_Map)
      @@ero_2 = false
      @@ero_1 = false
    end
  end
  
  alias ero_equip_change_ok? equip_change_ok?
  def equip_change_ok?(slot_id)
    ero_equip_change_ok?(slot_id)
    if @@ero_1 == true
      @@ero_2 = true
    end
    return false if equip_type_fixed?(equip_slots[slot_id])
    return false if equip_type_sealed?(equip_slots[slot_id])
    return true
  end
end[/pre]


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

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

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

  关于unselect我也还没弄明白。

回复

使用道具 举报

梦石
0
星屑
50
在线时间
36 小时
注册时间
2016-8-18
回帖
23
 楼主| 发表于 2016-8-24 18:55:06 | 显示全部楼层
七重 发表于 2016-8-24 14:00
class Game_Actor < Game_Battler
  @@ero_1 = false
  @@ero_2 = false

这段代码用起来后 连原来穿装备返回地图的效果也没有了.  
回复

使用道具 举报

梦石
0
星屑
3557
在线时间
2337 小时
注册时间
2015-8-25
回帖
928

开拓者

发表于 2016-8-24 20:08:24 | 显示全部楼层
1458888846 发表于 2016-8-24 18:55
这段代码用起来后 连原来穿装备返回地图的效果也没有了.

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

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


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

使用道具 举报

梦石
0
星屑
50
在线时间
36 小时
注册时间
2016-8-18
回帖
23
 楼主| 发表于 2016-8-24 21:56:33 | 显示全部楼层
七重 发表于 2016-8-24 20:08
唔。。这段代码是连着上面第一段一起用的啦。。

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

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

请大神看看这种情况,会不会比想象中容易解决一点。
可以不用调用解除装备的语句, 而是关于当B角色未装备X装备时的另一结果  这样会不会容易一点!
回复

使用道具 举报

梦石
1
星屑
22083
在线时间
4885 小时
注册时间
2014-12-22
回帖
1509

开拓者

发表于 2016-8-24 22:24:30 | 显示全部楼层
lz抱歉我没办法帮忙解决,但是我觉得你这个情况,换装备(可能会多换几种对比下效果),关闭菜单(好的我决定就这个装备了),然后才发动效果——这不是挺正常的吗?
否则如果我手抖换错了,都不给我反悔的机会就立刻给关了,我还得再开菜单换回来,岂不是反而麻烦?
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部