他也玩传奇 首页 传奇学院 引擎功能 gom引擎 查看内容

在传奇游戏里为什么会卡,如何解决?

2023-7-10 21:24| 发布者: 积木GM论坛| 查看: 1736| 评论: 0

摘要: 如上图所示,处理间隔如果没有变红的就不要看这个了,变红就会卡,这种问题都是脚本导致,脚本太复杂,或者脚本有读写文件的,文件太大,或者读写太频繁有的版本写的有问题,大部分是爆物品触发或捡取触发里,加入了 ...

在传奇游戏里为什么会卡


如上图所示,处理间隔如果没有变红的就不要看这个了,变红就会卡,这种问题都是脚本导致,脚本太复杂,或者脚本有读写文件的,文件太大,或者读写太频繁

有的版本写的有问题,大部分是爆物品触发或捡取触发里,加入了脚本记录装备的功能导致的,每爆或捡取一个装备,脚本就记录下来,记录的文本很快就变的很大,频繁读写硬盘就会卡

[@InPutString22]
#IF
CHECKTEXTLIST ..\QuestDiary\元宝充值\50000.txt <$STR(S22)>
;比如这个命令,使用了这个命令,引擎就会从硬盘读取“..\QuestDiary\元宝充值\50000.txt”这个文件,如果文件变得越来越大,读取就会变慢,就会卡
#ACT
DELTEXTLIST ..\QuestDiary\元宝充值\50000.txt <$STR(S22)>
;比如这个命令,使用了这个命令,引擎会读取“..\QuestDiary\元宝充值\50000.txt”这个文件,然后还会写入硬盘,比上面那个命令(CHECKTEXTLIST)操作更慢,因为这个命令先读取,在写入,多一个步骤写入,如果文件变得越来越大,就会卡

;不仅仅是这两个命令,所有读写文件的脚本命令,都会这样,比如CheckContainsTextList、AddTextList、GetRandomText等等
;有的文件看起来不大,但是有时候还会卡,那可能读写太频繁了,不是NPC点击一下才读写的,比如版本里有自动捡取功能
;然后有捡取触发脚本,一瞬间几毫秒内捡取几十个物品,就触发几十次脚本,脚本里有读写文件的脚本命令,就会读写几十次文件,每读写一次文件,都是需要时间的,就会卡在读写文件那里,等待脚本全部触发完成,就会卡
;这样的情况,就算文件不大,也可能会造成卡

;还有就是定时器脚本,如果太复杂,或者有文件读写都有可能

;有些版本为了实现某些功能,会使用goto循环去触发脚本,如果条件达不到,
;会一直goto循环,这样的脚本,引擎会卡死在这个脚本,甚至卡死引擎

;解决办法就是脚本简单点,读写文件的脚本频率小一点
;可以使用LoadFileToMemory和LoadFileToMemoryEx这两个脚本命令,可以搜索说明书。
;这两个命令也不是让你无限制的可以读写文件,还是要尽量减少读写频率,和减小文件大小。

相关阅读

最新评论