当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

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

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

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

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

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

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

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

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

2.多档位包裹售价设置

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

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

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

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

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

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

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

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

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

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

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

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

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

[@GM终止拍卖]#IFCHECKADMINLEVEL3CHECK[拍卖状态]1#ACTSET[拍卖状态]0KillScTimer10//关闭倒计时SENDMSG1【拍卖终止】本次拍卖由GM手动终止,无成交者!

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

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

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

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

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

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

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

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

三、脚本适配与调试要点

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

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

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

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

四、补充优化(可选)

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

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

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