bluem2引擎登录器官网 > 引擎登录器 > 引擎免费下载 > 【最新发布】BLUE引擎SQL版21.05.25装备来源、大背包正式版下载

【最新发布】BLUE引擎SQL版21.05.25装备来源、大背包正式版下载

【最新发布】BLUE引擎SQL版21.05.25装备来源、大背包正式版下载
版本迭代更新,最新版引擎包前往群共享下载:

★AC封挂技术交流群★ 点击一键加群 Blue引擎AC封挂技术交流群

BLUE引擎+登录器+网关+微端全部免费开放,无任何限制可商业开区。

“稳定 安全 高效”BLUE引擎,值得信赖!


本站新手视频教程,常见问题解答: https://www.bluem2.cn

本站登录器配置+微端配置教程: https://www.bluem2.cn

蓝海编辑器、变量查询、工具: https://www.bluem2.cn

AC封挂网关: https://www.bluem2.cc

BLUE引擎专用服务器: https://www.2idc.cc
 
蓝海科技IDC: https://www.2idc.cc

引擎激活码:RDY64-5XXM8-J7THW-MMVUT
 
登录网关通用激活码:BSGKA-DCR3B-H4SAU-FBH2F
 
游戏网关通用激活码:SFCZB-AAX3C-A8UN5-SHL63
 
DBC升级转换SQL数据库视频教程:
https://cloud.189.cn/t/QN3yu2zQrAja (访问码:b2dh)
https://pan.baidu.com/s/1z2--fJ5wBFan0J76s11rGw?pwd=mlf1 (提取码:mlf1)
 
BLUE引擎新登录器及列表防劫持配置教程:
https://cloud.189.cn/t/63M3E3ueyaiq (访问码:sb7h)
https://pan.baidu.com/s/1dGESjA19RTgE7ntdOVoofQ?pwd=2es2(提取码:2es2)
https://www.bilibili.com/video/BV1G5411172s/  B站在线观看(记得切换1080P高清模式)
 
SQL引擎常见问题FAQ
https://docs.qq.com/doc/DTUlCcWV2UVFFcnVN
 
21.05.22-19后的新引擎,宝石镶嵌及自定义UI升级教程,进入 Www.BiueM2.Com 搜索宝石查看。
 
bluem2老新引擎升级,真人假人数据升级教程。
https://www.bluem2.cn/thread-681-1-1.html
 
一些ID登记服务器的个例特殊问题处理解决办法。
https://www.bluem2.cn/thread-728-1-1.html
 
blue引擎05.24大背包版本升级到05.25装备来源版本简易教程。
https://www.bluem2.cn/thread-722-1-1.html
 
 
!注意21.05.22-16之后的引擎,登录器不支持老的列表形式。防劫持新列表配置查看上方视频教程。
!如需老列表形式,请使用诸如1129 0129 0611 0522-15-1等正式版引擎登录器。
!微信验证码功能因使用外部文本,当文本达到一定体积(1M以上),会严重影响服务器性能,建议优化思路或者使用两步验证功能替换
!请注意,从2021年开始的程序版本,不再支持windows XP、2003及以下的操作系统
!注意21.05.22-03版及之前的版本,NPC变量用在不合适的字段会导致引擎报错问题,请及时更新。
!不要在游戏服务器上安装搜狗输入法,影响服务器的稳定性
!推荐客户及时升级05.23-18之后的新引擎。
!0524-09以后引擎宝箱使用权重算法,物品几率设置为0则为展示品不可获取,物品最大几率支持到亿亿,物品几率设置得越大越容易获得!!!
!微信验证码功能因使用外部文本,当文本达到一定体积(1M以上),会严重影响服务器性能,建议优化思路或者使用两步验证功能替换
!请注意,从2021年开始的程序版本,不再支持windows XP、2003及以下的操作系统
!注意2021.0522.03版及之前的版本,NPC变量用在不合适的字段会导致引擎报错问题,请及时更新。
!不要在游戏服务器上安装搜狗输入法,影响服务器的稳定性
!注意:启用物品来源的客户建议尽快升级到21.05.25后引擎,以避免各类原因导致的物品ID冲突或错误。升级请仔细查阅 ServerID登记服务器使用说明 及 合区工具注意事项。升级到21.05.25需要拓展角色数据库支持64位物品ID,详情可前往论坛 www.bluem2.cn查看。
 
 
2021/5/25 全套配套
---------------------------------------------------------------------------
M2
【引擎版本0525-01】
  物品ID支持64位,解决物品ID因各种原因出现重复问题!
    要保持多区物品ID唯一,须保证同时运行中的游戏区的服务器ID不相同!
    服务器ID即!setup.txt中的ServerID,可在启动器设置,支持范围在0~510之间。
    引擎必须配置有效的【ServerID登记服务器】相关设置,并连接到登记服务器,否则不允许启动,可在启动器配置!
    ServerID登记服务器相关使用说明查看对应目录下的说明文本
    !setup.txt中的itemNumber在本次更新后已经废弃。
 
  增加物品ID相关变量:
    $ITEMID(n)Json // n是物品ID,返回一个json对象如:{"DateTime":"2022-11-12T22:33:44","ServerID":123,"Sequence":456}
    $ITEMID(n)Sequence // 返回物品产生的序列号
    $ITEMID(n)ServerID // 返回物品产生的服务器ID
    $ITEMID(n)ISO8601 // 返回物品产生的日期时间
    $ITEMID(n)UNIXTIME // 返回物品产生的Unix时间戳
 
  修改MagicFire方式1优先针对锁定目标
  商铺可以购买、赠送更多数量的物品
  优化sqlite3性能
  
【引擎版本0525-01-1】
  扩展地图参数:SECRET(31|固定角色名|衣服外观|武器外观|衣服外观特效|武器外观特效)
 
【引擎版本0525-02】
  修补套装激活时的光效
  英雄会检测十步一杀需要的MP量
  修正上版展示品缓存提示错误问题
 
【引擎版本0525-02-1】
  修正因改为64位物品ID可能导致对话框的物品ID获取错误问题
  增加变量<$DLGITEMID>,获取对话框的物品ID // 由于P/M...等整数变量为32位,对于GetDlgItemID不足以赋予物品ID!可改用为字符串型的S变量,或者直接使用<$DLGITEMID>
 
【引擎版本0525-03】
  修正@PickupItem可能会出现掉落怪物记录错误问题
 
