自己架设的传奇、祖玛头像触发攻城、设置方法与脚本攻略

来源: 作者: 点击:
一、核心原理与前期准备
自己架设的传奇中,默认攻城多仅需行会申请,若要限制 “提交祖玛头像才能攻城”,需通过修改攻城 NPC 脚本添加 “祖玛头像物品检测” 逻辑,搭配行会攻城权限判断,实现 “无头像不允许申请” 的效果。操作前需准备:
基础工具:记事本 / UE 编辑器(修改脚本)、传奇服务端(以 MirServer 架构为例)、物品数据库(确认祖玛头像 ID)。
关键文件路径:
NPC 配置文件:D:\Mirserver\Mir200\Envir\MerChant.txt(找到 “攻城管理员”“沙巴克管理员” 脚本路径);
攻城脚本文件:通常在D:\Mirserver\Mir200\Envir\QuestDiary\下,如 “沙巴克攻城.txt”“攻城申请.txt”;
物品数据库:D:\Mirserver\Mir200\Envir\Item.txt(查询祖玛头像的物品 ID,默认多为 10015,需以自身服务端为准)。
二、详细设置步骤(含脚本编写)
核心是在 “攻城申请” NPC 脚本中,新增 “检测祖玛头像” 判断分支,只有提交头像的行会才能触发攻城申请,分 3 步操作:
步骤 1:定位攻城 NPC 脚本
打开MerChant.txt,按 “Ctrl+F” 搜索 “攻城”“沙巴克”,找到类似代码:
沙巴克管理员 3 333 333 0 0 0 0 0 #call [.\QuestDiary\沙巴克\攻城申请.txt] @main
其中.\QuestDiary\沙巴克\攻城申请.txt即为需修改的目标脚本。
步骤 2:编写 “祖玛头像检测” 脚本
打开 “攻城申请.txt”,替换原有@main和@申请攻城分支,新增 “物品检测 + 扣除 + 攻城触发” 逻辑,完整脚本如下(含注释):
#------------------------------------------------------
# 攻城申请NPC主对话(带祖玛头像提交逻辑)
#------------------------------------------------------
[@main]
#SAY
欢迎来到沙巴克攻城申请处!\
只有提交【祖玛头像】的行会才能申请攻城!\
<查看攻城规则> <@rule>\
<提交祖玛头像申请攻城> <@apply_siege>\
<退出> <@exit>

#------------------------------------------------------
# 攻城规则说明(可选,可自定义内容)
#------------------------------------------------------
[@rule]
#SAY
【沙巴克攻城规则】\
1. 申请行会需成立满24小时,且成员≥10人;\
2. 需提交1个【祖玛头像】作为申请凭证(提交后不返还);\
3. 攻城时间为每周六20:00-22:00;\
<返回> <@main>

#------------------------------------------------------
# 核心:提交祖玛头像申请攻城分支
#------------------------------------------------------
[@apply_siege]
#IF
#1. 判断当前角色是否有行会
CHECKMEMBERGUILD
#2. 判断行会成立时间≥24小时(86400秒)
CHECKGUILDESTABLISHTIME > 86400
#3. 判断当前行会未申请过本周攻城(避免重复申请)
CHECKGUILDSIEGEAPPLY 0
#4. 判断背包是否有祖玛头像(物品ID以自身服务端Item.txt为准,默认10015)
CHECKITEM 祖玛头像 1
#ACT
#1. 扣除背包中的1个祖玛头像
TAKE 祖玛头像 1
#2. 记录行会攻城申请(0代表本周,1代表下周,根据需求调整)
SETGUILDSIEGEAPPLY 0
#3. 发送全服公告,提示该行会申请成功
SENDMSG 0 【攻城公告】%GUILDNAME% 行会提交祖玛头像,成功申请本周六20:00沙巴克攻城!
#4. 给申请人发送私信提示
SENDMSG 2 恭喜!已扣除1个祖玛头像,攻城申请成功,请本周六20:00准时参与!
#5. 返回主对话
GOTO @main
#ELSE
#根据未满足的条件提示对应内容
#ELSEIF 无行会
#SAY
您当前没有加入任何行会,请先加入行会再申请!
<返回> <@main>
#ELSEIF 行会成立时间不足
#SAY
您的行会成立时间不足24小时,无法申请攻城!
<返回> <@main>
#ELSEIF 已申请过攻城
#SAY
您的行会已申请过本周攻城,无需重复提交!
<返回> <@main>
#ELSEIF 无祖玛头像
#SAY
您背包中没有【祖玛头像】,无法申请攻城!\
祖玛头像可在祖玛寺庙(5-7层)的祖玛教主处掉落!
<返回> <@main>

步骤 3:配置攻城时间与权限
打开攻城配置文件D:\Mirserver\Mir200\Envir\AttackSaba.ini,确保攻城时间开启:
[AttackSaba]
Open=1 #1=开启攻城,0=关闭
WeekDay=6 #6=周六(0=周日,1=周一,以此类推)
StartHour=20 #开始时间20点
EndHour=22 #结束时间22点

保存所有文件后,重启传奇服务端(必须重启,否则脚本不生效)。
三、效果验证与常见问题
效果验证:
登录游戏,加入符合条件的行会(成立≥24 小时);
背包放入 1 个祖玛头像,找到 “沙巴克管理员”;
点击 “提交祖玛头像申请攻城”,提示扣除头像并发送全服公告,即为设置成功。
常见问题解决:
问题 1:提示 “物品不存在”(祖玛头像检测失败)
解决:打开Item.txt,搜索 “祖玛头像”,替换脚本中的物品 ID(如原 10015 改为实际 ID 10016)。
问题 2:申请后不触发攻城
解决:检查AttackSaba.ini中Open=1是否开启,且本周攻城时间未过。
问题 3:行会成立时间判断无效
解决:部分老引擎不支持CHECKGUILDESTABLISHTIME,可删除该判断(或替换为CHECKGUILDLEVEL 2,要求行会等级≥2)。
四、注意事项
备份原脚本:修改前复制 “攻城申请.txt” 为 “攻城申请_备份.txt”,出错可恢复。
祖玛头像获取:若想限制头像获取难度,可在Item.txt中调整祖玛教主掉落祖玛头像的概率(如MonDrop=10015 1 5,5% 概率掉落)。
多引擎适配:若为 GOM/GEE 引擎,脚本中SENDMSG可替换为BROADCAST(全服红字公告),命令格式:BROADCAST 【攻城公告】%GUILDNAME% 成功申请攻城!。