传奇里假人相互分阵营是指在单机或服务端中,通过给假人赋予不同的阵营标识(如红方、蓝方、行会归属、自定义变量组),使其在行为逻辑上区分敌我,进而实现相互攻击、攻城模拟、阵营对抗或沙巴克演练的功能。这并非引擎原生默认开启,而是通过脚本变量、行会分配、AI配置及触发脚本来控制的。
阵营划分的核心实现方式
假人分阵营主要依赖以下四种底层逻辑进行标记与隔离:
• 行会归属划分:最直接的阵营方式。在游戏内建立两个对立行会(如“假人进攻方”、“假人防守方”),通过GM命令或脚本在假人登录时将其加入对应行会(ADDGUILD 行会名)。引擎默认行会间开启攻杀模式会相互攻击,假人AI配置里设攻击模式为行会模式即可互砍。
- 全局变量或私人变量标记:在Robot脚本或假人登录段([@Login])给假人赋值变量,如 MOV G100 1 代表红营,MOV G101 1 代表蓝营,或在私人标识里 SET [阵营红] 1。后续在QFunction-0.txt或假人AI脚本里用 CHECK [阵营红] 1 判断目标是否属于己方,决定是否攻击。
- 自定义分组参数(DummyConfig):部分引擎(如GEE、Hero增强版)在 Mir200\Envir\DummyConfig\假人.txt 的 [Info] 段支持 GroupID=数值 或 Camp=0/1 参数。同GroupID为假人友军互不攻击,不同GroupID视为敌人,AI会自动寻敌攻击。
- 名字前缀或后缀识别:脚本里通过 CHECKNAMELIST 检测假人名字是否在某阵营名单(如RedTeam.txt)里,以此分配攻击逻辑。此法常用于简单演示,性能不如变量判定。
假人AI攻击判定与脚本逻辑
分阵营后需配置假人的攻击筛选,防止误伤己方:
• QFunction触发过滤:在 [@Attack] 或假人攻击前置段,先检测目标对象的变量或行会。若目标 CHECKCURGUILD 与自己同行会或 CHECK [己方标记] 1,则执行 BREAK 中止攻击;否则继续执行伤害计算。
- 自动搜索敌人范围:在DummyConfig里设 SearchRange=15 搜索半径,AttatckMode=0(全体攻击但脚本过滤友军)或 AttatckMode=4(编组模式配合GroupID)。
- Robot定时指挥:在 AutoRunRobot.txt 里写定时段,让红方假人执行移动至某坐标,蓝方假人执行防守,模拟攻城战。通过 MOVR 假人名 X Y 控制假人走向触发交战。
常见应用场景
• 沙巴克攻城演练:一部分假人加防守行会(如原沙巴克),一部分加进攻行会,开启攻城期,假人会推门、破墙、夺宫,测试服务端负载与爆率。
• 竞技场决斗模拟:分两组假人进封闭地图,装备属性刻意拉开差距,观察职业平衡(如战士破法道防线效率)。
- 刷怪分流测试:分阵营假人分别引不同种类怪物,测试地图刷怪点与怪物追击逻辑是否卡死。
配置排查与冲突处理
• 假人不分敌我全互砍:检查行会是否真加上(M2在线人物看行会栏),变量是否在登录段正确赋值且没被后续脚本覆盖清零。
- 假人站着不动不攻击:AI配置里 AttatckMode 没设对,或脚本过滤逻辑写反(把敌人判成己方BREAK掉了),用 #SAY 临时输出变量值调试。
• 阵营装备混乱:分阵营假人若共用同一份 DummyConfig 通用配置,会导致行为一致,需建两份配置(红战士假人.txt、蓝战士假人.txt)分别设GroupID与攻击参数。
- 重载生效:改完行会、变量、AI配置后,在M2点重载假人配置与重载机器人脚本,或让假人全部下线再重新登录读取新阵营数据。