【引擎版本0525-03-1】
  PetPickupItemRange设置不同数值会刷新视觉,所以不要频繁切换
  完善NPC参数的预分析逻辑(类似<COLOR=...<$变量>>)
  增加NPC命令:MAIN_FUNC_BTN_TIPS 序号 鼠标提示 // 设置主界面部件的鼠标tips,不要频繁使用,配套客户端更新
  允许毒、符、魔血石类物品持久为0时不消失
 
【引擎版本0525-04】
  修正SetAbility 45,10点以下为减速度,10点以上为加速度
  NPC命令TakeOff增加取下触发(注意防止死循环)
  改名时如果检测在线角色名占用,会触发[@chgname_fail_name_used_0],<$PARAM(0)>等于"[英雄] "是英雄触发,为空是人物触发 // 注:[@chgname_fail_name_used]是通过DBS检测
  去掉SetItemDesc的当“描述”为空时将删除对应物品ID的描述功能,防止重复设置一个物品属性造成不刷新问题!
 
 
DBS
【引擎版本0525-01】
  64位物品ID适配
  优化sqlite3性能
 
 
游戏网关
【引擎版本0525-01】
  64位物品ID适配
 
【引擎版本0525-03】
  1.76性能兼容性优化
 
登录器
  配套更新
 
 
客户端
【引擎版本0525-01】
  64位物品ID适配
  购买商店重叠物品默认为最大数量
  提高游戏声音的响应速度
  商铺可以购买、赠送更多数量的物品
 
【引擎版本0525-03-1】
  <PIC=...>附带有效的LABEL才可以点击
  配套支持MAIN_FUNC_BTN_TIPS命令
  血石持久为0时显示红色
 
【引擎版本0525-04】
  OK框跟随窗口右下角
 
 
其他
【引擎版本0525-01】
  数据工具增加64位物品ID的转换支持,转换前注意填写正确的区号,提供变更ID文件目录
  数据工具弃用物品ID合并变更功能,已经不需要
  增加ServerID登记服务器,必要程序,查看更新包【ServerID登记服务器】里的相关说明!
  控制台配置向导会自动配置可用的服务器ID
 
 
 
 
2021/5/24 全套配套
------------------------------------------------------------------------
M2
【引擎版本0524-07】 AC功能支持 大背包
  加强稳定性防止出错,优化性能
  摊位名称不过滤空格
  修正摊位名称过滤提示不正确问题
  !修正01版行会成员退出未更新在线列表导致出错问题,请放弃20210524.01版本
  
  灵气相关NPC命令支持42亿操作
  增加简单的爆率规则检测,错误会出警告提示
  修正近期优化导致的魔血石瞬间用完问题
  完善随机瞬移逻辑
  完善DropItemMap命令的逻辑
  增加出生地图点、应急地图点、红名地图点无效的警告提示
  更严格的物品使用逻辑,防止出错(需要配套客户端更新)
  客户端或使用NPC命令切换时装时触发QF的[@SwitchFashion],$PARAM(0)=0隐藏/1外显,$PARAM(1)=0人物/1英雄
 
  合击也支持技能触发
  改进普通下属超远飞回主人身边逻辑
  新增二进制位方式的攻击过滤掩码变量:$ATTACKFILTERMASK0~31 // <$ATTACKFILTERMASK8> 将获取掩码第8位的值(0/1)
  ChangeAttackFilterMask命令支持二进制写法: ChangeAttackFilterMask 位(0~31) 开关(0/1) // ChangeAttackFilterMask 8 1 等效于 ChangeAttackFilterMask = 256,低0~7位暂时保留,不要使用
  !QMapEvent的[@OnMapChanging]改为[@LeaveMap],例:SendMsg 7 "是否英雄:<$PARAM(0)>,原地图:<$PARAM(1)>,即将进入地图:<$PARAM(2)>" // 支持下线和切图触发,<$PARAM(2)>空时表示下线,非空表示切图
  !QMapEvent的[@OnMapChanged ]改为[@EnterMap],例:SendMsg 7 "是否英雄:<$PARAM(0)>,原地图:<$PARAM(1)>,已经进入地图:<$PARAM(2)>" // 支持上线和切图触发,<$PARAM(1)>空时表示上线,非空表示切图
  增加NPC检测命令:CheckApprFilter 位置(0~7) 开关(隐藏0/显示1) // 检测某个外观是否开启显示,位置信息参考ChangeApprFilters
  增加地图参数:MonAttackFilterMaskMethod(1~3),双方都带掩码情况下,1怪物不能攻击掩码匹配的目标,2怪物只能攻击掩码匹配的目标(默认),3怪物不能攻击带有攻击掩码的目标;如果设置了有效参数,将优先于!setup.txt的monAttackFilterMaskMethod设置
  增加地图参数:HumAttackFilterMaskMethod(1~3|1~3),双方都带攻击过滤掩码情况下,攻击者是人物,以下9种方式分别攻击有效: // 注:人物包含下属
    1|1掩码不匹配或目标是怪物  1|2掩码不匹配或目标是人物  1|3掩码不匹配生物
    2|1掩码匹配并且目标是人物  2|2掩码匹配并且目标是怪物  2|3掩码匹配的生物(默认) // 跟第1行情况相反
    3|1目标是怪物(忽略掩码)  3|2目标是人物(忽略掩码)  3|3所有攻击无效
 
  增加简单的伤害统计功能:
    怪物数据表增加“统计ID”字段:StatId,StatId在1~10000之间是个人伤害统计,10001~20000是行会伤害统计,设置了StatID的怪物会自动统计伤害,如果某个统计24小时内不活跃,会自动重置
    统计相关的变量,每秒输出伤害:<$STAT(统计ID).DPS>,输出伤害总量:<$STAT(统计ID).TOTAL>
    增加NPC命令:NewStat 统计ID // 创建一个自定的统计信息
    增加NPC命令:Stat 统计ID 数字 // 针对指定的“统计ID”进行手动统计
    增加NPC命令:ResetStat 统计ID all(可选) // 重置统计信息,参数2为空重置执行者所属的统计信息,参数2为“all”则重置该统计ID下所有的统计信息
    增加NPC命令:ExportStat 统计ID 导出数量 导出模式(STR/JSON) 排序(0=DPS升序/1=DPS降序/2=总伤害升序/3=总伤害降序) // 导出模式为STR将导出统计信息到<$CALCRESULT>中,格式:数量,角色名1|DPS1|伤害值1,角色名2|DPS2|伤害值2...,模式为JSON时将导出到Key为“STAT_统计ID”的JSON中
  带圆括号的动态变量支持内嵌固定变量写法,例如:<$STAT($TARINFO_STATID).DPS>,其中$TARINFO_STATID是固定变量,不支持类似$STR(M1)的动态变量
  攻击触发增加伤害值变量:$ATTINFO_DAMAGE,被攻击者StatID:$TARINFO_STATID
 
  修正上个版本[@UnderAttack]失效问题
  加强英雄对目标的锁定
  十步一杀界面增加距离调节
 
  QM增加加载人物数据触发字段[@LoadData]和保存数据触发字段[@SaveData],不支持英雄,单纯用于数据存于操作,最好别用于其他用途,也不要在这两个字段写一些繁重的脚本
  添加HASH系列NPC命令,参考附件:HASH系列NPC命令.txt
  更新合区工具支持合并Hash保存的数据
  [@StdModeFuncXX]中新增<$PARAM(1)>物品名,<$PARAM(2)>AniCount,<$PARAM(2)>Reserved
    修改Reserved=255的为独占类型,使用后不消失不减少持久,注意如果现有用到Reserved=255的物品请改到其他数字
    Reserved=99时执行的是[@StdModeFunc+AniCount],一直如此
 
  本次更新(07版)支持大背包(仅限AC版),需要使用【数据工具】转换数据,全套配套更新
 
