Changelog
2021-05-22-2
2021-05-22 BLUE引擎更新,涉及 M2、客户端、RunGate 等模块,共 160 项功能调整与问题修复。
更新内容
M2
- 修正上个版本引擎有可能导致卡角色问题
- 严格管理地图角色坐标,防止不同步导致出错
- 修正噬魂沼泽、火龙气焰不计算套装技能威力问题
- 优化日志写入效率
- 完善内功信息和客户端的同步,客户端需要配套更新!
- 不要在脚本中#DEFINE $(XXXXX) 这种命名方式的常量,会引起冲突导致出错,建议命名方式:DEF_XXXXX
- 修正改名提示在线问题,修正改名导致幽灵角色问题
- 改名如果新名字的角色在线,也会触发@chgname_fail_name_used
- 修正启用战斗小退有可能导致出错的bug
- DataTable_HeroDB.db支持中文路径
- 防止被封包攻击导致无响应
- 修正完善IOCP下发动态缓存逻辑
- PlayEffect预增加参数,客户端需要配套!
- 装备类物品的种族、体型伤害支持在db填写生效,
需要再次使用新的HeroDBConvertor和DataTable_HeroDB.db转换HeroDB以支持新字段,
具体说明查看:DataTable_HeroDB字段说明.txt
- Sabukw.txt配置不随刷新而变更保存
- 修正02版重新加载怪物数据库会导致怪物特殊技能混乱问题
- 修正怪物权重随机掉落、ReadRandomStr权重计算模式,少计算1个随机点的问题
- 修正SetAbility 31仓库存取同步问题,补全取回禁用
- 修正SetAbility 46点不了NPC问题
- 增加SetAbility 47也将不能购买摆摊物品
- 带护身戒指也会执行攻击触发
- 重新加载参数设置不对QuestParams操作!
- 浑水摸鱼模式不屏蔽怪物名字颜色
- 挂机时只有被玩家或者玩家的随从攻击才会收英雄或小退,需要配套更新客户端!
- 地图参数:NOTALLOWUSEITEMS 允许物品带圆括号
- 解释NPC变量时<COLOR=XXX>不列入计数
- 时装护身属性等属性等同衣服的设置,不受是否外显的影响
- 英雄可以通用死亡之眼、冰霜群雨、十步一杀
- 英雄锁定目标时,下属也攻击同目标
- 修改并刷新monster表后,重新刷出的怪物属性也随之变更生效
- 原有功能补充说明:SENDMSG NN 文字 FF BB 30 @本NPC触发 // 30秒后执行@本NPC触发,注意次时间内NPC不能消失或释放
- 扩展NPC命令:ClientFeatures 1 开始或停止(0/1) 条件(all/地图/空) // 客户全开放挂机功能前提下,开始或停止客户端所有角色挂机,all=所有在线角色,地图=地图上的角色,空=当前执行角色
- 增加属性获取变量:
获取英雄忠诚度变量:$H.LOYALTY
是否有鉴定基础属性:M_EQUIP[n]_HAS_EVAL_BASE_PROPS // =0没有,>0有
是否有鉴定神秘属性:M_EQUIP[n]_HAS_EVAL_MYST_PROPS // =0没有,>0有
- 地图禁用的技能对英雄也有效
- 野蛮冲撞封锁移动特性英雄有效
- NPC命令CompVal现在支持负数,扩展第四参数:int/str/tm,指定比较类型,防止混乱,int=数字,str=字符串,tm=日期
- 修正诱惑的怪物切图后可能造成假象问题
- 修正保存沙城配置有可能出错问题
- 修正上个版本切图神秘人未刷新问题
- 防止读取sqlite数据表db占用冲突
- 修正挖矿默认设置出错问题
- 离线登录,如果之前英雄也在线,补发英雄状态
- 注意点:物品表的RareItem细分:1=怪物掉落通知 2=拾取触发 4=商铺购买通知 8=人物死亡掉落触发 16=队伍拾取通知,要开启多项,将前面的值相加即可
- 修正怪物切图问题
- 检测攻击目标优化
- 英雄、假人增加禁魔检测和特殊技能的距离检测
- 基于06版的稳固
- 引擎启用允许网关连接的IP列表!RunAddr.txt,修改后在主界面重新加载->允许连接的网关IP列表即可
- 控制台程序更新,支持配置允许网关连接的IP列表
- 修正网络底层一处被攻击会造成宕机的漏洞
- 修正设置GM说话前缀问题
- 修正NPC命令CheckItemAddValue缺参数报错
- 修正副本释放出错的严重错误!
- 修正召唤英雄有时英雄状态栏看不到问题
- 增加关闭服务器时下发通知消息
- NPC脚本错误提示内容
- 如果DB设置了神圣,不再显示武器的强度,但如果武器极品属性带了强度,客户端不会显示,实际有效
- 增加NPC命令:ChangeEvalPropAddRate +/-/= 数值(0~65535) // 鉴定普通属性数值附加百分比,存库,DBS、客户端需配套!
- 支持H.GetEquipProps
- 条件爆率对限制爆出物品的扣除问题
- 下属飞主人身边算法调整
- 下属违规攻击别人,主人会灰名
- 违规攻击假人也会变灰名
- 假人善恶攻击模式问题
- 腰带、靴子极品点数可以设置为0
- 赤狐掉血不刷新问题
- 最后一次复活的僵尸有可能隐身问题
- 重新加载所有NPC菜单恢复包含:MapQuest、QMapEvent、QChatMission
- 提高CompVal第四参数为str时的优先级
- 假人回城后如果安全区的守护点被占用不再来回走动
- 扩展NPC命令:INSAFEZONE X Y,检测角色当前地图的X、Y点是否属于安全区
- 增加假人功能设置掩码参数:DummyOptionMask=1假人被打回击,3假人回击并锁定目标,默认0不回击
- 释放唯我独尊技能及时解除石化状态
- 允许雷击状态下释放魔法盾、道力盾、护体神盾
- 修正上个版本引擎武器强度没有发送给客户端问题
- 武器的第7位极品属性可以覆盖DB中的神圣或强度设置
- 英雄会根据召唤技能-基本设置-召唤数量来召唤下属
- 制造满聚灵珠:@Make 聚灵珠 1 满,Give 聚灵珠 1 满,GiveEx 聚灵珠 1 满,SendMail ... 聚灵珠&满
- 体力、魔法恢复属性现在对空闲恢复、吃普通药品恢复有作用
- 优化怪物视觉相关算法
- 攻城期间的边界移动、区域瞬移现在能及时正确地刷新名字颜色
- 攻城期间攻击攻城区域内的对象不灰名
- 优化封包的下发
- 淬炼极品属性扩展:普通属性配置(0~25)|鉴定属性配置(0~19)(扩展部分涉及二进制计算,如若不懂建议别用),成功触发QF的@RefineItem_Succeed可临时使用GetEquipProps、UpgradeDlgItem等...
- 怪物设置增加开关:宠物拾取小极品,默认关闭。开启表示即使物品不设置自动拾取,但是如果是小极品,也会自动拾取
- 修正KILLSLAVENAME错误信息
- 修正过早连接账号服务器的出错问题
- 增加清理仓库物品NPC命令:CLEARSTORAGE
- 修正上个版本僵尸不复活问题
- 修正地图边界的生物视觉问题!
- 增加战斗小退期间也可以限制回收英雄的开关、只计算人物的战斗开关,参数设置-时间控制面板
- 及时清理下属,防止出错
- 离线、下线取消交易
- 修正偶尔大小腿不触发问题
- 扣点模式下对限爆物品列表多次计算问题
- 修正下属对复活僵尸的视觉问题
- 多次刷新商人NPC后,药品刷新时间变长问题
- 人形怪不释放野蛮
- 召唤的人形怪不显示主人名称问题
- 多次执行QUERYVALUE默认为确定问题(客户端)
- 重写视觉算法,减少CPU占用率
- 修正切换线路问题
- 修正多线切换后偶尔不能移动问题
- 黑暗之爪可以吸人形怪
- 强行离婚问题
- 修正NPC命令出错:CheckDearOnMap、CheckMasterOnMap
- 完善DropItemMap坐标-1时的随机性
- 系统刷怪位置有更好的随机性,mongen刷怪条目中的范围要合理,否则只会造成怪物位置不准确和增加服务器压力
- QM增加服务器关闭时的触发@OnStop,和@OnStart是一对触发标签
- 扩展Take命令,第5参数为触发的字段,非空时物品会临时放在自定装备框,$PARAM(7)角色名,$PARAM(8)物品名,$PARAM(9)物品ID
- 触发支持GetEquipProps、DLGITEM系列NPC命令的操作,例如:Take 物品名 1 "" 0 ~OnTakeItem // 不要对物品有延时操作,因为物品对象随后会销毁掉
客户端
- 集市增加搜索模糊匹配选单,选单可以使用上、下方向键选择,回车将搜索选中条目
- 神圣属性不显示为负数(负数其实攻击力更高)
- 修正完善UI控件
- 挂机会使用独尊技能解除石化状态
- 解毒术效果:SkillID=34 EffectType=2 Effect=52,需要更新客户端
- 英雄内功技能面板显示问题
- 增加右键菜单切换攻击模式
- 内挂物品选项卡增加拾取极品开关,默认开启
- 优化小退读条体验
- 完善友方血条颜色
- 改善魔法举手卡帧问题
- 改善寻路中瞬移经常反弹情况
- 完善格子物品渲染
- 内挂的数字漂血过滤开启,只显示自己相关的
- 跑动中更容易释放技能
- 释放十步一杀后会继续追踪目标
- 优化合击流畅性,不卡帧
- 增加【登录器远程配置服务器】,用于新版的登录器
- 服务器修改服务器列表等信息,会实时推送给登录器
- 对于此版登录器,生成的登录器dat配置条目中,只有更新列表链接有效,用于连接配置服务器
- 登录器增加简单的多开限制
- 其他说明参考文本:登录器远程配置服务器说明.txt
- HeroDB改用sqlite驱动,不再使用BDE:
- 开启前需要使用HeroDBConvertor转换HeroDB,步骤:
- 1、保持游戏版本完整性
- 2、M2、DBS、HeroDBConvertor,合区工具 需要调用到sqlite3.dll,在程序目录下放上sqlite3.dll,或者一次性复制到C:\Windows\SysWOW64\目录
- 3、将HeroDBConvertor、sqlite3.dll、DataTable_HeroDB.db放到\Mud2\DB\目录下
- 4、开启程序,切换到【转换到sqlite】开始转换
- 5、转换完成使用控制台程序(GameCenter.exe)配置一次,确保DBS得到正确的DataTable_HeroDB.db路径
- 6、转换后数据的默认文件名:DataTable_HeroDB.db,里面包含3个表,新老表名对照:magic -> skill、stditems -> item、monster -> monster
- 7、注意,物品数据表的 宠物拾取列表(PetPickItem.txt)、拾取规则列表(PickItemRule.txt)、极品提示列表(HintItemList.txt)、
- 光柱定义列表(CustomItemNameColors.txt)、禁止鉴定的物品列表(DisTIList.txt)
- 的功能都已集成到sqlite3数据库的item表中,以上文本弃用!
- 攻击触发列表(MonAttackTrigger.txt)、怪物技能列表(MonSpAbilList.txt)、
- 怪物名字颜色列表(CustomMonNameColors.txt)、假人不攻击怪物列表(BotNoAttackList.txt)
- 也都集成到sqlite3数据库的monster表中,以上文本弃用!
- 8、建议使用navicat软件编辑数据库,navicat也可以将数据库导出为csv文件,自行编辑后再重新导入即可
- csv建议使用vscode+csv插件编辑,也可以使用其他办公软件
- 注意编辑的数据文件编码必须为:UTF-8,否则乱码
- 9、各个表字段说明参考文档:DataTable_HeroDB字段说明.txt
RunGate
- 优化性能
- 防止封包攻击
- 限制下发流量参数:MaxSendCackeSize=1048576 // 限制单玩家下发缓存1M(可达到100M的下发流量),正常情况下完全到不到此流量
- 达到限流是否封IP参数:BlockHighTraffic,默认开启=1
