★BLUE官方代理、QQ群487184004、QQ:1592180 !微信验证码功能因使用外部文本,当文本达到一定体积(1M以上),会严重影响服务器性能,建议优化思路或者使用两步验证功能替换 !请注意,从2021年开始的程序版本,不再支持windows XP、2003及以下的操作系统 !注意2021.0522.03版及之前的版本,NPC变量用在不合适的字段会导致引擎报错问题,请及时更新。 2021/5/23 全套配套 --------------------------------------------------------------------------- M2 完善下属传送回主人身边的位置获取 完善TakeW后的外观刷新和属性 商铺购物货币不足时触发数量不正确问题 命令ClickNPC可以点击摆摊中的角色名称 根据英雄技能开关,赋予英雄分身的使用技能 优化NPC点击流程 防止重载NPC出错 封刷NPC标签漏洞(不包含QC)! 增加NPC标签过滤列表,在列表信息-其他功能列表-文本字符过滤(不包含QC) 修正CHECKCONTAINSSTR、CHECKCONTAINSTEXT第1参数为空时返回True问题 修正上个版本关闭引擎异常导致ini不自动保存问题 修改MoveToCell没有第三参数也可以执行,近距离NPC也会触发点击 完善SetAbility 38(隐身) !setup增加普通下属是否跟随英雄锁定非人目标开关:SlaveLockTargetMode=0,默认0关闭,不跟随英雄锁定 时装支持普通鉴定 支持范围写法:MovR M1 3 5,SetRandomNO 5 11 改善战士英雄被怪包围时的战斗逻辑 H.Kick报错问题 面板人数计数可能显示负数问题 去掉释放副本时,删除人形怪下属的提示信息 佣兵契约信息增加背包、仓库物品查询 NPC命令MapMove不带坐标时真随机移动 释放雷霆剑法可能出错问题 修正穿装备可能出错问题 英雄死亡记录日志 修正增加经验溢出问题 人形怪支持全套装属性,自身属性计算修改为在DB基础上根据装备、等级等进行叠加 部分怪物多次重刷后怕火问题 修正NPC命令获取宝石的名称和属性数值未强制刷新问题 解散行会的GM命令现在可以强制执行 修正[@PickupItem]无法触发GetEquipProps(位置10000)、UpgradeDlgItem等命令问题 防止设定英雄升级经验最大值溢出 防止CheckRangePlayerCount、CheckRangeMonCountEx命令参数错误内存报错 防止部分NPC执行类命令因参数错误而中断后续命令的执行 完善inc、div、mod、percent等NPC命令,防止除0错误 单个物品情况下,NPC命令:Give第6参数、GiveEx第5参数,GM命令:make的第4参数;SendMail每个物品的第3个“&”号后;填写上数字可以强制赋予装备ID,注意不要人为制造出重复ID物品(复制品)! 完善145、146蛇王怪物,“深渊毒蛇王”被攻击会召唤“深渊毒蛇王1”,被麻痹会随机飞,数据表中DC是近攻攻击力,MC是远攻攻击力: 深渊毒蛇王1 145 59 233 55 0 99 11000 0 55 66 77 88 55 66 111 222 0 0 15 15 700 3 0 1500 10000 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 深渊毒蛇王 146 59 233 55 0 99 11000 0 55 66 77 88 55 66 111 222 0 0 15 15 700 3 0 1500 10000 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 可以交易多个同样的满堆叠物品 NPC命令INI_SORT_READ_SECTION_VALUES支持对键按整数方式进行排序 修正NPC命令UpgradeItem可能会导致装备被绑定的问题 NPC命令UpgradeItem、UpgradeItemEx支持位置10000(表示对当前非空的DlgItemID物品进行操作) 去掉[@GetButchItem]触发,增加挖取物品对[@PickupItem]的触发,其中$PARAM(0)=0非背包掉落,1背包掉落,2挖取 增加NPC命令:AddShowItem 背包/身上某物品ID或者留空 // 留空表示使用当前的DlgItemID,作用:添加/刷新某物品ID展示物品,之后可以实时使用$ITEM(物品ID)来展示物品,比如可用于装备属性变更后展示新属性的物品);注意:单独使用$ITEM(XX)只会在首次使用该物品ID时添加展示物品,不会强制刷新 鉴定装备成功触发QF的[@EvalEquipSucceed],可临时使用GetEquipProps、UpgradeDlgItem(位置10000)等命令,注意用法,防止死循环! !修正14、15版G变量Inc操作重复计算问题,请弃用14、15版! 权重掉落配置增加无效物品提示,同时会忽略错误的物品,防止出现不爆物品的情况 修正完善NPC命令ConvertSkill的逻辑,防止出错! EnableCharacter命令增加操作结果于QF的[@EnableCharacterResult],示例见:EnableCharacterResult示例.txt 增加NPC检测命令:CopyMapExists 副本地图 // 检测副本是否存在 扩展Goto命令:goto @xxx 1 "" 参数4 参数5 参数6 参数7 参数8 参数9 // 参数4~9非空时,传输参数4~9内容到队员(包括自己)的$PARAM(4~9),参数2的用法请查阅之前更新内容 挖物品的日志放到拾取分类,同时记录被挖怪物名 技能设置面板增加全局魔法躲避调节,鼠标移至控件查看说明(配套客户端更新) 押镖中不能执行改名操作 !修正执行MapQuest脚本可能导致程序出错问题,完善组队处理逻辑 完善DelayGoto逻辑防止出错 地图配置信息中带空格的空行不再提示为无效门点 ISATTACKALLYGUILD、ISDEFENSEALLYGUILD、ISDEFENSEGUILD支持使用参数1(行会名)检测 储存可堆叠到仓库不再改变物品ID 仓库取回一个完整的重叠物品后,不再自动堆叠背包物品 英雄、主人交换物品增加包满提示和物品回归处理(配套网关、客户端更新) 修正17~19版取下附带技能的装备时未删除掉技能问题,用到此功能请及时更新至最新版本 增加NPC命令:ChangeAttackFilterMask +/-/= 数字,修改攻击过滤掩码,可结合SetBit、UnsetBit等二进制操作命令使用 增加变量:$ATTACKFILTERMASK,显示当前攻击过滤掩码 扩展怪物DB的AttackFilterMask字段,将某个怪物此字段设置大于255的值(255及以下数值保留),比如设置:256(二进制),常规情况下玩家对此怪物攻击无效,只有使用ChangeAttackFilterMask = 256命令设置了等位值才能有效攻击。 增加开关:monAttackFilterMaskMethod=0,默认0不开启,怪物攻击不参与掩码计算,1怪物不攻击掩码符合的目标,2怪物只攻击掩码符合的目标,3怪物不攻击带有攻击掩码的目标 DBS 修正英雄排行榜等级最高只能255问题 登录器/客户端 登录器配置推送完善,减少更新超时时间,防止异常弹窗 微端支持多端同步,微端对于相同的图片素材不再重复请求 修正批量拾取时检测包满、负重的逻辑 佣兵契约信息增加背包、仓库物品的查询 登录时一路按住回车键客户端闪退问题 释放野蛮期间立即移动导致卡位回弹问题 英雄经验值较高时经验条不显示问题 1.76版客户端也支持自定义NPC对话框背景图 补全145、146蛇王怪物效果(配套引擎更新) 添加更多的同类可堆叠交易物品时不再自动堆叠(配套引擎更新) 修正退回重叠类交易物品消失的假象 时装+魔法值错误显示为体力值问题 内挂技能面板增加英雄连续锁定功能开关(配套引擎更新) 拾取极品开关切换即时刷新物品 英雄、主人交换物品增加包满提示和物品回归处理(配套网关、引擎更新) 储存重叠物品不再给拆分 登录网关 细分防爆破策略,更严格;如遇到被爆破情况,最好将参数调整为严格些 游戏网关 英雄、主人交换物品增加包满提示和物品回归处理(配套引擎、客户端更新) 2021/5/22 全套配套 --------------------------------------------------------------------------- M2 修正挖东西可能出错问题 有护身属性也显示伤害值 SetAbility的禁止跑步现在有效 优化动作包的下发延迟,提高游戏体验 提高网关下发性能,通讯结构优化,M2/游戏网关需要配套! 衣服、武器外观支持到255,引擎、游戏网关、客户端必须配套! @DeleteHeroOK、@CreateingHero字段下$PARAM(0)是英雄名,删除英雄时可以结合“EnableCharacter $PARAM(0) 0”命令使用 扩展SetAbility的ID支持到500;增加特殊ID:400最大HP、401最大MP、402防御、403魔防、404攻击、405魔法、406道术、407暴伤 // 例:SetAbility 404 10000 10 附加攻击+10000到期!,其他空余ID可以用作计时器触发各种脚本 修正十步一杀有可能导致引擎崩溃问题 防止称号变更触发造成死循环 修改MobFireBurn命令只能在当前地图使用 修改THROUGHHUM修改穿人模式后会同步到客户端 多线路服务器诱惑怪物计数问题 金币日志记录剩余数量 鉴定属性增加31类型:合计伤害减少 下属叛变不限于49天的限制 批量挖东西问题 补全使用随机消失时得效果 修正服务器关闭时可能执行代码异常问题 增加宝石系统(合击、连击版本),见:宝石系统说明.txt 注意:此版需要使用数据工具对已经扩展到大仓库版本的Mir.DB进行扩展,以支持宝石镶嵌数据(mysql版本不需要扩展), 更新程序后,需要删除引擎下所有的商店缓存数据,不兼容! 扩展[@PickupItem]触发,$PARAM(9)是否装备类(0~1),可临时使用GetEquipProps、UpgradeDlgItem(位置10000)等命令 ChangeCharName 第二参数为1,则第1参数不取自@@InputStringXX的内容,可以自由搭配变量 浏览别人摊位时,增加可能是黑摊的提示 人形怪过滤掉护身属性(人形怪无限蓝,不要给带护身戒指) 老分身术分身不放技能问题 禁止交易时使用物品等动作 带人形怪版本,重新加载怪物数据库导致批量挖出东西问题 !setup增加衣服、20/21类项链、24类手镯的AC、MAC极品设置参数 DressACAddRate: 30; // 衣服AC的属性几率 DressACAddValueRate: 15; // 衣服AC的点数几率 DressACAddValueMaxLimit: 6; // 衣服AC的最高点数 DressMACAddRate: 30; // MAC DressMACAddValueRate: 15; DressMACAddValueMaxLimit: 6; Necklace202124ACAddRate: 60; // 20/21类项链、24类手镯AC的属性几率 Necklace202124ACAddValueRate: 30; // 20/21类项链、24类手镯AC的点数几率 Necklace202124ACAddValueMaxLimit: 6; // 20/21类项链、24类手镯AC的最高点数 Necklace202124MACAddRate: 60; // MAC Necklace202124MACAddValueRate: 30; Necklace202124MACAddValueMaxLimit: 6; DBS 制作佣兵时过滤掉标记为禁用或删除的英雄 增加多线路回城路由检测,防止死亡后上线黑屏 游戏网关 适配衣服、武器外观支持到255的修改,必须配套使用! 支持宝石镶嵌数据物品,兼容以前数据,注意配套更新! 登录器 增加DNS缓存,加速解析速度 客户端 完善人、怪的简装功能 修正大退网络没有正确关闭问题 优化挂机时的缓存管理,防止多开白屏 提示列表粘贴不生效问题 野蛮冲撞的间隔时间计算冲突问题 优化延迟,减少撞人、撞怪的回弹 修正使用物品情况下穿装备可能导致装备内观混乱的假象 补全使用随机消失时得效果 查看他人宝石信息完善,需要配套引擎更新 2021/5/22 全套配套,第6版起防攻击效果好,建议更换 --------------------------------------------------------------------------- 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变量时不列入计数 时装护身属性等属性等同衣服的设置,不受是否外显的影响 英雄可以通用死亡之眼、冰霜群雨、十步一杀 英雄锁定目标时,下属也攻击同目标 修改并刷新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 2021/5/21 全套配套 --------------------------------------------------------------------------- M2 机器人支持DelayCall,RUNONDAY、RUNONWEEK可以精确到秒,格式:HH:MM:SS、WW:HH:MM:SS 远程NPC脚本支持商品列表 修正一个可导致引擎出错的封包漏洞 扩展NPC命令ReadRandomStr的参数1可使用权重模式格式(原为文件路径),权重模式的计算更合理,例: ReadRandomStr 字符串1|权重1,字符串2|权重2,字符串3|权重3... // 权重为数字,数值越大,对应的字符串获取到的几率就越大,注意:所有权重总和不要超过21亿! 解决!setup文件偶尔出现重复项问题 开启引擎会检测!setup是否有重复项(ini配置重复会引发奇怪bug),有的话会弹窗提示,不手动确认会延迟5秒执行自动修复 增加加载单个假人命令:LOADDUMMY 账号 角色名,或者只有一个参数:账号|角色名,或账号:角色名,别再用FakePlayer加载200个假人再踢掉199个的方式! 增加门开关状态下发 加快NPC加载速度 整数是否记录日志与元宝分开,默认不记录,需要请修改日志过滤列表,增加:整数 即可 修正部分AMD CPU运行异常问题 增加NPC命令:OutputMessage 文字信息,将文字信息输出到引擎日志 被顶号触发QF的:@KickDoubleConnect 自动检测防止脚本死循环,并删除不必要的ResetLoopCounter命令,多数情况下不超过500次不会被判别为死循环 修正20版checkmonmap等几个命令出错问题 修正21版技能触发需要手动加载才生效问题 T操作符对可执行命令增加过滤,防止乱套导致出错,参考:T操作符可用NPC命令说明.txt 修正一处释放NPC对象访问异常 2021/5/20 全套配套 --------------------------------------------------------------------------- M2 英雄纯数字名称问题 神秘人切换地图名字不还原问题 禁止交易,别人依旧可以发起交易和购买物品问题 刺杀空降问题 优化场景底层效率,优化地图关门处理流程 优化字符串分割处理、字符串格式化效率 优化自动拾取功能 优化角色名字更新、在线人数获取等 优化大封包下发(技能、存库、背包等) 优化SetAbility命令逻辑 优化变量转换流程 优化底层功能函数 修正安全区变更后重新加载可能出错问题 修正地图变量、全局自由扩展变量赋值不能覆盖问题 修正施毒术灰名计算错误问题 多少秒后可以复活变量$REVIVALDURATION,秒,-1表示不能复活,0可以立即复活,其他正数表示n秒后被杀可以复活,在对方没有反复活技能的情况下 战斗状态持续时间变量$BATTLEMODEDURATION,毫秒 增加掉落装备NPC命令:DropEquip 0|1|3 提示掉落(0/1),参数1指装备位置,可以指定多个位置,使用“|”间隔,或者使用all指定全部,参数2掉落是否提示 优化DelayCall命令 修正重新加载MapQuest可能导致引擎出错问题(包括菜单“以上所有NPC”) 支持使用4G内存 优化Event管理 优化副本管理 修正副本刷角蝇有可能导致出错问题 尝试修正脱机人数计算不对问题 添加将<$DATETIME>分离的变量:<$DATE>、<$TIME> 添加唯一ID的变量:<$UID>,确保ID唯一的前提是:不同的服务器,setup参数中的serverid唯一 !setup的[server]下ViewWhisper=1时,引擎会显示聊天信息(原默认), 当ViewWhisper=2时,可触发QChatMission的[@OnMonitorChatMessage], <$CHATMSG>是此字段【专用】获取聊天信息变量,此触发字段禁止使用文本操作,否则将引发引擎崩溃,可参考:记录聊天日志示例.txt 增加NPC命令:StrCap S1 S2 ( ) // 捕获字符串S1中“()”内的内容到S2,S1返回剩余部分 扩展NPC命令:UpgradeItem // 第5参数设置为99时,忽略普通属性的升级,只升级神秘属性;第4参数为鉴定属性,格式:普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴,类似Give命令的格式,留空则不起作用 扩展NPC命令:UpgradeItemEx // 第5参数设置为99时,忽略普通属性的升级,只升级神秘属性;第8参数为鉴定属性,同UpgradeItem的第4参数 扩展NPC命令:UpgradeItemEx // 第4参数如果是1=5,3=5,28=7,28=8这样的“位置=数值”批量格式,则直接按第4参数修改装备普通属性,不会失败 扩展NPC命令:UpgradeDlgItem // 第4参数设置为99时,忽略普通属性的升级,只升级神秘属性;第6参数为鉴定属性,同上 增加NPC命令:GetEquipProps // 身上装备位置(0~16或10000),装备位置为10000时,获取的是自定装备框的装备属性,即DlgItem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 作用:获取装备属性值到一组变量中,n=身上装备位置0~16或10000,p=普通属性0~30,i=鉴定属性1~30,注意下面的n、p、i都是变量 普通属性:M_EQUIP[n]_NORM_PROPS{p} 有效的普通属性总字符串:S_EQUIP[n]_NORM_PROPS // 数值格式:1=5,3=5,28=7,28=8,等于号左边是属性位置0~30,右边是数值 一组鉴定基础属性:S_EQUIP[n]_EVAL_BASE_PROPS // 数值格式:1=5,3=5,28=7,28=8,等于号左边是鉴定属性1~30,右边是数值,结合StrTok命令使用,鉴定属性1~30可参考以前的更新说明 一组鉴定神秘属性:S_EQUIP[n]_EVAL_MYST_PROPS // 数值格式:1=5,3=5,28=7,28=8,等于号左边是鉴定属性1~30,右边是数值 单条鉴定基础属性:S_EQUIP[n]_EVAL_BASE_PROP_SLOT{1~4} // 数值格式:1=5,SLOT范围1~4,表示第几条属性,属性值非0才有效 单条鉴定神秘属性:S_EQUIP[n]_EVAL_MYST_PROP_SLOT{1~4} // 数值格式:1=5,SLOT范围1~4,表示第几条属性,属性值非0才有效 单条鉴定基础属性:M_EQUIP[n]_EVAL_BASE_PROPS{i} // 按鉴定属性1~30得到基础属性数值,如果有重复的属性,不能使用此变量 单条鉴定神秘属性:M_EQUIP[n]_EVAL_MYST_PROPS{i} // 按鉴定属性1~30得到神秘属性数值,如果有重复的属性,不能使用此变量 鉴定特殊属性:M_EQUIP[n]_EVAL_SPEC_PROPS // 可以使用IsBitSet,SetBit,UnsetBit命令比较计算 鉴定神技:M_EQUIP[n]_EVAL_SKILL_PROPS // 可以使用IsBitSet,SetBit,UnsetBit命令比较计算 鉴定次数:M_EQUIP[n]_EVAL_TIMES_PROPS 是否有鉴定基础属性:M_EQUIP[n]_HAS_EVAL_BASE_PROPS // =0没有,>0有 是否有鉴定神秘属性:M_EQUIP[n]_HAS_EVAL_MYST_PROPS // =0没有,>0有 获取到属性会触发本NPC的[@OnGetEquipProps]字段,附带返回变量如下,其他请查看附带示例:GetEquipProps.txt $PARAM(0) // 物品ID $PARAM(1) // stdmode $PARAM(2) // looks $PARAM(3) // 装备位置 $PARAM(4) // 鉴定基础属性有效条数 $PARAM(5) // 鉴定神秘属性有效条数 特殊属性对应数字说明,不同数字相加可以得到多个属性: 1 八卦护身 2 战意麻痹 4 复活 8 探测 16 传送 32 麻痹 64 魔道麻痹 RunGate 优化加速控制,增加操作码间隔过滤(FilterOpcodes.txt),防止部分封包攻击 DBS-MySQL版 修正回城坐标存取错误 支持使用4G内存 2021/4/17 全套配套 --------------------------------------------------------------------------- M2 修正因怪物复活有几率出现报错问题 优化自动拾取 !去掉镜像地图,删除ADDMIRRORMAP、DELMIRRORMAP、MIRRORMAPTIME命令 换成NewCopyMap命令,格式:NewCopyMap 源地图名 副本地图标题 有效时间(秒) 是否刷怪(0/1) 结果跳转字段,返回副本地图名在:<$PARAMSTR(0)> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [@副本测试] #act NewCopyMap d717 猪七副本 45 1 @CreateCopyMapResult [@CreateCopyMapResult] #if CompVal <$PARAMSTR(0)> ! "" #act map <$PARAMSTR(0)> mov A副本地图名称 <$PARAMSTR(0)> SendMsg 7 创建副本成功,进入副本:<$PARAMSTR(0)> #elseact SendMsg 7 创建副本失败 英雄跟随更及时 英雄显示主人名称问题 修正上个版本消耗修复神水出错问题 修正刷一些无效怪物导致引擎出错问题 优化MapEvent触发,配置地图名称不区分大小写 修正鉴定属性的合击威力未能生效问题,测试使用:Give 装备名称 1 0 0 24=15|24=15|0|0|1 套装属性值可根据设置显示百分比符号(配套更新) !吃药间隔控制去掉,请在网关进行控制 !多次重新加载怪物DB后,怪物上不了毒问题 !MapEvent不建议在大地图每次移动都触发,否则可能会有性能问题 火龙神拾取触发获取不到名字问题 怪物掉落触发参数不显示为具体怪物名 PlayEffect 第8参数增加Self模式,不广播,只发送给自己,去掉@OnPlayEffect触发 套装增加战士技能等级效果未体现效果问题 中毒恢复能减少中毒时间 产出腰带、靴子有几率带极品属性 游戏网关 细化物品使用控制 英雄死亡再次召唤可能不会自动吃药问题 客户端 四格版本装备界面支持称号 内挂增加快速开盾开关(可防止卡盾) 内挂增加淡化火墙效果开关 套装属性值可根据设置显示百分比符号(配套更新) 挂机被人攻击不小退 挂机死亡不关闭客户端 挂机道士可以边砍边放魔法,法师优化走位 挂机寻路内存泄漏问题 挂机路点模式适合多墙地图,解决发呆问题 挂机不断拾取他人物品问题 优化普通寻路,不走X型路线 修正小地图(小)边缘坐标获取错误 优化自动吃药规则,不卡药 优化快速攻击、魔法,提高精度 修正摆摊素材缺图报错 修正挂机自动拾取步伐问题 修正内挂保护小退认证服务器失败问题 修正一时播放太多声音导致卡盾问题 挂机目标瞬移之后空砍问题 2021/4/4 全套配套 --------------------------------------------------------------------------- M2 优化mysql功能模块线程 优化地图后台管理逻辑 优化玩家视觉事物逻辑 修正引擎启动有概率出错问题 读、写玩家存档限流(大概每秒2000存档),防止DBS用爆内存 单个引擎人数限制修改为:15000->65536 性能更好的地面物品管理 优化自动拾取逻辑 商铺可批量购买 NPC、怪物名字长度扩展为:14->32 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、使用DBCommander先把monster.db数据导出备份到文本 2、使用工具HeroDBConvertor.exe转换新monster.db(扩展名字长度) 3、使用DBCommander清空新的monster.db,并导入步骤1备份的数据文本,这时怪物名称就扩展到最长32字节 4、NPC名称更改直接在npcs.txt、merchant.txt文本编辑 5、比如“稻草人”变更为:这是名字很长的稻草人\<不死系> 6、如果怪物带换行符,爆率文件需要将对应的“\”变更为“-” 7、CustomMonNameColors.txt自定义名字颜色的怪物会全名显示(需更新客户端) 客户端 增加隐藏尸体时的渐隐效果 修正查看他人发型显示错误问题 修正死亡时的翅膀渲染顺序 时装内发光:stditems.db中时装的shine>=100,对应data\~wfashionshine.wzl文件,每50张图一个效果,有效图片的请保持连续,例:shine=100调用0~49的图片,shine=101调用50~99的图片 战士也可以自动开盾 商铺可批量购买 2021/3/14 全套配套 --------------------------------------------------------------------------- M2 修正因为扩展包裹,引擎和DBS通讯数据量变大,在大量保存数据时可能发生丢包问题 套装技能属性增加抵抗他人技能伤害设置(百分比),必须和客户端配套! 修正关闭服务器时多次释放Acceptor完成端口句柄的错误 优化网络测试、邮件、金币交易市场模块后台线程的效率 !去掉NPC元宝寄售系统 英雄分身不使用全技能模式 增加!setup参数:StrictWeaponUpgradeResult=1时,严格限制升级武器的最高点数,默认0 增加!setup参数:MultipleTitleProperties=1时,只要激活一个称号,其他称号属性都能生效,默认0 游戏网关解决被雷霆剑法麻痹后释放魔法的误封 修改killSlaveName为强制杀死随从 解决偶尔还有个别假怪问题,需配套更新! 技能优化 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 设置随机释放连击NPC命令:RANDSERIESSKILL // 主要给假人用 修正特殊技能减少CD时间溢出问题 修正连击技能间隔时间不正确问题 完善十步一杀技能效果,需要配套客户端 十步一杀、冰霜群雨支持强化技能效果 野蛮冲撞带残影效果,以区分普通跑动 修正完善雷霆剑法效果 修正三焰咒技能效果 优化战士英雄连击的起手时机 修正英雄群攻目标不全问题 英雄支持3个技能:英雄十步一杀、英雄冰霜群雨、英雄死亡之眼 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 在magic.db复制对应的三个人物技能,名称前面加上“英雄”,并将descr填写上“英雄”即可 客户端可以通过 内挂->技能->英雄特殊技能不打怪 选项不打怪,有利于PK。 斗笠扩展,需要配套客户端,db中斗笠的AniCount对应资源: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4..11: 普通读取hair2.wzl、连击读取cbohair.wzl 12..14: 普通读取hair3.wzl、连击读取haircbo3.wzl 15..62: 普通读取hair4.wzl、连击读取haircbo4.wzl 63..127: 普通读取~hair5.wzl、连击读取~cbohair5.wzl // 以“~”开头的自定义资源 DBS 修正在大量保存数据时可能发生丢包问题,提高网络性能 登录器、客户端 配套支持抵抗技能伤害功能 完善部分技能特效 配套支持斗笠扩展 修正完善登录器读取列表,当2个列表都读取不到时,将尝试读取登录器目录下的主列表文件名文件(支持之前的加密) 登录器配置的物品规则列表只有1条时,客户端将不释放lsDefaultItemFilter.txt列表,可以自定义此文本 解决偶尔还有个别怪物假象问题,需配套更新! 2021/2/21 全套配套 --------------------------------------------------------------------------- M2 优化IOCP逻辑,减少内存占用 去掉M2的封加速功能 套装支持斗笠、军鼓、马牌、时装位置,需要配套更新客户端 恢复MapEvent移动触发(在一月份版本去掉此功能) 添加随机进入权重掉落模式,格式:1/3 物品名1|权重1,物品名2|权重2... 1 $GAMEGOLD ? 1 -1 // 1/3机会进入权重掉落计算,参考之前的权重掉落更新说明 提高和DBS的通讯效率,减少内存占用 假人、英雄的流星火雨技能支持使用magic.db的delay(毫秒)控制释放间隔,人物原本已支持 优化集体瞬移散开的效率 摆摊时CheckItem有效 补全购买重叠物品的日志和使用重叠物品的日志 英雄使用物品优化,记录日志主体修改为英雄 修正物品日志列表修改后不能实时生效问题 修正技能套装刷新产生的内存泄漏 在Npcs.txt、MerChant.txt添加新NPC后重新加载可实时生效 扩展仓库大小为原来的3倍(135个),mir.db数据需要使用合并工具转换后使用,全套配套更新(包括lui.pkg)!MySQL版本不需要转换数据。 新聚怪技能:79;黑暗之爪;4;42;3;15;4;20;0;0;0;42;50;44;100;46;200;50;400;55;800;60;1600;66;3200;72;6400;79;12800;86;25600;94;51200;103;102400;113;204800;124;409600;136;819200;15;550;0;0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !setup参数MagAssemblyMonsTime是技能释放间隔时间,默认15秒 equal、large、small、isbitset支持解释嵌套变量,例如: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #act mov M80 12345 mov S14 M80 #if equal <$STR(S14)> 12345 #act SendMsg 7 正确结果 #elseact SendMsg 7 错误结果 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 添加检测是否正在摆摊的NPC命令:IsMarketStallOpened #if IsMarketStallOpened #act sendmsg 7 摆摊中... DBS 提高和M2的通讯效率,减少内存占用 客户端 支持套装位置的扩展 补全传送、瞬移的特效 优化第三人移动动作体验 微端服务器 减少缓存内存占用,提高效率 2021/1/29 全套配套 --------------------------------------------------------------------------- M2 优化部分逻辑 客户端 微端下快速并显示小地图 打开仓库物品列表后,可以使用Ctrl+鼠标右键快速存、取仓库物品 2021/1/13 全套配套 --------------------------------------------------------------------------- M2 技能ID=72,是否允许飞到物品上开关DoFlyOnItem=0,默认0关闭,1开启 修正1229更新造成SetAbility的GM隐身不恢复问题 修正MonGen.txt集中点刷法,在新的刷怪模式下失效问题 去掉五行阵法功能! 添加幸运值变量,人物$LUCKPOINT,英雄$H.LUCKPOINT 远程脚本插件安全更新: 1) 上传远程脚本时,需要验证密码,避免捣乱,此功能需要一个正确的授权码,需要请联系工作人员免费获取(提供机器码、自定义密码),引擎和远程脚本插件需配套更新。 2) 添加脚本上传过滤列表RemoteScriptFilters.txt,修改此文本后重新加载所有NPC即可,用法:在RemoteScript.ini中的 BlacklistMode=true // 黑名单模式(默认) 列表中的NPC将使用【本地】方式加载,非列表中的NPC使用【远程】方式加载。 BlacklistMode=false // 白名单模式 列表中的NPC将使用【远程】方式加载,非列表中的NPC使用【本地】方式加载。 列表条目的格式:NPC基本目录_NPC名称-地图号,默认会生成几个例子,请打开列表参考。 3) 远程脚本服务器更新,支持用户访问控制,格式和编写方式请参阅“远程脚本服务器和插件.7z”的“说明.txt” 4) RemoteScript.ini添加用户名参数UserName,配合用户访问控制,格式: Host=127.0.0.1 Port=8800 # 默认用户名default,拥有最大权限,示意请设置比较复杂的密码 UserName=default # 默认密码bluem2 Password=bluem2 # 远程读取的版本 ServerVersion=热血传奇_V1.0 5) 远程脚本服务器、远程脚本插件需要配套更新! 2021/1/1 全套配套 --------------------------------------------------------------------------- M2 修正重新加载NPC后城堡标志设置错误问题 Npcs.txt也可以修改后重新加载(之前只支持Merchant.txt) 全局字符串限制长度为1024 添加变量$CURITEMINDEX,当前将出产物品的ID 添加变量$ITEM(NN),主要用于展示背包的物品,NN为物品的ID,客户端鼠标指向物品图标有属性展示,下面有例子,需要同时更新客户端 [@PickupItem]触发的<$PARAM(3)>修改为掉落者名称 主菜单添加重新加载MapQuest脚本功能 修正少数情况下NPC脚本参数个数识别错误问题 改善法师英雄 魔法设置面板添加:忽视护体神盾、忽视强化骷髅伤害减免、忽视内功伤害减免 开关,默认关闭,开启则在忽视几率触发的情况下起作用 客户端 修补NPC对话框处理部分图片类对象 完善聊天栏、对话框等的装备显示 支持SetAbility动画效果,需要定义好效果文件AbilityEffects.txt,并将文件放到data目录,聊天栏打:~ReloadAE 命令可重新加载文件 聊天栏、对话框、跑马灯修正装备显示位置,支持[Ctrl+鼠标中键]查看佣兵契约纸 NPC脚本会自动补全#IF,比如: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [@测试] ;会自动再内存补全下面2条语句,不修改脚本文件,之前下面的例子不会执行SetRandomNO这句 ;#if ;true #act SetRandomNO 10000 #if compval <$RANDOMNO> < 1000 #act sendmsg 3 特等奖<$RANDOMNO> #elseif compval <$RANDOMNO> < 7000 #act sendmsg 7 鼓励奖<$RANDOMNO> #elseact sendmsg 7 谢谢参与<$RANDOMNO> 扩展SetAbility,第5参数是自身效果id,id对应AbilityEffects.txt的条目效果, 参考附件AbilityEffects.txt,此文件需要放在客户端的data目录,格式: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;ID(1~65535不要重复) WIL名称 起始图片 帧数 帧间隔 声音 声音循环(0/1) 特效模式(0/1) 1 Prguse2 110 15 80 Wav\powerup.wav 1 1 2 Prguse2 90 19 80 Wav\powerup.wav 1 1 脚本示例: // 一个Ability带三个动画效果 SetAbility 51 80 15 "" 1 SetAbility 51 80 15 "" 2 SetAbility 51 80 15 某buffer恢复正常 3 QF添加怪物掉落极品触发:[@MonDropItemDown],极品指HintItemList.txt中存在的物品,需要同时更新客户端 触发时支持的变量:<$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) 例1: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [@MonDropItemDown] #act mov M_DropItemID <$PARAM(7)> ; 聊天框展示掉落物品 SENDMSG 0 <$PARAM(4)>的<$PARAM(3)>掉落:<$ITEM(M_DropItemID)> ; SendScrollMsg的漂移有点慢,可以去掉 ;SendScrollMsg <$PARAM(4)>的<$PARAM(3)>掉落:<$ITEM(M_DropItemID)>(点击物品可暂停漂移) 151 16 例2: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [@吆喝] #say 先放上你要吆喝的物品,放置完成后点击<开始吆喝/@开始吆喝>开始叫卖。\ \<返回/@back> <关闭/@exit> #act QueryItemDlg 放上吆喝的物品 @ShowMyItem 0 [@ShowMyItem] #act GetDlgItemId MShowItemID inc SShowItems <$ITEM(MShowItemID)> delaygoto 100 @吆喝 [@开始吆喝] #if compval <$STR(SShowItems)> ! "" #act SendScrollMsg 【<$USERNAME>】出售物品:<$STR(SShowItems)>(点击物品可暂停漂移) 151 16 mov SShowItems "" close 例3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [@showItems] #act SetDlgItem 屠龙 FormatStr %s <$DLGITEMSHOW> SetDlgItem 怒斩 FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW> SetDlgItem 龙牙 FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW> SetDlgItem 逍遥扇 FormatStr "%s %s" <$CALCRESULT> <$DLGITEMSHOW> #say 装备:<$CALCRESULT>\ \<返回/@back> <关闭/@exit> MapQuest添加拾取触发,文件MapQuest.txt, 触发时支持的变量:同上 掉落物品的角色,如果下线或消失,角色名将为空,一般设置物品消失的时间比怪物消失的时间长 例: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;地图 变量 判断 角色名 物品名 执行文件名 3 [123] 0 蛤蟆/玩家名 乌木剑 QPickup1 // QPickup1指向MapQuest_def目录下的QPickup.txt脚本 3 [123] 0 * 屠龙 QPickup2 添加远程脚本功能 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1) 引擎成功加载RemoteScript.dll,可以使用远程脚本功能, RemoteScript.ini是参数设置文件,其中: Host=127.0.0.1 // 远程NPC脚本服务器的IP地址 Port=8800 // 远程NPC脚本服务器的端口 Password=bluem2 // 连接密码 ServerVersion=热血传奇_V1.0 // 服务器的版本,会以此标识上传、加载远程脚本数据,可动态修改 要加载远程NPC脚本:勾选 引擎主菜单-管理-使用远程脚本,勾选后,重新加载NPC或开启引擎会加载远程服务器的NPC脚本数据 最好要保证远程脚本服务器能和引擎服务器通讯够顺畅,否则远程加载NPC脚本速度会变慢。 启用远程加载脚本后,本地脚本文件的内容可以清空 2) 远程脚本服务器参见附件:RemoteScriptServer.7z 修改参数文件config.conf,以达到自己的要求,主要修改其中的端口和连接密码,参考压缩包中的“说明.txt” 修改完,运行:启动.bat 即可 3) 引擎成功加载RemoteScript.dll,适当修改脚本之后,可以点击 引擎主菜单-管理-上传脚本数据, 可以使用专门的测试服务器修改、上传脚本,其他连接同一远程脚本服务器的引擎,只需要重新加载所有NPC即是最新状态。 4) 涉及文件在压缩包目录:通用-远程NPC脚本 中,注意连接设置正确性,否则将导致引擎卡顿 2020/12/17 全套配套 --------------------------------------------------------------------------- M2 修正摆摊集市有概率出现错误信息问题 修正上个版本玩家技能名称串到英雄技能名称问题 UPGRADEITEMEX 的第7参数是1时,点数几率参数将不随机,直接赋予点数 2020/12/15 全套配套 --------------------------------------------------------------------------- M2 修正批量TAKE物品记录可能不正确问题 修正重新加载技能DB后,部分操作技能的NPC命令失效问题(原重新登录可解决) 修正道道合击多次计算对方防御问题! 追心刺技能到达8级可以百分之百破盾 !Setup添加参数QuitGameWideTrigger,参数为1时,非安全区下线也可以触发@OnLogout_OffLinePlaying和@OnLogout_SoftClosing,默认0 添加变量$SERVERID,对应!setup参数的serverid 添加变量$ONLINEHUMNUM,当前引擎在线人数 添加变量$OFFLINEHUMNUM',当前引擎离线人数 添加变量$TOTALHUMNUM',总在线人数(多引擎) 添加NPC命令ResetLoopCounter,重置脚本死循环计数,在一些循环较多的脚本需要用到 怪物文本爆率增加权重掉落模式,格式: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1/99999998 物品名1|权重1,物品名2|权重2,物品名3|权重3... 1 $GAMEGOLD ? 1 -1 说明: 1) 99999998 表示使用权重模式 2) 权重是非0数字,衡量在一个物品在此条目所有物品中的掉落占比,数字越大几率越大 3) 此模式必定、且只掉落一件物品 4) 不适合掉落金币 添加NPC命令JSON,操作JSON的字符串,格式:JSON 标识|存活时间 方法 名称 数值 !可以使用VSCode(安装json扩展插件,json格式化插件)查看编辑json文件。 !资料参考:https://www.runoob.com/json/json-tutorial.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 各个参数意义: 1) 标识,类似自由变量,指定一个唯一标识,“|”号后面是此对象的存活时间(秒),-1表示永久, 不写存活时间默认是180秒,即180秒后,此标识的JSON对象会被释放。 2) 方法,有以下几种: L 从文件加载,不要频繁使用,否则有性能问题!!! S 保存到文件,不要频繁使用,否则有性能问题!!! A 添加 E 赋值 C 清理 D 删除指定名称的子结点 P 解析给定的字符串 O 排序,格式: 1) JSON 标识 O 是否按名称排序(0/1) 是否排序子结点(0/1) Y 复制,格式: 1) JSON 标识 Y 源标识 0 // 从“源标识”复制一份到“标识” M 合并,格式: 1) JSON 目标标识 M 源标识 0 // 0 不重复,重复项目将以“目标标识”为准,默认 2) JSON 目标标识 M 源标识 1 // 1 不重复,重复项目将以“源标识”为准 3) JSON 目标标识 M 源标识 2 // 2 可重复,将“源标识”项目追加至“标识”中 3) 名称,类型是字符串 4) 数值,有以下几种类型: 整数 12345678 字符串 普通字符串 布尔值 True|False 浮点数 1.367 日期时间 "2018-11-12 06:12:11" 或 "2018-11-12T06:12:11.123",“.”后面指的是毫秒 数组 ["string",100,null,true,false,123.4] 子对象 {"name":"ObjectName","value":"ObjectValue"} 注意:数值最好不要有空格,如果必须带空格,请使用双引号""包围起来以表示为一个参数 5) 取值的变量: <$JSON(标识)JSON> // 固定格式,JSON对象的字符串,单行 <$JSON(标识)FORMAT> // 固定格式,JSON对象格式化后的字符串(换行) <$JSON(标识)path> // 某路径或名称下的数值 例: #act JSON myjson C JSON myjson A 整数 12345 JSON myjson A 字符串 这是字符串... JSON myjson A 布尔值 True JSON myjson A 浮点数 2.532 JSON myjson E 日期时间 "2018-11-12 06:12:11" JSON myjson E 数组 ["字符串",100,null,true,false,123.4] JSON myjson E 对象 {"name":"Object_Name","value":"Object_Value"} sendmsg 7 myjson格式化字符串是:<$JSON(myjson)FORMAT> ; 第一个位置以0开始 sendmsg 7 “数组”第二位置的值是:<$JSON(myjson)数组[1]> ; 保存到文件 JSON myjson S ..\QuestDiary\example.json ; 从字符串解释到JSON JSON myjson P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"name":"字符串"}]} sendmsg 7 取值:<$JSON(myjson)object.subobj.int2> JSON myjson D array[3] JSON myjson D myobj.subobj[1] JSON myjson D myobj.subobj.int2 sendmsg 7 删除后的结果<$JSON(myjson)FORMAT> ; 合并例子 JSON myjson1 P {a:10000,b:200,c:"id"} JSON myjson2 P {a:"str",d:500,e:7002} ; 不重复,重复项目将以“目标标识”为准,默认 JSON cpyjson Y myjson1 JSON cpyjson M myjson2 0 sendmsg 7 合并结果0:<$JSON(cpyjson)JSON> ; 不重复,重复项目将以“源标识”为准 JSON cpyjson Y myjson1 JSON cpyjson M myjson2 1 sendmsg 7 合并结果1:<$JSON(cpyjson)JSON> ; 追加项目,允许重复 JSON cpyjson Y myjson1 JSON cpyjson M myjson2 2 sendmsg 7 合并结果2:<$JSON(cpyjson)JSON> ; 赋值 JSON myjson E object.赋值.int 87654321 JSON myjson E object.赋值.float 5.76 JSON myjson E object.赋值.string abcdefg... JSON myjson E object.赋值.datetime "2022-11-22 11:22:33.123" JSON myjson E object.赋值.子对象.int 12345678 JSON myjson E object.赋值.子对象.ishum true JSON myjson E object.赋值.子对象.float 5.76 JSON myjson E object.赋值.子对象.array [12345,1.76,false,string,2022-11-22T11:22:33.123] sendmsg 7 赋值结果<$JSON(myjson)FORMAT> 添加NPC检测命令CheckJson,格式:CheckJson 标识 方法 标识|名称|路径 选项 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 各个参数意义: 1) 标识,类似自由变量,指定一个唯一标识 2) 方法,有以下几种: X 判断是否包含指定路径的子结点,格式: 1) CheckJson myjson X path N 判断是否包含指定的子结点名称,格式: 1) CheckJson myjson N name 是否嵌套检查子结点(0/1) V 判断是否包含指定的子结点数值,格式: 1) CheckJson myjson N value 是否嵌套检查子结点(0/1) E 判断JSON内容是否相同,格式: 1) CheckJson myjson E myjson2 例: #if true #act JSON myjson1 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":123456},"array":[1,3,4]},"array":[1.23,200,300,{"str":"字符串"}]} JSON myjson2 P {"myobj":{"name":"object1","subobj":{"name2":"subObj2","name1":"subObj1","int2":888888},"array":[1,3,4]},"array":[1.23,200,300,{"str":"字符串"}]} #if CheckJson myjson1 X myobj.subobj.int2 #act sendmsg 6 路径存在:<$JSON(myjson1)myobj.subobj.int2> #elseact sendmsg 5 路径不存在 #if ; 检测第一层,名为array的数组的第四个对象是否存在 CheckJson myjson1 X array[3] #act sendmsg 6 路径存在,取数值方法一:<$JSON(myjson1)array[3][0]>,方法二:<$JSON(myjson1)array[3].str>,方法三(整个对象):<$JSON(myjson1)array[3]> #elseact sendmsg 5 路径不存在 #if CheckJson myjson1 N name2 #act sendmsg 6 1)包含名称 #elseact sendmsg 5 1)不包含名称 #if CheckJson myjson1 N name2 1 #act sendmsg 6 2)包含名称(检查子结点),数值是:<$JSON(myjson1)myobj.subobj.name2> #elseact sendmsg 5 2)不包含名称(检查子结点) #if CheckJson myjson1 V 123456 #act sendmsg 6 3)包含数值 #elseact sendmsg 5 3)不包含数值 #if CheckJson myjson2 V 1.23 1 #act sendmsg 6 4)包含数值(检查子结点):<$JSON(myjson1)array[0]> #elseact sendmsg 5 4)不包含数值(检查子结点) #if CheckJson myjson1 E myjson2 #act sendmsg 6 5)相等 #elseact sendmsg 5 5)不等 2020/11/19 全套配套 --------------------------------------------------------------------------- M2 修正个别NPC命令对变量的识别问题 修正法师英雄持续开盾问题 修正54-58的NPC不能穿越的问题 // 54-58的NPC不可点击,可在MapInfo.txt添加门点,走上去直接移动到其它地图 怪物设置面板,添加怪物被魔法攻击时停顿参数调节 增加修改合击怒气值NPC命令:UnityEnergy +/-/= 数值,怒气值满值是200 增加修改合击威力倍率NPC命令:UnityPowerRate +/-/= 数值,百分比,默认100,$UNITYPOWERRATE 可以显示当前值 客户端 修正完善传送门类NPC的效果,54-58类NPC可以显示名字 合区工具 优化合并速度,支持多区合并 2020/11/09 全套配套 --------------------------------------------------------------------------- m2 允许英雄在安全区内锁定安全区外的目标 不开启英雄锁定瞬移至目标身边情况下,英雄先瞬移到主人身边后再锁定目标 登录器、客户端 登录器列表、更新下载等支持HTTPS协议 修正登录器可能不断更新问题 修正登录器更新进度条可能显示不正确问题 客户端去掉一条调试信息的输出,防止卡顿 2020/11/03 全套配套 --------------------------------------------------------------------------- M2 角色死亡后,不可范围拾取 菜单可重加载NPC,机器人NPC 野蛮冲撞补偿时间也对假人生效 修正角色上线刚好附近物品消失,会出现物品假象问题 修正升级武器+2、+3几率太低问题 修正上个版本小怪被打后移动速度变快问题 重新加载怪物数据库,即可刷新掉落列表(之前版本的引擎也可以) 修正个人爆率叠加目标爆率计算错误 修正玩家随从安全区攻击他人随从问题 // 触发条件:安全区外攻击目标,目标进安全后还会继续攻击 增加参数:BulkPickupDieDropItems=0 // 是否可以批量拾取他人死亡掉落物品,默认0不可以 扩展拾取物品规则列表PickItemRule.txt,规则2表示不可以使用范围拾取,例如:木剑 3 // 即表示只能队长拾取,而且不可使用范围拾取 优化提高引擎内部消息系统性能 // 体现为流畅的集体传送、大场面PK 修正1025版Rece=174的怪物被麻痹不恢复问题 优化发现可视物品代码性能 法师、道士英雄走位优化 修正人形怪再次刷新技能丢失问题 客户端 内挂添加人、怪简装开关 改善内挂自动技能顺畅度 提高有攻击速度情况下Shift+鼠标操作体验 修正连击技能效果丢失问题 RunGate 修正上个版本瞬移后攻击速度限制失效问题 修正上个版本一个处理服务器封包的小bug 2020/10/18 全套配套 注意:本次更新,游戏网关封加速设置需要重新调整! --------------------------------------------------------------------------- M2 1、放开武器攻击速度,武器最大攻击速度数值可达到117,建议最大到80,接近满速,最大速度可以在Rungate限制。 2、英雄、假人攻击速度倍率:游戏参数->游戏速度->装备速度,建议60 3、英雄、假人最大武器攻击速度限制:功能设置->英雄设置->英雄武器加速,建议80 4、修正法师、道士英雄躲避bug 5、修正战士英雄在杀死目标后的连贯性,提高法师、道士杀怪连贯性,相对之前打怪升级效率有较大提升 6、提高玩家操控英雄的响应 Rungate 1、判断带武器攻击速度、魔法速度、移动速度更精确 2、调节的攻击速度,每3点的速度等于+1武器速度,会和武器攻击速度叠加! 3、调节攻击速度,不需要重新调整攻击间隔 4、调节魔法速度,不需要重新调整魔法间隔 5、调节移动速度,不需要重新调整魔法间隔,并且将原来每2点生效修改为每1点生效 6、增加一个参数:ClientMoveFrameTime,客户端每帧的间隔,默认95,复古建议调节为120,移动起来相对缓慢, 参数改变则标准的移动间隔就是:ClientMoveFrameTime * 6, 建议弃用移动速度调节,即ClientMoveSpeedRate=0,改用单个ClientMoveFrameTime来改变移动速度。 7、添加一个参数:OpenSpellSpeedRate=1时,武器的攻击速度也可以在使用魔法时起加速作用,加速效果没有普通攻击明显,0关闭 8、如果启用武器加速,ItemSpeedCompensate=1最好开启,能更好配合组合速度的计算 9、游戏全局速度调节包含几个参数: // 这些参数影响所有的玩家,会和攻击速度叠加 OpenClientSpeedRate=1 ClientAttackSpeedRate=0 ClientMoveSpeedRate=0 ClientSpellSpeedRate=0 ClientMoveFrameTime=100 10、附带参考文件:游戏网关速度控制参考.txt 客户端 修正技能释放太快有几率卡在举手动作的问题 放开攻击速度,配套本次所有程序更新 2020/10/10 全套配套 --------------------------------------------------------------------------- M2 新增NPC命令:ClientFeatures 序号(0~99) 关闭或开启(0/1) // 序号0:开启或关闭客户端自动挂机功能,目前只有序号0有作用,客户端需配套 扩展:使用个人M、S变量在超出常规范围(0~99)时会自动扩展,M、S后面可以是任意字符,字符的长度最好保持在20字节以内,注:SUM命令对于自由扩展的M变量,结果放在:M99999999。 例如:Mov M测试整数1 12345,Mov S测试字符1 字符串1,显示:<$STR(M测试整数1)>,<$STR(S测试字符1)> 扩展:使用全局G、A变量在超出常规范围(0~99)时会自动扩展,服务器关闭可保存,注:SUM命令对于自由扩展的G变量,结果放在:G99999999,用法同上。 增加:属于地图的整数变量E、字符串变量F,地图指向执行命令玩家所在的地图,服务器关闭不保存,注:SUM命令对于E变量,结果放在:E99999999,用法同上。 全局变量不再保存在!setup.txt,改为保存到QuestParams.ini GameCenter 清理全局变量适配以上更新 客户端 支持ClientFeatures命令 // 必须配套此版本引擎 2020/9/24 全套配套 --------------------------------------------------------------------------- M2 参数设置-游戏选项2-交易控制增加禁止交易/丢弃金币开关 重叠物品自动设置最高重叠数,防止出错 扩展 DropItemMap 地图号 X Y 范围 物品 数量 秒数 归属(0/1) // X=-1时随机丢物品;秒数非0且归属=1时物品归属于执行脚本的玩家 扩展 PetPickupItemRange Self 范围(0-15) // 非挂机时(OfflinePlayEx),可以按设定范围拾取片区,客户端必须配套! 客户端 支持PetPickupItemRange设置的范围拾取 // 必须配套此版本引擎 2020/9/16 全套配套 --------------------------------------------------------------------------- M2 扩展:Take 物品1|物品2|物品3... 数量 P0 1 // 第四参数=1时,不取走极品装备,第三参数P0不需要时可以用""代替 QChatMission脚本支持仓库操作 修正英雄处理必定掉落物品的bug 2020/9/2 全套配套 --------------------------------------------------------------------------- M2 修正上个版本刚开启引擎的快速刷怪失效问题 修正网关服务错误:setsockopt error MonGen.txt 条目增加集中点X/集中点Y,结合集中刷几率使用,作用类似MobPlace命令,格式:地图 x y 名称 范围 数量 时间 集中刷几率(0~100) 刷新模式(0~1) 集中点X 集中点Y LoginSrv 主菜单添加重新加载服务配置功能,有多条路由时,不要使用相同的title 2020/8/30 全套配套 --------------------------------------------------------------------------- M2 交易重叠物品会日志中记录数量 道士召唤技能排除Race=211的怪物计数 中绿毒不影响战斗小退 使用强化卷后可能导致召唤骷髅速度变慢问题 优化生物对象移动效率 2020/7/30 全套配套 --------------------------------------------------------------------------- M2 修正使用@mapinfo没有检测GM权限问题 多线徒弟出师问题 客户端 修正内挂设置不保存问题 登录器 配置的主图大小限制从1M修改为16M 2020/7/22 全套配套 --------------------------------------------------------------------------- m2 添加禁用、启用角色名NPC命令:EnableCharacter 角色名 0/1 // 0禁用,1启用 创建佣兵角色需要一个佣兵令牌,DB数据:Name=佣兵令牌,StdMode=41,Shape=35,Looks=1132 // 引擎、客户端、lui.pkg配套更新 2020/7/15 全套配套 --------------------------------------------------------------------------- RunGate 加速判断时将转身封包从动作封包中分开 dbs 创建角色提前分配地图(优化多引擎负载) m2 修复城门状态改变可能会导致客户端崩溃问题 恢复goto死循环检测 SendMsg 8-10行会聊天,11黄字喊话,12队伍聊天,13私聊信息 多线切上线时,自动随机附近位置;参数ChangeServerRandPos=0时关闭此功能 添加几个账号信息变量: $EMAIL // 邮箱 $BIRTHDAY // 生日 $PHONE2 // 电话 $MOBILEPHONE // 手机号码 $QUIZ // 问题1 $ANSWER // 答案1 $QUIZ2 // 问题2 $ANSWER2 // 答案2 扩展:MOD // 取模计算,同属INC、DEC、DIV系列命令 calcval 增加取模计算,符号% ints 修改为无符号整数,没有负数,最大至42亿多 take 将物品名写成物品id,可以取走该id号的物品 添加获取当前Unix时间戳变量: // Unix时间戳请自行到百科了解 $UNIXTIME,例: #act ints 22 = $UNIXTIME ints 22 + 600 // 第4参数1表示无符号计算,无符号32位整数最大值大约是42亿,而有符号(正负数)32位整数最大值大约是21亿 #if compval $INTS22 > $UNIXTIME #act calcval $INTS22 - $UNIXTIME sendmsg 7 将在$CALCRESULT秒后过期 calcval $INTS22 ~ 0 // ~符号,表示将$INTS22转换为普通的时间格式,专用符号 sendmsg 7 将在$CALCRESULT过期 #elseact sendmsg 7 已过期 添加NPC命令FormatStr,格式化字符串,结果返回于$CALCRESULT,例: #act ; 双引号一般用在参数包含有空格的情况下,这样即使参数中带了空格,也会被认为是一个参数 ; 参数1有多少个%s,后面就需要带对应个数的参数,最多9个%s ; 对齐格式:%-32s,其中,-表示左对齐,不带-号默认右对齐;32表示字符的宽度,-号在%号的后面、32前面 FormatStr "%32s 参数:%-5s %s %s %s %s %s %s %s" 右对齐 一 二 三 四 五 六 七 八 mov s1 $CALCRESULT FormatStr "%-32s 参数:%5s %s %s %s %s %s %s %s" 左对齐 一 二 三 四 五 六 七 八 #say <$STR(S1)>\<$CALCRESULT>\<关闭/@exit> <返回/@main> !setup.txt补全几个极品属性控制参数 19类项链 necklace19SpecAddRate // 属性几率 necklace19SpecAddValueRate // 点数几率 necklace19SpecAddValueMaxLimit // 最高点数 23类戒指 ring23ACAddRate ring23ACAddValueMaxLimit ring23ACAddValueRate ring23MACAddRate ring23MACAddValueMaxLimit ring23MACAddValueRate 头盔 helmetACAddRate helmetACAddValueMaxLimit helmetACAddValueRate helmetMACAddRate helmetMACAddValueMaxLimit helmetMACAddValueRate 2020/7/9 全套配套 --------------------------------------------------------------------------- m2 修正重新加载脚本的内存泄露 集市、佣兵功能需要在脚本头加上:(@@StallMarket或@@CreateMercenary),并添加相应标签[@@CreateMercenary]或[@@StallMarket] 例如:[@@StallMarket] 欢迎使用摆摊集市!\ \<返回/@main> <关闭/@exit> [@@CreateMercenary] 请放上已签约的佣兵契约纸。\ \<返回/@main> <关闭/@exit> 改进金币交易行检测严谨性(mysql版本功能) QF增加金币交易行操作的检测(mysql版本功能) [@OnUsingCoinMarket] #if checklevelex < 10 #act APPROVE 0 // 0拒绝 1批准,默认批准使用金币交易行 MESSAGEBOX 10级后才能使用金币交易行。 2020/7/6 全套配套 --------------------------------------------------------------------------- M2 补全英雄对SetAbility 24、26、27、44的支持 增加NPC命令:VerifyKeyCode <$TOTPKEY> <$STR(M5)> // 验证两步验证码,参数1是两步验证密钥,参数2是输入的验证码,用法可以参考:佣兵示意脚本.txt 修正集市报错 LoginSrv 基本设置-系统设置 增加: 新建、修改密码,新建密保问答的策略限制 增加无需验证两步验证选项 时间设置面板的解锁时间生效,建议值:90 LoginGate 空闲连接超时可以超过90秒 爆破密码、密保限制等级描述错误修正 爆破密码、密保被临时封的IP,可以在一定时间后自动解封 登录器配置器、客户端 登录器更换新的默认UI 配置器、登录器支持不规则的png图片作为主图,可制作出漂亮的非四方形登录器 优化加快登录器搜索目录速度 升级列表中服务器列表和按钮链接的自定义: // 需要放在文本的行首 ;主要列表 http://www1.xxxx.com/logintool/serverlist.txt ;后备列表 http://www2.xxxx.com/logintool/serverlist.txt ;论坛链接 http://www.xxxx.com/bbs.html ;客服链接 http://www.xxxx.com/kf.html ;支付链接 http://www.xxxx.com/pay.html ;注册账号链接 http://www.xxxx.com/newid.html ;修改密码链接 http://www.xxxx.com/chgpwd.html 脚本、聊天栏支持网址二维码,例如: // 下面例子中,后面的888是识别用,可以是任意整数,用法参考之前的PIC功能扩展 扫描下载iPhone平台的微软两步验证器APP:\\ \ 安卓版的微软验证器放在本次更新的附件中,文件名:com.azure.authenticator.apk,自己可以放上网站,提供下载链接的二维码 注:微软验证器有个好处,可以选择云备份,手机重装系统或者丢了,之前备份在云端的信息都在,可以在新手机重新下载原来的备份 2020/6/28 全套配套 --------------------------------------------------------------------------- M2 !setup.txt添加参数:ItemOwnershipHints,拾取的物品属于他人时,是否提示角色名,默认关闭 已签约契约书可查看装备和技能等信息 摊位物品数量由10个扩展到15个 扩展制作佣兵命令:QUERYMERCENARIES 5 1 0 // 参数3为1时表示过滤掉隐藏角色 增加摊位集市系统: 摆摊物品汇总、分类、排序等功能,可以在界面上搜索、购买摊位物品, 开启UI的脚本:<打开摆摊集市/@@StallMarket> !setup.txt参数StallMarketCharge,可修改上架摊位集市时每件商品的手续费,默认100金币 DBS 多角色创建 集市、佣兵系统的支持 客户端 增加摊位集市功能,需更新lui.pkg并配套M2 已签约契约书可按Ctrl+鼠标中键查看装备和技能等信息 最多创建的角色由2个变更为8个 2020/6/18 全套配套 --------------------------------------------------------------------------- M2 佣兵通讯消息修改,需要和客户端配套更新 修正MAIN_FUNC_BTN_SHOW只能执行序号0-10问题 修正引擎部分地方经验超过21亿后显示为负数问题 @StdModeFuncXX,XX可以超过255,公式:XX = Reserved * 256 + AniCount,Reserved=99已经被占用(使用一次掉一点持久),不要使用该值即可 有几率导致物品不显示问题,实际已经掉落 交易时不允许被赠送 NPC命令:MAIN_FUNC_BTN_CAPTION 序号 按钮标题 雷炎洞效果失效问题 沙巴克城门显示问题 攻沙期间NPC不消失问题 客户端 内力条0值显示修正 ListView控件显示修正完善 佣兵通讯消息修改,需要和引擎配套更新 有几率导致物品不显示问题 因神兽变身有几率导致崩溃bug 雷炎洞效果声音错误问题 城墙、城门不作为尸体隐藏 2020/6/13 全套配套 --------------------------------------------------------------------------- M2 BotAutoWearEquipments.txt // 简单的假人拾取后自动穿戴列表,首次运行后查看文本说明 继续修正假怪问题 优化部分广播消息 合区工具合并时支持给从区设置Ints的值 添加佣兵系统功能: 可以将角色压成签约状态的契约纸,已签约的契约纸可以用于创建新角色,详见示意脚本:佣兵示意脚本.txt // 需要配套程序:M2、DBS、客户端、lui.pkg,合区工具 契约纸DB数据:xxxx,佣兵契约纸,49,0,1,0,0,0,1581,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 日志查询工具可以查询此类操作的记录 @make 佣兵契约纸 1 id // 用于补偿佣兵契约纸丢失,id指制作佣兵契约时记录的M_xxx中的xxx(数字序号) 2020/6/9 全套配套 --------------------------------------------------------------------------- M2 修正SetAbility引起的内存泄露问题! 合击击中效果补全和一些效果修正,需要配套客户端更新 使用隐身术后再带隐身戒指无效问题 修正假人招出的英雄升级后有几率收回问题 增加BotNoAttackList.txt,设置挂机假人不攻击列表,格式:怪物名 1 // 1挂机假人不攻击 假人可以触发:[@PickupItem]、[@HeroLogin] 增加被英雄目标锁定的提示,可以在英雄设置面板开关,默认开启 部分地图随机飞有几率进入黑点导致动不了问题 尝试减少假怪现象 取消存重叠类物品存仓时的自动重叠 英雄被刺杀会回击 SetAbility 49 1 99999999 // 禁止使用商铺 野蛮冲撞麻痹效果可以在界面修改为0秒 [@KillPlayXX]、[@KillPlayMonXX] 支持变量: $PARAM(0) 杀死的怪物名字 $PARAM(1) 地图编号 $PARAM(2) 地图名字 $PARAM(3) 怪物X坐标 $PARAM(4) 怪物Y坐标 $PARAM(5) 怪物等级 客户端 合击击中效果补全和一些效果修正,需要配套M2更新 客户端因为退出慢,导致人物有可能延迟下线问题 修正DBS未开启情况下,重复连接角色网关问题 移动后翅膀隐藏问题 取消存重叠类物品存仓时的自动重叠 2020/6/8 全套配套 --------------------------------------------------------------------------- M2 增加NPC命令:DELFIREBURN 地图名 X Y 类型(1-8) // 删除光圈,用于删除MobFireBurn刷出的光柱(MobFireBurn刷非类型5的光柱不会消失) 修正上个版本刷光圈一定时间后报错 由于补全了部分技能ID的攻击触发,导致【劈星斩】因穿透起作用变成威力异常,将技能DB中【劈星斩】的Penetrate设置为0即可恢复原威力,同时注意是否有脚本触发该技能的减血效果。 客户端 头发、斗笠不支持微端问题 客户端路径下的client.ini可以定义NPC名字是否为粗体,内容: // 用登录器自动更新client.ini到客户端目录下即可,默认非粗体 [setup] BoldNpcName=1 ; 是否默认显示称号 ShowUserTitle=1 ; 注册按钮账号的网站 NewIDUrl=https://www.xxxxx.com 2020/6/1 全套配套 --------------------------------------------------------------------------- M2 添加变量:$MAPWIDTH,$MAPHEIGHT // 当前地图的宽、长 添加NPC命令:GuardPos x y 范围 // 设置假人的守护点和范围(不小于Setup中的maxViewRangeX),x为-1时取消守护 例子: ;随机地图点守护 MAP $CURRENTMAP GuardPos $CURRENTX $CURRENTY 30 $ATTINFO_SKILLID 部分技能ID获取不到问题 降低重伤状态伤害 修复上个版本行会战双方名字颜色问题 镖车名字显示问题 2020/5/31 客户端+引擎配套 --------------------------------------------------------------------------- M2 1、SetAbility 赋值时会触发QF的[@SetAbility_XX],属性过期后将触发[@ResetAbility_XX] // 参考之前SetAbility的更新说明 2、添加NPC命令:PetPickupItemRange 宠物名字 范围(0-15) 宠物自动拾取范围,宠物名字为“H”时指英雄,宠物名字为“Self”时指自己(挂机用),“*”指非英雄的所有宠物,范围0时关闭自动拾取,可结合上条更新进行定时。 3、添加NPC命令:Lockdown 1 // 锁定,不可攻击、移动、魔法等,Lockdown 0是解锁 4、重点的性能优化,在玩家/怪物/物品集中情况下,引擎CPU占用率有大改善,改善人怪假象, 适当调整!Setup.txt的maxviewrangex、maxviewrangey,以便适应大分辨率的客户端,建议分辨设置为16、15,无需适应大屏幕设置12、12即可,较小的值可以节约CPU占用。 5、添加NPC命令:FakePlayer 0/1 // 0踢假人,1加载假人 6、添加NPC命令:GuildStat 行会名 统计玩家等级 过滤同机器码(0/1) P1 // 统计行会在线玩家数,数量返回P1,行会名为Self时指自己行会,可结合IsGuildMaster使用。 7、行会成员超过一定数量编辑不了封号问题 客户端 英雄不能在死尸上进行守护bug 修正微端因拉取大文件丢包问题 优化网络接发能力,优化性能 提高后台FPS,改善体验 修正连续多次弹出消息窗口bug 行会成员超过一定数量编辑不了封号问题 被顶号,网络异常断开等情况下,可以选择返回登录界面再次进游戏(带防护盾的登录器可能不支持) 聊天栏命令:~history // 历史记录,Ctrl+L ~clear // 清理聊天栏,Ctrl+K 2020/5/17 --------------------------------------------------------------------------- M2 1、添加NPC命令:EndGuildWar 行会名1 行会名2 // 结束行会战,两个参数可以使用通配符* 2、添加条件判断: #if true // 代替checklevelex >= 0之类的语句 #act ... 3、修正上个版本对MonDropRate的改进,导致爆率计算有可能因计算溢出而造成掉落概率错乱问题 4、优化部分逻辑代码 2020/5/2 --------------------------------------------------------------------------- M2 命令扩展:Kick 1 // 让在线玩家执行小退 killSlaveName * // 杀死所有随从;可以放在[@OnLogout_OffLinePlaying]执行,实现离线挂机再次登录的免踢功能 修改 MonDropRate 对于爆率文件中 1/xxx 的写法也起作用,计算公式:xxx/yyy / 100 * MonDropRate,假如MonDropRate=200,即在原来爆率基础上提高一倍 附带条件的爆率条目,有所有权才会爆出 2020/4/13 全套程序配套更新 --------------------------------------------------------------------------- M2/Client 增加战斗中小退时间限制,默认0秒,在参数设置-时间限制面板调节 // 限于PK,打怪不受限制 Client 修正自动挂机自定义怪物过滤列表位置不正确问题 添加变量$TIMESTAMP,获取当前时间,格式:年-月-日 时:分:秒,CompVal增加对此时间格式的比较支持, 添加NPC指令:CalcVal 数值1 操作符(+-*/=) 数值2,结果返回在变量$CALCRESULT中,对于字符串和时间的操作,只支持+-, 例如:CalcVal $TIMESTAMP + 1,返回结果在$CALCRESULT,对于时间计算单位为秒, 此条更新主要时为了支持自定义数据表中时间格式字段的运用,也适用于非MySQL版本的引擎。 M2 修正刀刀刺杀非刺杀位也有忽视防御效果bug Client Tiles,SmTiles,Objects支持到99 2020/3/27 客户端+微端服务器 --------------------------------------------------------------------------- M2 屏蔽掉护体神盾的释放动作 微端 启用参数:expiry_time // 连接空闲超时(秒),默认43200 2020/3/27 客户端+微端服务器 --------------------------------------------------------------------------- 优化微端速度,解决微端小黑块问题 修正微端服务器有几率因包未发送完连接被掉导致崩溃bug M2 修正武器+诅咒卖商店价格异常问题 M2 修正召唤英雄时,自己偶尔不能及时看到英雄问题 M2 战士英雄技能释放时机更准确 M2 扩展 Take/TakeW 物品1|物品2|物品3|物品4... 数量 P0 // P0返回删除的数量,TAKE物品不要和金币混用 -------------------------------------- M2 细化英雄处理粒度;改进英雄组合速度,开启可以细调英雄各种组合动作 之间的间隔,让英雄的动作看起来更合理、更像玩家的动作; 不开启,则英雄各种组合动作有点不均匀,看起来像使用了加速。 2020/3/20 配套更新 --------------------------------------------------------------------------- DBServer去掉对dbserver.dll的调用 M2 修正怪物设置可挖,导致怪物的爆率扩展检测失效问题 M2 会导致ini文件产生重复项问题 M2/Client 修复城墙状态和特效显示问题 修复客户端物品管理有几率崩溃问题 修正客户端显示+HP/MP与实际不符问题 客户端可以自动解包自定义的可吃物品包 -------------------------------------- DBServer 增加文件缓冲开关,默认开启 开启此项,将大幅度提高数据文件的读写性能,但在大多数时刻外部程序 对DB文件不能操作:即无法复制DB文件,GameCenter也无法实现自动备份。 如过想通过GameCenter自动备份,可以关闭此选项,但最好开启角色数据缓存, 既能保证性能,也可以实现自动备份。 2020/3/19 登录器 + 客户端 --------------------------------------------------------------------------- 登录器的服务器列表支持加密 2020/2/28 全套程序配套更新 --------------------------------------------------------------------------- 登录器/客户端 改进搜索传奇目录方式 默认分辨率修改为1024*768(原800*600) 修正英雄频繁使用物品导致主人使用物品也受限制问题 // M2/RunGate/客户端 需配套更新 修正频繁使用药品时手动使用其他物品导致物品消失假象 // M2/RunGate/客户端 需配套更新 修正智能双龙斩识别bug M2 极品几率还原为原先多加1点的方式,但是不会超过最高点数限制; 合计命中微调; 套装数最多支持到2048套(原255套) 修正人物打出的龙影剑法/双龙斩可能他人看不到效果bug 优化封包下发效率 合区工具 还原重命名规则 2020/2/20 全套程序配套更新 --------------------------------------------------------------------------- M2 爆率变量检测扩展爆出才扣代币参数: 1/x 装备名称 数量 $变量 检测符(><=!?) 检测数值 扣除(负数扣除,正数增加) 爆出才扣代币(默认0爆出才扣,1未爆出也扣) M2 修正Give未刷新角色负重问题,修正技能面板调节[流星火雨]范围失效问题 M2 db数据的AC可以设置聚灵珠使用最大等级限制,AC=0不限制最大使用等级,AC不应该小于NeedLevel的值 客户端 优化微端速度 PLAYEFFECT 扩展修改: // 需要M2/客户端配套 -------------------------------------- PLAYEFFECT WIL名称 X Y 起始图片 帧数 间隔 循环次数 声音 声音循环(0/1) 对象(""/All/Guild/地图名) 修改为 PLAYEFFECT WIL名称/X/Y 起始图片 帧数 间隔 循环次数 声音 声音循环(0/1) 对象(""/All/Guild/地图名) 特效模式(0/1) 注意:WIL名称 X Y -> WIL名称/X/Y;特效模式:0普通,1技能特效模式(默认);可以利用微端模式下的~cui.txt自定义资源 2020/2/16 全套程序配套更新 --------------------------------------------------------------------------- 客户端支持png制作的wzl,!注意:大量使用png作为图片素材可能会导致客户端因显存不足而崩溃 1、增加制作wzl文件的WzlMaker工具,支持导入png文件,使用png制作出来的wzl只有对应的新客户端才兼容 制作png的wzl,最好使用此工具,效率最佳,其他工具制作的wzl,客户端读取效率差,会导致性能不强的机器卡顿。 2、增加自定义素材列表文本,放在传奇目录\data\~cui.txt,格式: // 目前暂应用于物品特效 ;ID(1~100) 文件名 1 .\data\~beam.wil 2 .\data\~beam_png.wil 可以用登录器自动更新功能自动更新~cui.txt至data目录, 然后使用微端即可,微端服务器data目录需要放相应的wzl文件。 3、物品特效设置的CustomItemNameColors.txt格式扩展为: // !注意:物品特效设置图片不再在lui.pkg里调用,因为不支持微端,图片也没有偏移设置 ;自定义物品名字颜色和地面物品特效 ;格式:物品名字 颜色(1..255) 特效图片索引 特效图片数量 自定义素材ID(对应~cui.txt中定义的ID) 魔杖 0 90 10 2 命运之刃 0 90 10 1 4、更新微端支持png格式的wzl 5、GameCenter 支持定时开/关服务器;定时开服之前会执行GameCenter所在目录下BeforeStartGame.bat 2020/2/11 全套程序配套更新 --------------------------------------------------------------------------- M2 英雄支持双龙斩/龙影剑法,保存龙影剑法剑气值;改善合击体验 Client 支持智能双龙斩/龙影剑法 LoginSrv 两步验证码错误累计3次才踢下线,配套客户端有提示 Launcher 首次运行提示否直接在当前目录以微端模式运行游戏,需要配套此版本的客户端 DataTool 支持师徒和结婚数据修正 2020/2/10 全套程序配套更新 --------------------------------------------------------------------------- Client 主界面自定义按钮扩展为40个,@MainBtnFunc_40 变成主按钮触发 M2 人物设置为免毒/符释放技能时,英雄也将免毒/符放技能 M2 修复英雄PowerRate时间到了不清理问题 ------------------------------------------ M2 添加针对A/S字符变量的NPC命令:INS S1 位置(1~S1的长度+1) 插入字符 重复次数(默认1) M2 添加针对P/G/D/M/I/H等整数型变量的NPC命令: AND,OR,XOR,NOT运算,CompVal支持与运算(&号)比较,这组操作相比下面的命令会比较晦涩难懂,但是一次可以批量开关; 针对0~31位的操作和比较:SetBit,UnSetBit,FlipBit,IsBitSet,第二参数表示第几位(0~31) 结合以上命令可以给一个int类型的整数设置32个开关,节省变量的开销,有关操作请上网查阅。 // AND,OR,XOR,NOT,CompVal 例子: [@OR] #act OR P1 5 // 或运算,1位和3位设置为1(1是低1位,4是低3位,可以用计算器查看BIN数据) SendMsg 7 <$STR(P1)> [@XOR] #if CompVal <$STR(P1)> & 1 #act XOR P1 1 // 异或运算,1位设置为0 #if CompVal <$STR(P1)> & 4 // 异或运算,3位设置为0 #act XOR P1 4 [@CheckSwitchState] #if CompVal <$STR(P1)> & 1 // 于运算 比较 #act SendMsg 7 P1低1位二进制数值为1 #elseact SendMsg 7 P1低1位二进制数值为0 #if CompVal <$STR(P1)> & 2 #act SendMsg 7 P1低2位二进制数值为1 #elseact SendMsg 7 P1低2位二进制数值为0 #if CompVal <$STR(P1)> & 4 #act SendMsg 7 P1低3位二进制数值为1 #elseact SendMsg 7 P1低3位二进制数值为0 // SetBit,UnSetBit,FlipBit,IsBitSet 例子: [@SetBit] #if !IsBitSet P1 22 // 第22位是否关闭 #act SetBit P1 22 SendMsg 7 P1的22位现在处于开启状态 #if IsBitSet P1 22 // 第22位是否开启 #act UnSetBit P1 22 SendMsg 7 P1的22位现在处于关闭状态 [@FilpBit] #if checklevelex > 0 #act FlipBit P1 31 // 切换状态,开<->关来回切换 #if IsBitSet P1 31 // 第31位是否开启 #act SendMsg 7 P1的31位现在处于开启状态 #elseact SendMsg 7 P1的31位现在处于关闭状态 ------------------------------------------ M2 添加NPC命令:MakePoison 类型(0~11) 秒数 点数,第一参数为clearup时,清理掉状态;类型:0绿毒/1红毒/3雷击/4冰冻/5石化/6禁锢(同石化)/7重伤(丧失防御) M2 添加获取SetAbility数值变量:$ABILITIES0~100;增加$TARINFO_ISSLAVE变量,是否是随从 例子: [@SetAbility] #act SetAbility 50 20 900 石化技能恢复正常 SendMsg 7 获得20%几率的石化技能,持续15分钟 QF: [@Attack] #if CompVal <$TARINFO_RACE> ! 1 // 非人物 CompVal <$TARINFO_ISSLAVE> = 0 // 非随从 CompVal <$ABILITIES50> > 0 // Abilities的50位置有数值 #act SetRandomNo 100 // 按100随机 #elseact break #if CompVal <$ABILITIES50> > <$RANDOMNO> // 命中触发 #act T.MakePoison 5 5 ------------------------------------------ M2/Client 扩展CustomItemNameColors.txt,格式:物品名字 颜色(1..255) 特效图片索引 特效图片数量 其中特效图片放在lui.pkg中,文件名格式为:beam_xxxxx.png,x为0~9的阿拉伯数字; 例如文件中定义:法杖 254 200 10,则lui.pkg中应该放上:beam_00200.png~beam_00209.png等文件 批量图片重命名可以使用everything,搜到所有用到的图片按F2操作即可; png文件制作有一定规格,中心点需要按像素对齐。 ------------------------------------------ 2020/2/7 全套程序配套更新 --------------------------------------------------------------------------- M2 修正SetAbility隐身不恢复正常问题;武器减速问题;其他极品属性的地面物品也闪绿光 M2 修正在[@Pickup]触发字段里删除拾取的物品出现物品假象问题;攻击触发T.操作只触发一个问题 M2 QueryValue 命令支持QChatMission,第五参数为:QC M2 限制爆出数量物品规则代码优化 Client 客户端内挂修改物品规则及时更新地面物品显示,优化战士隔位刺杀走位 Client 修正浏览他人摊位时,有几率被关闭问题,需要同时更新M2和客户端 Rungate 修正一处可导致崩溃的漏洞 2020/2/3 全套程序配套更新 --------------------------------------------------------------------------- M2/Rungate 增强稳定性,需要配套使用 M2/Client 在英雄控制面板可以开关【人物免药粉/护身符释放相应技能】 DBServer 禁用角色:玩家不可恢复角色,不能登录,可以在角色管理界面恢复启用;删除角色数据:不可恢复,不能登录。 DataTool 提高性能,添加ini重复项清理功能,恢复装备说明导出功能 2020/1/29 全套程序配套更新 --------------------------------------------------------------------------- M2 修正魔龙教主/火龙的特殊攻击可以对死亡角色有效bug M2 修改物理攻击打不到城墙bug M2 优化角色下线/上线地图管理对象处理,减少假人假怪现象 M2 优化CHECKUSERDATE的兼容性 Rungate 解决因为封加速计算bug可能导致卡住几秒 Client 大幅度减少假怪现象,优化物品管理,解决26号版本因物品系统优化引起卡死bug Client 两步验证二维码添加当前服务器名为提供者,解决不同服同账号扫描二维码被覆盖问题,现在两步验证使用 也方便,可在手机上搜索安装APP或微信小程序:二次验证器、TOTP、动态验证、两步验证、Authenticator等等... 别再使用微信公众号那种文本读写的方式去验证,使用久了文本体积变大会导致游戏卡顿! 2020/1/18 全套程序配套更新 --------------------------------------------------------------------------- M2 去掉部分加载/保存角色数据日志;修正SetAutoGetExp命令第三参数为空时出错bug DBS 优化代码 2020/1/15 全套程序配套更新 --------------------------------------------------------------------------- 修正DBS使用缓存情况下,因关闭保存缓存间隔太长,导致被GameCenter强制关闭而导致回档问题 2020/1/14 全套程序配套更新 --------------------------------------------------------------------------- M2 修正装备单独爆率设置读取不到问题 M2 优化角色DB存取逻辑,释放主线程压力 RunGate 优化ClientSocket,提高稳定性 DBS 优化角色数据的存取IO性能;优化读写逻辑,防止文件读写失败问题 2020/1/13 全套程序配套更新 --------------------------------------------------------------------------- M2/DBS 优化角色数据的存取逻辑 2020/1/9 全套程序配套更新 --------------------------------------------------------------------------- !重要: M2修因角色数据个别错误可能导致登录黑屏问题 !重要: DBS修正可能死锁问题 M2优化角色数据的存取逻辑 DBS允许将缓存数量设置为0 2020/1/6 全套程序配套更新 --------------------------------------------------------------------------- !重要: 修正DBServer未能正确处理[创建英雄/改名/英雄改名]和其他存储问题 !重要: 修正因底层函数优化引起的各种小bug,比如微端部分资源更新不了... 修正拾取规则未加载bug 自定义怪物名字颜色,Envir目录的CustomMonNameColors.txt,动态修改文本后重新加载怪物数据库生效,格式:怪物名字 颜色(1..255),客户端会默认显示自定义怪物的名字,可在内挂选择关闭 自定义物品名字颜色,Envir目录的CustomItemNameColors.txt,动态修改文本后重新加载物品数据库生效,格式:物品名字 颜色(1..255) // 非176版本才有此功能 M2修正死亡之眼技能能打到非本地图怪物问题 M2修正聚灵珠不能在DB设置爆出为满经验问题 2019/10/22 !全套程序配套使用 --------------------------------------------------------------------------- M2加入自动更新功能,可在关于菜单设置是否自动检测更新 M2可储存ints从0~9扩展到0~29,尽量使用此变量,避免使用直接读写文本的自定义变量 M2每1开网关端口的人数限制从6000提高到8000 提高M2处理游戏流量的能力 修正上个版本可能存在跑位空气墙问题 游戏网关接收缓冲区大小自适应,增加发送缓存以提高处理流量能力(内存相对上个版本会多一些) 游戏网关修正关闭程序时的一个bug M2/DBS改写人物数据存取逻辑,大幅度提高存取数据的效率 修正很小的可能造成个别玩家数据存储错误bug,需要配套更新M2和DBServer 修正挂机假人会攻击人物下线时刻的英雄 扩展NPC命令:compval <$USERID> ^ "userid" // $USERID是否以userid开头 扩展NPC命令:compval <$USERID> ` "userid" // $USERID是否以userid结尾 登录器支持自配置自动刷新服务器列表 登录器配置器可自定义客户端Logo,png格式,可利用登陆器更新功能下载至传奇目录,留空使用默认logo(建议使用PS裁剪掉透明部分以减少文件大小) KillMonGetFullExp +/-/= 秒数 // 高等级杀怪获取全部经验时间(秒),存库 REFITEMSHAPE 位置 数值 // 引用某同类型物品外观,位置:0衣服 1武器,数值参考stditems.db中的物品idx,存库,(连击合击版本才支持) --------------------------------------- 增加角色改名功能,详见附件示意脚本,改名之前,如果有武器正在升级,需要取回 --------------------------------------- 推广ID功能 登录器配置器增加“推广ID”的填写,最多14字节(7个汉字) 游戏内获取推广ID的脚本变量:<$ADID> --------------------------------------- 增加NPC命令:SetAbility 位置(0~100) 数值 持续秒数 结束时的提示字符(留空不提示) 其中有如下49个固有属性,其他的50-100可以用作临时计时变量,也可以作为计时器使用。 [@SetAbility] #ACT SetAbility 10 15 30 暴击附加属性恢复正常。 SENDMSG 5 获得暴击附加属性15点,持续30秒。 ;SetAbility 10 0 0 暴击附加属性恢复正常。 // 立即清理位置10的属性 ;SetAbility clearup // 清理所有属性 位置对应属性: 0 // 腕力 1 // 负重 2 // 背包重量 3 // 准确 4 // 敏捷 5 // 魔法躲避 每一点代表10%,10点即为100%。 6 // 毒物躲避 每一点代表10%,10点即为100%。 7 // 中毒恢复 每一点代表10%,10点即为100%。 8 // 生命恢复 每一点代表10%,10点即为100%。 9 // 魔法恢复 每一点代表10%,10点即为100%。 10 // 暴击 11 // 目标爆率 12 // 防爆 13 // 忽视 属性为百分比,最大为100。 14 // 增伤 属性为百分比,最大为100。 15 // 反射 属性为百分比,最大为100。 16 // 物减 属性为百分比,最大为100。 17 // 魔减 属性为百分比,最大为100。 18 // 吸血 19 // 幸运 20 // GM隐身(观察模式) 21 // GM无敌 22 // 禁止使用物品 23 // 禁止丢弃 24 // 禁止移动 25 // 禁止跑步 26 // 禁止物理攻击 27 // 禁止魔法攻击 28 // 稳如泰山(不可被野蛮推动) 29 // 禁止召唤英雄 30 // 禁止修改攻击模式 31 // 禁止使用仓库 32 // 麻痹模式 33 // 魔道麻痹 34 // 复活 35 // 护身 36 // 传送 37 // 探测 38 // 隐身 39 // 破麻 40 // 防毒 41 // 破复活 42 // 破护身 43 // 背包不掉 44 // 装备不掉 45 // 攻击加速(10点以下为减速度,10点以上为加速度,与武器一致) 46 // 禁止交易 47 // 禁止摆摊 48 // 禁止出售物品 --------------------------------------- 新增爆率文件引入用法,可以和以前的爆率混搭使用,支持多个文件被同时调用,方便编辑爆率 比如在 白野猪.txt 写入如下内容: // MonDropItems目录位于MonItems目录下 #CALL [MonDropItems\药品爆率.txt] #CALL [MonDropItems\衣服爆率.txt] --------------------------------------- 支持爆率变量检测,兼容老格式,满足指定条件,物品才会爆出: 1/x 装备名称 数量 $变量 检测符(><=!?) 检测数值 扣除(负数扣除,正数增加) 检测符: ?表示>=,^和`用于字符串检查 扣除: 和爆率没有关系,只关联检查条件,设置数值为0不操作 例子: 1/1 强效太阳水 1 $GOLDCOUNT ? 0 100000 // 增加10万金币 1/3 强效太阳水 1 $GAMEGOLD ? 100 -100 // 元宝>=100时,有1/3几率计算掉落物品,否则不掉;元宝>=100时,扣除100元宝 1/8 某区物品 1 $SERVERNAME = XX传奇1区 // XX传奇1区 才有可能爆出 1/8 某物品 1 $USERID ^ head // 账号以head开头 才有可能爆出 1/8 某物品 1 $USERNAME ` tail // 角色名以tail结尾 才有可能爆出 支持变量: $SERVERNAME $SERVERIP $WEBSITE $BBSSITE $CLIENTDOWNLOAD $QQ $PHONE $BANKACCOUNT0 $BANKACCOUNT1 $BANKACCOUNT2 $BANKACCOUNT3 $BANKACCOUNT4 $BANKACCOUNT5 $BANKACCOUNT6 $BANKACCOUNT7 $BANKACCOUNT8 $BANKACCOUNT9 $GAMEGOLDNAME $GAMEPOINTNAME $USERCOUNT $MACRUNTIME // 服务器开启天数 $SERVERRUNTIME // 引擎开启分钟数 $DATETIME: // 当前日期,格式:2019-11-12 $CURRENTMAPDESC // 地图名 $CURRENTMAP // 地图文件名 $CURRENTX $CURRENTY $GENDER // 0,1 $JOB //0,1,2 $ABILITYADDPOINT0..ABILITYADDPOINT6 $ABILITYADDTIME0..ABILITYADDTIME6 $USERNAME $USERID $CURITEMID $ATTINFO_SKILLID $ATTINFO_RACE $ATTINFO_ISHERO $ATTINFO_NAME $ATTINFO_FNAME $ATTINFO_MNAME $CURTITLENAME $MEMBRETYPE $MEMBRELEVEL $RANDOMNO $RELEVEL $GUILDHUMCOUNT $GUILDNAME $RANKNAME $LEVEL $COLLECTEXP $COLLECTIPEXP $HP $MAXHP $MP $MAXMP $AC $MAXAC $MAC $MAXMAC $DC $MAXDC $MC $MAXMC $SC $MAXSC $HIT $SPD $BONUSPOINT $BONUSABIL_AC $BONUSABIL_MAC $BONUSABIL_DC $BONUSABIL_MC $BONUSABIL_SC $BONUSABIL_HP $BONUSABIL_MP $BONUSABIL_HIT $BONUSABIL_SPD $BONUSABIL_X2 $EXP $MAXEXP $PKPOINT $HW $MAXHW $BW $MAXBW $WW $MAXWW $HUNGER $CREDITPOINT // 支持扣除操作 $GOLDCOUNT // 支持扣除操作 $GAMEGOLD // 支持扣除操作 $NIMBUS // 支持扣除操作 $GAMEPOINT // 支持扣除操作 $GAMEDIAMOND // 支持扣除操作 $GAMEGIRD // 支持扣除操作 $INTS0..INTS30 // 支持扣除操作 $LOGINLONG // 登录时长,分钟 $DRESS // 衣服名 $WEAPON // 武器名 $RIGHTHAND $HELMET $NECKLACE $RING_R $RING_L $ARMRING_R $ARMRING_L $HELMETEX // 非176版本 $BUJUK // 非176版本 $BELT // 非176版本 $BOOTS // 非176版本 $CHARM // 非176版本 $DRUM // 非176版本 $HORSE // 非176版本 $FASHION // 非176版本 $HWID $YEAR $MONTH $DAY $HOUR $MINUTE $SECOND $MILLISECONDS $MONDROPRATE $IPADDR $IPLOCAL $GUILDBUILDPOINT $GUILDAURAEPOINT $GUILDSTABILITYPOINT $GUILDFLOURISHPOINT $STR(XX) // 支持扣除操作,其中的全局变量不要频繁使用,否则造成服务器卡顿 $H.STR(XX) // 支持扣除操作,其中的全局变量不要频繁使用,否则造成服务器卡顿 $HUMAN(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题 $H.HUMAN(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题 $GUILD(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题 $GLOBAL(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题 $PARAM(0..7) 攻击触发: --------------------------------------- !setup.txt AttackTrigger=0 // 攻击触发总开关,默认0关闭,1开启触发QF的[@Attack] Envir\MonAttackTrigger.txt // 可以被攻击触发的怪物名称列表,每行一个 // 下列为[@Attack][@UnderAttack]攻击触发字段的【专属】变量,不能用于其他字段,否则引擎会发生崩溃 $TARINFO_RACE // 目标Race $TARINFO_ISHERO // 目标是否英雄 {'0', '1'} $TARINFO_NAME // 目标名称 $TARINFO_FNAME // 目标全名 $ATTINFO_SKILLID // 攻击使用技能ID $ATTINFO_RACE // 攻击者Race $ATTINFO_ISHERO // 攻击者是否英雄 $ATTINFO_NAME // 攻击者名称 $ATTINFO_FNAME // 攻击者全名 // 目标变量 $T.CURRENTMAPDESC $T.CURRENTMAP $T.CURRENTX $T.CURRENTY $T.USERNAME $T.MONKILLER $T.KILLER $T.LEVEL $T.HP $T.MAXHP $T.MP $T.MAXMP $T.AC $T.MAXAC $T.MAC $T.MAXMAC $T.DC $T.MAXDC $T.MC $T.MAXMC $T.SC $T.MAXSC $T.HIT $T.SPD // QF例子 [@Attack] // 人或随从攻击列表指定怪物,会触发 #IF COMPVAL <$TARINFO_FNAME> = 蜈蚣 COMPVAL <$T.HP> > 50 #ACT T.HUMANHP - 50 SENDMSG 7 目标【<$TARINFO_NAME>】血量<$T.HP> #IF COMPVAL <$ATTINFO_RACE> ! 1 // Race=1 是玩家,这里就是非玩家(即随从) #ACT SENDMSG 7 你的随从<$ATTINFO_NAME>正在攻击<$TARINFO_NAME> [@UnderAttack] // 被人或随从或列表指定怪物攻击,会触发 #IF COMPVAL <$ATTINFO_FNAME> = 蜈蚣 // 蜈蚣打随从或自己 #ACT HUMANHP - 50 // 主人扣血 #IF COMPVAL <$ATTINFO_MNAME> ! "" // 攻击者主人名称不为空 #ACT SENDMSG 7 【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你 #ELSEIF COMPVAL <$TARINFO_RACE> ! 1 // 自己的随从 #ACT SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】 #ELSEACT SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你 --------------------------------------- 主界面自定义按钮,最多20个,参考附件,可利用登陆自动更新配置 客户端data目录下增加配置文件:MainWidgetCfg.ini // 主界面自定义按钮,最多20个,参考附件,可利用登陆自动更新配置 MainWidgetCfg.ini的wmlib=Lui时,会调用Lui.pkg的图片,图片名为lui.pkg内的文件名,非lui库的图片索引大于0才生效 MainWidgetCfg.ini LoginShowChildButton=0/1 字段,登陆是否显示各个子按钮 点击按钮会根据按钮序号执行QChatMission-0.txt脚本对应的[@MainBtnFunc_0至20]字段,[@MainBtnFunc_20]是显示开关的触发 相应的NPC控制脚本命令如下: MAIN_FUNC_BTN_SHOW 序号 0/1 // 显示或隐藏 MAIN_FUNC_BTN_FLASH 序号 0/1 // 按钮是否闪烁 MAIN_FUNC_BTN_POS 序号 X Y // 调整按钮位置 !Setup.txt OpenMainFuncBtns=0/1 // 开启或关闭主界面功能按钮功能,默认关闭 2019/9/29 --------------------------------------------------------------------------- !setup.txt参数,MagicHitRateCompensate // 对奔跑的目标魔法命中率调节,默认0,数字越大命中越高,设置3基本可以达到100%命中;可以设置负数来减少命中率,-1大概相当于复古参数 修正偶尔出现被攻击21E问题 英雄守护模式:HeroGuardMode=1 // 默认1可以飞到目标点,0则是飞到主人身边再跑往目标点 修正21E版DBServer第一个角色读取不到问题 2019/9/16 !引擎和DBS需要配套 --------------------------------------------------------------------------- 优化DBS,避免因为一些删除操作造成数据混乱 INI_RENAME_SECTION 文件 节名 新节名 // 重命名Ini的节点名 StringsReplace 文件名 原字符 新字符 1 HardDisk // 将文本中的原字符替换为新字符;其中的1表示忽略大小写,0不忽略大小写; // HardDisk表示直接使用文本读写模式(强烈建议内存模式操作,直接读写文本严重降低引擎性能) RenameFile 源文件名 新文件名 // 重命名文件名,支持内存中的文件操作,例如: ----------------------------------- mov S1 <$PARAMSTR(1)> inc S1 ".txt" mov S2 <$PARAMSTR(2)> inc S2 ".txt" RenameFile <$STR(S1)> <$STR(S2)> 2019/9/07 --------------------------------------------------------------------------- 使用聚灵珠触发QF的[@OnUseExpBall] [@OnHeroUseExpBall] <$PARAM(1)>:物品名 <$PARAM(2)>:价格 <$PARAM(3)>:价格类型(0-4) 购买摆摊物品触发QF的[@OnBuyItemFromStall] <$PARAM(1)>:物品名 <$PARAM(2)>:价格 <$PARAM(3)>:价格类型(金币/元宝) <$PARAM(4)>:卖家名 2019/9/06 !RunGate/DBS/M2/客户端 需要配套使用 --------------------------------------------------------------------------- 修正一个怪物攻击力计算不准确问题 修正部分几率计算溢出问题 修复极品属性多出1点bug,对此项要求严格的请重新调节极品属性的最高点数 普通属性支持21亿,RunGate/DBS/M2/客户端 需要配套使用(测试) 2019/9/04 --------------------------------------------------------------------------- !修正丢金币方式来刷金币的漏洞 现在英雄守护可以直接飞到目标点 设置SearchTargetWhenIdle=1自动打怪空闲时随机搜寻,否则停留原地等待刷怪 设置SkillMedusaEyeEffectPlayer=0【美杜莎之瞳】不对玩家起作用,默认设置=1可以起作用;SkillMedusaEyeUseInterval=45技能间隔时间(秒) 修复商店价格问题 2019/9/01 --------------------------------------------------------------------------- !封交易重叠物品的漏洞 修正战士连击导致对方持续不可移动状态(测试) 优化地图对象转移处理流程 优化地图单元处理流程,少占用点内存 普通药品回血速率规范化 注意:没有鉴定次数的物品不会有实际属性 2019/8/12 --------------------------------------------------------------------------- 修正GM命令失效:@DelDenyIPLogon 开放OfflinePlayEx(测试版) 隐身技能可能出现时间计算错误 优化部分代码 添加ProcessHurryMsg开关,默认开启能优化消息延迟,提高PK体验,但能耗会稍微增加 2019/7/30 --------------------------------------------------------------------------- 尝试修复人物变黑问题 增加地图参数:NoHeroGuard,禁止英雄守护 2019/7/28 --------------------------------------------------------------------------- 提高大/小火球,雷电术,灵魂火符等魔法对奔跑对象的击中率 提高[道战合击]道术对伤害加成的比例,输出和之前版本比较有差异,请自定调节威力比例 修改[法战合击]的输出计算,输出和之前版本比较有差异,请自定调节威力比例 尝试修复status混乱问题 2019/7/21 --------------------------------------------------------------------------- 修正受攻击触发bug 提示:如果要让战士技能(不包含普攻)发挥最高幸运攻击,编辑magic.db的穿透属性,阅读以往穿透的相关更新, 刺杀默认应该是Penetrate=3 PenetrateRate=100,其他技能自行发挥设置 2019/7/19 --------------------------------------------------------------------------- 修正拾取物品触发获得的makeIndex为0的bug 修正中毒状态混乱bug 攻击触发: --------------------------------------------------------------------------- !setup.txt AttackTrigger=0 // 攻击触发总开关,默认0关闭,1开启触发QF的[@Attack] Envir\MonAttackTrigger.txt // 可以被攻击触发的怪物名称列表,每行一个 // 攻击触发专属变量 $TARINFO_RACE // 目标Race $TARINFO_ISHERO // 目标是否英雄 {'0', '1'} $TARINFO_NAME // 目标名称 $TARINFO_FNAME // 目标全名 $ATTINFO_SKILLID // 攻击使用技能ID $ATTINFO_RACE // 攻击者Race $ATTINFO_ISHERO // 攻击者是否英雄 $ATTINFO_NAME // 攻击者名称 $ATTINFO_FNAME // 攻击者全名 // 目标变量 $T.CURRENTMAPDESC $T.CURRENTMAP $T.CURRENTX $T.CURRENTY $T.USERNAME $T.MONKILLER $T.KILLER $T.LEVEL $T.HP $T.MAXHP $T.MP $T.MAXMP $T.AC $T.MAXAC $T.MAC $T.MAXMAC $T.DC $T.MAXDC $T.MC $T.MAXMC $T.SC $T.MAXSC $T.HIT $T.SPD // QF例子 [@Attack] // 人或随从攻击列表指定怪物,会触发 #IF COMPVAL <$TARINFO_FNAME> = 蜈蚣 COMPVAL <$T.HP> > 50 #ACT T.HUMANHP - 50 SENDMSG 7 目标【<$TARINFO_NAME>】血量<$T.HP> #IF COMPVAL <$ATTINFO_RACE> ! 1 // Race=1 是玩家,这里就是非玩家(即随从) #ACT SENDMSG 7 你的随从<$ATTINFO_NAME>正在攻击<$TARINFO_NAME> [@UnderAttack] // 被人或随从或列表指定怪物攻击,会触发 #IF COMPVAL <$ATTINFO_FNAME> = 蜈蚣 // 蜈蚣打随从或自己 #ACT HUMANHP - 50 // 主人扣血 #IF COMPVAL <$ATTINFO_MNAME> ! "" // 攻击者主人名称不为空 #ACT SENDMSG 7 【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你 #ELSEIF COMPVAL <$TARINFO_RACE> ! 1 // 自己的随从 #ACT SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】 #ELSEACT SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你 2019/7/15 --------------------------------------------------------------------------- 优化游戏PK体验 修正仓库存取重叠物品严重漏洞!及时更新至此新版本。 修正上个版本怪物会有几率变人形的bug 调整忽视防御优先于技能穿透的计算(注:忽视防御属性不作用于魔法盾的抵御,要忽视魔法盾请在magic.db配置技能的穿透属性) 增加地图参数:SensitiveCreature,作用: 一旦人物/宠物进入怪物视觉范围,怪物马上有反应,表现上怪物更为灵活,例如随机到怪物旁边,怪物不会再像以前一样反应迟钝 在开启了SensitiveCreature参数的地图上,道士的隐身技能更能凸显作用。 合区工具日志查询功能增加【沙城收入/沙城提取/升级武器取回】的日志查询,修正【武器升级成功/失败】查询不到bug 2019/6/13 --------------------------------------------------------------------------- 添加两步验证Key的获取,引擎 + LoginSvr配套,应用例子: -------------------------------------------------- [@main] <获取两步验证绑定状态/@GetTotpKey>\ \<关闭/@exit> [@GetTotpKey] #act GetTotpKey // 请求状态,成功后将回调[@OnGetTotpKey]标签 [@OnGetTotpKey] #act GetStrLenght <$TOTPKEY> M0 goto ~OnGetTotpKey [~OnGetTotpKey] #if equal M0 16 #say 你的账号已经绑定两步验证, <解除绑定/@@totp>\ \<关闭/@exit> #elsesay 你的账号还没有绑定两步验证, <进行绑定/@@totp>\ \<关闭/@exit> -------------------------------------------------- 死亡取消交易 离线数据修改记录日志(注:即使玩家不存在也记录) 小优化 2019/4/28 --------------------------------------------------------------------------- 游戏网关添加喊话过滤:ChatCmds.txt,在此列表的命令,喊话内容会进行脏话检测过滤,每行一个命令,默认只有一条:“@传 ”(不包含双引号,注意后面有空格) Abusive.txt 格式修改为:过滤字符 规则(0全部替换 1命中字符替换为* 2踢下线),例如:操 1;每行一条规则 引擎自定义命令参数也采用GuildRankNameFilter.txt中的字符进行过滤 修复仓库存储【重叠物品】的严重漏洞 增加拾取物品规则列表PickItemRule.txt,格式:物品名称 1,物品为队伍打怪产出,只有队长可以拾取 LoginSvr完善两步验证 LoginGate // 用 登陆器配置器.exe 生成新的LoginGate(注:登录器和客户端没有更新) 同一IP在一定时间内,连续密码错误,累计到指定数量会加入临时封IP列表,参数可以在[安全过滤-新建账号过滤]面板调节 LoginServer 两步验证版本,密码错误累计禁止登录的时间大幅度缩减 M2Server 增加参数 SaveDataTimeoutMs=10000 // 保存数据超时(毫秒),超时后会中断保存数据循环,给加载数据时间片。注:M2压力大时人物登陆会黑屏,设置10000即等10秒左右会进游戏,较短的设置值,黑屏时间更短,但不能太短,否则保存数据效率变低,默认10000即可 DBSvrConnections=16 // M2和DBServer的连接数,默认16,较多的连接对数据保存/加载有效率加成,一般设置8-64之间,建议16-32。(假如设置为32,相比未扩展此参数之前,效率提升大概有15倍) KeepSaveDataCache=1 // 人物保存数据缓存是否保留,默认1,不保留可能会引起回档,保留则引擎的保存列队有可能出现比较多的情况(关系不大),请保持默认值,除非用于测试。 以上三个参数,一般只调节DBSvrConnections即可,其他保持默认。 DBServer 主界面显示更多的连接信息 2018/8/15 --------------------------------------------------------------------------- 聚灵珠增加使用等级限制,设置db的needLevel 修正loginsvr写日志奔溃bug $CURTITLENAME 当前使用称号 !setup.txt ShowQueryStateInfoTips=1 // 别人查看自己装备信息时,是否提示 [@PickupItem] [@DropItem] 支持第七参数,参数值为物品ID 增加[@HeroDie] 英雄死亡,<$PARAM(0)>:主人角色名 <$PARAM(1)>:英雄角色名 <$PARAM(2)>:地图名 <$PARAM(3)>:X坐标 <$PARAM(4)>:Y坐标 记录 金刚石/灵符 的 获取/消耗 日志,合区工具支持查询 NPC命令:TakeOff 位置 // 脱下装备,连击版本位置:0..16,176/四格位置:0..13,TakeOff All 全身脱下 HUMANHP 减血有飘血效果 引擎设置需要蜡烛时,内挂禁止免蜡开关(基本没什么用) 客户端窗口层叠关系优化 重叠物品操作优化 黑夜模式下,技能亮光补全 -------------------------------------- PLAYEFFECT WIL名称 X Y 起始图片 帧数 间隔 循环次数 声音 声音循环(0/1) 对象(""/All/Guild/地图名) // X=-1则跟随人物坐标播放,否则固定坐标; // 对象:空字符("")自己和周围的人,all在线所有人 guild行会在线的人 地图给某指定地图发送 // 执行效果并触发当前脚本的[@OnPlayEffect] 例: <播放特效/@PlayEffect>\ [@PlayEffect] #act PLAYEFFECT Prguse2 -1 -1 110 15 80 1 Wav\powerup.wav 0 "" [@OnPlayEffect] #act SENDMSG 3 播放了一个动画效果 -------------------------------------- 新加QF触发标签: [@BuildGuild] // 创建行会,<$PARAM(0)>行会名 [@JoinGuild] // 加入行会,<$PARAM(0)>行会名 [@LeaveGuild] // 退出行会,<$PARAM(0)>行会名 [@KickOutOfGuild] // 踢出行会,<$PARAM(0)>行会名 [@DismissGuild] // 解散行会,<$PARAM(0)>行会名 -------------------------------------- 技能基础面板增加:技能升级威力附加万分比参数,比值越高,技能级别差体现的攻击力差别越大,目的是为了改善变态版本(自身高攻击力)各职业的技能 升级后攻击力增加不明显的问题,默认为0,不附加威力,请根据版本自行测试调节。 -------------------------------------- 防盗号加强:去掉二级密码,换为两步验证,需要【引擎/LoginSvr/客户端】配套。 同时修改MD5密码版的LoginSvr支持合区,不兼容之前的MD5版本数据;明文密码版本的LoginSvr数据兼容。 #SAY <绑定或解绑两步验证/@@totp>\\ 修改LoginSvr对密码错误的临时冻结更加严格;密码/验证码错误次数越多,临时冻结越长,基本呈指数级增长。 -------------------------------------- 合区工具增加清理账号二级密码功能 两步验证是二级密码的升级版,不兼容原来的二次密码数据, 想要使用新的两步验证功能,请先清理原先的二级密码,再让用户到游戏里的NPC处自行绑定两步验证。 2018/7/01 --------------------------------------------------------------------------- 英雄锁定范围检测更严格 客户端显示武器强度,调节武器属性位置7可以获得强度 修改SETRANDOMNO:可以指定范围参数 // SETRANDOMNO 1000000 NPC检测命令:COMPVAL 数值1 >/ = 名称,COMPVAL $STR(N1) > 50 增加 #ELSEIF #ELSEIFSAY #ELSEIFACT(或#ACT) // 成对编写,例: ------------------------------------ [@test] #ACT SETRANDOMNO 1000000 // 0~999999 #IF COMPVAL <$RANDOMNO> < 100 #ACT SENDMSG 3 特等奖<$RANDOMNO> #ELSEIF COMPVAL <$RANDOMNO> < 1000 #ACT SENDMSG 5 一等奖<$RANDOMNO> #ELSEIF COMPVAL <$RANDOMNO> < 2000 #ACT SENDMSG 6 二等奖<$RANDOMNO> #ELSEIF COMPVAL <$RANDOMNO> < 4000 #ACT SENDMSG 7 三等奖<$RANDOMNO> #ELSEIF COMPVAL <$RANDOMNO> < 8000 #ACT SENDMSG 7 鼓励奖<$RANDOMNO> #ELSEACT SENDMSG 7 谢谢参与<$RANDOMNO> 2018/6/15 引擎和客户端需要配套更新 --------------------------------------------------------------------------- 修复多引擎负载过图有几率造成随从丢失bug 修正客户端频繁向微端服务器发送请求bug 修正聚灵珠摆摊价格显示错误bug 时间使用类的物品计时更准确,stdmode=2 shape=18类物品在客户端可显示剩余时间 修复多引擎负载过图后法师召唤下属属性不对应bug 修复多引擎负载过图后蓝量异常bug 修复多引擎负载有概率小退黑屏bug (复活地图所属的引擎与死亡地图所属引擎不同) 修复多引擎负载出生点新角色登陆黑屏bug 优化日志处理 可以重新加载动态创建的NPC(之前有bug才去掉?) NPC命令:GOHOME // 回安全区 NPC条件命令:FINDDELETELINE // 检测文本行并删除保存 --------------------------------------- #IF FINDDELETELINE 文本路径 <$USERID> // 充值提取专用,避免文本写入冲突造成刷元宝bug #ACT GAMEGOLD + XX #ELSESAY 操作失败,稍等片刻再操作 2018/5/13 --------------------------------------------------------------------------- 客户端修正使用部分远程攻击类新怪物引起出错bug 客户端支持24/32位的wil/wzl ChangeExp/ChangeIPExp 第三参数不为空时,聚灵珠不会聚集经验 英雄支持必定掉落的物品 修正授予英雄称号不激活称号bug 拾取HintItemList.txt中的物品触发QF的[@PickupItem] <$PARAM(1)>:物品名 <$PARAM(2)>:Looks <$PARAM(3)>:角色名 <$PARAM(4)>:地图名 <$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 丢弃HintItemList.txt中的物品触发QF的[@DropItem] <$PARAM(1)>:物品名 <$PARAM(2)>:Looks <$PARAM(3)>:角色名 <$PARAM(4)>:地图名 <$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 修正上个版本怪物移动/攻击速度异常 QM增加[@OnInit],执行时机优先于[@Login],用于初始化人物私有变量(注:[@Login]初始化变量时机不够早,会造成一些的脚本变量应用报错) 2018/4/5 --------------------------------------------------------------------------- 聚灵珠金币/元宝消耗记录日志 客户端修正鼠标乱移动bug NPC检测命令增加取反支持: !CHECKLEVELEX > 10 // 检测等级是否小于等于10 2018/2/4 !需要修改脚本 --------------------------------------------------------------------------- 自定义变量Var相关操作去掉HardDisk操作,统一为在声明变量是确定是否为实时硬盘读写,例如: [@login] VAR INTEGER HUMAN player_level "" hardDisk // "" 表示第四参数为空参数 LOADVAR GUILD player_level ..\QUESTDIARY\UserData\PlayerData.txt [@dynvar_human_level] #act CALCVAR HUMAN player_level = <$LEVEL> SAVEVAR HUMAN player_level ..\QuestDiary\UserData\PlayerData.txt force //force 耗时操作的实时保存,操作频繁游戏卡顿 对于以上例子,如果PlayerData.txt已经使用hardDisk参数操作,所有其他读写于PlayerData.txt的变量都要统一为hardDisk 注:hardDisk 是非常耗时的操作,非必要的情况下,不要使用,否则只会造成游戏卡顿 修正部分会使用技能的怪物追击目标逻辑,完善一些新怪。 开箱子得到存在于HintItemList.txt的物品,触发:QFunction的[@OpenTreasureChest],<$PARAM(1)>:物品名 <$PARAM(2)>:数量 <$PARAM(3)>:Looks 2018/1/29 --------------------------------------------------------------------------- 修正部分Win10版本客户端Alt+Enter切换窗口/全屏模式bug 商铺购买,并列入HintItemList.txt的物品,触发QFunction的[@shopping],<$PARAM(1)>:物品名 <$PARAM(2)>:价格 <$PARAM(3)>:Looks 客户端兼容win10秋季创意版(属于windows10FCU的bug) 修正174 129 4116 怪物普通攻击无效bug 2018/01/10 --------------------------------------------------------------------------- 修正一个严重bug,可能导致出现变态装备 去掉实验性封包优化模块,略减少内存占用 2017/12/28 测试版引擎,测试用 --------------------------------------------------------------------------- 优化封包接收/发送流程,测试:一次刷12000只怪(怪会暴出物品),火墙烧,对比优化前后烧完怪的时间,还有卡顿对比情况 [@HeroTakeOn+位置] [@HeroTakeOff+位置] // 英雄穿戴/取下装备触发,参考人物的穿戴触发 IsNearby H/人物名 // 检测指定角色名玩家/怪物等是否在附近,H指自己的英雄 修正内存池申请bug 修正NPC商店物品处理可能导致引擎崩溃bug 2017/12/10 --------------------------------------------------------------------------- 客户端新功能修正完善 客户端消息处理优化 客户端渲染优化 修正完善1208增加的新功能 2017/12/08 --------------------------------------------------------------------------- 增加NPC命令: KillMonGetFullExp +/-/= 秒数 // 高等级杀怪获取全部经验时间(秒),存库 REFITEMSHAPE 位置 数值 // 引用某同类型物品外观,位置:0衣服 1武器,数值参考stditems.db中的物品idx,存库,(连击合击版本才支持) 修正游戏网关可能丢包,造成卡包,或其登陆黑屏问题 修正游戏网关CD版本 下发较大的包可能出现丢失BUG,比如卡包 引擎修正完善内存池的应用 MonSpAbilList.txt 第13项,破盾修改为几率(0~100) PIC=功能扩展2: // 配置后面增加两项:绝对X,绝对Y(不参与自动换行计算) //items=wil文件名,索引,图片数,循环,透明,偏移X,偏移Y,绝对X,绝对Y(不参与自动换行计算) NPC文字信息配置新用法: ---------------------------------------- 文字{X=2,Y=3,C=clBlue,T=tips,AX=11,AY=22} // X,Y偏移,C颜色,T提示,AX绝对X,{}内的系列配置会覆盖掉color=,hint=等的参数 // AX/AY为绝对值(不参与自动换行计算,最终坐标Y=Y+AY) 颜色用法可以这样: color=#321321 或 color=$321321,{c=#321321} 或 {c=$321321} 可以用吸色器获取各种颜色的数值 例如: 裁决图片{c=cllime} <脚本标签{c=cllime,T=tips}/@execlab> \ \ “” 等同于 “文字{X=11,Y=22,c=clgreen,T=tips}” ---------------------------------------- SETMERCHANTDLGIMGNAME 图片名 索引 // 索引不为0,图片名为有效素材文件名,会调用素材指定索引的图片 增加NPC命令: ---------------------------------------- NPC_DLG_OPTIONS 地图 NPC名字 参数 排列 对话框图片名 索引 // 可以在登陆脚本定义,只需要定义一次,除非参数改变 地图:NPC所在地图号(土城就是3),地图为""时,会根据NPC名字搜索 参数:1隐藏拉条,2对话框可移动,4闪烁,是复合参数,例如:1 + 2 = 3 表示可移动并隐藏拉条 排列:0或1默认,2居中,3右上,4左下,5右下 对话框图片名:空默认,索引不填写或等于0,调用lui.pkg图片,索引有效,调用素材文件的指定索引图片(素材文件名不要写扩展名) 一些特殊NPC名字和所属地图:QFunction/0,QMapEvent/0,QManage/0,RobotManage/0,QChatMission/0 建议: 不要再使用SETMERCHANTDLGIMGNAME,而使用NPC_DLG_OPTIONS代替,能有更好的体验 例子: QManage.txt 中的 [@login] #act NPC_DLG_OPTIONS 0149 盟重张家布衣 7 2 MerchantDlg.png NPC_DLG_OPTIONS 0149 盟重手套店 3 3 ui1 2731 NPC_DLG_OPTIONS 0149 盟重老张头盔店 3 4 ui1 2924 NPC_DLG_OPTIONS 0 QFunction 3 4 ui1 3020 ---------------------------------------- 2017/11/27 --------------------------------------------------------------------------- 处理引擎和网关因通讯丢包引起个别玩家登陆黑屏(测试) 2017/11/16 --------------------------------------------------------------------------- 修正#IF(X)多条件判断 优化性能,负载能力应该提升不少 2017/9/19 --------------------------------------------------------------------------- 修正NPC获取 修正挖肉卡顿 修正完善内存池调用 2017/9/9 --------------------------------------------------------------------------- 修正掉线重新召唤的随从行走速度异常 优化NPC获取 修正技能等级变化没有刷新技能套装威力 修正游戏网关停止服务发生崩溃,优化性能 引擎加载脚本检测到存在重复标签时增加提示(重复标签只会执行其中一条,是错误写法) 2017/8/21 --------------------------------------------------------------------------- 以下脚本提供是否实时读写硬盘操作的参数,默认不写InTime参数,都是内存操作方式, 除非需要外部操作特定的文本去实现某些功能,才依据情况去添加InTime参数。 为什么要更新这个功能,因为实时硬盘操作文本数据效率特别低;特别是文本到一定大小以后,很容易造成游戏卡顿。 注:UnMarry.txt 为内存操作;之前针对以下命令的更新被此次更新覆盖 !setup.txt UseFastTextFile=0,可以恢复到全硬盘读写模式(旧模式),但是不建议这样做。 只需要对特性的文件做HardDisk操作就可以,这样能提升游戏的性能。 //第2参数为:HardDisk,实时读写硬盘数据,否则在内存操作 ADDNAMELIST ADDGUILDLIST ADDACCOUNTLIST ADDIPLIST DELNAMELIST DELGUILDLIST DELACCOUNTLIST DELIPLIST CHECKNAMELIST CHECKACCOUNTLIST CHECKIPLIST CHECKGUILDLIST AddNameDateList DelNameDateList ClearNameList CheckAccountIPList CheckNameIPList CheckCodeList AddUseDateList DelUseDateList //第3参数为:HardDisk,实时读写硬盘数据,否则在内存操作 CHECKSTRINGLIST ReadRandomLine ReadRandomStr DelCodeList WriteLineList DeleteLineList //第4参数为:HardDisk,实时读写硬盘数据,否则在内存操作 ReadLine DeleteLine WriteLine InsertLine CheckNameListPostion //第6参数为:HardDisk,实时读写硬盘数据,否则在内存操作 CheckUserDateType //第7参数为:HardDisk,实时读写硬盘数据,否则在内存操作 CheckNameDateList 2017/7/01 此次更新引擎+网关需要配套,否则会造成下发流量增加 --------------------------------------------------------------------------- 修正2017/6/20版出现随机卡顿bug 游戏网关CD版优化封包下发 游戏网关增加 “@传 文字”,可以脏话过滤 优化NPC命令:MOVETOCELL X Y NPC名称 //X和Y等于0,取人物当前坐标,如果有“NPC名称”,此命令功能相当于点击人物可视范围内的指定NPC。 增加单独点击NPC命令:CLICKNPC NPC名称 //引擎客户端都需要更新 客户端修正连击补丁失效问题(类似:~hum_she75.wil 的文件) ClearNameList 第二参数不为空,则清理内存中的文本数据。默认为空,清理硬盘上的文本数据。 以下更新适用于外部程序修改硬盘文件数据 ---------------------------------------- LoadVar 第4参数为:InTime,实时读写硬盘数据 SaveVar 第4参数为:InTime,实时读写硬盘数据 第4参数为:Force,将实时保存内存数据至硬盘;即使不使用force参数,引擎也会每间隔1分钟自动存盘 CalcVar 第5参数为有效的文件名时,将保存到该文件内存中,并且第6参数为:InTime时,还将实时读写硬盘数据 之前的更新:magic.db的Power/MaxPower/DefPower/DefMaxPower魔法输出计算修改为受个人的幸运值影响, 现为以上更新增加开关:!Setup.txt增加开关(默认关闭):CalcDBPowerWithLuck=0,开启则攻击输出受个人的幸运值影响 物理攻击现在可以使用Power/MaxPower调节威力,一般情况下,此2项的值都是0 优化游戏网关 穿戴龙神装备现在需要激活龙神状态才会增加攻击输出(原来不需要激活龙神状态也能获得输出增益) 2017/6/20 此次更新引擎+网关需要配套,否则会造成下发流量增加 --------------------------------------------------------------------------- 移动时撞到人或怪物反弹后,下次移动不列入加速检测(引擎+游戏网关配套) 优化游戏网关,修正网关启动服务时立即有连接接入时崩溃bug 2017/5/2 --------------------------------------------------------------------------- 优化微端功能,提升效率,需要同时更新登录器、客户端和微端服务器 修正客户端连击扩展补丁读取bug <$USERID> 用户账号 优化攻击模式检测 优化日志的管理 注意: -------------------------------------- 文本操作NPC命令路径统一为NPC当前路径, 写法: addLineList QuestDiary\rolelist.txt <$USERNAME> 需要修改为: addLineList ..\QuestDiary\rolelist.txt <$USERNAME> // “..\”表示上一目录 -------------------------------------- 修正NPC命令参数为变量时,可能获取错误bug 增强引擎IOPS能力 修正游戏网关停止服务时,可能出现崩溃的bug Ini系列NPC操作命令增加自动保存功能 -------------------------------------- <$CURITEMID> //Give,GiveEx,GiveOK,GM制造物品时,可以使用<$CURITEMID>得到当前物品的ID GETDLGITEMID P/G/D/M/H //获取物品ID值到变量P/G/D/M/H (P0~9,其他0~99) CHECKDLGITEMID 123456 //检测物品框力的物品ID是否等于123456 例: Give 物品名 INI_WRITE_INTEGER 文件名 <$USERNAME> 某任务_物品名 <$CURITEMID> //记录物品ID,下次需要校验时,可以用 INI_READ_INTEGER 读取 sendMsg 1 <$CURITEMID> INI_READ_INTEGER 文件名 <$USERNAME> 某任务_物品名 P0 #if CHECKDLGITEMID P0 -------------------------------------- 2017/4/12 --------------------------------------------------------------------------- mysql版本引擎增加金币交易行,参数设置-游戏参数二可以调节相关参数 优化mysql版本引擎,dbserver的数据存取效率 优化LoginGate,SelGate,LoginSvr_mysql版,mysql表结构改变!!! -------------------------------------- 优化NPC文本操作命令,文本会载入到内存中操作,直接修改文本操作现在不会生效。 恢复旧模式:!setup.txt UseFastTextFile=0,不建议 NPC文本操作命令非常消耗资源,特别时文本较大、操作频繁或脚本不合理时,服务器会严重卡顿。 !!! 强烈建议使用UseFastTextFile=1下的模式,如果你有大量的这类文本操作,可能会导致引擎内存不足,那么请设置UseFastTextFile=0 !!! 合理设计好版本,滥用文本操作容易导致游戏卡顿 AddAccountList,AddNameList,AddIPList,AddGuildList DelAccountList,DelNameList,DelIPList,DelGuildList CheckAccountList,CheckNameList,CheckIPList,CheckGuildList 等...保持不变,兼容充值系统(文本稍微大点会严重影响效率,造成游戏卡顿) -------------------------------------- --------------------------------------- 增加个人打怪爆率控制变量: 数值操作NPC命令:MonDropRate +/-/= 数值,默认值100,越小打怪爆率越低,设置为0将不爆物品,挖取和带有“;GETITEMFLAG”的爆率控制不受影响 条件检测NPC命令:CheckMonDropRate >/ --------------------------------------- 称号计时间隔减少,更准确 优化游戏网关 2016/8/28 --------------------------------------------------------------------------- 修正引擎手动关闭或开启网关服务报错 完善合区工具对文本的分析添加 道道合击伤害计算不再受地钉攻击调节影响 治愈术:目标无效时,自动治愈自己 流星火雨增加范围调节 完善心灵召唤,并修改为达到4级下属才会飞到目标进行攻击 客户端暂时去掉小退/大退保护 客户端修正集体隐身术释放效果 客户端修正黄泉教主效果 客户端ObjectsX.wzl支持到60 增加新怪物...参考monster.txt GameCenter可以配置CastleFile和DBServer的MapFile 英雄守护距离限制为15格 修正重新加载物品提示列表 无效问题 登录脚本支持ISCASTLEMASTER 行会联盟增加刷新 道力水和无极真气修改为独立计算 修正淬炼物品叠加材料消失问题 增加地图参数:NOSHOPPING //禁止商铺购物和赠送 NORECOVERINGSTONE //使用魔血石失效 优化M2使登陆游戏过程更顺畅 参数设置-环境设置,物品怪物数据库倍率 增加物品+HP/MP 倍数调节 小bug修正 英雄自由加点准确和敏捷现在有效 英雄参数调节面板增加开关:允许[英雄锁定目标]后瞬移至目标身边,默认关闭了;英雄守护需要英雄在视野外才可以瞬移 修复挖怪物尸体获得物品可能导致引擎无响应BUG 增加race=211怪物,不攻击人物,不受攻击,可以攻击怪物 装备,套装经验吸收百分比属性 生效 setup.txt 增加参数:TaosNomAtkDiffLvVal=0,非0时,道士英雄比怪物多X级时,只使用普通攻击,精神力战法开关可以控制 QF加入组队触发:[@JoinGroup] 离开组队触发:[@LeaveGroup] 增加地图参数:HERONOATTACKHUMAN //英雄不攻击人物,包含人物的随从 MonSpAbilList.txt 保留1修改为:攻击特点,值为1时不攻击人物及其随从 飘血能超过65535 增加NPC命令: #IF(3) //扩展,如果众多条件中只要满足3条件,即可执行#ACT,#SAY...等 StringReplace S1 $STR(S2) $STR(S3) //替换字符串,S1源字符串,搜索S2->替换为S3 CHECKCONTAINSSTR 字符串 符 //检测“字符串”是否包含“符”,大小写敏感 CHECKCONTAINSTEXT 字符串 符 //检测“字符串”是否包含“符”,不区分大小写 CHECKRANGEPLAYERCOUNT 地图 X Y 范围 >/,用于显示NPC被执行的次数 Give 不限制上限个数,原来是1-50 PIC=功能扩展: //items=wil文件名,索引,图片数,循环,透明,偏移X,偏移Y SendScrollMsg <$DLGITEMSHOW>`PIC=magic,0,10,1,1,0,-33&LABEL=@xxxxx~ 增加简单的物品展示功能: //需要引擎和客户端配套使用 ----------------------------------------- (@@inputstring) [@main] <执行脚本/@ExecuteLabel>\ \ <我要查询物品/@@inputstring1> <展示我的物品/@@inputstring2>\ \<关闭/@exit> [@@inputstring1] #ACT SETDLGITEM <$STR(S1)> #SAY 物品信息:\ \ <$DLGITEMSHOW>\ \<返回/@back> <关闭/@exit> [@@inputstring2] #SAY 请放上你要展示的物品。\ \<返回/@back> <关闭/@exit> #ACT QUERYITEMDLG 放上展示的物品 @showMyItem 0 [@showMyItem] #SAY 我的物品:<$DLGITEMSHOW>\ \<返回/@back> <关闭/@exit> #ACT SENDMSG 1 <$USERNAME>:<$DLGITEMSHOW>...<$STR(S2)> 255 241 65000 SendScrollMsg `NAME=%s:~<$DLGITEMSHOW>...<$STR(S2)> CLOSE [@ExecuteLabel] #SAY 执行当前NPCLabel #ACT SendScrollMsg 执行QChatMission [@ExecNPCLabel] #ACT SENDMSG 5 @Label_executed... 255 168 ----------------------------------------- 2016/8/10 更新:引擎 + 客户端 --------------------------------------------------------------------------- 客户端普通下属和友军下属的血条颜色显示为粉紫色 客户端内挂的回城/下线保护优先于吃药 修正心灵召唤,达到3级可以使用鼠标指向怪物设定目标 修正英雄怪迟钝问题 修正服务器开启一段时间后,96怪物复活立即死亡bug 修正NPC对话内容加:HINT=提示信息... 后点击失效bug 减少引擎和网关的空包通讯间隔,可防止引擎网关分机情况下被机房防火墙踢掉 2016/8/08 更新:引擎 + 客户端 --------------------------------------------------------------------------- 客户端刷新包裹后物品会排列 客户端挂机功能更好用 客户端输入用户密码可以一路回车进游戏,确认框确认可以按回车或空格 客户端修正套装宝石位置显示不正确问题 客户端可以自定义部分技能是否锁定,按F11技能面板设置,是否开放该功能可在新版本登录器配置器中设置 客户端修正在部分XP系统运行一段时间后会出现按钮消失问题(滚动公告不可过长) 登录器可自定义服务器里列表,可自定义调用的客户端名称,看登录器配置器下的"说明.txt" 客户端普通下属和友军下属的血条颜色显示为粉紫色 客户端内挂的回城/下线保护优先于吃药 修正心灵召唤,达到3级可以使用鼠标指向怪物设定目标 变量迁移 修正带升级武器标识的武器,砍下报错 修正几处内存泄漏_724 减少内存占用 英雄使用火墙更灵活 InputInteger/InputString 不再需要使用DelayGoto,需要修改脚本 简单增加摆摊交易税,功能设置可以调节,0不收税 商人商品数据保存时自动创建相关文件夹,关闭引擎自动保存商人商品数据 stditem.db扩展DropRatePlus字段,死亡掉落该物品附加机率:比如原来身上某件装备掉落几率为1/30,DropRatePlus非0时,掉落几率变为:1/(30+DropRatePlus) 中毒身亡,<$KILLER>等变量有效显示 h.takeon 会刷新英雄装备内观 修正@ReloadMonItems 报错 修正淬炼扣除重叠材料造成材料消失假象 修正NPC定时器BUG 怪物魔法躲避%10变更为%0 修正被怪物被召唤,该地方不会再刷出bug 修正96怪物不复活 增加开关:只让道士对中了红毒的对象产生加攻效果 增加装备无持久损毁提示,衣服武器无持久损毁外观修正 OffLine 命令:参数3<=0时,无限时间脱机挂着,否则为脱机的时间限制(分钟),超过该时间踢下线 pk控制面板增加人物登陆和切换地图的保护时间调节,默认3秒,建议调节到2.5秒 升级经验面板增加一直保留聚灵珠经验开关,默认关闭。聚灵珠吸收经验比率也迁移到升级经验面板 修正护体神盾不及时刷新属性,减少护体神盾增加的敏捷 增加简单搜索最低价的摆摊物品NPC条件命令: ---------------------------- SEARCHONSALEITEM 物品名 出售类型(元宝/金币) 返回最高个数(1-10) //返回信息自动以sendmsg形式发送给玩家 例子: #IF CHECKGAMEGOLD ~ 1 SEARCHONSALEITEM 开天 元宝 3 #ACT GAMEGOLD - 1 #ELSEACT SENDMSG 5 找不到指定的物品 ---------------------------- 客户端素材文件扩展的应用: ---------------------------- 装备内发光: shine>=100 对应 data\~witemsshine.wil 文件,每50张图一个效果,有效图片的请保持连续,例:shine=100调用0~49的图片,shine=101调用50~99的图片 衣服: shape>=75 对应 data\~hum_shape的数字.wil 文件,例:shape=75 对应~hum_75.wil,连击~hum_s75.wil 翅膀: anicount>=75 对应 data\~hum_he+anicount的数字.wil 文件,例:anicount=75 对应~hum_he75.wil,连击~hum_she75.wil 武器: shape>=100 对应 data\~weapon_shape的数字.wil 文件,例:shape=105 对应~weapon_105.wil,每1200张图一个武器(男+女),连击~weapon_s105.wil 武器外发光: shine>=100 对应 data\~weapon_we+shine的数字.wil 文件,例:shine=105 对应~weapon_we105.wil,每1200张图一个武器(男+女),连击~weapon_swe105.wil 怪物: Appr>=5000的,读取:data\~mon_(Appr 整除 100).wil,例:appr=5005 对应~mon_50.wil,每360张图片为一只怪,支持一个文件99只怪 NPC: Appr>=1000的,读取:data\~npc_(Appr 整除 100).wil,例:appr=1005 对应~npc_10.wil,每60张图片为一个NPC 背包物品: Looks>=20000,读取:data\~item_bg+(looks 整除 10000).wil,例:looks=20005 对应~item_bg2.wil 索引5的图 身上物品: Looks>=20000,读取:data\~item_st+(looks 整除 10000).wil,例:looks=20005 对应~item_st2.wil 索引5的图 地面物品: Looks>=20000,读取:data\~item_dn+(looks 整除 10000).wil,例:looks=20005 对应~item_dn2.wil 索引5的图 如果加了新怪,声音文件可以自行编辑,然后使用自动更新,声音文件:\Wav\sound2.lst 发现怪物 200 + Appr * 10; 怪物行走 200 + Appr * 10 + 1; 怪物攻击 200 + Appr * 10 + 2; 武器发声 200 + Appr * 10 + 3; 受攻击 200 + Appr * 10 + 4; 死亡 200 + Appr * 10 + 5; 特殊攻击 200 + Appr * 10 + 6; 一般情况下,只增加“发现怪物”和“怪物攻击”和“死亡”的声音 ---------------------------- 2016/7/23 更新:引擎 + 客户端 --------------------------------------------------------------------------- 祝福油控制面板增加+幸运的模拟计算 修正上版本#define失效问题 修正个别怪物报错,需测试 Race:60/61 人形怪物使用英雄创建(注:62是带连击的人形怪) 修正176版合区工具问题,重要! 合区工具的【数据维护-查询】增加金币/元宝/金刚石/灵符等的统计 减少客户端/CD客户端的CPU占用 完善装备限制爆出功能 假如怪物被重叠,现在可以攻击周围目标 SETSCTIMER 扩展到15个,原来是10个 优化英雄技能判别 优化物品规则列表 优化物品引用 优化走路/跑步/广播/搜寻... 怪物不再受HM/MP恢复速率调节的影响 优化怪物/人物流程,现在占用更少的CPU资源 2016/07/08 更新:引擎 --------------------------------------------------------------------------- 更好用的英雄守护模式 英雄设置二:增加老的工作速度模式开关 旗舰版网关/CD网关 魔法ID范围检测由1~127修改为1~254,关闭时间精度开关 优化延迟脚本 2016/07/05 更新:引擎 --------------------------------------------------------------------------- 修正装备限制爆出系统bug 修正寒冰掌技能bug 修正个别怪物报错 优化人物数据读写 道道合击提高命中率 更好用的英雄守护模式 英雄设置二:增加老的工作速度模式开关 旗舰版网关/CD网关 魔法ID范围检测由1~127修改为1~254,关闭时间精度开关 2016/07/01 更新:引擎 --------------------------------------------------------------------------- 修正0628道道合击放不出bug 修正NPC执行bug,重要! 修正优化其他代码 2016/6/28 更新:引擎 + StdItemConverter --------------------------------------------------------------------------- 修正 INI_SORT_READ_SECTION_VALUES 节名下数据为空时不读取问题 增加 INI_SORT_DELETE 保存到内存的标识名(All=删除所有) //删除对应内存标志名的列表信息 修正 TUserEngine::ProcessHumans -> Ready, Save, Load...报错 修正可能出现物品显示假象 NPC命令:DropItemMap 增加参数7,为物品可拾取的倒计时秒数,0立即可以拾取 修正reloadnpc all 可能引起一系列奇怪报错的问题 引擎修正变异骷髅攻杀报错,客户端修复变异骷髅攻杀效果 magic.db的Power/MaxPower/DefPower/DefMaxPower魔法输出计算修改为受个人的幸运值影响 magic.db增加Penetrate,PenetrateRate字段,使用stditemConverter工具进行扩展,Penetrate的值:1忽视防御,2忽视魔法盾,4忽视魔御,1+2=3则忽视防御和魔法盾;PenetrateRate为穿透几率(百分比) 优化魔法 CHECKITEMDURACOUNT 物品名 是否聚满(0=未满的,1=已满的) >//获取和显示,英雄以<$H.INTS0~9>获取和显示 MYSQL版本需要更新数据库的TBL_ADDON表和DBServer,以读取和保存新数据,最新数据库结构参考legendofmir.sql 如果需要把当前版本的普通数据转换到MYSQL数据,同样需要使用本次更新的DB2MySQL.exe 增加NPC检测命令:CHECKINTS 0~9 >//\”5个字符,防止标签被非法执行 修正2015/11/30修改引起的杀怪触发脚本报错 取消金币交易市场 2015/11/30 --------------------------------------------------------------------------- 优化客户端纹理加载和管理 优化客户端操作体验 修正物品被拾取后偶尔留下的物品假象 被登陆脚本踢下线后不再接受客户端封包 优化引擎IOCP封包处理部分的性能 优化客户端聊天栏字体渲染效率 优化客户端数字飘血和数字显血 提高火球术,大火球,灵魂火符对移动目标的命中率 增加释放魔法触发QFunction的[@MagSelfFuncXX]和[@MagTagFuncXX]的开关,默认关闭 引擎修正火墙假象 现在[@KillPlayXX][@KillPlayMonXX]触发时,可以使用KILLERTYPE区分杀怪/人的主体 比如: [@KillPlay1] #IF KILLERTYPE = 1 //1人物,2英雄,3宝宝 #ACT SENDMSG 5 人物杀死 2015/11/10 --------------------------------------------------------------------------- 修复上个版本客户端运行片刻会出现崩溃退出bug 修复游戏网关一个严重的死循环漏洞,会导程序致崩溃退出 修复上个版本引擎因优化地图管理器引起脚本缓存不能读取问题,如:升级武器记录文件,已卖商店的物品不加载等... 提高数据工具的日志查询效率 怪物设置增加开关:所有怪物使用新的刷新模式;如果开启,相当于MonGen.txt下所有怪物都使用新的刷新模式(重启生效) 修正LoginSvr找回密码bug,修正LoginSvr一个封包漏洞 LoginSvr找回密码修改为:问题1答案1,问题2答案2都正确才能成功找回,修正账号的创建日期和更新日期错乱bug。 LoginSvr mysql版本优化语句,完善防注入检测 LoginSvr mysql版本增加二级密码,密码现在使用MD5密文 优化怪物运行管理,修正上个版本的引擎会出现怪物迟钝BUG, 提高引擎启动速度,提高动态变量(LoadVar,SaveVar)效率 2015/10/25 --------------------------------------------------------------------------- 改进刷怪和怪物运行管理,现在由地图管理器接管 改进,优化镜像地图功能 修正完善英雄怪 客户端增加拒绝全服喊话开关(@传 之类的喊话信息),需配合最新引擎;同时引擎有控制开关,游戏参数-信息控制-允许屏蔽全局喊话 简单增加好友上线提示,私聊字体个性颜色等 添加黑名单会在服务器上禁止私聊 将simli.ttf更新至客户端data目录下,可以启用个性化NPC名字字体 提高客户端对Wzl的读取效率 2015/10/14 --------------------------------------------------------------------------- 修正师傅不在线情况下,记录徒弟出师文档BUG 修正跨服属下属性异常问题 连续申请行会战,最高可持续12小时 完善客户端细节 刷怪文件增加一个参数,现在格式如下: ;代码 x y 名称 范围 数量 时间 任务几率(0~100) 刷新模式(0~1) ------------------------------------------------------------------- 刷新模式=0时,刷怪模式不变,和以前一样,可能boss刚被杀死,未到间隔时间会重新刷一只。 //不添“刷新模式”参数,默认为0 刷新模式=1时,假设怪物刷新间隔时间是1小时,杀死怪物后,经过1小时才会再次 刷出该怪物。 建议boss类的怪物开启新的刷怪模式,更加合理。 增加几个变量: $YEAR //年 $MONTH //月 $DAY //日 $HOUR //时 $MINUTE //分 $SECOND //秒 $MILLISECONDS //毫秒 增加NPC命令: //因为需要申请和释放比较大的内存,不建议频繁使用 AddMirrorMap 源地图 镜像地图 镜像地图描述 小地图编号 使用期限(分钟) 刷怪(0,1) DelMirrorMap 镜像地图 MirrorMapTime 镜像地图 +/-/= 时间(分钟) //MirrorMapTime 镜像地图,直接获取剩余使用时间 在镜像地图中可以使用<$MIRRORMAPTIME>查看剩余使用时间,新客户端可以直接右上角显示 MobNpc 地图名 X Y NPC名称 脚本文件名 外形(数字) 属沙城(0,1) 脚本文件不带地图名(0,1) //刷NPC;脚本文件不带地图名=1,不需要带地图名 DelNpc 地图名 X Y //刷出NPC 脚本示例: ---------------------------------------- [@AddMirrorMap] #ACT AddMirrorMap D71615 MRD71615 [D71615]的镜像 0 2 1 [@AddMirrorMap_Success] #ACT SENDMSG 5 创建镜像地图成功。 255 168 AddMapRoute 3 333 333 M71615 22 33 0 AddMapRoute M71615 21 33 3 332 333 0 [@AddMirrorMap_Failed_SourceMapNotExists] #SAY 创建镜像地图失败,源地图不存在!\ \ <返回/@main> [@AddMirrorMap_Failed_MirrorMapExists] #SAY 创建镜像地图失败,镜像地图已经存在!\ \ <返回/@main> [@DelMirrorMap] #ACT DelMirrorMap MRD71615 [@DelMirrorMap_Success] #ACT SENDMSG 5 删除镜像地图成功。 255 168 [@DelMirrorMap_Failed_MirrorMapNotExists] #SAY 删除镜像地图失败,镜像地图不存在!\ \ <返回/@main> [@DelMirrorMap_Failed_NotMirrorMap] #SAY 删除镜像地图失败,目标非镜像地图!\ \ <返回/@main> [@MirrorMapTime] #ACT ;;MirrorMapTime MRD71615 MirrorMapTime MRD71615 + 1 [@MirrorMapTime_Success] #SAY 镜像地图使用剩余时间:<$STR(M98)>分钟<$STR(M97)>秒\ \ <返回/@main> [@MirrorMapTime_Failed_NotMirrorMap] #SAY 目标非镜像地图!\ \ <返回/@main> [@MirrorMapTime_Failed_MirrorMapNotExists] #SAY 目标镜像地图不存在!\ \ <返回/@main> ---------------------------------------- 2015/10/10 --------------------------------------------------------------------------- 修正浑水摸鱼模式名字显示问题 修正几个封包漏洞,会可能导致物品属性混乱。 修正登录可能出现串号问题 修正LoginGate有大量连接时会出现错误并不能接受连接BUG 引擎启动后,执行QManageNPC [@OnStart] 修正绿毒的爆出物品占有权过大问题 跨服系统喊话 跨服行会传送GM命令和NPC命令 跨服跟踪 跨服传唤 跨服夫妻传送 跨服夫妻上线提示 跨服行会战 跨服全局变量同步 修正可能同时爆出多个装备极品属性的问题 2015/9/30 --------------------------------------------------------------------------- 暂时去掉部分分线程,保证稳定性 更改英雄攻击模式的限制时间调整为200ms 修复神兽有大量目标仍边攻击边回头走问题(包括其他怪物属下) 修复属下远离情况下,CTRL+A切换攻击模式,属下不回到身边问题 增加NPC命令:MOVETOCELL X Y NPC名称 //自动移动到坐标点,并点击NPC;“NPC名称”可忽略。 怪物设置面板增加怪物灵敏度调节 修正关闭M2加速功能不完善问题 优化人物流程 修正英雄组合速度难调节问题 修正怪物过于灵敏问题并完善怪物灵敏度调节 客户端: 修正按住施毒术会导致毒药消失假象问题 输入法使用Windows的原始界面 全角输入法状态下,可以按1~6吃药,使用字母释放魔法,以及使用如~!@等快捷字符 包裹界面增加刷新包裹按钮 增加安全区右上角标识 2015/9/24 --------------------------------------------------------------------------- 修正2015/9/23因改进英雄流程引起召唤不出英雄的问题 怪物设置增加是否可以立即拾取大刀杀怪物爆出的物品 修正属下的反应比较慢的问题 Logingate将现在起需要引擎的激活码,Confing.ini [Strings] ActivateCode=激活码 登陆网关和客户端的登陆流程修改 客户端: 增加音量调节 中文状态可以按“`”或“~”建拾取物品 修正按住施毒术会导致毒药消失假象问题 增加使用字母自定义技能快捷键,并且修改原先快捷键为(防冲突): CTRL+Z -> ALT+A 自动挂机 V -> ALT+V 隐藏怪物尸体 O -> CTRL+O 查看任务 P -> CTRL+P 查看组队 T -> CTRL+T 交易 2015/9/23 --------------------------------------------------------------------------- 开启引擎后,自动开始2分钟时长的快速刷怪 改善英雄和怪物的运行效率 修正上个版本可能出现药品不自动解包问题(注:红药包Anicount=1,蓝药包Anicount=2, 特殊药包药包Anicount=3) 修正地狱雷光/瞬息移动之类的魔法,超过魔法距离释放失败问题 改进英雄的群体技能的释放 修正提交镖车,镖车不消失bug 优化多线程下物理地图对象存取 2015/9/20 --------------------------------------------------------------------------- 修复一个严重bug,特定情况下会消耗大量的流量和CPU 多线程处理人物/英雄/怪物/通讯等流程,流畅度是否提升,需测试! 修正行会时,攻击模式计算缓慢问题 噬魂沼泽释放后,在释放地面范围内将中毒,5秒持续时间(如果使用新客户端0920以上,可将Magic.DB中噬魂沼泽释的EffectType=2,这样毒雾不会随目标移动)。 客户端: 走路判断更灵活,内挂细节修正,隐藏尸体修正,优化CPU开销 2015/9/12 --------------------------------------------------------------------------- 修复一处可导致引擎自动关闭的溢出漏洞 修复客户端飘血与实际掉血量不相等BUG 大量减少引擎下发流量 修正快速使用物品可能导致内存溢出bug 修正特性情况下交易物品消失bug 2015/8/22 引擎+客户端 需要配套 --------------------------------------------------------------------------- 将获得的激活码填写在!Setup.txt的 [Server] ActivateCode=激活码 第一次激活比较久,稍等3分钟左右,重新开启程序即可。 修正NPC下发脚本小bug 修正挖肉品质bug,修正肉品价格错误 修正丢物品到地面偶尔看不到bug(客户端) 地面极品装备会闪烁,选项-物品装备-有开关设置 修正引用时间函数的错误运算 修正偶尔出现GM隐身被看见bug 客户端修正部分素材看不到bug(客户端) -------------------- MonItems目录下的爆率文件,第一行增加标志:;GETITEMFLAG(3),数字3,表示将随机必爆爆率为1/99999999的其中3样物品 白野猪.txt 爆率文件内容格式如下: ;GETITEMFLAG(3) 1/5 金币 200 1/2 强效魔法药 1/2 强效金创药 1/5 太阳水 1/5 强效太阳水 1/99999999 上古神甲 1/99999999 上古宝甲 1/99999999 上古披风 1/99999999 上古羽衣 1/99999999 上古道袍 1/99999999 上古长袍 -------------------- 2015/8/11 --------------------------------------------------------------------------- MapInfo.txt的地图增加参数:OPTI,带有该参数的地图,会提前申请需要的部分内存进行优化。PS:适合用于怪多,人经常去升级,或PK多的地图,建议使用。 网关封掉利用部分技能制造类似“暗杀”的效果 完善个别脚本命令 任务导航支持执行QF脚本: ------------------------- [1-1] 任务1 移动到<英雄特使(比奇城)(334,270)/@_automove 334:270:比奇省>\脚本执行方式1执行脚本\脚本执行方式2<执行脚本/@QFLabel>...\脚本执行方式3普通文字 2015/8/7 --------------------------------------------------------------------------- 优化部分封包,减少引擎下发流量 优化封包模块,性能有比较大的提升(影响所有服务器程序) 改进新刷怪模式,刷怪速度几乎等同老模式,性能更好刷怪更合理!同时增加回老的刷怪模式提供选择 改善怪物流程稳定性 修正挖动物获取到的物品看不见bug 性能设置增加怪物灵活度兼容开关,开启后,怪物灵活度等同于以前版本引擎的。 优化聊天处理代码 增加稳定性 2015/7/30 --------------------------------------------------------------------------- 修正周围有人取消摆摊失败bug 修正账号在其他地方登录时,偶尔不提示信息bug 修正有时怪物不显示名字 修正偶尔出现个别怪物报错 修正发现死亡人形怪/人物时外观不正确显示bug 增加视觉范围控制,在参数设置,坐标范围,建议X=18 Y=16 DBS修正当前使用称号和显示时装开关不保存bug (MySQL版本) SENDMSG 5 普通文字1[执行脚本]普通文字2 255 168 65000 //聊天栏置顶文字+执行脚本 SENDMSG 5 普通文字1普通文字2 255 168 65000 //聊天栏置顶文字+按钮执行脚本,DscStart0.bmp必须存在lui.pkg中 SENDMSG 5 访问官方网 255 168 聊天栏置顶文字需要最新客户端支持。 2015/7/19 --------------------------------------------------------------------------- 引擎: 修正上个版本引擎一个比较大的内存泄漏 修正加载脱机人物地图对象重复bug 修正镖车可能引起的内存错误 修正偶尔出现怪物假象 修正ReQuestBuildGuild bug... 优化ReGetHumanName,HumamOperation... 优化地图对象流程,增加地图对象内存管理 网关通讯采用多线程IOCP模式,提高数据吞吐量 改进地图对象架构,提高性能,减少内存碎片 增加地图对象管理,减少内存开支 修正火龙之心bug db里,称号的 weight = 1,图片和名字分为上下显示 性能设置增加了快速刷怪开关 优化全局变量相关应用部分 服务器数据存取方式采用MySQL(MySQL版本) m2 改进怪物内存流程,提高怪物灵敏度,降低CPU使用率,改善其他部分代码的性能 m2和dbs数据存取部分改用多线程模式,性能提升大(MySQL版本) GameCenter增加‘最高服务器上线人数’设置,支持MySQL备份与恢复(压缩备份与恢复需要在MySQL的bin目录下放上gzip.exe)(MySQL版本) 登陆排队功能:(网关 + 引擎 + 客户端 配合) --------------------------------------------------------------------------- MaxUserForLoginWait=8000 实际在线人数超过此数量,登陆游戏会排队,赋值0将关闭登陆排队功能。 LoginWaitTimeRate=0.800000 登陆等待时间 = (实际在线人数 - MaxUserForLoginWait) * LoginWaitTimeRate OnlinePlayerCountRate=13.240000 排队时报告的在线人数倍数,报告数量 = 实际在线人数 * OnlinePlayerCountRate 连击: --------------------------------------------------------------------------- 增加种族伤害属性 首先扩展HeroDB数据库,使用StditemConvert工具,然后设置数值, Monster.DB的: RaceEx 0=未定义,1=人族,2=兽族,3=无生命,4=不死族,5=恶魔族 ShapeEx 0=未定义,1=小型,2=中型,3=大型(注:目前未启用) Stditem.DB的: RaceDamage 种族伤害值 0~255 ShapeDamage 体型伤害值 0~255 @supermake 1 24 0~255 //种族伤害值,调整所有种族伤害的伤害值.如果当前武器有3种种族伤害,则3种种族伤害的伤害值同时调整一致 @supermake 1 25 1~31 //种族伤害针对的种族,1=人族,2=兽族,4=无生命,8=不死族,16=恶魔族,可以多个并存,将对应的数值相加即可,如果该值不正确或未设置,客户端显示附加种族伤害 +xx%(未激活)字样 //比如要人族和兽族2种属性共存就@supermake 1 25 3 //如果要人族,兽族,无生命三种属性共存就@supermake 1 25 7 脚本命令:GIVE,GIVEEX,UPGRADEITEM,UPGRADEITEMEX 同样可以调整 1、装备的PK目标爆率 修改为 击杀爆率,使用百分比计算,现在不止对人有效,对怪物也有效。 公式:爆率 = 原爆率 + ((击杀爆率 - 防爆) / 100 * 原爆率); 注:爆率/原爆率/击杀爆/防爆 都是百分比, 比如原来爆率是10%,击杀爆率 50%,防爆0%,根据公式:10 + (( 50 - 0) / 100 * 10) = 15,最终爆率就是15% 比如原来爆率是10%,击杀爆率100%,防爆0%,根据公式:10 + ((100 - 0) / 100 * 10) = 20,最终爆率就是20% 2、防爆 修改为使用百分比计算 3、改善英雄类怪物的灵敏度,RECE=61人形怪支持连击 4、改进刷怪机制(复活模式),大幅度提高性能,减少服务器内存碎片,更准确的刷怪时间 5、HGE客户端优化,即使用火墙同时烧2000怪,CPU基本也保持为0~1% 6、大量性能优化,在服务器硬件配备够好情况下,经测试,万人在线不卡(3000人同时参与沙战不卡) MonSpAbilList 增加 防红毒 防绿毒 破盾 菜单-怪物设置-基本参数:增加怪物死亡重新计算刷新时间 开关,默认关闭 菜单-物品装备-基本设置:增加装备持久0是否消失 开关,选择不消失则属性失效 修改赋予称号时自动激活 HGE客户端支持怪物:(附加) 瘟疫毒牙;81;124;360;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫金蟾;81;124;361;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫鱼人;81;124;362;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫蛋;115;124;363;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫使者;81;124;364;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫长老;81;124;365;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 瘟疫统帅;81;124;366;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 醉拳熊猫;210;124;367;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 邪恶沙虫;127;125;370;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 秃鹫;81;125;371;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1250;0;0;0; 掷刀兽人;87;125;372;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 矿工兽人;81;125;373;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 梭镖兽人;87;125;374;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 大刀兽人;128;125;375;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 训狼兽人;81;125;376;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 坐骑兽人;81;125;377;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 巫师兽人;129;125;378;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;2000;1;0;2050;0;0;0; 厨师兽人;81;125;379;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; 流星锤兽人;159;125;3710;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; m38_11;160;125;3711;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; m38_12;160;125;3712;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0; m38_13;160;125;3713;50;1;30;16000;6000;0;80;80;88;99;0;0;30;30;1000;1;0;1050;0;0;0;