传奇包裹售价设置及GM可控竞价拍卖NPC脚本写法

来源: 作者: 点击:
本文详细拆解传奇包裹售价脚本配置,及GM可控制价格、时间的NPC竞价拍卖脚本写法,含完整指令示例与适配要点,适配主流引擎。

一、传奇包裹售价脚本设置(基础版)

包裹售价脚本核心实现玩家购买扩展包裹功能,支持按档位设置价格,绑定NPC对话触发,逻辑简洁易上手。

1. 基础脚本配置(NPC对话绑定)

打开Envir\NPCs文件夹,找到目标NPC脚本文件(如商人NPC),添加包裹售卖对话选项,脚本示例如下:

[@包裹售卖]#IFCHECKGAMEGOLD >= 500#ACTADDITEM 扩展包裹 1GAMEGOLD - 500SENDMSG 5 成功购买扩展包裹,背包空间已扩容!#ELSESENDSENDMSG 5 元宝不足500,无法购买扩展包裹!

说明:ADDITEM后填写包裹道具名称,需与服务端物品数据库中名称一致;GAMEGOLD为元宝扣减指令,可替换为CHANGEGOLD(金币),如CHANGEGOLD - 10000。

2. 多档位包裹售价设置

针对不同扩容幅度设置差异化价格,添加等级判断条件,脚本示例:

[@包裹售卖]#IFCHECKLEVELEX >= 30CHECKGAMEGOLD >= 800#ACTADDITEM 高级扩展包裹 1GAMEGOLD - 800SENDMSG 5 成功购买高级扩展包裹,解锁全部背包格子!#ELSEIFCHECKGAMEGOLD >= 500#ACTADDITEM 扩展包裹 1GAMEGOLD - 500SENDMSG 5 成功购买扩展包裹,基础背包空间已扩容!#ELSESENDSENDMSG 5 元宝不足,或等级未达30级无法购买高级包裹!

可新增CHECKNAMELIST指令限制会员专属档位,添加对应名单文件路径即可实现权限管控。

二、GM可控竞价拍卖NPC脚本写法(核心模块)

该脚本实现GM预设拍卖物品、起始价格、拍卖时长,玩家竞价,超时自动成交功能,分GM控制端与玩家交互端两部分。

1. 核心变量定义(全局配置)

打开Envir\QuestDiary文件夹,新建“拍卖系统.txt”文件,定义全局变量存储拍卖参数,脚本如下:

#DEFINE 拍卖物品ID 0#DEFINE 起始价格 0#DEFINE 拍卖时长 0#DEFINE 当前最高价 0#DEFINE 竞价者名称 ""#DEFINE 拍卖状态 0 //0为关闭,1为开启

说明:变量通过GM指令赋值,无需手动修改,拍卖状态变量控制整个拍卖流程启停。

2. GM控制端脚本(设置参数与启停)

在QManage.txt文件中添加GM专属指令,实现拍卖参数设置、开启、终止功能,脚本示例:

[@GM设置拍卖物品]#IFCHECKADMINLEVEL 3 //仅3级及以上GM可操作#ACTSET [拍卖物品ID] $PARAM(1)SET [起始价格] $PARAM(2)SET [拍卖时长] $PARAM(3)SET [当前最高价] $PARAM(2)SET [竞价者名称] "无"SENDMSG 1 【GM公告】拍卖物品设置成功:ID为$PARAM(1),起始价$PARAM(2)元宝,时长$PARAM(3)秒!

[@GM开启拍卖]#IFCHECKADMINLEVEL 3CHECK [拍卖状态] 0#ACTSET [拍卖状态] 1SetScTimer 10 1 //启动拍卖倒计时定时器SENDMSG 1 【拍卖开启】本次拍卖时长[拍卖时长]秒,起始价格[起始价格]元宝,欢迎竞价!#ELSESENDSENDMSG 5 拍卖已开启或参数未设置,无法重复开启!

[@GM终止拍卖]#IFCHECKADMINLEVEL 3CHECK [拍卖状态] 1#ACTSET [拍卖状态] 0KillScTimer 10 //关闭倒计时SENDMSG 1 【拍卖终止】本次拍卖由GM手动终止,无成交者!

说明:$PARAM(1)~$PARAM(3)为GM输入参数,分别对应物品ID、起始价、时长;CHECKADMINLEVEL等级可按需调整。

3. 玩家交互端脚本(竞价与成交)

绑定NPC对话选项,实现玩家查看拍卖信息、参与竞价功能,脚本如下:

[@查看拍卖信息]#IFCHECK [拍卖状态] 1#ACTSENDMSG 5 【当前拍卖】物品ID:[拍卖物品ID],当前最高价:[当前最高价]元宝,竞价者:[竞价者名称],剩余时长:[拍卖时长]秒#ELSESENDSENDMSG 5 暂无正在进行的拍卖!

[@参与竞价]#IFCHECK [拍卖状态] 1CHECKGAMEGOLD > [当前最高价]#ACTSET [当前最高价] $PARAM(1)SET [竞价者名称] $USERNAMEGAMEGOLD - $PARAM(1)SENDMSG 1 【竞价通知】玩家$USERNAME出价$PARAM(1)元宝,当前为最高出价!#ELSESENDSENDMSG 5 拍卖未开启,或出价低于当前最高价/元宝不足!

4. 拍卖倒计时与成交结算脚本

通过定时器实现倒计时、超时成交结算,在QManage.txt文件中添加定时器触发逻辑:

(@OnTimer10)#IFCHECK [拍卖状态] 1CHECK [拍卖时长] > 0#ACTSET [拍卖时长] [拍卖时长]-1#ELSEACTSET [拍卖状态] 0KillScTimer 10#IF [竞价者名称] != "无"#ACTADDITEM [拍卖物品ID] 1 TARGET [竞价者名称] //给竞价者发放物品SENDMSG 1 【拍卖成交】玩家[竞价者名称]以[当前最高价]元宝拍得物品ID[拍卖物品ID]!#ELSESENDSENDMSG 1 【拍卖流拍】无人参与竞价,物品流拍!

三、脚本适配与调试要点

1. 引擎适配:GEE/GOM引擎直接沿用上述脚本,HERO引擎需将变量定义改为全局变量格式(如<$GLOBAL(拍卖物品ID)>),指令无本质差异。

2. 物品发放校验:确保ADDITEM指令后添加TARGET参数,避免物品发放错误;物品ID需在服务端物品数据库中存在,否则发放失败。

3. 定时器冲突:拍卖专用定时器编号(示例中10)需避开其他脚本使用的编号,可在服务端日志中排查冲突。

4. 文本编码:所有脚本文件编码设为ANSI,避免中文乱码导致指令失效;修改后重启服务端,确保变量与指令加载成功。

四、补充优化(可选)

1. 竞价阶梯设置:添加判断条件,限定每次竞价需比当前最高价高固定额度(如50元宝),避免恶意低价竞价。

2. 流拍物品回收:若拍卖流拍,可添加脚本自动将物品返还给GM背包,指令为ADDITEM [拍卖物品ID] 1 ADMIN。

3. 公告强化:在竞价、成交时添加全服红字公告,提升玩家参与度,可使用SENDMSG 2指令实现红字效果。