BlueM2引擎程序包v21.05.25.09-3版
BlueM2引擎21.05.25-09-3版全套配套引擎更新:M2方面:
物品ID支持64位,解决物品ID因各种原因出现重复问题!
要保持多区物品ID唯一,须保证同时运行中的游戏区的服务器ID不相同!
服务器ID即!setup.txt中的ServerID,可在启动器设置,支持范围在0~510之间。
引擎必须配置有效的相关设置,并连接到登记服务器,否则不允许启动,可在启动器配置!
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性能
扩展地图参数:SECRET(31|固定角色名|衣服外观|武器外观|衣服外观特效|武器外观特效)
修补套装激活时的光效
英雄会检测十步一杀需要的MP量
修正上版展示品缓存提示错误问题
修正因改为64位物品ID可能导致对话框的物品ID获取错误问题
增加变量<$DLGITEMID>,获取对话框的物品ID // 由于P/M...等整数变量为32位,对于GetDlgItemID不足以赋予物品ID!可改用为字符串型的S变量,或者直接使用<$DLGITEMID>
修正@PickupItem可能会出现掉落怪物记录错误问题
PetPickupItemRange设置不同数值会刷新视觉,所以不要频繁切换
完善NPC参数的预分析逻辑(类似<COLOR=...<$变量>>)
增加NPC命令:MAIN_FUNC_BTN_TIPS 序号 鼠标提示 // 设置主界面部件的鼠标tips,不要频繁使用,配套客户端更新
允许毒、符、魔血石类物品持久为0时不消失
修正SetAbility 45,10点以下为减速度,10点以上为加速度
NPC命令TakeOff增加取下触发(注意防止死循环)
改名时如果检测在线角色名占用,会触发[@chgname_fail_name_used_0],<$PARAM(0)>等于"[英雄] "是英雄触发,为空是人物触发 // 注:[@chgname_fail_name_used]是通过DBS检测
去掉SetItemDesc的当“描述”为空时将删除对应物品ID的描述功能,防止重复设置一个物品属性造成描述不下发刷新问题!
NPC执行者支持带“.”号,例如:<$JSON(J_UUID.CharName)V>.goto @xxx // <$JSON(J_UUID.CharName)V>是带“.”号的执行者,未支持之前用法:Mov S_Temp <$JSON(J_UUID.CharName)V>,再<$STR(S_Temp)>.goto @xxx
JSON的SortByName、SortByValue支持反序排列,参考下面说明
JSON命令补全子命令GetCountByPath、修正子命令InitArrayFromCsvFile
优化英雄换符、药粉的逻辑
QF增加复活成功的触发[@OnRevive],其中: // 只要复活成功即可触发
$PARAM(3) // 角色名
$PARAM(4) // 地图名
$PARAM(5) // X坐标
$PARAM(6) // Y坐标
$PARAM(8) // 1/60(1是人物,60是英雄)
QF增加复活成功且消化复活装备持久的触发[@OnItemDamageRevive],其中: // 复活成功且消耗了装备持久才触发
$PARAM(0) // 装备位置
$PARAM(1) // 装备名称
$PARAM(2) // looks
$PARAM(3) // 角色名
$PARAM(4) // 地图名
$PARAM(5) // X坐标
$PARAM(6) // Y坐标
$PARAM(7) // 装备ID
$PARAM(8) // 1/60(1是人物,60是英雄)
$PARAM(9) // 剩余持久(0表示装备失效或销毁-根据装备无持久是否销毁设置去判定)
修改变量:$REVIVALDURATION -> $REVIVALCD // 允许复活的倒计时
修改变量:$BATTLEMODEDURATION -> $BATTLEMODECD // 允许小退的倒计时
增加变量:$TELEPORTCD // 允许传送的倒计时,-1表示不能传送,0可以立即传送,其他正数表示n秒后可以传送
增加NPC命令:ChangeRevivalTime +/-/= 毫秒 // 修改个人每次复活间隔时间(非下次复活时间),可以使用$REVIVALCD查看可复活等待秒数
增加NPC命令:ChangeTeleportTime +/-/= 毫秒 // 修改个人每次传送间隔时间(非下次传送时间),可以使用$TELEPORTCD查看可传送等待秒数,禁止频繁使用
增加变量:$AbilMakeStoneRate // 个人石化能力几率
增加变量:$AbilMakeStoneTime // 个人石化能力时间
增加NPC命令:ChangeAbilMakeStoneRate +/-/= 几率(1~255) // 修改个人石化能力几率,数字越大石化几率“越小”
增加NPC命令:ChangeAbilMakeStoneTime +/-/= 秒数(1~59) // 修改个人石化能力时间,数字越大石化时间“越长”
英雄支持变量:$H.AbilMakeStoneRate、$H.AbilMakeStoneTime、$H.REVIVALCD
重要变更:去掉物品持久为0是否消失的总开关,改为在物品表设置,RareItem包含256则物品持久为0时属性失效但不会消失,可以用下面mysql查询语句设置:
UPDATE item SET RareItem = RareItem | 256 WHERE (StdMode IN (5,6,7,10,11,12,13,51,52,53,54,62,63,64)) OR ((StdMode >= 15) AND (StdMode <= 30)); // 掩码包含256,所有“装备”持久0不消失
UPDATE item SET RareItem = RareItem & (~256) WHERE (StdMode IN (5,6,7,10,11,12,13,51,52,53,54,62,63,64)) OR ((StdMode >= 15) AND (StdMode <= 30)); // 掩码不包含256,所有“物品”持久0时会消失
重要变更:人物、英雄的符/毒不再需要佩戴到身上,放在背包即可;也可以选择手动佩戴或者在英雄设置面板修改为完全不需要 // 必须配套更新
身上的符、毒(设置为不消失)持久为0时会自动取下
优化道士英雄近战逻辑
NPC命令GetEquipProps增加以下常规变量,允许用于非装备类物品:
<$STR(S_EQUIP[位置]_ID)> // 物品ID
<$STR(S_EQUIP[位置]_NAME)> // 物品名称
<$STR(M_EQUIP[位置]_SHAPE)> // 物品Shape
<$STR(M_EQUIP[位置]_STDMODE)> // 物品StdMode
<$STR(M_EQUIP[位置]_ANICOUNT)> // 物品AniCount
<$STR(M_EQUIP[位置]_LOOKS)> // 物品Looks
<$STR(M_EQUIP[位置]_COUNT)> // 物品数量(非重叠物品为1)
<$STR(M_EQUIP[位置]_OVERLAP_TYPE)> // 重叠物品类型(0非重叠,1或2是重叠物品)
扩展NPC命令:GetEquipProps 位置 @自定义成功跳转字段[可选] // 如果参数2为空则在成功获取属性后跳转到默认的[@OnGetEquipProps]
注意必须配合[@OnGetEquipProps]或[@自定义成功跳转字段]来读取属性,因为物品无效时不会触发字段、调用的EQUIP系列变量可能是上次的!
非装备类物品也可以触发此字段,但有效属性仅限于上面提及的几个通用属性!该字段下的<$PARAM(n)>变量参考之前说明。
NPC说话内容支持物品框,格式: // 仅AC支持此功能
<ITEMBOX=0~19,prguse,1241,1,0,0,0,8,11,22,100 LABEL=@ItemBox0 HINT=请放上装备>,其中:
0~19 // 是物品框序号,范围0~19
prguse // wil文件名
1241 // wil图片索引
1,0,0 // 图片数,是否循环,是否透明
0,8 // 偏移X,偏移Y
55,66 // 绝对X,绝对Y(不参与自动换行计算)
100 // 帧间隔(毫秒)
@ItemBox0 // 放上或取下物品将触发[@ItemBox0]字段(仅限于鼠标操作,直接关闭窗口物品返回背包并不会触发)
注意:本功能需要配套更新AC游戏网关,防止部分操作被过滤!
增加变量:<$BoxItemID0~19> // 物品框0~19的物品ID,当取下物品框物品时,对应物品框的物品ID为0
增加变量:<$BoxItemName0~19> // 物品框0~19的物品名,当取下物品框物品时,对应物品框的物品名为空
增加变量:<$BoxItemCount0~19> // 物品框0~19的物品数量,当取下物品框物品时,对应物品框的物品数量为0
增加变量:<$STR(S_RemovedBoxItemID0~19)> // 移除物品框0~19的物品ID,即时变量,只能在LABEL=@ItemBox0~19里使用
增加变量:<$STR(S_RemovedBoxItemName0~19)> // 移除物品框0~19的物品名,同上
增加变量:<$STR(M_RemovedBoxItemCount0~19)> // 移除物品框0~19的物品数量,同上
以上变量可以不通过GetEquipProps而直接使用
扩展NPC命令:GetEquipProps、UpgradeItem、UpgradeItemEx支持位置20000~20019,可用于操作对应物品框0~19的物品
增加NPC命令:RetBoxItem 0~19 // 将物品框物品返回背包
例:
#SAY
ITEMBOX:<ITEMBOX=0,prguse,1241,1,0,0,0,8,055,0,100 LABEL=@itembox0 HINT=请放上装备>
ITEMBOX:<ITEMBOX=1,prguse,1241,1,0,0,0,8,111,0,100 LABEL=@itembox1 HINT=请放上回收物品>\
[@itembox0]
#if
; 是否已放上物品
CompVal <$BoxItemID0> = 0
#act
sendmsg 7 移除的物品ID:<$STR(S_RemovedBoxItemID0)>,物品名:<$STR(S_RemovedBoxItemName0)>,数量:<$STR(M_RemovedBoxItemCount0)>
#elseact
GetEquipProps 20000
[@itembox1]
#if
; 是否已放上物品
CompVal <$BoxItemID1> = 0
#act
sendmsg 7 移除的物品ID:<$STR(S_RemovedBoxItemID1)>,物品名:<$STR(S_RemovedBoxItemName1)>,数量:<$STR(M_RemovedBoxItemCount1)>
#elseact
; 取走物品
Take <$BoxItemID1> 1
[@OnGetEquipProps]
#act
; $PARAM(3)是位置
Calc "<$PARAM(3)> - 20000" M_物品框序列号
sendmsg 7 物品框<$STR(M_物品框序列号)>的物品名:<$STR(S_EQUIP[<$PARAM(3)>]_NAME)>,物品ID:<$STR(S_EQUIP[<$PARAM(3)>]_ID)>
防止SetItemDesc命令对无效物品添加描述
修正Hash子命令Clear完全清理所有数据问题
修正关闭服务器时部分机器不及时保存Hash问题
修正所有NPC收税的价格bug
优化游戏数据日志的记录
启动时增加读取数据表出错的提示
DBS
64位物品ID适配
优化sqlite3性能
游戏网关
64位物品ID适配
适配物品框功能
适配人物的符/毒不再需要佩戴到身上的更新,必须配套使用
登录器
配套更新
客户端
64位物品ID适配
购买商店重叠物品默认为最大数量
提高游戏声音的响应速度
商铺可以购买、赠送更多数量的物品
<PIC=...>附带有效的LABEL才可以点击
配套支持MAIN_FUNC_BTN_TIPS命令
血石持久为0时显示红色
OK框跟随窗口右下角
物品Tips增加拆分快捷键提示
修正个别情况下拆分重叠物品假象问题
快捷物品框可以合并、拆分重叠物品
修正从背包拆分物品的窗口焦点问题
自动换上有持久的符、毒
人物符/毒不再需要佩戴到身上;当不使用智能换毒时会优先使用背包前面位置的药粉来释放技能
增加英雄装备、英雄技能界面的自定义快捷键设置
引擎设置为免毒时客户端会自动换毒
其他
数据工具增加64位物品ID的转换支持,转换前注意填写正确的区号,提供变更ID文件目录
数据工具弃用物品ID合并变更功能,已经不需要
增加ServerID登记服务器,必要程序,查看更新包里的相关说明!
控制台配置向导会自动配置可用的服务器ID
控制台配置向导增加读取数据表出错的提示
页:
[1]