传奇HERO引擎积分使者脚本:充值积分、消费返利、商城兑换、全服公告与防刷完整示例

来源: 作者: 点击:
HERO引擎里做积分使者,不能只写一个兑换NPC。要带动全服消费,必须把积分获取、积分消耗、积分兑换、全服公告、每日限额和防刷判断串起来。积分来源通常分三类:充值获得、消费返利、活动赠送。积分用途通常分三类:兑换装备、兑换材料、兑换特殊功能。下面按HERO引擎常用写法给出可直接参考的脚本示例。

NPC主界面

[@main]
IF
SAY
\
充值、消费均可获得积分。\
积分可兑换装备、材料、功能。\
\
\
\
\
\
\
<关闭/@exit>

查看积分

[@viewpoint]
IF
ACT
SENDMSG 6 您当前积分为:<CREDITPOINT>
SENDMSG 6 今日已获取积分:<STR(D0)>
SENDMSG 6 今日消费返利积分:<STR(D1)>
GOTO @main

这里CREDITPOINT为HERO引擎常用积分变量,用于记录玩家当前可用积分。D0、D1用于记录当日积分获取情况,防止每日无限刷分。

积分充值

[@recharge]
IF
SAY
\
100元宝兑换100积分。\
每日最多兑换10次。\
\
\
\
<返回/@main>

[@buy100]
IF
LARGE D0 9
GAMEGOLD > 99
ACT
GAMEGOLD - 100
CREDITPOINT + 100
INC D0 1
SENDMSG 6 充值成功,获得100积分。
GOTO @main
ELSESAY

[@buy500]
IF
LARGE D0 9
GAMEGOLD > 499
ACT
GAMEGOLD - 500
CREDITPOINT + 500
INC D0 1
SENDMSG 6 充值成功,获得500积分。
SENDMSG 20 玩家%s充值获得500积分,当前积分<CREDITPOINT>。
GOTO @main
ELSESAY

这里D0记录当日充值兑换次数,限制为10次。充值后使用SENDMSG 20发送全服公告,可刺激其他玩家消费。

消费返利

[@rebate]
IF
SAY
\
每消费100元宝可获得10积分。\
每日最多返利50次。\
\
\
<返回/@main>

[@getrebate]
IF
LARGE D1 49
LARGE D2 99
ACT
GAMEGOLD - 100
CREDITPOINT + 10
INC D1 1
INC D2 100
SENDMSG 6 消费返利成功,获得10积分。
GOTO @main
ELSESAY

这里D1记录今日返利次数,D2记录今日消费累计金额。实际版本中如果希望自动返利,可把消费判断放在QFunction-0.txt中,每次元宝消费时触发积分增加。

积分商城

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

[@buytl]
IF
LARGE CREDITPOINT 999
CHECKBAGSPACE 1
ACT
CREDITPOINT - 1000
GIVE 屠龙 1
SENDMSG 6 兑换成功,获得屠龙一把。
SENDMSG 20 玩家%s使用1000积分兑换屠龙。
GOTO @main
ELSESAY

[@buyml]
IF
LARGE CREDITPOINT 499
CHECKBAGSPACE 1
ACT
CREDITPOINT - 500
GIVE 麻痹戒指 1
SENDMSG 6 兑换成功,获得麻痹戒指。
GOTO @main
ELSESAY

[@buyzfy]
IF
LARGE CREDITPOINT 199
CHECKBAGSPACE 1
ACT
CREDITPOINT - 200
GIVE 祝福油 10
SENDMSG 6 兑换成功,获得祝福油10个。
GOTO @main
ELSESAY

[@buyexp]
IF
LARGE CREDITPOINT 99
CHECKBAGSPACE 1
ACT
CREDITPOINT - 100
GIVE 经验丹 1
SENDMSG 6 兑换成功,获得经验丹。
GOTO @main
ELSESAY

积分商城要重点判断积分余额和背包空间。发放奖励前先检测,再扣积分,最后发物品。不能先发物品再扣积分,否则背包满时会出现积分误扣。

今日记录查询

[@today]
IF
SAY
\
今日充值兑换次数:>\
今日消费返利次数:>\
今日消费累计元宝:>\
\
每日0点自动重置。\
<返回/@main>

每日重置

在Robot_defAutoRunRobot.txt中配置每日0点重置。

