一、核心奖励类型及对应脚本命令
传奇奖励脚本核心围绕道具、货币、属性、称号四类奖励展开,需结合对应命令实现发放逻辑,适配不同交互场景。
(一)道具奖励脚本命令及用法
道具奖励分背包发放、佩戴发放两类,支持指定数量、绑定状态,核心命令如下:
1. give 物品名称 数量:基础发放命令,向玩家背包发放指定数量物品,可叠加物品自动合并,适用于普通道具。示例:give 疗伤药 10,向玩家发放10瓶疗伤药。
2. givebind 物品名称 数量:发放绑定道具,绑定后不可交易、丢弃,适用于任务专属奖励。示例:givebind 烈火剑法 1,发放绑定版烈火剑法技能书。
3. givew 物品名称 数量:直接发放至玩家装备栏对应位置,无对应位置则存入背包,适用于装备奖励。示例:givew 裁决之杖 1,发放裁决之杖至武器栏或背包。
注意:发放前需用checkbaggage命令检测背包空格,避免道具发放失败。
(二)货币奖励脚本命令及用法
货币奖励覆盖金币、元宝两类核心货币,支持增减、赋值操作,命令适配全版本通用场景。
1. givegold 数值:发放金币,直接增加玩家背包金币数量。示例:givegold 10000,发放10000金币。
2. GAMEGOLD 符号 数值:调整元宝数量,符号支持+(增加)、-(减少)、=(赋值)。示例:GAMEGOLD + 50,增加50元宝;GAMEGOLD = 100,将元宝数量设为100。
3. giveingot 数值:发放金条、金砖等货币道具,需对应道具名称。示例:giveingot 金砖 2,发放2块金砖。
(三)属性奖励脚本命令及用法
属性奖励含临时加成、永久加成两种,需区分时效控制,避免属性异常叠加。
1. 永久属性:ChangeHumanAttr 属性类型 数值,直接修改玩家永久属性。示例:ChangeHumanAttr 攻击 5,永久增加5点攻击;ChangeHumanAttr 防御 3,永久增加3点防御。
2. 临时属性:BuffAdd buff编号 时长 等级,添加临时属性加成buff。示例:BuffAdd 1 3600 2,添加编号1的buff,持续3600秒(1小时),等级2。
3. 技能奖励:AddSkill 技能名称 等级,为玩家添加指定等级技能。示例:AddSkill 召唤神兽 3,为玩家添加3级召唤神兽技能。
(四)称号奖励脚本命令及用法
称号奖励通过修改玩家头顶标识实现,部分版本支持称号附带属性,命令如下:
1. SETRANKLEVELNAME 称号文本:基础称号设置,直接替换玩家现有称号。示例:SETRANKLEVELNAME 传奇勇士,为玩家设置“传奇勇士”称号。
2. AddTitle 称号ID 时长:添加带时效的称号,需提前在称号配置文件中定义ID对应称号及属性。示例:AddTitle 5 86400,添加ID为5的称号,持续86400秒(24小时)。
二、常见奖励场景脚本编写实操
结合NPC交互、任务完成、活动触发三类高频场景,提供完整脚本示例,可直接复制修改后使用。
(一)NPC对话触发奖励脚本
适用于新手引导、日常领取奖励场景,通过对话选项触发奖励发放,含条件检测逻辑。
脚本示例:
(@Main)
#SAY
欢迎领取每日奖励!\
点击领取/@GetReward
(@GetReward)
#IF
checkday 1 ;检测是否今日已领取
#SAY
你今日已领取奖励,明日再来!
@exit
#ELSEACT
give 疗伤药 20 ;发放道具
givegold 5000 ;发放金币
GAMEGOLD + 10 ;发放元宝
setday 1 ;标记今日已领取
#SAY
奖励领取成功!请注意查收背包。
@exit
(二)任务完成触发奖励脚本
适用于主线、支线任务,需检测任务进度、物品提交状态,完成后发放对应奖励。
脚本示例(以提交10个僵尸牙齿为例):
(@TaskFinish)
#IF
checkitem 僵尸牙齿 10 ;检测是否拥有10个任务物品
check (10) 0 ;检测任务是否未完成
#ACT
take 僵尸牙齿 10 ;收回任务物品
givebind 骷髅头盔 1 ;发放绑定装备
ChangeHumanAttr 道术 2 ;永久增加2点道术
set (10) 1 ;标记任务完成
#SAY
任务完成!奖励已发放,继续闯荡吧。
#ELSESAY
你尚未集齐10个僵尸牙齿,无法完成任务。
@exit
(三)活动触发批量奖励脚本
适用于全服活动、限时活动,支持向指定玩家、全服玩家批量发放奖励,含范围控制。
1. 向指定玩家发放奖励:
(@SendRewardToPlayer)
#IF
ISADMIN ;仅管理员可触发
#ACT
SendReward 玩家名称 give 屠龙 1 ;向指定玩家发放屠龙
SendReward 玩家名称 GAMEGOLD + 100 ;向指定玩家发放100元宝
#SAY
奖励已发放至指定玩家背包。
2. 全服批量发放奖励:
(@SendAllReward)
#IF
ISADMIN
#ACT
MapAllUser give 超级疗伤药 5 ;向全服玩家发放道具
MapAllUser givegold 10000 ;向全服玩家发放金币
SENDMSG 6 全服福利已发放,请注意查收背包! ;全服提示
三、奖励脚本编写核心规范
遵循规范编写可避免奖励发放异常、脚本冲突,保障运行稳定。
1. 条件检测必加:发放奖励前需检测背包空格(checkbaggage)、领取状态(checkday/check变量),避免道具发放失败或重复领取。
2. 命令顺序合理:先检测条件,再执行收回物品操作,最后发放奖励,逻辑顺序不可颠倒,防止出现物品丢失。
3. 时效标记清晰:每日、每周奖励需用setday/setweek命令标记领取状态,对应checkday/checkweek检测,避免重复发放。
4. 文本提示完整:发放成功、失败、重复领取均需添加#SAY提示,让玩家明确交互结果,提升体验。
5. 特殊奖励适配:绑定道具、时效称号需明确对应命令,不可混用普通发放命令,避免属性异常或交易漏洞。
四、常见问题及规避方法
1. 奖励发放失败:优先检查背包是否满格,添加checkbaggage命令;核对物品名称是否正确,区分大小写及特殊符号。
2. 重复领取奖励:遗漏setday/set变量标记,需在发放奖励后添加对应标记命令,搭配检测命令形成闭环。
3. 属性奖励异常:永久属性命令需控制数值范围,避免超出版本上限;临时buff需设置合理时长,防止无限叠加。
4. 脚本无响应:检查命令语法是否错误,如缺少#IF/#ACT标记、符号使用错误,可逐段注释排查问题代码。
5. 全服奖励卡顿:批量发放时避免一次性发放高数量道具,可分批次执行,减少服务器资源占用。

