AC专属引擎功能

货币变量转区(包服卡/签到/元宝转区)

AC封挂货币变量转区系统,支持跨服跨区数据操作,实现货币转区、包服卡、签到、字符串存储等个性化功能。

货币变量转区(包服卡/签到/元宝转区)

AC 封挂货币变量转区系统基于微信验证模块,支持跨服跨区的变量操作。数据跟随微信 ID,不会因解绑、换号、换角色、合区、换区等情况丢失,免合区数据,支持跨区跨版本跨服务器保存。

需要 8.9.5.3 以后 RunGate 游戏网关和 230904 以后微信网关。使用此功能前必须先完整安装微信验证功能。

功能概览

基于货币变量转区系统,可以实现以下功能:

  • 多种货币跨服转区(元宝、灵符等)
  • 跨服务器数据存储
  • 跨版本签到
  • 会员站包服卡
  • 跨服务器装备转区
  • 任意自定义变量持久化

变量类型

变量前缀类型说明
U数字(整数)如 U元宝、U灵符,变量名支持中文(2个中文字)或英文(4个字母),如 Uyuan
T字符串如 T元宝,变量名规则同上

自定义命令配置

在 D:\MirServer\Mir200\Envir\UserCmd.txt 中新增:

AC反挂数据返回        9
usercmd 编号不能和已有的冲突,可以用蓝海变量查询筛选核实。

脚本发送格式

数字类型(U开头)

; 格式:SendMsg 5 CMD=【AC操作游戏数据】|货币名称|操作方式|数值|流水号

; 查询数据
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|查询数据量

; 获取流水号(增加准备)
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|获取流水号|增加

; 确认增加
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|增加|<$STR(S转区AC)>|<$PARAM(2)>

; 获取流水号(减少准备)
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|获取流水号|减少

; 确认减少
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|减少|<$STR(S转区领取AC)>|<$PARAM(2)>

; 解锁账户
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|解锁流水号|成功|<$PARAM(2)>

字符串类型(T开头)

字符串储存时参数3(数值)写 0,实际内容放在参数5。

; 查询数据
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|查询数据量

; 获取流水号(增加准备)
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|获取流水号|增加

; 确认增加(参数3=0,参数5=要储存的字符串)
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|增加|0|<$PARAM(2)>|要储存的中文或英文

; 解锁账户
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|解锁流水号|成功|<$PARAM(2)>

AC 返回格式

操作完成后,AC 会调用 [@usercmd9](即 @AC反挂数据返回),返回格式如下:

查询结果

@AC反挂数据返回 查询结果 数量 * OVER 成功/失败 错误原因 变量名 微信ID

流水号查询

@AC反挂数据返回 流水号查询 16位流水号 增加/减少 OVER 成功/失败 错误原因 变量名 微信ID

增减操作结果

@AC反挂数据返回 增加/减少 16位流水号 * OVER 成功/失败 错误原因 变量名 微信ID

完整脚本示例

NPC 脚本(转区-3.txt)

#DEFINE $(最小转区金额) 1000
#DEFINE $(最大转区金额) 100000
#DEFINE $(转区手续费) 10    ; 每次转区税率百分比

[@MAIN]
#IF
ONLINELONGMIN < 2
#ACT
MESSAGEBOX 数据加载中,请两分钟后再来!
BREAK

#IF
TRUE
#ACT
SetMerchantDlgImgName
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|查询数据量

#SAY
当前微信ID:【<$STR(S微信ID)>】\
当前账户剩余:【<$STR(SAC剩余)>】元宝\
───────────────────────────\
<转区元宝/@z2>  将元宝转到微信账户,转区手续费:$(转区手续费)%\
<转入元宝/@z3>  将元宝转入当前角色,$(最小转区金额)-$(最大转区金额)元宝\

[@z2]
#IF
CheckLevelEx > 0
#ACT
MOV M42 0
Mov S转区AC
QUERYVALUE 42 1 10 @转区 请输入要转区的元宝
BREAK

[@转区]
#IF
CHECKGAMEGOLD ? <$STR(M42)>
#ACT
#ELSEACT
MESSAGEBOX 转区失败,原因:你身上的元宝不足【<$STR(M42)>】
BREAK

#IF
!SMALL M42 $(最小转区金额)
!LARGE M42 $(最大转区金额)
#ACT
; 计算手续费
MOV M手续 <$STR(M42)>
DIV M手续 100
MUL M手续 $(转区手续费)
MOV M转区 <$STR(M42)>
DEC M转区 <$STR(M手续)>
MOV M转区临时 <$STR(M42)>
Mov S转区AC <$STR(M转区)>**********
Dec S转区AC 11 1000
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|获取流水号|增加
#ELSEACT
MESSAGEBOX 错误提示:\输入不能小于[$(最小转区金额)]...\输入最大不能超过[$(最大转区金额)]...
BREAK

[@z3]
#IF
CheckLevelEx > 0
#ACT
MOV M43 0
Mov S转区领取AC
QUERYVALUE 43 1 10 @转区领取 请输入要领取的元宝
BREAK

[@转区领取]
#IF
!SMALL M43 $(最小转区金额)
!LARGE M43 $(最大转区金额)
#ACT
Mov S转区领取AC <$STR(M43)>**********
Dec S转区领取AC 11 1000
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|获取流水号|减少
#ELSEACT
MESSAGEBOX 错误提示:\输入不能小于[$(最小转区金额)]...\输入最大不能超过[$(最大转区金额)]...
BREAK

