传奇沙城攻城申请脚本完整配置方法

来源: 作者: 点击:
沙巴克攻城申请功能依赖QManage.txt与自定义NPC脚本联动实现。核心逻辑包含资格校验、押金扣除、名单登记三部分,需在服务端EnvirQuestDiary目录下配置对应文件。

首先创建攻城申请NPC,在Mir200EnvirMerChant.txt添加NPC坐标与名称,例如“沙城老兵330330”。在MapQuest_def目录新建同名文件夹“沙城老兵”,内部创建主脚本文件“MAIN.txt”。该文件内容如下:

[@main]
IF
EQUALG1001
SAY
当前已有行会提交攻城申请,请等待下次开放。

ELSE
你的行会是否要申请本周沙巴克攻城战?
需要缴纳100万金币作为押金。



[@ApplySiege]
IF
CHECKLEADER
ACT
GOTO@CheckGold
ELSESAY
只有行会会长才能申请攻城!


[@CheckGold]
IF
CHECKGOLD>1000000
ACT
TAKEgold1000000
SETG1001
SETS100
SAVEVARS100..GuildSaveSiegeGuild.txt
SENDMSG0行会已成功申请攻城!
CLOSE
ELSESAY
行会资金不足100万,无法申请攻城。


关键变量说明:G100为全局标志位,值为1表示已有行会申请;S100存储申请行会名称。SAVEVAR指令将行会名写入GuildSave目录下的SiegeGuild.txt,供攻城战脚本读取。

攻城战开启时需读取申请记录。在QFunction.txt的[@Timer30](每30秒检测)中加入:

IF
EQUALG1001
CHECKTIME1921
CHECKMAP7
ACT
LOADVARS100..GuildSaveSiegeGuild.txt
MAPMOVES100333333
SENDMSG5攻城行会S100已进入沙巴克!

战斗结束后的处理在[@MapTimer_7](沙巴克地图计时器)中完成。当倒计时归零时:

IF
CHECKMAP7
ACT
CLEARMAP7
SETG1000
DELFILE..GuildSaveSiegeGuild.txt
SENDMSG0本周沙巴克攻城战已结束!

脚本生效前需确认三点:行会系统已启用(M2设置中勾选行会功能)、沙巴克地图编号为7、GuildSave目录存在且有写入权限。测试时先用小号创建行会,通过NPC对话触发申请流程,检查金币扣除与文件生成是否正常。
[顶部]