随机自动生成AI(刷兵)脚本插件 [重要更新:V3版]

来源:互联网 发布:linux 编译器 编辑:程序博客网 时间:2024/06/07 21:10
随机自动生成AI(刷兵)脚本插件 [重要更新:V3版]  

随机自动生成AI(刷兵)脚本插件 [重要更新:V3版]

更新(V3.080522版)
TAN_AI.rar (5.59 KB)
新增军官:排长(TAN Platoon);连长(TAN Company);营长(TAN battalion);团长(TAN Regiment);旅长(TAN Brigade);师长(TAN division)
东西方阵营各有对应军官。

功能:将该军官放到地图上(可以安排路线),该军官将随机产生并指挥相应其官阶的兵力(三三制)。比如放置一个连长,他能随机产生100人跟随他前进。但注意并不是一次性同时产生,而是随阵亡情况而随时补充;事实上一个连通常也不是一起冲锋的——如果你一定要一个连的兵力同时出现,可以放置三个排长——噢,三个排长也只能同时产生相当于一个排的兵力,好吧,看来你只能放10个班在地图上——好吧,那你不需要我的插件。


dxdshot1211387374


更新(V2.080521版)
TAN_AI.rar (3.15 KB)
(经a2677998测试,修正人数控制问题,另增加死亡统计的派别显示)

说明:新增两个士兵插件(Tan SoldierWRandom; Tan SoldierERandom),分别是东方和西方阵营的士兵。只要将该士兵放到地图上,就会以该士兵为中心随机刷兵,刷兵范围为300米,刷兵数量总计为1000人。

使用该插件,可以避免V1版繁琐的设置,但是相应的缺点就是不能自由设置刷兵的条件。适合编辑新手和懒人使用。

TAN_AI.rar (1.29 KB)


我前一段时间写的脚本,可以在自设范围内无限或有限刷兵:
每个兵的位置随机,但都隶属于班组,各自向班组的目的地进发,行进时的警戒模式可设定;
每个兵的武器随机,可能是步枪兵、掷弹兵、医疗兵、特种兵、狙击手。
当单兵位置超出指定范围时将被删除,同时在指定范围内重新增加一名新的替补,位置和武器同样随机;
班组成员每发生一次删除和替补,班组的目的地将随机改变,这使得班组时刻处于不特定的巡逻状态,不会站在一个地方发呆;
如果把玩家设为指定范围的中心,那么可以保证玩家时刻置身于敌占区中(敌占区的区域大小可以设定)。但只要不开枪暴露位置,敌人并不一定知道玩家的位置,既可以玩潜行,也可以玩突围;由于自动删除超出范围的敌人,所以可以最大程度节省电脑资源,可以基本不卡机器地实现整张地图都是敌人的感觉;
通过设定班组的人数和与玩家间隔距离,可以调整玩家周围敌人的密度;通过设定总计人数,可以控制该区敌军人数。如果你希望这个区域有一个连,那么就设为百来人;如果希望有一个师,就设为万人——此时如果你够厉害杀掉一万人,脚本将停止刷兵,那么整个区域就算被你扫荡完毕了;
你可以在一个任务中多次调用该脚本,使得敌人有数个班组,或者分别制造出敌占区和友占区——顾名思义,在友占区也会不停刷兵,只不过刷出来的都是友军。如果敌占区和友占区重叠,那么重叠部分就会不停发生交火。

安装:下载后解压,将TAN_AI.PBO放到res或任意模组的Addons文件夹;如果需要pbo文件里的脚本文件用于自制任务或战役,可以用xpbo解压后提取random.sqs文件,放到自制任务文件夹下。
使用:
1、在编辑器里新建一个触发器,命名为任意名(比如“RandomZone”),该触发器的出发范围和条件就是本脚本调用的范围和条件。
R1
2、在地图上任意位置新建一个士兵(东方或西方阵营),并在初始栏写上:RandomGroup=Group this; deleteVehicle this
(注:这是设定刷兵所隶属的班组的名称,"RandomGroup"只是一个范例,你可以任意使用其他名字来命名该班组)

R3




3、在编辑器的On Activation 栏调用本脚本。格式如下:
[RandomCentre,RandomZone,NearestDistance,FarestDistance,"Side",RandomGroup,RandomNumber,"Behaviour","Speed",EndKill] exec "/TAN_AI/Random.sqs"
R2

例如:
[player,RandomZone,200,400,"east",RandomGroup,12,"safe","limited",100] exec "/TAN_AI/Random.sqs"

该设定的效果是:系统将在玩家附近方圆400米的范围内随机刷兵,刷出的兵离玩家的距离最近不低于200米,一次同时刷12人,该12人分散于方圆400米范围,各自以safe模式和limited速度随机移动;玩家不停杀死这些士兵的过程,系统不断增补士兵,持续保持同时12人存在,直到刷出的士兵因敌方或友方火力或其他意外事件死亡的人数达到100人为止。

解释:
RandomCentre是随机刷兵范围的中心点,可以是固定的,也可以是移动的(比如玩家)
RandomZone是触发本脚本的触发器名称;进入触发器则触发本脚本,离开触发器则退出本脚本;
NearestDistance是所刷出的兵距离中心点的最近距离;
FarestDistance是所刷出的兵距离中心点的最远距离;(正确拼写是farthestDistance,脚本里的拼写错误我就懒得改了)
"Side"是所要刷的兵是哪个阵营的;本版本是初始版,只提供"east"和"west"两个阵营,注意不要漏打双引号。(但该设定只关乎士兵的装备和服装,与其阵营敌对属性无关;阵营敌对属性由班长属性决定)
RandomGroup是刷出的兵所隶属的班组,设定的是所刷士兵的阵营敌对属性。(见步骤2中预先在地图上任意位置建立的士兵(班长);假设玩家是西方阵营,那么如果班长是西方阵营,则刷出的兵(无论是west Side还是east Side)对玩家是友好的;反之班长是东方阵营,则刷出的兵(无论是west Side还是east Side)对玩家是敌对的;
RandomNumber是在一个相对稳定的状态下,随机刷出士兵的人数多寡。有效的应该是0~12任意一个数字。如果设定为12,就是说系统会保证最多能刷出12名士兵同时存在于刷兵区域内。如果想要超过这个数字,你可以按照同样的步骤建立多个触发器和多个隐形班长(XXX=Group this; deleteVehicle this),再分别调用本脚本。两个触发器最多可以同时刷出24人;三个触发器最多可以同时刷出36人;以下类推。

"Behaviour",设定刷出的兵的警戒状态,可以是"safe","aware","careless","combat","stealth"等,注意不要漏了双引号;
"speed",设定刷出的兵的行走速度,可以是"limited","normal","full"等,注意不要漏了双引号;
"Endkill",设定累计可以刷出的士兵总数,上限不详。如果数字够大,那么就相当于是无限刷兵;假设如果设为100,那么当所刷出的士兵累计死亡达100人时,系统将停止刷兵。
原创粉丝点击