QF 回调处理(QFunction-0.txt)

[@usercmd9]
; 检测是否有微信ID参数
#IF
Compval <$PARAM(8)> = """"
#ACT
BREAK

; 检测操作失败
#IF
Compval <$PARAM(5)> = 失败
#ACT
MOV M43 0
MOV M42 0
MOV M手续 0
MOV M转区 0
Mov S转区AC
Mov S转区领取AC
MessageBox 转区失败,原因:/<$PARAM(6)>
Break

; 查询结果返回
#IF
Compval <$PARAM(1)> = 查询结果
#ACT
MOV SAC剩余 <$PARAM(2)>
MOV S微信ID <$PARAM(8)>
Break

; 数字类增加
; 检测身上元宝是否足够
#IF
CHECKGAMEGOLD < <$STR(M转区临时)>
Compval <$PARAM(3)> = 增加
Compval <$PARAM(7)> = U元宝
#ACT
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|解锁流水号|失败|<$PARAM(2)>
MessageBox 转区失败,原因:你身上的元宝不足【<$STR(M转区临时)>】
BREAK

; 确认增加:先扣元宝,再通知AC中心操作
#IF
Compval <$PARAM(7)> = U元宝
Compval <$PARAM(1)> = 流水号查询
Compval <$PARAM(3)> = 增加
CHECKGAMEGOLD ? <$STR(M转区临时)>
#ACT
GAMEGOLD - <$STR(M转区临时)>
SENDMSG 6 转区<$STR(M转区临时)>元宝,扣除手续费,实际转出<$STR(M转区)>元宝
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|增加|<$STR(S转区AC)>|<$PARAM(2)>
Break

; 数字类减少
#IF
Compval <$PARAM(7)> = U元宝
Compval <$PARAM(1)> = 流水号查询
Compval <$PARAM(3)> = 减少
#ACT
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|减少|<$STR(S转区领取AC)>|<$PARAM(2)>
Break

; 字符串增加
; T元宝 = 转入元宝标识(U元宝 = 转出/领取标识)
#IF
Compval <$PARAM(7)> = T元宝
Compval <$PARAM(1)> = 流水号查询
Compval <$PARAM(3)> = 增加
#ACT
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|增加|0|<$PARAM(2)>|<$STR(S42)>
Break

; 返回结果处理
; 减少成功 → 给玩家加元宝
#IF
Compval <$PARAM(7)> = U元宝
Compval <$PARAM(1)> = 减少
Compval <$PARAM(5)> = 成功
#ACT
GAMEGOLD + <$PARAM(3)>
MessageBox 转区成功,成功增加【<$PARAM(3)>】元宝
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|解锁流水号|成功|<$PARAM(2)>
MOV M43 0
MOV M42 0
MOV M手续 0
MOV M转区 0
Mov S转区AC
Mov S转区领取AC
Break

; 增加成功 → 提示扣除成功
#IF
Compval <$PARAM(7)> = U元宝
Compval <$PARAM(1)> = 增加
Compval <$PARAM(5)> = 成功
#ACT
MessageBox 转区成功,你的账户扣除【<$STR(M42)>】元宝,存入微信账户<$STR(M转区)>元宝
SendMsg 5 CMD=【AC操作游戏数据】|U元宝|解锁流水号|成功|<$PARAM(2)>
MOV M43 0
MOV M42 0
MOV M手续 0
MOV M转区 0
Mov S转区AC
Mov S转区领取AC
Break

; 字符串储存成功
#IF
Compval <$PARAM(7)> = T元宝
Compval <$PARAM(1)> = 增加
Compval <$PARAM(5)> = 成功
#ACT
MessageBox 储存成功,当前储存内容为【<$STR(S42)>】
SendMsg 5 CMD=【AC操作游戏数据】|T元宝|解锁流水号|成功|<$PARAM(2)>
MOV M43 0
MOV M42 0
MOV S42
Mov S转区AC
Mov S转区领取AC
Break

运行原理

  1. 玩家登录游戏 → 功能脚本主动触发 @AC反挂数据返回 进行微信端数据同步
  2. 基于唯一的微信 ID,可以脚本发送或取回相应数字/字符串数据
  3. 基本操作流程:增加 → AC 数据中心锁定账户 → 确定增加 → AC 数据中心返回增加结果 → 脚本收到结果执行解锁账户
  4. 如异常失败,3 分钟自动解锁交易

微信管理端

微信验证管理端新增转区流水界面,支持:

  • 按条件查询转区操作数据
  • 按变量名查询
  • 按指定日期查询
  • 按指定区服查询
  • 按指定微信 ID 查询

注意事项

  1. 使用此功能前必须先完整安装微信验证功能
  2. usercmd 编号(默认 9)不能和已有命令冲突
  3. M42、M43 等临时变量不能和版本已有变量冲突
  4. 数字类型变量名:U + 2 个中文或 4 个英文
  5. 字符串类型变量名:T + 2 个中文或 4 个英文
  6. 减少操作必须等微信中心通知成功后才给玩家加货币,防止漏洞

关联功能

相关阅读