传奇服务端双沙巴克城堡配置与分时段攻城设置教程:Castle目录复制SabukW参数MapInfo

来源: 作者: 点击:
双沙巴克分两种需求。一种是要系统识别两个独立城堡,分别有城主、皇宫、攻城申请、税收和占领逻辑,走Mir200\Castle多城堡目录。另一种只是让两个地图都打攻沙,但不一定都要完整城主系统,可用主沙巴克加活动副城、机器人或脚本模拟。完整双城主要改Castle列表、SabukW配置、MapInfo新地图、NPC管理和攻城申请;只做活动副城可少改系统文件,但城主称号、沙城福利、攻城列表要单独用脚本补。

一、先确认引擎是否支持多城堡

打开Mir200\Castle目录,看是否有0文件夹和List.txt或CastleList.txt。常见原版结构里0是沙巴克配置,里面放SabukW.txt以及攻城、税收、守卫相关文件。若能新建1、2并在列表登记后被M2读取,就支持双城或多城;若M2启动只认0、忽略列表新增目录,说明该引擎版本只支持单沙巴克,强行加目录不会出城主,只能做脚本活动城。

查看M2菜单里有没有管理、城堡管理、攻沙设置、多城堡列表。HERO类部分版本可通过城堡管理切多个城堡名;GOM、LEG、BLUE不同版本差异大,以你当前M2实际弹出的城堡列表为准,不先改文件盲试。

二、完整双城:新建第二个Castle目录

1. 备份Mir200\Castle整个目录,再备份Envir\MapInfo.txt、Envir\Npc_def或Npcs相关NPC配置、Market_Def里沙城管理NPC脚本。

2. 在Mir200\Castle新建文件夹,命名用简单数字,例如1。部分资料用List.txt加行、部分用CastleList.txt加行,看你目录里实际是哪个文件名。

3. 把Castle\0里面所有文件复制到Castle\1。不要只复制SabukW.txt,攻城时间、守卫、税收、城门、申请规则文件一起复制,避免新城缺少攻城参数。

4. 打开列表文件加一行,只写新文件夹名:

1

若原来内容是0一行,加完变成:

0
1

有的版本列表文件叫List.txt,有的叫CastleList.txt,以Mir200\Castle下实际存在并被执行文件为准。

5. 改Castle\1\SabukW.txt核心段。示例结构:

[Setup]
CastleName=第二沙城
OwnGuild=

[Defense]
CastleMapList=01510,01520,01530,01540,01550,01560,
CastleMap=30
CastleHomeMap=30
CastleHomeX=644
CastleHomeY=290
CastlePlaceMap=01500
CastleSecretMap=D7010
CastlePalaceDoorX=631
CastlePalaceDoorY=274

CastleName为城名;CastleMap为外城/城区地图;CastleHomeMap为复活或城主相关主图;CastlePlaceMap为皇宫占领图;CastleSecretMap为秘密通道;DoorX/DoorY为皇宫门坐标。 第二城不要直接照搬原沙巴克地图号,必须准备独立地图号,否则两座城坐标、复活、皇宫会互相串。

三、新地图准备与MapInfo

第二城至少需要外城地图、皇宫地图、若干商店子图、秘密通道。MapInfo按新地图号加,参考格式:

[30 第二沙城] FIGHT
[01500 第二沙城皇宫] NORECALL NODEARRECALL NOGUILDRECALL NOMASTERRECALL NORANDOMMOVE
[01510 第二城武器店] FIGHT
[01520 第二城仓库] FIGHT
[01530 第二城药店] FIGHT
[01540 第二城饰品店] FIGHT
[01550 第二城服装店] FIGHT
[01560 第二城监狱] FIGHT
[D7010 第二城秘密通道] FIGHT

地图参数按你引擎支持项写,皇宫常用禁回城、禁随机、禁行会回城;外城可用FIGHT或按原沙巴克参数。Map目录必须放对应30.map、01500.map、01510至01560.map、D7010.map;客户端补丁也要有同号地图,否则进图黑屏。

外城到皇宫的入口坐标在MapInfo同文件下方配,格式按原沙巴克抄,只换地图号和XY。例如外城正门、侧门多个点指向01500,皇宫多个点指回外城。坐标不对会导致攻城能进外城但进不了皇宫,系统判定占领失败。

四、NPC与管理人员

沙城管理人员、申请NPC、城主福利NPC要按新地图重做。原沙巴克常在Npcs相关配置或Npc_def里放管理人员,第二城按新地图号加:

名称 代码 地图 X Y 范围 图标
管理人员 2 01500 7 16 0 8

安全复活点按StartPoint相关配置加第二城主图坐标,例如:

30 330 330

Market_Def或Npc_def新建第二城管理NPC,负责攻城申请、查询攻城时间、领取城主福利。申请脚本不要直接复制原沙巴克段而不改城堡索引,否则玩家申请第二城却加到主沙巴克。

五、分时段攻城:两个城不同时间打

双城都走系统城堡时,攻城时间可在各自SabukW或M2城堡管理里设。若要用申请NPC分别发起,第二城申请段单独写,例如:

[@requestcastlewar1]
请求对 第二沙城 作战,需要对应头像,战争将在申请日期后开始。

主城用原requestcastlewar,第二城用requestcastlewar1,两段分别判断头像、行会等级、申请费。玩家点不同NPC申请不同城,M2攻城列表会出现两条独立攻城。

HERO M2可用命令统一添加所有城堡攻城:

AddAttackSabukAll 0 0

表示当天所有已配置城堡按设定开启;若第二城延后一天:

