TZK 兼容1.99任务
闪点行动吧
全部回复
仅看楼主
吧务
level 13
叶调雨吟 楼主
为进一步拓展业务,设置了一个在TZK任务中移除大量外部插件的调用,并解除2.01命令依赖的版本。新的任务可以在1.99版本上运行,只需使用MFCTI1.16版本的1MB插件,以及另一个包含尽可能少的TZK核心要素的5MB插件。
2020年08月08日 07点08分 1
吧务
level 13
叶调雨吟 楼主
顺带一提,在这次编辑中,对原有任务做了一定的调整,这些需求主要是在脱钩2.01时发现的。
2.01对1.99事实上做了相当程度的优化。对笔者来说最大的价值在于新的脚本命令支持,1.96 OFP和1.99 ACWA的脚本命令颇为有限,而2.01则在此基础上做了相当程度的拓展,1.96和1.99无法完成的事情,2.01可以轻松做到。例如字符串的尺寸获取及截取(在OFP里只能对字符串执行拼接和比较,以及利用format来生成,有了2.01的这两个新增的基本命令后,包括检索在内的事情也可以自行设计函数实现)、3维向量的设置,诸如此类。在设置兼容1.99任务时,一些依赖于2.01命令的设计必须要被放弃,但也存在一些能够在1.99里被模拟的2.01命令。
2020年08月08日 07点08分 2
吧务
level 13
叶调雨吟 楼主
例如,2.01提供了GetVehicle(Sub)Param(Array)系列命令,该脚本命令返回某个类型在CONFIG中的参数的值。利用这一命令可从CONFIG中获取单位的信息,例如单位是否具有某种类型的席位(hasDriver/hasGunner)、后座容纳量等。在1.99里没有这一脚本命令,但仍然可以在SQF函数里camCreate一个local的临时载具单位,从这个临时单位获取它的部分属性。
2020年08月08日 07点08分 3
吧务
level 13
叶调雨吟 楼主
对于与乘员相关的属性,可camCreate一些logic物体并使用moveIn...命令填入载具,接着通过crew命令所返回的数组的规模,来获取hasDriver、transportSoldier等属性。weapons、magazines数组显然直接调用weapons和magazines命令即可。对于weaponSlots属性,也可以将游戏自带(不依赖第三方插件)的弹夹(M16等)填充到单位上,最后再用hasWeapon、count获取信息,进而计算得出
正确的
结果。
2020年08月08日 07点08分 4
吧务
level 13
叶调雨吟 楼主
顺带一提,2.01版本因为允许in-game的trigger创造与编辑,而这个命令产生的trigger物体虽然是global的,但其触发器效果却是local的,因而可以用它创造0-0无线电频道,作为action list的替代和补充。但1.99并不支持这种做法,需要在mission.sqm里预先摆放sensor。但这些sensor是server-local的,且作为无线电频道时的触发效果是全局的,当别的玩家呼叫某个频道(例如0-0-2)时,所有玩家的0-0-2都会被激活。因此只能设置一个按钮用于让玩家主动控制是否启用无线电功能,这使得无线电系统并不像2.01里那么方便,而且如果一时忘了关闭它,有可能会因为其他玩家启用无线电的行为而导致正常游戏遭到干扰。
另外,setRadioMsg的效果是local的,这允许任务中仍然保留无线电频道名称根据所处载具类型的变化刷新的功能,各client的本地脚本及名称刷新并不会对其他玩家造成干扰。不过这个效果并不是很有必要就是了,名称冗余一些也没什么的,radio的global属性才是让人头疼的事情。
2020年08月08日 07点08分 5
吧务
level 13
叶调雨吟 楼主
TZK_Objects.pbo: https://ufile.io/0re21zbp
2020年08月22日 11点08分 6
全部所需插件:silion.ru/1/1.rar
2020年08月30日 05点08分
1