【引擎版本0524-08】
  !修正清理背包过期物品可能导致错误问题
  !修正全身宝石等级的技能威力重复叠加问题
 
【引擎版本0524-08-2】
  修正上版NOTALLOWUSEITEMS物品带圆括号失效问题
 
【引擎版本0524-09】 AC功能更新装备相关功能 装备评级、装备对比、LOGO徽标、装备指派名称 以及怪物称号功能
  优化队列性能
  防止在[@OnInlayingGemstone]字段中删除背包物品导致镶嵌流程被扰乱、破坏
  !宝箱使用权重算法,物品几率设置为0则为展示品不可获取,物品最大几率支持到1亿,物品几率设置得越大越容易获得!!!
 
【引擎版本0524-09-2】
 修正自从增加攻击统计后的被攻击触发变量不正确问题
 
【引擎版本0524-10】
 激活套装时只提示当前穿戴的装备套装信息
 修正MapQuest触发引起当前NPC对话框点击失效问题
 机器人脚本文件如果未变动,重新加载不重置计时
 
【引擎版本0524-10-2】
 修正上版更新导致换毒、符也触发套装特效问题
 防止自由加点计算溢出
 修正GM列表操作可能出错问题
 引擎去掉无用的商铺赠送开关(在游戏网关限制)
 
【引擎版本0524-10-3】
  修正人形怪名带""读取不到配置文件问题
  英雄死亡更容易触发[@HeroDie]
 
【引擎版本0524-11】 AC功能更新支持大血条、自定义按钮、货币转区功能
  交易重叠物品数量显示不同步问题
  人物死亡掉落记录物品(物品表的RareItem包含8)将触发QF的[@DropItem],注:死亡掉落物品$PARAM(0)=0,手动丢掉物品$PARAM(0)=1
  触发时支持的变量:<$PARAM(0)>:手动丢弃(0/1) <$PARAM(1)>:物品名 <$PARAM(2)>:LOOKS <$PARAM(3)>:掉落者名称,<$PARAM(4)>:地图名,<$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 <$PARAM(7)>:物品ID <$PARAM(8)>:掉落者RACE(人物1,英雄60)
  人形怪不消耗装备持久
  修正自更新大背包后快捷物品栏不保存状态问题
 
【引擎版本0524-12】
  修正爆率文件的检测条件不支持纯文字问题
  支持PlaySound Stop写法(原写法:PlaySound 0 0 Stop)
  <$ITEM(物品ID)>支持展示穿戴的装备
  修改%d,%s,%x,%y,%n,%m...等字符串替换定义必须小写
  添加英雄变量$H.ITEM(物品ID),用法如同$ITEM(物品ID)
  MapMove、GroupMapTing、GuildMapMove、RecallGroupMembers的第4参数,GroupMapMove的第7参数,数值大于等于2并且非99时,可以指定瞬移的随机范围
  修正对存在多个重叠物品的交易,取消交易时返回多出一个重叠物品的假象
  增加获取背包物品数量变量<$ITEMCOUNT(物品名)>和<$H.ITEMCOUNT(物品名)>
  怪物爆物限制增加时间单位选择:天、小时、分钟,默认天,清零时可选择是否输出日志
  增加设置参数:MaxAvailableEquipSetsCount // 最大生效的套装数。默认为最大穿戴装备数量,不大于100
  优化动态变量的获取
  修正一处访问无效内存bug
 
【引擎版本0524-12-2】
  stdmode=7/25类物品归类为装备,GetEquipProps可以获取到属性,注意装备属性也将变得有效!
 
【引擎版本0524-13】(发布大背包整合素材+大血条定制ui)
  1.摆摊名字14字符扩展到30字符,输入框30字符扩展到60字符(需更换cui.cfg)
  2.英雄/人物丢掉或掉落物品之前(物品表的RareItem包含8)将触发QF的[@DroppingItem] // 禁止实时HardDisk操作
    $PARAM(0)等于1000 // 死亡掉落背包物品
    $PARAM(0)等于2000 // 手动丢弃背包物品
    $PARAM(0)在0~16之间 // 死亡掉落身上装备的位置
    <$PARAM(1)>:物品名,<$PARAM(2)>:LOOKS,<$PARAM(3)>:触发人名称,<$PARAM(4)>:地图名,<$PARAM(5)>:X坐标,<$PARAM(6)>:Y坐标,<$PARAM(7)>:物品ID,<$PARAM(8)>:掉落者RACE(人物1,英雄60)
    $PARAM(9)是否装备(0/1)
    其他$PARAM(XX)参数同[@DropItem]
    例:
    [@DroppingItem] // 如果不需要此功能删除掉QF的[@DroppingItem]字段即可
    #if
    IsAdmin
    #act
    ; 阻止物品丢弃或掉落,默认允许掉落
    Approve 0
 
  3.NPC商店买/卖商品之前(物品表的RareItem包含32)将触发QF的[@DealingGoods]
    $PARAM(0)=0/1 // 0购买物品,1出售物品
    <$PARAM(1)>:物品名,<$PARAM(2)>:LOOKS,<$PARAM(3)>:触发人名称,<$PARAM(4)>:地图名,<$PARAM(5)>:X坐标,<$PARAM(6)>:Y坐标,<$PARAM(7)>:物品ID
    $PARAM(8) // 价格
    $PARAM(9) // NPC商店名称
    其他$PARAM(XX)参数同[@DropItem]
    例:
    [@DealingGoods] // 如果不需要此功能删除掉QF的[@DealingGoods]字段即可
    #if
    CompVal <$PARAM(1)> = 开天 str
    #act
    ; 阻止操作
    Approve 0
 
  4.仓库存/取物品之前(物品表的RareItem包含64)将触发QF的[@StorageItem]
    $PARAM(0)=0/1 // 0存储物品,1取回物品
    <$PARAM(1)>:物品名,<$PARAM(2)>:LOOKS,<$PARAM(3)>:触发人名称,<$PARAM(4)>:地图名,<$PARAM(5)>:X坐标,<$PARAM(6)>:Y坐标,<$PARAM(7)>:物品ID
    其他$PARAM(XX)参数同[@DropItem]
    例:
    [@StorageItem] // 如果不需要此功能删除掉QF的[@StorageItem]字段即可
    #if
    IsAdmin
    #act
    ; 阻止操作
    Approve 0
 
    SQL引擎的极品爆出提示和物品相关触发在物品数据库字段修改,蓝海编辑器打开显示中文,极品提示字段(RareItem)
    极品提示 细分:1=怪物掉落通知 2=拾取触发 4=商铺购买通知 8=人物死亡掉落触发 16=队伍拾取通知,32=商店买卖触发,64=仓库存取触发,要开启多项,将前面的值相加即可,全部开启相加为127
 
