宠物:书决定动物

只有一条规则

要驯服一种动物,先得学会它那一篇御兽宝典。 二十七本书对二十七种动物,一一对应。一本书教一个 招式——以那种动物命名的「篇」,老虎是山君篇——会了这个招式就带着一道光环 (SpellAuraChongWuJiaoHu),把这一种动物标成你能驯的(PlayerEntity.SetCanJiaoHuChongWuType)。 整道门就是这道光环:任何可驯的动物身上都显示驯化这一项,光环没有就上锁,锁上的悬停文字是 「需要装备」加上你缺的那一篇(SetCustomLockDes 把宠物自己的招式名填进去)。招式丢了,那一种 宠物就不再跟着你(CheckAndRemoveChongWu)。

动物

npc_chongwu 列了三十五个可驯的角色、二十七种;有几种除了普通动物还有一个有名有姓的个体。

种类 动物 具名个体 书(卷·篇) 物品
1 兔 家禽卷·月德 69001
2 羊 阿沸 家禽卷·卷娄 69002
3 牛 家禽卷·乌键 69003
4 猫 锦绣 家禽卷·狸奴 69004
5 狗 二黄 家禽卷·黄耳 69005
6 鸭 轩辕十四 家禽卷·晨凫 69006
7 猪 公主 家禽卷·豕豚 69007
8 鸡(土申) 家禽卷·烛夜 69008
9 鹿 走兽卷·玉角 69051
10 虎 走兽卷·山君 69052
11 鳄鱼 走兽卷·土龙 69053
12 狼 大蓝 走兽卷·胡犲 69054
13 狐 走兽卷·玄狐 69055
14 熊 走兽卷·熊罴 69056
15 大雁 飞禽卷·辞鸿 69101
16 麻雀 飞禽卷·照夜 69102
17 乌鸦 飞禽卷·凤黯 69103
18 丹鹤 丹鹤王 飞禽卷·仙驭 69104
19 雷鹏 传说卷·雷鹏 69151
20 白龙 传说卷·白龙 69152
21 开明兽 传说卷·开明 69153
22 王龟 传说卷·王龟 69154
23 仙鹿 传说卷·仙鹿 69155
24 蛇 毒虫卷·苍蛇 69201
25 蝎子 毒虫卷·虿尾 69202
26 蜈蚣 毒虫卷·百足 69203
27 壁虎 毒虫卷·墨龙 69205

每一种的招式是 3000 + 种类号(山君篇是 3010)。数据里有一处怪:两行仙鹿,其中一行挂的是王龟的招式。

书在谁手里

每本书都是商店货。表里点名的卖家,按书分:

卖家 位置(x, z) 书
飞狐客 1376, 847 黄耳(狗)、晨凫(鸭)、凤黯(乌鸦)、仙驭(丹鹤)
风云剑 1365, 850 豕豚(猪)、烛夜(鸡)、雷鹏、白龙
神秘客 1400, 857 玉角(鹿)、山君(虎)、开明、王龟
逐秋风 1400, 847 土龙(鳄鱼)、胡犲(狼)、仙鹿、苍蛇(蛇)
逍天雄 1408, 791 乌键(牛)、狸奴(猫)、辞鸿(大雁)、照夜(麻雀)、墨龙(壁虎)
不留手 1519, 685 月德(兔)、卷娄(羊)、玄狐(狐)、熊罴(熊)、虿尾(蝎子)、百足(蜈蚣)
宗清宁 1029, 1476 月德(兔)、乌键(牛)、晨凫(鸭)

七个人里五个站在 (1400, 850) 附近六十米之内;不留手在东边不远;宗清宁在很南边,只带三本家禽书。 每本书还都在另一个商店组(3591)里,那个组没有任何角色的 shopID 指向它,是世界自己生成的铺子, 而不是站在某处的人。游戏开着的时候,人物页能找到上面任何一个人,/ways?item=<编号> 会列出一本书 的来源、距离,以及今天货架上有没有。通过关注装到宠物身上的万兽秘技是另一种物品,不在这些货架上。

宠物菜单上的每一项

几乎所有默认交互在宠物身上都藏起来了(默认行带 condition2 = 0&86,是宠物就藏),所以宠物的 F菜单很短:

项 做什么
驯化 任何可驯动物都显示,学会它那一篇之前上锁;成功后动物进入你的跟随列表(TeamManager.AddFollowPlayerNpc)跟着你走。代码里这个列表没有上限
关注 打开一个选择框,列出你身上的万兽秘技(物品类型3、子类23),把选中那本书的招式装进宠物自己的招式格(EquipSpell(…, 第0格, …)),书消耗掉。只有一格,所以一只宠物一本秘技,再装一本就替换。书是认动物的:万兽秘技·山君写的是宠物使出猛虎出林时你自己加27阳——那是老虎的招式,装到别的动物身上什么都不做
喂食 打开一个食物选择框,把物品的属性变化加到宠物自己的属性上(对宠物的表调 ModAttriField)
更名 改名
驱逐 遣散
遗忘 空壳——游戏回一句「未开放」

跟着你的宠物会不会一起打,没有追:那由它的AI脚本决定,脚本没读。

这些是从哪读出来的

NpcChongWuPrototype/表 npc_chongwu(id、npcId、chongWuType、chongWuSubType、spellId); NpcEntity.IsChongWu;AnswerViewNew.CheckISCHONGWU/CheckIsXunHua/ CheckIsHaveCurrentChongWuBuff;SpellAuraChongWuJiaoHu(光环槽 47)→ PlayerEntity.SetCanJiaoHuChongWuType;npc_interact 默认行 66–70 及其条件(0&86、0&88、 0&87);InteractSlot.InteractWithNpc 的 IT_XUNHUA、IT_GUANZHU、IT_WEISHI、IT_YIWANG、 IT_GENGMING 分支;关注与喂食的选择框 CommonTipView.XsySelect;TeamManager.AddFollowPlayerNpc/ CheckAndRemoveChongWu;db2.txt 里的物品文本 71001–71008 和万兽秘技的描述;卖家出自 shop 表。