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变量记录领取状态。
积分使者脚本的关键是让玩家有持续获取积分的渠道,同时通过全服公告和限时活动刺激消费。充值获得积分、消费返利积分、积分兑换装备三者形成循环,再配合每日限额和防刷判断,就能让新区玩家有持续消费动力。
传奇HERO引擎积分使者脚本:充值积分、消费返利、商城兑换、全服公告与防刷完整示例
来源:
作者:
点击:

