gm下载站 发表于 2024-10-31 18:02:08

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]
查看完整版本: BlueM2引擎程序包v21.05.25.09-3版