首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无名杀1.10.6版本后,扩展兼容说明

无名杀1.10.6版本后,扩展兼容说明

变量需要先用let或var声明,然后才可使用。 

报错范例:《千幻聆音》4.15.3:

这里使用了rArrow1变量,但在此作用域内并没有使用var或let对变量进行声明。在无名杀旧版本内核中容忍了此类错误,而新版本中此类错误将直接导致异常抛出。

修改方法:在变量前添加let进行声明。

用eval执行的代码,作用域不可共享到代码外。 

报错范例:《特效测试》

这里使用eval将一串字符串转换为代码并执行。Eval执行的代码中声明了变量_0x666并使用。在旧版无名杀中,eval内和外共享作用域,而新版中,eval内执行的代码作用域是独立的。

修改方案(参考):  

使用window将变量的作用域提升到全局。之后使用时,用window._0x666引用变量。在外部作用域结束时,清除这个全局变量。

(注:《特效测试》中类似的问题有多出,可注意修改)

对于数组,用includes替换contains  

使用原本数组的contains方法不会引起崩溃,但会在后台进行提示。可逐渐将contains方法替换为includes。(注意,classList并不是数组,不要一块替换了)

如果你和我一样懒惰,可以在content内:

扩展的ES Module新形式

参考文献:https://www.jianshu.com/p/463cca670e8c

参考扩展:《千幻聆音》4.16.1.1

使用ESModle形式的扩展,可以:

1、更方便的将扩展代码分割成多个文件。

2、更好的代码提示功能。

3、更便捷引入ESModule标准的JavaScript第三方库。

注:原本的扩展格式仍然沿用,不用修改。新开扩展建议使用ESModule方式创建。

使用game.runAfterExtensionLoaded函数保证代码在某扩展加载后执行

此方法可保证调用到其它扩展中的函数。

使用async简化技能写法   

【神愤】原始写法:  

Async写法:    

告别step后,我们将可以使用更简洁的循环来控制一些重复的流程。比如【神愤】中,需要对每个角色都造成伤害然后令其弃牌。原写法中需要复制数组并重复step,而async/await写法中只需要直观地使用循环语句即可。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OKi8rMoS2wdDBqAS9NWvDzsw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券