0 0 * * * @ResetPoint

[@ResetPoint]
IF
ACT
RESET D0 3
SENDMSG 20 每日积分记录已重置,今日充值、消费返利重新计算。

这里RESET D0 3表示将D0、D1、D2三个变量重置为0。HERO引擎中D变量为角色当日变量,部分版本会在每日0点自动重置,具体要看当前引擎版本对D变量的处理方式。如果D变量不会自动重置,必须通过机器人脚本手动重置。

全服消费带动

积分使者要带动全服消费,不能只让玩家自己兑换。需要加入全服公告、限时加成和排行榜提示。

充值公告

[@buy500]
IF
LARGE D0 9
GAMEGOLD > 499
ACT
GAMEGOLD - 500
CREDITPOINT + 500
INC D0 1
SENDMSG 6 充值成功,获得500积分。
SENDMSG 20 玩家%s充值500元宝获得500积分,积分商城好礼等你来换!
GOTO @main
ELSESAY

兑换公告

[@buytl]
IF
LARGE CREDITPOINT 999
CHECKBAGSPACE 1
ACT
CREDITPOINT - 1000
GIVE 屠龙 1
SENDMSG 6 兑换成功。
SENDMSG 20 恭喜玩家%s用积分兑换屠龙,积分越多,神装越近!
GOTO @main
ELSESAY

限时加成

[@doublepoint]
IF
EQUAL G1 1
SAY
\
当前充值可获得双倍积分。\
\
\
<返回/@main>
ELSESAY

[@doublebuy]
IF
EQUAL G1 1
LARGE D0 9
GAMEGOLD > 99
ACT
GAMEGOLD - 100
CREDITPOINT + 200
INC D0 1
SENDMSG 6 双倍积分充值成功,获得200积分。
SENDMSG 20 玩家%s在双倍活动期间充值获得200积分。
GOTO @main
ELSESAY

G1为服务器全局变量,用于控制全服双倍积分活动是否开启。GM可通过机器人脚本或GM命令设置G1=1开启,G1=0关闭。

防刷判断

积分系统最容易被刷,必须加入多层限制。

第一层:每日次数限制。用D0、D1限制每日充值兑换和消费返利次数。

第二层:背包检测。所有物品兑换前必须使用CHECKBAGSPACE检测背包空间。

第三层:积分余额检测。兑换前必须判断CREDITPOINT是否足够,且先检测后扣减。

第四层:变量状态检测。如果某些奖励只能领取一次,可用逻辑变量[N]记录。

[@onceget]
IF
LARGE CREDITPOINT 1999
EQUAL [100] 0
CHECKBAGSPACE 1
ACT
CREDITPOINT - 2000
SET [100] 1
GIVE 复活戒指 1
SENDMSG 6 一次性奖励领取成功。
ELSESAY

逻辑变量[N]用于记录玩家是否已领取一次性奖励,初始值为0,领取后设为1,不可重复领取。

变量规划

CREDITPOINT:玩家当前积分,HERO引擎常用积分变量。
D0:今日充值兑换次数。
D1:今日消费返利次数。
D2:今日消费累计元宝。
G1:全服双倍积分活动开关。
[100]:一次性奖励领取标记。

HERO引擎中GAMEGOLD为元宝变量,CREDITPOINT为积分变量,G变量为服务器全局变量,D变量为角色当日变量,[N]为逻辑变量。不同版本对变量保存方式可能略有差异,正式使用前应先确认当前引擎是否支持CREDITPOINT和D变量自动重置。

常见问题排查

积分不增加,先确认CREDITPOINT命令是否被当前HERO版本支持,部分版本可能使用其他积分变量名。每日限制失效,检查D变量是否真的按日重置,必要时改用机器人脚本手动重置。兑换后物品未获得,检查背包空间是否足够,以及物品名称是否与数据库一致。全服公告不显示,确认SENDMSG 20是否被当前版本支持。双倍活动开启后未生效,检查G1是否正确设置,以及脚本中是否同时判断了G1=1。重复领取奖励,检查是否使用逻辑变量[N]或S变量记录领取状态。

积分使者脚本的关键是让玩家有持续获取积分的渠道,同时通过全服公告和限时活动刺激消费。充值获得积分、消费返利积分、积分兑换装备三者形成循环,再配合每日限额和防刷判断,就能让新区玩家有持续消费动力。