表概述

character_pet_declinedname 表存储宠物名称在不同语法格下的变体。用于特定语言的语法变化(如俄语的名词变格),使NPC对话中的宠物名称更自然。

核心概念:某些语言(如俄语)中名词根据语法用途有不同的形式。此表存储5种变格形式,类似于 character_declinedname 但用于宠物。

表结构

字段名数据类型默认值说明
idINT UNSIGNED0宠物ID(主键),关联 → character_pet.id
ownerINT UNSIGNED0主人GUID,关联 → characters.guid
genitiveVARCHAR(12)''属格(所有格)形式:"谁的"
dativeVARCHAR(12)''与格(间接宾语)形式:"给谁"
accusativeVARCHAR(12)''宾格(直接宾语)形式:"看到谁"
instrumentalVARCHAR(12)''工具格形式:"用谁/和谁"
prepositionalVARCHAR(12)''前置格形式:"关于谁"

重要字段详解

五种语法变格

详细说明:每种变格对应不同的语法作用场景。语法格
  • genitive (属格):"Fred的爪子" → 使用属格形式
  • dative (与格):"给Fred食物" → 使用与格形式
  • accusative (宾格):"看见Fred" → 使用宾格形式
  • instrumental (工具格):"和Fred一起" → 使用工具格形式
  • prepositional (前置格):"关于Fred" → 使用前置格形式

适用语言

详细说明:主要针对俄语客户端,中文和英文客户端不使用变格。
  • 英语/中文:名词不变格,这些字段通常为空或与原名相同
  • 俄语:必需,否则NPC对宠物名称的引用会出现语法错误
  • 德语:部分使用变格
SQL示例:查看宠物变格 → SELECT * FROM character_pet_declinedname WHERE owner=1;

SQL查询示例

-- 查看角色所有宠物的变格数据 SELECT cpd.id, cp.name AS pet_name, cpd.genitive, cpd.dative, cpd.accusative FROM character_pet_declinedname cpd JOIN character_pet cp ON cpd.id = cp.id WHERE cpd.owner = 1;
-- 清理孤儿变格数据(宠物已删除但变格还在) DELETE FROM character_pet_declinedname WHERE id NOT IN (SELECT id FROM character_pet);

常见问题

Q: 中文服务器需要此表吗?

不需要。中文没有名词变格,表中的变格字段会保持为空或与宠物原名相同,不影响游戏功能。

Q: 宠物改名后变格数据会更新吗?

会。当玩家给宠物改名时,服务端会根据新名称重新生成所有变格形式,更新此表中的记录。