沙城城主设置需根据服务端引擎类型选择对应方法,以下按引擎分类说明操作流程。
HERO引擎设置方法
打开M2Server控制台,点击查看-列表信息-管理命令列表。找到设置城主命令格式,通常为@设置城主 角色名。在游戏内GM角色输入该命令,系统提示“城主设置成功”。若需查看当前城主,输入@查看城主。清除城主使用@清除城主。HERO引擎支持双城主,在!Setup.txt中修改CastleChief=2,任命时输入@设置城主 主城主名 副城主名。
BLUE引擎设置方法
BLUE引擎使用@MakeCastleMaster命令。完整格式:@MakeCastleMaster 地图编号 角色名。沙巴克地图编号通常为3,命令为@MakeCastleMaster 3 角色名。查看城主状态输入@ShowCastleInfo。清除命令为@ClearCastleMaster 3。BLUE引擎需在M2-选项-功能设置-城堡设置中启用城主功能。
GOM引擎设置方法
GOM引擎命令为@SetCastleMaster。基础格式:@SetCastleMaster 沙巴克 角色名。GOM支持脚本任命,在QManage.txt中添加:
if
act
SetCastleMaster 沙巴克 角色名
SendMsg 0 城主已变更
GOM引擎可在M2-查看-城堡管理界面直接操作,选择沙巴克城堡后输入角色名保存。
GEEM2引擎设置方法
GEEM2使用@沙城城主 角色名命令。同时支持界面操作:M2-管理-城堡管理-沙巴克-城主名称栏修改。GEEM2提供城主权限细分,在M2-选项-功能设置-城堡设置中可调整城主税收比例、城门控制等具体权限。
LF引擎设置方法
LF引擎命令格式为@城主 角色名。LF引擎需在!Setup.txt中配置CastleDir路径指向正确城堡文件。任命前需确保Mir200\Envir\Castle目录下沙巴克配置文件存在。LF引擎支持定时自动清除城主,在城堡配置文件中设置ClearChiefTime参数。
SQL数据库直接修改方法
关闭服务端,打开SQL数据库管理工具。连接传奇数据库,执行查询语句:
UPDATE Castle SET ChiefName='角色名' WHERE CastleName='沙巴克'
同时更新行会关联:
UPDATE Castle SET GuildName='行会名' WHERE CastleName='沙巴克'
修改后重启引擎生效。此方法适用于所有基于SQL的引擎版本。
脚本自动化任命系统
在Mir200\Envir\Market_Def\城堡管理员.txt中创建NPC脚本。添加对话选项:
[@main]
请选择操作:\
<设置城主/@setchief> <查看城主/@viewchief>\
[@setchief]
请输入角色名:\
<输入/@inputname>\
[@inputname]
act
SetCastleMaster 沙巴克 <$STR(S1)>
SendMsg 5 城主设置完成
配合定时器可实现每周自动任命。
权限验证流程
设置完成后,目标角色测试命令:@管理 弹出沙巴克管理面板。@收取税金 获得金币。@开启城门/@关闭城门 控制城门开关。@召唤守卫 在皇宫召唤弓箭手。若功能缺失,检查M2-选项-功能设置-城堡权限是否全部开启。
多城主系统配置
支持多城主的引擎需修改参数:!Setup.txt中设置CastleChiefNum=3。任命时使用命令@设置城主 角色1 角色2 角色3。各城主权限可在M2中分别设置,如设置角色1可收税,角色2可控制城门。
攻城时间关联设置
城主任命需避开攻城战进行时段。在Mir200\Envir\Castle\沙巴克.txt中查看AttackDay设置。通常攻城期间禁止变更城主。若需战时任命,修改Castle.txt中ChangeChiefTime参数为0。
常见错误处理
错误提示“角色不存在”:检查角色是否在线,部分引擎要求角色离线时任命。提示“行会不符”:确保角色已加入攻城行会,使用@AddToCastle绑定行会。提示“权限不足”:确认GM等级足够,在UserList.txt中设置GM等级为10。
数据备份与恢复
修改前备份Castle.sdb或SQL数据库Castle表。备份Mir200\Envir\Castle目录下所有文件。出错时恢复备份,重启服务端。定期导出城主记录便于追溯。
不同引擎命令存在差异,操作前确认引擎版本。任命时确保服务端运行稳定,避免数据丢失。攻城活动期间谨慎操作城主变更。

