3K传奇引擎有奖活动特色调查脚本参考:NPC问答、变量记录、奖励发放与全服统计完整示

来源: 作者: 点击:
3K传奇引擎的有奖调查脚本没有统一官方模板,通常按传奇类引擎通用脚本结构实现。思路是用NPC对话框提出调查问题,玩家选择答案后写入人物变量,满足条件时发放奖励,并可在全服范围内统计选项分布。下面示例按传奇脚本常见写法整理,物品名、变量名、地图名和概率都要按实际版本替换。

NPC主界面

NPC放在Market_Def或对应引擎NPC目录下,主入口使用[@main]。

[@main]
IF
SAY
\
参与调查即可获得活动奖励。\
你已参与:>\
\
\
\
<关闭/@exit>

S1用于记录玩家是否已完成调查。0为未参与,1为已完成。

调查问题入口

[@survey]
IF
EQUAL S1 0
ACT
CALL [@Question1]
ELSESAY

第一题

[@Question1]
IF
SAY
\
\
\
\
<返回/@main>

[@Q1A]
IF
ACT
MOV P1 1
CALL [@Question2]

[@Q1B]
IF
ACT
MOV P1 2
CALL [@Question2]

[@Q1C]
IF
ACT
MOV P1 3
CALL [@Question2]

P1记录第一题答案,1、2、3分别代表不同选项。

第二题

[@Question2]
IF
SAY
\
\
\
\
<返回/@main>

[@Q2A]
IF
ACT
MOV P2 1
CALL [@Question3]

[@Q2B]
IF
ACT
MOV P2 2
CALL [@Question3]

[@Q2C]
IF
ACT
MOV P2 3
CALL [@Question3]

P2记录第二题答案。

第三题

[@Question3]
IF
SAY
\
\
\
\
<返回/@main>

[@Q3A]
IF
ACT
MOV P3 1
CALL [@SurveyFinish]

[@Q3B]
IF
ACT
MOV P3 2
CALL [@SurveyFinish]

[@Q3C]
IF
ACT
MOV P3 3
CALL [@SurveyFinish]

调查完成处理

[@SurveyFinish]
IF
ACT
SET [10] 1
MOV S1 1
SENDMSG 6 调查完成,请返回NPC领取奖励。
CALL [@Main]

这里用[10]作为临时开关,S1作为是否完成调查的保存标记。S1变量需要确认当前引擎版本是否支持保存到人物数据,不支持时可改用自定义变量或文件记录。

奖励发放

[@reward]
IF
EQUAL S1 1
CHECKBAGSPACE 1
ACT
GIVE 活动积分 10
SENDMSG 6 你已获得调查奖励:活动积分10
MOV S1 2
ELSESAY

奖励可以按答案不同设置不同内容。

[@reward]
IF
EQUAL S1 1
EQUAL P1 1
CHECKBAGSPACE 1
ACT
GIVE 打宝券 5
SENDMSG 6 你已获得奖励:打宝券5个
MOV S1 2
ELSEACT
SENDMSG 6 奖励已领取或条件不满足。

不同答案对应不同奖励时,要逐段判断,避免重复发放。

全服统计脚本

如果需要统计全服选择情况,可以用全局变量记录。

[@SurveyFinish]
IF
ACT
INC G10 1
EQUAL P1 1
INC G11 1
BREAK

[@SurveyFinish]
IF
ACT
INC G10 1
EQUAL P1 2
INC G12 1
BREAK

[@SurveyFinish]
IF
ACT
INC G10 1
EQUAL P1 3
INC G13 1

G10记录总参与人数,G11、G12、G13分别记录第一题三个选项的人数。查看统计时可用NPC显示:

[@ShowStat]
IF
SAY
\
总参与人数:>\
喜欢打宝活动:>\
喜欢攻城活动:>\
喜欢BOSS挑战:>\
<返回/@main>

全局变量是否随服务端重启保存,取决于当前引擎版本配置,不能保存时可通过机器人脚本定时写入文件。

防重复参与

调查脚本必须防止玩家重复领取奖励。常用做法是:

用S1记录是否完成调查。
用S1=2记录是否已领取奖励。
奖励发放后立即修改状态。
每次领取前检测背包空间。
若奖励分多段发放,需分别设置状态变量。

示例:

[@reward]
IF
EQUAL S1 1
CHECKBAGSPACE 1
ACT
GIVE 活动积分 10
MOV S1 2
SENDMSG 6 奖励已发放
ELSESAY

变量规划

S1:调查完成状态,0未完成,1已完成,2已领奖。
P1:第一题答案。
P2:第二题答案。
P3:第三题答案。
[10]:临时完成开关。
G10:全服参与人数。
G11-G13:各选项统计人数。

P变量在部分引擎中小退可能归零,不适合单独保存重要状态;S变量或自定义变量更适合记录玩家完成状态。G变量用于全服统计时,要确认版本是否支持持久保存。

常见问题排查

玩家重复领奖,检查S1是否在发放后及时修改。统计人数不增加,检查全局变量是否被其他脚本覆盖。奖励不发放,先检测背包空间检测命令是否生效。调查问题跳转异常,检查每个答案段末尾是否调用下一题。脚本修改后不生效,需要重载NPC或重启相关脚本。

有奖调查脚本的重点在于问题分支清晰、答案变量独立、奖励发放前有状态检测、全服统计不与其他活动变量冲突。3K引擎具体命令名称可能与其他传奇引擎存在差异,正式使用前应先确认当前版本对变量、随机数、全局统计和背包检测的支持方式。