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

Project1

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

[已经解决] 【腳本BUG】 物品不正常重複獲取

[复制链接]

Lv6.析梦学徒

老鹰

梦石
40
星屑
33422
在线时间
6553 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

1
发表于 2019-4-9 16:17:06 | 显示全部楼层
试了一下,默认的宝箱事件加上第一行添加注释,并没有问题……

点评

等開鎖中的字樣跑完,物品才會獲取成功,在那之前移動會取消  发表于 2019-4-9 20:59
物品數量沒有變成12倍嗎? (不過我是開新工程測試的...這怎麼辦?  发表于 2019-4-9 20:54
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33422
在线时间
6553 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

2
发表于 2019-4-10 17:39:41 | 显示全部楼层
我再次看了下,发现是当使用bar时出现的bug,原因是使用bar时它忘了把flag置为false
  1.   def clear_interacting_bar
  2.     # // Dispose interactive bar.
  3.     dipose_interacting_bar ; setup_interacting_bar
  4.     @interacting = false # 修复事件被多次触发bug
  5.   end
复制代码

因为它的clear只承担了绘制后的清除,并不含有初始化,
所以在clear绘制时顺便将flag置为false就好

评分

参与人数 1+1 收起 理由
duzine + 1 感恩的心~感謝有你

查看全部评分

回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33422
在线时间
6553 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2019-4-10 21:41:28 | 显示全部楼层
duzine 发表于 2019-4-10 20:33
做了測試,發現問題好像還在
flag置为false,可是物品依舊變成12倍數量

……好吧我之前看错了
实际上是因为它写的这个bar移出效果有个滞后动作,所以会导致事件被重复执行,在update里加个判定就好

之前的那个修改可以删了

由于它clear之后@int_min这个变量变成了0,而同时是依靠它自增来作为当前进度,
于是可以根据它是否为0知晓是否可以触发事件了
同时触发后,之前说的开关也被自动重置,不会再二次触发
  1.   alias xail_int_system_gm_evt_update update
  2.   def update(*args, &block)
  3.     # // Method to update an event.
  4.     xail_int_system_gm_evt_update(*args, &block)
  5.     if comment?(XAIL::INTERACTING_SYS::CMT) and @interacting
  6.       unless @int_min >= @int_max
  7.         return if interacting_interrupted?
  8.         create_interacting_bar
  9.         animate_interacting_bar(:in) if XAIL::INTERACTING_SYS::ANIMATE
  10.         # // Show ballon.
  11.         b_id = XAIL::INTERACTING_SYS::BALLOON_ID
  12.         $game_player.balloon_id = b_id unless b_id.nil?
  13.         @int_min += XAIL::INTERACTING_SYS::INITIAL_TIMER
  14.       else
  15.         if XAIL::INTERACTING_SYS::ANIMATE
  16.           animate_interacting_bar(:out)
  17.         else
  18.           @interacting = false
  19.           clear_interacting_bar
  20.         end
  21.         return if @int_min != 0 # 修复事件多次重复触发
  22.         return if empty? or @starting
  23.         @starting = true
  24.         lock if trigger_in?([0,1,2])
  25.       end
  26.     end
  27.   end
复制代码

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 被老鹰聚聚醋疯

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 17:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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