传奇单机充值使者NPC脚本制作元宝赞助回馈领取功能设置教程

来源: 作者: 点击:
充值使者本质是一个NPC交互脚本,单机环境不需要真实支付接口,依靠脚本判断领取标记,玩家点击选项之后直接发放元宝、赞助凭证、回馈奖励,整套逻辑在QuestDiary脚本目录内编写,不同引擎脚本指令存在差异,GOM、GEE、HERO、996的判断和赋值指令需要对照引擎说明调整,操作前先备份Envir整个文件夹,防止脚本写错造成M2加载报错。

先在NPC.txt里面登记充值使者,打开Envir目录下的NPC.txt,按格式填写NPC坐标、外观、名称、调用脚本路径。格式依次为地图编号 X Y 外观编号 名称 脚本文件路径,示例内容为0 330 330 5 充值使者 @充值使者,保存之后重启M2,地图上才会刷新这个NPC。外观编号可以对照引擎自带外观表修改,选择合适的NPC形象,地图编号使用目标主城地图编号,坐标不要超出地图范围。

进入QuestDiary文件夹,新建文本文档,命名和NPC登记的脚本名称保持一致,脚本开头写入[@充值使者]作为主标签,这个标签是NPC进入交互界面的入口。先写界面文字,列出玩家可以选择的项目,比如领取元宝、领取赞助、领取充值回馈,每个选项绑定对应的子标签,玩家点击选项就跳转执行对应脚本。

单机领取逻辑分为两种,一种是点击直接领取,没有领取限制,适合测试使用;另一种是增加领取标记,每个账号只能领取一次,避免重复领取。标记使用CHECK [数字]判断,SET [数字]设置标记,标记数字区间避开引擎自带预留标记,选择一百以上的数字不容易冲突。以一次性领取元宝为例,先写判断语句,检测标记是否等于0,如果标记为0,执行发放元宝指令,然后设置标记为1,提示领取成功;标记等于1的时候,弹出提示文字告知已经领取过。发放元宝指令根据引擎调整,HERO使用GAMEGOLD,GOM和GEE大多使用GOLD,填写发放的元宝数量,数字不要超过引擎支持上限。

赞助和回馈的发放逻辑可以分开写标签,赞助一般包含称号、专属属性、赞助凭证、道具礼包,回馈多为材料、积分、限时buff。发放道具使用Give指令,格式为Give 物品名称 数量,物品名称必须和StdItems.DB里面的名称完全相同,错别字会导致发放失败。发放称号使用引擎自带称号指令,部分引擎需要先在称号配置文件里面添加好称号信息,脚本内只调用称号编号。属性类赞助,有的是直接给角色临时buff,有的是永久属性,永久属性修改需要使用属性赋值指令,使用前确认引擎支持该指令,避免属性写入异常。

如果想要设置多档位,比如一档、二档、三档赞助,就在脚本里面增加多选分支,每个档位单独设置标记、奖励内容,不同档位使用不同标记数字,防止档位之间领取标记冲突。可以增加文字提示,告知玩家每个档位包含的奖励清单,方便区分。

还有一种常用方式,使用变量记录领取状态,适合需要按天领取的回馈,设置时间变量,读取角色上次领取时间,对比当前服务器时间,达到间隔时间才允许再次领取,适合做每日回馈。时间相关指令各个引擎差别很大,需要参考引擎自带脚本文档,部分老旧引擎不支持时间变量,就只能做一次性领取。

脚本写完之后,检查所有标点符号,全部使用半角英文符号,换行位置不要错乱,多余空格和空行尽量清理,全角逗号、引号会直接造成脚本加载失败,M2日志会输出语法错误,根据日志里面的行数定位修改。保存脚本文件,重启M2加载新脚本,M2日志没有提示脚本错误,代表脚本加载成功。

测试的时候登录游戏找到充值使者,点击对应选项进行领取,先测试无标记版本,确认元宝、道具、称号都正常到账之后,再加入领取标记,防止测试的时候反复领取。出现点击选项没有反应,优先核对NPC.txt里面的脚本路径、标签名称是否匹配,标签名字大小写、文字必须完全一致。点击之后提示领取成功,但是背包没有物品,检查物品名称是否和数据库一致,物品是否设置为不可丢弃、不可获取的特殊类型。点击直接报错,打开M2运行日志,查看脚本报错行,修正指令拼写和格式问题。

如果想要GM可控的领取开关,可以增加全局变量判断,在脚本开头增加全局标记,GM在控制台输入命令修改全局标记,标记开启时玩家可以领取,关闭之后无法领取。单机环境也可以单独做一个GM专用选项,用来清除玩家领取标记,方便反复测试,这个选项加上权限判断,只有GM账号才能看到,普通玩家不会显示。

奖励发放顺序建议先发放货币,再发放道具,最后添加称号和buff,多条奖励指令分行书写,不要放在同一行。奖励数量较大的时候,不要一次性写入大量Give指令,可以拆分或者用礼包道具替代,礼包道具在数据库里面设置,双击礼包触发礼包脚本发放内容,脚本结构会更加简洁,后续修改奖励也更方便,只需要修改礼包脚本,不用改动充值使者主脚本。

全部功能调试稳定之后,把脚本文件、NPC.txt做好备份,后续修改奖励内容,直接打开脚本修改对应数字和物品名称,保存之后重启M2生效。修改的时候留意数据库里面的物品,新增赞助专属道具要提前在StdItems.DB添加好记录,外观、描述、属性配置完整,不然发放出来的道具显示异常。