AddAttackSabukAll 1 1

该写法在部分HERO资料中用于双城统一或错峰,其他M2参数名可能不同,先在机器人或GM命令台试一次再看攻城列表。 若M2没有提供AddAttackSabukAll,就用城堡管理界面分别给0和1添加攻城日期,不硬套命令。

六、主城周六、副城周日示例

主沙巴克Castle\0\SabukW攻城周期设周六,例如时间控制里20:00-22:00;第二城Castle\1\SabukW设周日同段。M2选项、参数设置、时间控制若只对0生效,就在各自城堡管理窗口分别选0和1设置,不用全局统一时间。

机器人自动添加可用Envir\Robot_def\AutoRunRobot.txt:

AutoRun NPC RUNONWEEK 6:19:30 @MainSabuk

AutoRun NPC RUNONWEEK 0:19:30 @SecondSabuk

RobotManage.txt:

[@MainSabuk]
if

act

AddAttackSabukAll 0 0
SENDMSG 1 主沙巴克今晚20点攻城,行会到管理员处确认申请。

[@SecondSabuk]
if

act

AddAttackSabukAll 1 1
SENDMSG 1 第二沙城今晚20点攻城,独立申请、独立占领。

AddAttackSabukAll参数按你M2命令手册核对;不支持就改成分别调用单城堡申请命令,或只在M2手动添加攻城。机器人只是定时触发,不替代Castle目录和SabukW。

七、只做活动副城、不接系统城主

若引擎不支持多城堡,又想两个地图都攻,主城仍用原沙巴克,副城用机器人刷怪、占旗或脚本判定:

AutoRunRobot加:

AutoRun NPC RUNONWEEK 6:20:00 @ViceSabukWar

RobotManage:

[@ViceSabukWar]
if

act

SENDMSG 1 第二活动城攻城开始,击杀皇宫守将并停留判定时间可占领。
MonGenEx 新副城地图号 X Y 皇宫守卫 若干 范围
设置全局变量G副城战=1

皇宫占领用QuestDiary或QFunction检测副城皇宫剩余守军、玩家行会标签,到时间用SENDMSG发“某行会暂占第二城”,城主称号、每日福利用脚本发,不写进系统Castle。缺点是没有原生税收、城门、城主列表,全靠脚本维护。

八、攻城申请条件分开设

双城都走系统时需要分别限制,避免小行会乱申。SabukW或申请NPC里设:

申请费:主城1000000金币,副城可低些,按人口设500000。
头像要求:主城祖玛头像,副城可沃玛/祖玛按版本。
行会等级:主城3级,副城2级。
申请提前天数:主城1至3天,副城1天。

申请NPC脚本对第二城单独读Castle\1配置;若申请命令只支持默认沙巴克,就别做系统双城,改机器人活动城。

九、城主福利与税收

系统双城在各自SabukW配税收比例、城主每日领奖NPC。Market_Def第二城城主管理员写:

[@领城主奖]
if

checkcastleowner 第二沙城
act

give 城主令牌 1
gamemaster 发奖记录
elseact

say 你不是第二沙城城主。

checkcastleowner命令名按引擎来,有的用IsCastleMaster、有的用城堡名判断。主城副城别用同一个NPC段,否则只发主城奖。税收商店、武器店、仓库子图按第二城01510至01560接NPC,定价可和主城不同。

十、常见故障

M2启动后第二城不显示:Castle列表没加行、文件夹名不一致、SabukW路径错。列表写1,目录必须叫1。

进第二城外城但进不了皇宫:MapInfo皇宫地图号与SabukW的CastlePlaceMap不一致,或入口坐标错。

申请第二城却加到主城:申请NPC段没绑定第二城堡索引,仍调用默认requestcastlewar。

攻城时间两城一样改不开:M2时间控制只作用于0,需在城堡管理分别选1再添加;或用机器人对1执行AddAttackSabukAll 1 1,不支持就手动。

黑屏或地图错乱:服务端Map缺新号地图,或客户端补丁没放同号wil/wzl/pak。

城主领奖领不到:NPC判断城堡名和SabukW的CastleName不一致,中文名多空格、全角符号都会判否。

机器人加攻城不生效:AutoRunRobot格式错、RobotManage段名不一致、M2未重载机器人;先手动在M2城堡管理添加一次验证系统可用,再改机器人。

十一、单机测试顺序

先单城堡跑通主沙巴克:申请、攻城、占领、领奖、税收都正常。再建Castle\1并加列表,重启M2看是否出现第二城堡。用GM命令或城堡管理给第二城手动添加一次攻城,进游戏从第二城外城走到皇宫验占领。确认没问题再用机器人分周六、周日自动添加。最后测双城同周不同天、同天错峰、同天同时三种:同天同时最吃网关和地图性能,外网要限制人数和守军数量。

十二、双城同天同时的注意点

两座城系统都刷守卫、城门、攻城列表,M2事件处理量翻倍。MonGen守卫数量、皇宫复活点、机器人公告频率都要下调。若玩家人少,同天同时会导致主城没人、副城也没人;更稳妥是主城周五、副城周日,或主城每周六、副城每两周日,避免行会精力分散。税收和城主奖励分开统计,别用同一个全局变量发两城奖,否则会出现主城城主领到副城奖。

按上面改Castle目录、SabukW、MapInfo、NPC、申请段和机器人,可实现系统级双沙巴克分时段攻城;引擎不支持多城堡就退到主城加脚本副城,功能少但稳定,不会因M2不识别新目录导致攻城列表异常。