GOM引擎支持通过M2Script脚本语言实现充值和拍卖行功能。脚本文件通常位于服务端的“Mir200\Envir\QuestDiary”目录下,主控逻辑集中在QFunction.txt、QManage.txt等文件中。
充值脚本的核心在于监听玩家触发的充值事件。当玩家完成支付后,服务端会接收到对应参数,例如角色名、充值金额、订单号。脚本需在QFunction.txt中定义处理段落,如[@RechargeProcess]。在此段落内,使用CHECKITEM或CHECKGOLD判断是否已发放奖励,避免重复处理。通过INC命令增加角色元宝数量,同时调用SAVEVAR将充值记录写入独立文本文件,格式为“角色名=金额|时间戳”。若需区分首充或累充,可设置HUMAN变量标记状态,并在后续登录时通过[@Login]段落校验。
拍卖行脚本依赖交互式对话与物品操作。首先在NPC配置文件(如Npc_def)中添加拍卖商人,绑定脚本入口[@AuctionMain]。界面显示当前竞拍物品、底价、加价幅度及出价人。玩家输入价格后,脚本进入[@InputInteger]段落,使用SMALL或LARGE比较输入值是否高于当前最高价。若有效,则扣除玩家对应货币(如灵符),退还上一位竞拍者资金,并更新最高价与竞拍人信息。关键变量包括NCurrentBid(当前价格)、NBidderName(竞拍者名)。拍卖结束时,通过TIMER或固定时间触发[@AuctionEnd],将物品MAIL发送给胜出者,并清空临时数据。
物品上架流程需验证玩家背包中的目标装备。使用CHECKITEM确认物品存在后,弹出输入框要求设定起拍价与保留价。脚本将物品从玩家背包移至服务端临时仓库(如ItemTemp目录),并记录物品属性、所有者、截止时间。未成交物品在流拍后自动返还。
所有脚本操作必须配合LOADVAR与SAVEVAR读写外部数据文件,确保重启后数据不丢失。变量命名应避免与系统冲突,推荐使用前缀如“Auc_”或“Pay_”。测试阶段需逐项验证充值到账、竞拍扣款、物品转移等环节,防止逻辑漏洞导致资源异常。

