传奇服务端的公告和装备属性修改,是单机架设和版本调整中最常做的两项操作。公告决定玩家进入游戏后第一时间看到什么内容,装备属性则直接影响游戏的核心体验。两者的修改路径完全不同,公告改的是文本文件,装备属性改的是数据库文件。下面分别说明具体操作位置和修改方法。
## 游戏公告的修改位置与操作
传奇的公告分为两种:一种是登录器上显示的公告,另一种是进入游戏后在聊天框里滚动显示的系统公告。这两种公告存放在不同位置,修改方式也不一样。
进入游戏后的滚动公告存放在服务端的Mir200\Notice文件夹下,核心文件是LineNotice.txt和Notice.txt。LineNotice.txt对应游戏内聊天框顶部滚动显示的公告,Notice.txt对应选择服务器后弹出的版权类公告。用记事本打开对应文件,直接删除原有内容,输入新的公告文字,每行对应一条滚动内容,保存即可。
如果服务端正在运行,不需要重启整个服务端,打开M2引擎控制器,点击重新加载游戏公告,修改的内容就会即时生效。部分版本把公告内容写在Mir200\!Setup.txt文件中,打开该文件搜索Notice相关字段,找到对应内容修改后保存,重启服务端生效。
登录器上的公告修改方式取决于引擎类型。GOM引擎的登录器公告在登录器配置工具里修改,打开配置工具后找到公告设置标签,选择简易公告可以直接输入文字内容,换行使用Shift+Enter组合键,内容不建议超过五行,否则显示不全。如果选择网页公告,需要填写link.htm的路径,用记事本打开link.htm文件修改内部文字内容,保存后即可生效。
公告修改中最常见的问题是文字乱码。老版本引擎的公告文件只认ANSI编码,用记事本另存为时如果选了UTF-8,游戏内会显示为一堆乱码。保存文件时在编码下拉框里选ANSI,乱码问题就能解决。
## 装备属性修改的工具与数据库结构
装备属性的修改需要通过数据库工具操作。老版本引擎使用DBC2000打开StdItems.DB文件,新版本引擎有的自带可视化物品编辑器,操作方式类似。修改前先关闭M2引擎,避免数据库文件被占用导致损坏。
StdItems.DB中每一行代表一件装备,每个字段控制一项属性。Idx是物品的唯一编号,必须按顺序编码,不能出现断号或重复,否则引擎无法读取。Name是物品名称,最多支持7个汉字。StdMode是物品类型分类,决定这件物品是武器、衣服、药水还是戒指,不同数值对应不同的物品大类。
真正影响装备强弱的是战斗属性字段。DC和DC2分别代表物理攻击的下限和上限,主要影响战士职业。MC和MC2代表魔法攻击的下限和上限,影响法师。SC和SC2代表道术攻击的下限和上限,影响道士。AC和AC2是物理防御的下限和上限,MAC和MAC2是魔法防御的下限和上限。
举例来说,要把屠龙的攻击力从5-35改成5-50,用DBC2000打开StdItems.DB,找到屠龙对应的行,修改DC和DC2字段的数值,保存后重启服务端即可生效。修改前务必备份原文件,改错了可以恢复。
## 修改装备属性的几种常见需求
把普通装备改成高级属性是最直接的操作。找到目标装备所在的行,直接修改对应的属性字段数值即可。但需要注意装备的Weight字段控制重量,如果重量设置得过大,角色可能因为负重不足而无法佩戴。Price字段控制装备在商店的出售价格和维修价格,设为0则无法维修。
批量调整同类型装备时,可以先把StdItems.DB导出为Excel或Access格式,在表格里按列批量替换数值,再导回数据库。这种方式适合把所有武器的攻击力统一提升一定数值,或者把所有防具的防御力乘以某个系数。批量修改前一定要先备份,数值改错会导致大量装备属性异常,逐个修复很麻烦。
添加新装备时,最稳妥的方法不是在数据库末尾凭空创建新行,而是找一件同类型的现有装备,复制它的数据行粘贴到最后,然后在此基础上修改名称、属性和外观代码。这样可以避免StdMode字段填写错误导致装备无法正常使用。外观代码Looks字段控制装备在客户端显示的图标和穿戴后的外观模型,这个编号需要与客户端补丁文件中的序号对应,填错了装备在游戏里会显示不出来或者显示成其他装备的外观。
## 通过脚本修改装备属性的方式
除了直接改数据库,脚本也可以修改装备属性。GOM引擎支持SETITEMATTR命令直接修改装备的内存属性,比如攻击、防御等,但这种修改仅在服务器运行期间有效,重启后会丢失。如果需要持久化保存,要结合全局变量存储或者写回数据库。
脚本修改装备属性更适合做装备强化、鉴定、洗练这类动态功能。比如一个装备强化NPC,玩家放入装备和材料,脚本根据强化等级计算新的属性数值,通过命令动态修改装备属性。这种方式不需要每次都去改数据库,灵活性强,但脚本命令的写法因引擎而异,需要参考对应引擎的脚本命令说明。
脚本修改装备属性时要注意一个问题:通过脚本增加的属性,有些引擎不会自动计入角色的总属性面板。显示在装备属性框里的数值和实际生效的数值可能不一致,需要在脚本中额外做属性统计的运算,确保装备穿上后角色属性面板正确变化。
## 修改后的测试与验证
无论修改公告还是装备属性,改完后都需要进游戏实际验证。公告修改后如果通过重新加载的方式生效,直接进游戏看聊天框是否显示新内容。装备属性修改后需要重启服务端,进游戏后用GM命令刷出修改过的装备,穿戴后打开角色属性面板,确认攻击、防御等数值是否与数据库中的设置一致。
属性数值出现负数或者超出正常范围,通常是字段填错了位置。比如把攻击上限填到了防御字段里,或者数值填得过大导致溢出。修改数据库时一个字段一个字段地核对,不要一次性改太多,改完一两项就进游戏测试,出问题能快速定位到是哪个修改导致的。

