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

Project1

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

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2106
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

跳转到指定楼层
1
发表于 2019-4-9 15:28:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

這個腳本是一種讀取條,當讀取條跑完,才會啟動事件的內容
不過這個腳本出了BUG,觸發方式如下


首先建立一個新事件,設定一個註釋內容為 <INTERACTIVE>
接著輸入這個事件的內容
例如:獲得道具1個,獲得金錢10元

然後執行,會變成獲得道具12個,金錢120元

神奇的是,如果在其中加入了一個對話,結果會變成
對話跑出2次
獲得道具2個,金錢20元


腳本下載
Scripts.rar (151.73 KB, 下载次数: 105)

感謝閱讀
[神性领域扩张:扩张神性领域]
说了等于没说.

Lv6.析梦学徒

老鹰

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

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

2
发表于 2019-4-9 16:17:06 | 只看该作者
试了一下,默认的宝箱事件加上第一行添加注释,并没有问题……

点评

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

使用道具 举报

Lv5.捕梦者 (暗夜天使)

梦石
1
星屑
20296
在线时间
4875 小时
注册时间
2014-12-22
帖子
1525

开拓者

3
发表于 2019-4-9 22:16:48 | 只看该作者
我也测试了一下,如果在获得物品之后打开独立开关a并切到空白事件页(就是默认宝箱的操作),就不会有问题
如果没有切换到新的事件页,则会像lz描述的那样。
加入对话2次,不加入12次,我猜测和帧数有关系(纯猜……)
它说明里说主要是为了配合ABS系统敌人攻击时候怎样怎样(?)并没有用过ABS,猜测可能是战斗方面的某些特殊需求,导致了这个情况?不知道呀。
看看有没有大佬解答了

点评

這是一個很好的解決方案! 如果BUG無法解決,我會試著用這招的 (雖然會導致其他問題就是  发表于 2019-4-9 23:25
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

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

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

4
发表于 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 感恩的心~感謝有你

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2106
在线时间
950 小时
注册时间
2015-7-16
帖子
767

开拓者

5
 楼主| 发表于 2019-4-10 20:33:51 | 只看该作者
百里_飞柳 发表于 2019-4-10 17:39
我再次看了下,发现是当使用bar时出现的bug,原因是使用bar时它忘了把flag置为false

因为它的clear只承担 ...


做了測試,發現問題好像還在
flag置为false,可是物品依舊變成12倍數量
[神性领域扩张:扩张神性领域]
说了等于没说.
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

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

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

6
发表于 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-4-19 18:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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