【引擎版本0524-14】
 UpgradeItem等NPC命令将刷新个人属性
  修正首次攻城部分沙城相关NPC命令可能出错的问题
  !setup增加野蛮冲撞间隔时间参数:RushRushTime=3(默认3秒,至多120秒),游戏网关(AC网关8.9.5.5-1以后)、客户端必须配套!
  !setup增加血魂一击(法)威力比率:ssPowerRate_116=100(默认100),血魂一击(道)威力比率:ssPowerRate_117=100(默认100),注:技能威力通常可以通过Skill表调节
  删除技能时也会清理客户端残存技能效果
  增加获取地图怪物数量的NPC命令:GetMapMonCnt 地图名 怪物名1|怪物名2|怪物名3... 返回怪物数量的变量1|变量2|变量3...,例:
    GetMapMonCnt d605 黑色恶蛆|蜈蚣|邪恶钳虫 M_黑色恶蛆|M_蜈蚣|M_邪恶钳虫
    SendMsg 6 黑色恶蛆:<$STR(M_黑色恶蛆)>,蜈蚣:<$STR(M_蜈蚣)>,邪恶钳虫:<$STR(M_邪恶钳虫)>
 
  增加变更商人NPC名称的NPC命令:ChangeMerchantName 地图名 X Y 新名称 S_返回原名称(可选),例:
    ChangeMerchantName 3 335 335 新NPC名称NPC描述 S_原名
 
  增加变更商人NPC存活时间的NPC命令:ChangeMerchantTTL 地图名 X Y 存活时间(秒),例:
    ChangeMerchantTTL 3 335 335 30 // 30秒后消失,消失后使用“@reloadnpc all”(@重读商人 ALL)命令会重新刷出
 
  扩展NPC命令:MobNpc第9参数为存活时间,到期将自动消失,默认0不自动消失
  扩展Merchant.txt配置格式:第13参数为存活时间,到期将自动消失,默认0不自动消失
 
  扩展SetAbility的ID到599,其中0~499为个人ID,500~599为全局ID,不支持特效,可以配合Hash命令、[@OnStart]、[@OnStop]存档!
  扩展SetAbility cleanup 1,1表示清理“全局”ID;SetAbility cleanup 0(可不写) 则表示清理所有“个人”ID
  扩展SetAbility ID 0 -1,秒数为-1时表示暂停或恢复倒计时,暂停将触发QF的[@SuspendAbility_ID],恢复将触发QF的[@ResumeAbility_ID],
    $PARAM(0)=0玩家触发,1英雄触发(执行脚本主体仍然是英雄主人),使用SetAbility调整时间或数值也会从暂停中恢复运行!
  增加获取SetAbility的存活时间变量:$ABILTTL0~599,$H.ABILTTL0~599,值为0表示不存在,小于0表示暂停中的剩余时间,大于0表示运行中的剩余时间 // 注:SetAbility可用作高效的倒计时触发系统
  增加客户端解析变量:<ACD=ID>,用于解析SetAbility的剩余时间,例:
    #say
    ; 其中的45是SetAbility的ID,需配套更新!
    攻速有效剩余时间:<ACD=45{ax=66,ay=0}>
    #act
    SendMsg 6 攻速有效剩余时间:<ACD=45{ax=66,ay=0}>
 
关于ACD 可以用于0-499的个人变量和500-599的全局变量【全局变量用发类似G H变量,并加强带时间,执行一次后所有玩家下线上线都可以看到ACD时间,服务器重起后消失】
比如
SetAbility 500 10  300  【意思将全局变量500 调整为10 并持续300秒后恢复为0】可用于装备掉落奖励,等级奖励,活动奖励等等
<ACD=501{C=#$00FC7C}> ID倒计时+颜色
<ACD=501{C=#$00FC7C,ax=50,ay=20}> ID倒计时+颜色+坐标
<ACD=501{C=#$00FC7C,ax=50,ay=20} HINT=注释> ID倒计时+颜色+坐标+注释
 
  增加预备合击的NPC命令:PrepareUniteHit,需英雄在线并且有合击技能,预备后如果有目标会立即释放合击
 
 
【引擎版本0524-14-2】
 支持高效的无限嵌套变量解析,同时“带圆括号的动态变量支持内嵌固定变量写法”此条更新废弃!!!
  例:
  #act
  ; 注意Mov的参数2是字符串,不是变量
  Mov S_变量1 S_变量2
  Mov S_变量2 变量值1
  Mov S6 S5
  Mov S5 S4
  Mov S4 变量值2
  SendMsg 6 "【<$STR(<$STR(S_变量1)>)>】中间【<$STR(<$STR(<$STR(S6)>)>)>】结尾"
 
  去掉GM调级命令的触发脚本[@PlayLevelUp]、[@HeroLevelUp]
 
【引擎版本0524-17】
  优化安全区识别,优化封包系统性能
  防止角色下线收摊可能出错问题
  CheckItemW支持使用位置检测是否穿戴了装备,例:CheckItemW 0~16
  优化劈星斩、雷霆一击打击感
  调整人物运行逻辑,防止出现下线后死亡情况
  添加获取普通技能等级变量:<$MAGICLEVEL(1~255)>,括号内是技能ID,返回-1表示技能未学习或其他错误
 
  添加获取地图怪物数量变量:<$MapMonCnt(地图名.怪物名)>,地图无效返回-1,怪物无效或不参与数量统计返回-2,
    注意只有怪物表的StatMask包含1,才会统计该怪物的数量,需要才加,例:
    [@KillPlayMonXXX]
    #act
    SendMsg 7 <$MapMonCnt(<$CurrentMap>.<$Param(0)>)>
 
  增加算术运算NPC命令:Calc "算术表达式" 返回结果的变量(默认是整数/后缀+1是四舍五入整数/后缀+2是浮点数),
    支持:+加、-减、*乘、/除、%取模,()将优先计算,例:
    #act
    ; 如果表达式错误将会在引擎提示,并返回空内容,下面运算的浮点数结果是:2899.82636363636
    Calc "(0.3 + (0.4 + 88 * 77) / 1.5 / 3.3 + 11.6 % 1000) * 2.1" S_结果
    SendMsg 7 默认整数:<$STR(S_结果)>,四舍五入整数:<$STR(S_结果1)>,浮点数:<$STR(S_结果2)>
 
  扩展DelayCall命令,支持5个上下文参数传输,防止参数被覆盖
    错误用例:
    [@重复执行]
    #act
    Mov S_暂存变量 xxxxx
    DelayCall 1000 @delayCall
    [@delayCall]
    #act
    ; “S_暂存变量”此时很可能已被其他用到“S_暂存变量”的操作所覆盖(特别是对于重复执行的字段),造成错误结果
    MapMove <$STR(S_暂存变量)>
 
    扩展后的正确用例:
    ; 随后<$STR(S_CONTEXT[0~4])>可以取得参数的内容,此组变量用于传输参数内容,此变量为固定变量,仅可修改[0-4]获取内容
    DelayCall 1000 @delayCall <$STR(S_暂存参数0)> 参数1 参数2 参数3 参数4 // 参数0~4为可选项,可以是任意变量
    [@delayCall]
    #act
    ; <$STR(S_CONTEXT[0])>此时等于“<$STR(S_暂存参数0)>”,<$STR(S_CONTEXT[1])>等于“参数1”...
    MapMove <$STR(S_CONTEXT[0])>
 
  优化行会成员列表
  修正在14版后GM命令ClearMon清理指定怪物失效问题
 
【引擎版本0524-17】登录器配置器更新(重连性能优化)
  StatusRate命令支持小数倍数写法 倍率为支持小数写法,如1.1,1.5,时间的单位为秒)  例:STATUSRATE 5 2.5 60
  StatusRate 类别 倍率 时间 。(0:防御力 1:魔御力 2: 攻击力 3:魔法力 4:道术  5:HP  6:MP)
 
  刺杀时非刺杀位的伤害等同于普攻
  增加英雄的怒气值变量$H.UnityEnergy
 
 
【引擎版本0524-18】
  首次自动扩展monster.db出错问题(之前版本的引擎,多次运行也可以完成自动扩展)
  修正部分技能不进行攻击触发问题(比如疾光电影)
  大幅度减少生物对消息的响应时间,提高游戏体验
  飞行类魔法伤害生效时间更准确
 
  增加NPC脚本的循环支持,#for和#~for,配对使用,循环内部支持完整的#if,#act,#elseact...流程,
    注意此次更新需要重新上传远程脚本数据,远程脚本数据和之前的版本数据也不兼容!
    配套NPC变量<$LoopCursor>,为当前循环游标变量,获取效率比自定义的游标变量稍高
    配套NPC执行命令:BreakLoop,用于中断当前的循环层,并非整个字段中断;整个字段中断仍然使用Break
    支持多层次的循环嵌套(见下发自定义技能示例)
    格式:
    #for (游标变量 = 初始值表达式, 游标变量 < 检测值, 游标变量 + 步进值) // 循环开始和声明
      ; 中间是完整的#if/#act/#elseact原脚本流程
      #if
      ; ...
      #act
      ; ..
      #elseact
      ; ...
    #~for // 循环结束标识
    ; 初始声明:即【游标变量 = 初始值表达式】部分,“游标变量”的初始化,“初始值表达式”支持单个整数或变量,或者一个运算表达式,如:游标变量 = M_SPLIT_CNT - 1(注意写法,中间留有空格)
    ; 条件声明:即【游标变量 < 检测值】部分,循环条件限制,“游标变量”小于“检测值”会继续循环,否则将终止循环,“检测值”可以是只读的整数或整数变量,比较符号支持:<小于、>大于、=等于、!不等于、?大于等于
    ; 步进声明:即【游标变量 + 步进值】部分,游标步进方法,“步进值”支持整数或整数变量,运算符号支持:+加、-减、*乘、/除、%取模、=等于
    ; “游标变量”建议实用D0~99,M0~99这种非自由定义的整数变量,效率较好
 
    例:
    [@loopex]
    ; 这里没有写#if true,不需要,程序会自动识别
    #act
    ; 分解出阿拉伯数字,剩余部分是中文汉字
    RegExSplitCapture 一1二2三3四4五5六6七7八8九 [0-9]+
    SendMsg 7 剩余字的符串数量:<$STR(M_SPLIT_CNT)>
    SendMsg 7 阿拉伯数字的数量:<$STR(M_MATCHED_CNT)>
 
    ; 循环游标D99从0初始化,至M_SPLIT_CNT - 1取S_SPLIT_STRS[n]的值,每次步进1
    #for (D99 = 0, D99 < M_SPLIT_CNT, D99 + 1)
    #if
    ; 此次更新同时会自动补全true,可以忽略
    ; true
    #act
    SendMsg 5 S_SPLIT_STRS步进1:<$STR(S_SPLIT_STRS[<$STR(D99)>]>
    #~for
 
    ; 循环游标D99从0初始化,至M_MATCHED_CNT - 1取S_SPLIT_STRS[n]的值,每次步进1
    #for (D99 = 0, D99 < M_MATCHED_CNT, D99 + 1)
    #if
    #act
    SendMsg 6 S_MATCHED_STRS步进1:<$STR(S_MATCHED_STRS[<$STR(D99)>]>
    #~for
 
    ; 倒退循环,初始D99 = M_SPLIT_CNT - 1,D99 大于等于 0,每次步退1
    #for (D99 = M_SPLIT_CNT - 1, D99 ? 0, D99 - 1)
    #if
    #act
    ; 这里使用<$LoopCursor>变量,效率稍高些,等同于<$STR(D99)>
    SendMsg 7 S_SPLIT_STRS步退1:<$STR(S_SPLIT_STRS[<$LoopCursor>]>
    #if
    ; 游标到6后中断掉循环,会跳出循环继续执行(#~for之后),如果使用Break,则后续不再执行
    CompVal <$LoopCursor> = 6
    #act
    BreakLoop
    #~for
    ; 上个循坏之外继续执行
    SendMsg 7 上个循坏之外继续执行...
  
    ; 自己定义跳出循环变量
    Mov M99 1
    ; 先定义一个无限循环(不建议,除非你熟悉脚本的写作)
    #for (D99 = 0, D99 < 1, D99 - 0)
    ; 运算M99
    #if
    #act
    Inc M99 10
    ; 循环10万次后中断循环
    #if
    Equal M99 100000
    #act
    SendMsg 7 循环中断于<$STR(M99)>...
    BreakLoop
    #~for
    #if
    #act
    SendMsg 7 循环结束<$STR(M99)>...
 
  增加NPC脚本的区间选择支持,#case和#~case,配对使用,内部支持的#if,#act,#elseact...流程,仅单层
    格式和示例:
    [@TestCase]
    #act
    ; 产生一个0~99之间的随机数字
    SetRandomNO 100
    Mov M99 <$RANDOMNO>
    
    #case (M99) // case开始,括号里的声明仅一个整数变量(Mxx,Dxx...等或此类自定义变量)
      #0: // 选择器常量声明,“#”开头,后面是单个数字,以“:”结束
        #if // 一个普通的#if/#act/#elseact流程
        #act
        SendMsg 5 命中:<$STR(M99)>
      #1~9: // 选择器常量声明,“#”开头,后面可以是数字区间,以“:”结束,下同
        #if
        #act
        SendMsg 5 <$STR(M99)>在1~9之间
      #10~89:
        #if
        #act
        SendMsg 5 <$STR(M99)>在10~99之间
      #86,88,91~93: // 以“,”分开多个数字区间的写法
        #if
        #act
        SendMsg 5 <$STR(M99)>在86,88,91~93之间
      #def: // 默认选择,如果上面的数字区间均未命中,则默认选择此流程;可以不写,但是都未命中则不执行任何流程
        #if
        #act
        SendMsg 5 <$STR(M99)>其他数字,默认执行此选择
    #~case // case结束标识
    注意:不允许在#case里执行#for循环,但是允许在#for里包含#case
    注意:数字区间禁止重叠,如果重叠加载NPC脚本时会提示,同时重叠的数字区间将失效!
 
  攻击触发里增加目标坐标变量:<$TARINFO_CX>,<$TARINFO_CY>
  技能触发[@MagSelfFuncXX]是,<$PARAM(1)>是目标X坐标,<$PARAM(2)>是目标Y坐标
  增加释放魔法NPC命令:MagicFire 1技能ID 2等级(0~15) 3显示技能效果(0/1) 4方式(-2链式 -1溅射 0自己,1当前目标,自定义坐标X) 5自定义坐标Y[可选] 6技能延迟(毫秒)[可选] 7自定义坐标强显效果(0/1)
    注:支持普通魔法技能和合击技能,不包含战士技能,不支持技能触发,不支持攻击触发,无举手动作,需配套客户端更新!
      当参数4为-1时,参数5为溅射技能半径,建议使用T.MagicFire方式
      当参数4为-2时,参数5为链式技能半径,建议使用T.MagicFire方式
      当使用自定义坐标时,X和Y支持批量方式,如:11|22|33 44|55|56
      当自定义坐标有效且参数7不为0是,将不检测目标有效性,强制显示技能效果
    例1:
    [@attack]
    #act
    SetRandomNO 60 65
    #if
    CompVal <$ATTINFO_ISHERO> = 1
    #act
    h.MagicFire <$RANDOMNO> 5 1 1
    #elseact
    MagicFire 13 11 1 1
    MagicFire <$RANDOMNO> 15 1 1
 
    例2:
    [@MagSelfFunc11]
    #act
    ; 暂存技能ID
    Mov M97 11
    goto @CustomMagic
    
    [@MagSelfFunc13]
    #act
    ; 暂存技能ID
    Mov M97 13
    goto @CustomMagic
    
    [@CustomMagic]
    #act
    ; 存放XY坐标组,使用“|”间隔
    Mov S98 ""
    Mov S99 ""
 
    ; 多层循环,M0/M1分别从-2至+2,构成一个5x5的攻击范围方格
    #for (M0 = -2, M0 < 3, M0 + 1)
      #for (M1 = -2, M1 < 3, M1 + 1)
        #if(1)
        ; 过滤掉中间的重合点
        CompVal <$STR(M0)> ! 0
        CompVal <$STR(M1)> ! 0
        #act
        ; 将计算得出24个坐标放置在S98和S99
        Calc "<$PARAM(1)>+0<$STR(M0)>" M98
        Calc "<$PARAM(2)>+0<$STR(M1)>" M99
        Inc S98 <$STR(M98)>|
        Inc S99 <$STR(M99)>|
      #~for
    #~for
    
    #if
    CompVal <$PARAM(0)> = 0
    #act
    MagicFire <$STR(M97)> <$MAGICLEVEL(<$STR(M97)>)> 1 <$STR(S98)> <$STR(S99)> 500 1
    #elseact
    h.MagicFire <$STR(M97)> <$MAGICLEVEL(<$STR(M97)>)> 1 <$STR(S98)> <$STR(S99)> 450 1
    
    例3:
    [@Attack]
    #act
    Mov M99 <$ATTINFO_SKILLID>
    #case (M99)
      #1, 5, 13, 104, 105, 107~110:
        #if
        CompVal <$ATTINFO_ISHERO> = 1
        #act
        ; 以怪物为中心发出溅射技能
        T.MagicFire <$ATTINFO_SKILLID> <$H.MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -1 3
        ; 以怪物为主逐次发出链式技能
        ; T.MagicFire <$ATTINFO_SKILLID> <$H.MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -2 4
        #elseact
        T.MagicFire <$ATTINFO_SKILLID> <$MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -1 3
        ; T.MagicFire <$ATTINFO_SKILLID> <$MAGICLEVEL(<$ATTINFO_SKILLID>)> 1 -2 4
    #~case
 
  增加正则匹配检测NPC命令:RegExMatch 源字符 匹配表达式 // S1是需要检测的字符串,可以到https://www.jyshare.com/front-end/854/验证
    例:
    ; "1[34578]d{9}" // 手机号码
    ; "$[0-9A-Fa-f]+" // NPC说话内容里的16进制颜色
    ; 检测查源字符中是否包含有URL
    #if
    ; 检测到内容里有网址
    RegExMatch 源字符 "[a-zA-Z]+://"
    #act
    
  增加正则替换字符NPC命令:RegExReplace S1 查找表达式 替换字符 替换次数(默认1次) // 使用正则表达式方式,在S1中按“查找表达式”查找,找到后替换为“替换字符”,结果还是在S1中 // 相关资料可参考https://www.runoob.com/regexp/regexp-tutorial.html
    见下面例子
 
  增加正则分解捕获NPC命令:RegExSplitCapture 源字符 查找表达式
    匹配的字符串数量在:<$STR(M_MATCHED_CNT)>
    匹配的字符串保存在:<$STR(S_MATCHED_STRS[n]> // n是数字,在0至“<$STR(M_MATCHED_CNT)> - 1”之间
    分解后剩余的字符串数量在:<$STR(M_SPLIT_CNT)> // “分解后剩余的字符串”指不包含匹配字符串的剩余部分,比如源字符是:左中右,按表达式“中”分解后,剩余字符串是:左和右(数量2),匹配字符串是:中(数量1)
    分解后剩余的字符串保存在:<$STR(S_SPLIT_STRS[n]> // n是数字,在0至“<$STR(M_SPLIT_CNT)> - 1”之间
    例:
    #act
    ; <$STR(M_MATCHED_CNT)>将等于2
    ; <$STR(S_MATCHED_STRS[0])>将等于:123
    ; <$STR(S_MATCHED_STRS[1])>将等于:456
    ; <$STR(M_SPLIT_CNT)>将等于3
    ; <$STR(S_SPLIT_STRS[0])>将等于:左
    ; <$STR(S_SPLIT_STRS[1])>将等于:中
    ; <$STR(S_SPLIT_STRS[2])>将等于:右
    RegExSplitCapture 左123中456右 [0-9]+
    
 
  item数据表中的物品,RareItem字段包含128才可以设置物品描述,在出产时将触发QF的[@ProduceItem],其中:
  不要大量设置物品的RareItem包含128,防止系统压力过大!
    $PARAM(0) // 来源
    $PARAM(1) // 物品ID
    $PARAM(2) // 时间
    $PARAM(3) // 物品名
    $PARAM(4) // 地图
    $PARAM(5) // 出产者
    $PARAM(6) // 物主
    $PARAM(7) // 是否装备类物品(0/1)
    $PARAM(8) // 物品的looks
  增加设置物品描述NPC命令:SetItemDesc 物品ID 描述 0前缀/1中间/2后缀 // 不支持重叠物品!当“描述”为空时将删除对应物品ID的描述;需要客户端配套,仅AC客户端支持该功能!
  增加设置物品属性NPC命令:SetEquipProp 物品ID 属性类型(1~31) 属性值 过期秒数(可选,默认-1永久,大于0为过期秒数) @过期触发(可选) // 类型对应的属性参考鉴定属性,过期触发QF的[@过期触发]
    例:
    ; QM
    [@OnStart]
    #act
    ; 服务器启动时,加载物品描述数据并设置后台自动保存
    ; 注意“H_ItemPreDesc”(前缀)、“H_ItemMidDesc”(中间)、“H_ItemSufDesc”(后缀)为系统保留标识,请勿占用
    ; 注意引擎开启后,不要去读写下列数据文件,防止文件占用冲突导致存取失败
    Hash H_ItemPreDesc Load ..ItemDataItemPreDesc.csv
    Hash H_ItemPreDesc BGSave ..ItemDataItemPreDesc.csv
    Hash H_ItemMidDesc Load ..ItemDataItemMidDesc.csv
    Hash H_ItemMidDesc BGSave ..ItemDataItemMidDesc.csv
    Hash H_ItemSufDesc Load ..ItemDataItemSufDesc.csv
    Hash H_ItemSufDesc BGSave ..ItemDataItemSufDesc.csv
 
    ; 服务器启动时,加载装备属性数据并设置后台自动保存
    ; 注意“H_ItemProp_1~31”为系统保留标识,请勿占用
    ; 注意引擎开启后,不要去读写下列数据文件,防止文件占用冲突导致存取失败
    #for (M_cur = 1, M_cur < 32, M_cur + 1)
    #if
    #act
    ; <$STR(M_cur)>等同于<$LoopCursor>
    Hash H_ItemProp_<$STR(M_cur)> Load ..ItemDataItemProp_<$STR(M_cur)>.csv
    Hash H_ItemProp_<$LoopCursor> BGSave ..ItemDataItemProp_<$LoopCursor>.csv
    #~for
 
    ; 脚本示例
    [@ProduceItem]
    #act
    ; 装备名称下加几个星星
    SetItemDesc <$PARAM(1)> "<u~|I=754><u~|I=754><u~|I=754><u~|I=754><u~|I=754><u~|I=754>" 0
    
    ; 设置来源
    ; 注意物品的描述文字里不要带逗号“,”,消耗品不建议添加物品描述
    ; <字符串|c=clRed>,“字符串”是红色,没有在尖括号内的字符为普通白色
    ; <u~magic5|I=0 N=8 X=70 Y=90 W=60 H=140 F=160>,调用magic5.wzl索引位置0的图片(magic5不写默认为ui1),可选项:N=帧数,X=偏移X,Y=偏移Y,W=指定宽度,H=指定高度,F=帧间隔(默认125毫秒,N>1有效)
    ; 类似上面的图片,可以手动编辑一个静态表,物品名做键,值则是对应的图片数据,在服务器启动时实用Hash加载,之后在脚本中根据名字来快速取得应用数据
    ; FormatStr "<u~magic5|I=0 N=8 X=70 Y=90 W=60 H=140 F=160>来源:<%s|c=clRed>地图:<%s|c=$4AD663>产者:<%s|c=$E9A000><物主:|c=clSkyBlue><%s|c=$5CF4FF><时间:%s|c=clLime>" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>
    FormatStr "来源:<%s|c=clRed>地图:<%s|c=$4AD663>产者:<%s|c=$E9A000><物主:|c=clSkyBlue><%s|c=$5CF4FF><时间:%s|c=clLime>" <$PARAM(0)> <$PARAM(4)> <$PARAM(5)> <$PARAM(6)> <$PARAM(2)>
    SetItemDesc <$PARAM(1)> <$CALCRESULT> 2
 
    #if
    ; 判断是否是装备类
    CompVal <$PARAM(7)> ! 1
    #act
    break
 
    #if
    #act
    ; 设置装备攻击、魔法、道术都+1万,且为不同的过期时间
    SetEquipProp <$PARAM(1)> 1 10000 10 @属性过期_AC
    SetEquipProp <$PARAM(1)> 2 10000 15 @属性过期_MC
    SetEquipProp <$PARAM(1)> 3 10000 20 @属性过期_SC
    ; 设置属性描述
    ; 每种属性的倒计时格式:<T~装备ID|P=1~31>,其中:T~装备ID,P=是装备属性类型,仅用于物品描述中
    FormatStr "%-13s <剩余|c=clLime>%s%-13s <剩余|c=clLime>%s%-13s <剩余|c=clLime>%s" "攻击 10000" "<T~<$PARAM(1)>|P=1 c=clLime>" "魔法 10000" "<T~<$PARAM(1)>|P=2 c=clLime>" "道术 10000" "<T~<$PARAM(1)>|P=3 c=clLime>"
    ; 设置此物品在中间位置的属性描述
    SetItemDesc <$PARAM(1)> <$CALCRESULT> 1
 
    ; QF
    [@属性过期_AC]
    #act
    ; 先获取物品属性描述到S_tmp
    Mov S_tmp <$HASH(H_ItemMidDesc)<$PARAM(1)>>
    ; 然后清理属性
    SetEquipProp <$PARAM(1)> 1 ""
    ; 去掉对应的属性描述 // 比如去掉:“攻击 12345  <剩余|c=clLime><T~54321>|P=1 c=clLime>”
    RegExReplace S_tmp "攻击 [0-9]+.*?" ""
    ; 更新修改后的属性描述
    SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1
    
    [@属性过期_MC]
    #act
    Mov S_tmp <$HASH(H_ItemSufDesc)<$PARAM(1)>>
    SetEquipProp <$PARAM(1)> 2 ""
    RegExReplace S_tmp "魔法 [0-9]+.*?" ""
    SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1
    
    [@属性过期_SC]
    #act
    Mov S_tmp <$HASH(H_ItemSufDesc)<$PARAM(1)>>
    SetEquipProp <$PARAM(1)> 3 ""
    ; 去掉前两个汉字包含:攻击|魔法|道术...的属性描述
    RegExReplace S_tmp "(攻击|魔法|道术) [0-9]+.*?" ""
    SetItemDesc <$PARAM(1)> <$STR(S_tmp)> 1
 
 
【引擎版本0524-18-1】
  优化Hash容器的存盘时间
  优化人物读档、物品批量下发等...
  修正脚本中带有#case导致其他字段下的命令加载不全问题!
 
 
【引擎版本0524-19】
  大幅度提高远程脚本上传、下载性能
  大幅度优化Json、CheckJson命令的性能,Json命令现在较全面,使用方式也有较大变动,参考下面的说明!
  Calc命令使用传统的四舍五入
  服饰、武器的外观、翅膀特效、装备发光 支持到6.5万,全套配套更新!
  OpenBox命令的第1参数为有效宝箱名称会打开宝箱,第2参数非空可以自动转宝箱,第3参数非空可以在转完宝箱自动获取物品
  防止宝箱物品权重为0时仍然有很小几率获得问题
  修正上版下属攻击不触发问题
  修正上版镖车被攻击不反馈问题(实际有效)
  修正[@SetAbility_xx]识别英雄错误问题
  修正商铺购买重叠物品触发数量为1问题
  人物的下属会自动赋予攻击触发
  优化NPC触发参数传输
  优化NPC命令参数
 
 
【引擎版本0524-19】DBS
  修正启动失败时关闭错误
  启动会提示最大物品ID
 
 
游戏网关
  对引擎的ConvertMagic命令提供支持,防止转换技能后释放技能卡帧
  减少内存占用,优化性能
 
 
【引擎版本0524-19】游戏网关
  适配服饰、武器外观的扩展
 
 
登录器
  防止snappy32.dll被误报并优化(这是google开源的压缩算法库)
  登录器不再列出超出屏幕范围的分辨率
 
客户端
  更严格的物品使用逻辑(需要配套引擎更新)
  修正十步一杀会导致他人重新追击上次飞走目标的问题
  去掉英雄连续锁定功能(已经没有必要,因为服务器端已能稳定锁定目标)
  启用挂机时的英雄自动回收功能,见内挂保护标签页
  天地结晶的经验条偶尔出界问题
 
【引擎版本0524-12】客户端更新
  修正自更新大背包后快捷物品栏不保存状态问题
  防止切换简装导致武器的临时加速参数丢失
  补全装备套装属性的显示
 
【引擎版本0524-14】客户端更新
  <PIC=...>增加帧播放间隔时间设置,见下方的:PIC=功能扩展2
  NPC对话、聊天栏、任务栏、跑马灯、自定按钮标题,支持SetAbility的倒计时变量:<ACD=ID>
  PIC=功能扩展2:// 配置后面增加两项:绝对X,绝对Y(不参与自动换行计算)
  <PIC=items,55,1,0,0,0,8,11,22,100 LABEL=@execlab HINT=裁决> //items=wil文件名,索引,图片数,循环,透明,偏移X,偏移Y,绝对X,绝对Y(不参与自动换行计算),帧间隔(毫秒)
 
【引擎版本0524-17】客户端更新
  修正掉线一段时间后游戏无声问题
  优化劈星斩、雷霆一击打击感
  输入框支持键盘组合键:Ctrl+[Back/Delete/Left/Right]
  重构声音系统,略微调大合击声音
 
  修正编辑框光标定位问题
  修正快捷键控件文字居中问题
 
【引擎版本0524-18】客户端更新
  支持自定义物品附加描述,配套引擎更新
  物品描述的图片支持更多选项
 
【引擎版本0524-19】客户端更新
  大幅度提升Json的性能
  服饰、武器的外观、翅膀特效、装备发光 支持到6.5万,全套配套更新!
  首饰内观支持特效(stditems.xml)
 
 
其他
  优化性能
  优化微端服务器性能,增加简单命令行参数可指定参数文件
  修正合区工具未改名的文件没有复制到主区问题,佣兵角色有极小几率合并失败问题,主区合并文本不存在时未将副区文件合并过去问题
  修正合区工具对文本列表只能合并一个文件的问题
  优化微端服务器、登录器配置服务器
  修改控制台程序服务器外部IP控件的Tips
 
【引擎版本0524-18】其他更新
  合区工具支持基于Hash命令保存的物品ID数据文件
  合区工具日志搜索改用简单实用的表达式方式
  合区工具调整UI
  控制台清理支持csv、ini、json等扩展名