当前位置 : 145z游戏站 | 魔域 | 技术教程 | 

魔域MySQL数据库表结构详解:账号角色幻兽物品仓库字段说明

热度:
魔域后端常见采用MySQL,不同发行版表名和字段会有差别,下面按cq系复刻/学习端整理通用结构。实际以你所部署服务端的init.sql、Navicat导出的表结构为准;改库前整库导出备份,角色在线时不要直接改cq_user、cq_eudemon、cq_item,避免内存数据与数据库不一致。

一、账号与登录库

account
账号主表,通常放在独立account库或游戏库内。
id:账号自增主键。
name:登录账号名,常唯一索引。
password:密码密文,老端多用32位MD5,部分新端加盐MD5或SHA。
type:账号类型/职业默认标记,不同端含义不同,有的用1战士2法师3异能者,有的仅表示普通/内部账号。
vip_level:VIP等级,关联cq_config里的孵化、商店、经验加成参数。
register_time:注册时间。
status:封禁/正常/停用标记。
last_login_ip、last_login_time:审计用。

account_old
历史账号或找回密码留档,结构近似account,用于回滚、客服核实。

account_pwd
密保问题、答案、硬件码、手机/邮箱验证态。改密码流程通常先校验此表再写account.password。

count_stat
部分端记录区服名、账号统计、登录次数、状态;仅作运营统计,不参加角色属性计算。

二、角色核心表

cq_user
一行一个角色,所有战斗属性、位置、货币、社会关系都挂这里。
id:角色ID主键,作为cq_eudemon.owner_id、cq_item.owner_id、cq_magic.owner_id外键。
account_id:所属账号ID,关联account.id;一个账号可多角色。
name:角色名,唯一索引。
profession:职业,1战士2法师3异能者5血族等,版本不同数值不同。
level:等级。
exp:当前经验,升级阈值查cq_levexp。
hp、mp:当前血蓝;max_hp、max_mp为上限,部分端由基础属性+装备+幻兽实时计算后回写。
money:金币;emoney/eudemon_money/emos:魔石类代币,字段名随版本不同。
map_id、x、y:当前地图与坐标;断线重登据此复位。
lookface:角色外观模型ID。
rebirth_count、reborn_level:转生次数与转生等级。
pk_value、pk_mode:PK值与时制,影响红名、监禁、爆装规则。
strength、agility、intelligence、constitution、spirit:力敏智体精基础属性。
add_point:未分配属性点。
guild_id/syndicate_id:军团ID,0表示无。
mentor_id/tutor_id:师徒关系。
godhead_status:神格状态,0未开、1创世、2战神等,按版本枚举。
warehouse_pwd:仓库密码密文,部分端单独加密。
chk_sum:行数据校验,防止手工改库后内存校验回滚。

cq_point_allot
记录初始加点、洗点次数、各属性分配方案;配合cq_user.add_point做重置。

cq_user_timeout
限时角色、活动体验号到期时间戳;到期由登录服务踢线或转普通逻辑。

cq_levexp
等级经验对照。level为主键,exp为升下一级所需经验,有时分职业、分转生区间。改升级速度只调此表,不直接改cq_user.exp百分比。

cq_grade
军阶/爵位评分、所需贡献、属性系数;与军团战、声望任务联动。

三、幻兽表

cq_eudemon
每只幻兽一行,包含出战、备用、仓库、孵化中不同状态。
id:幻兽记录主键。
owner_id:主人角色ID,关联cq_user.id。
item_id:幻兽类型/蛋类型ID,凯隆、攻防型、法攻型等各有模板;类型属性查cq_eudemon相关模板或cq_itemtype中幻兽蛋定义。
name:幻兽昵称。
level、exp:幻兽等级与经验,升级曲线可查独立成长表。
star_lev:星级,评分由cq_grade或独立rank表计算。
reborn_times:转世/副属性合次数。
relationship:主战、副战、未出战等状态枚举。
position:出战槽位序号,部分端支持多宠合体、主副宠并行。
life:当前生命;max由成长率计算。
phy_atk_min、phy_atk_max、mag_atk_min、mag_atk_max:物攻魔攻上下限。
phy_def、mag_def:物防魔防。
grow_rate_phyatk、grow_rate_magicatk、grow_rate_life、grow_rate_phydef、grow_rate_magdef:各项成长率。
initial_phy、initial_magic、initial_def、initial_life:初始四项。
talent1至talent5:天赋值,影响技能槽、特殊属性。
loyalty/fidelity:忠诚度,低忠诚会降攻或不放技能。
available_time:限时幻兽到期时间,灵魂血契、活动宠常用。
chk_sum:校验和。

cq_eudemon_exchg_egg
换蛋价格、蛋类型、兑换消耗;商店上架白羊座、其他星座蛋时与此表及cq_goods联动。

cq_eudemon_rbn_rqr、cq_eudemon_rbn_type
合宠需求与属性类型。rbn_type定义主副属性类别,rbn_rqr写副宠星级、转世、成长门槛;自动化合宠脚本读这两张做匹配。

cq_eudemon_pk_type
幻兽PK分类、竞技属性权重。

cq_eudemon_prize_list
幻兽评比、排名奖励发放记录。

cq_eudemon_timeout
幻兽到期、灵魂血契时间;与cq_eudemon.available_time交叉校验。

cq_dyna_rank_type、cq_dyna_rank_rec
幻兽排行榜类型与历史记录,按星级、战力、服务器维度生成榜单。

四、物品、装备、背包、仓库

cq_item
角色持有每件可记录物品一行,背包、身上、仓库可共用此表也可用position区分。
id:物品实例主键。
owner_id:角色ID。
itemtype_id/typeid:模板ID,关联cq_itemtype.id。
position:存放位置;正数多表示背包格,负数或特定枚举表示头盔、项链、武器、衣服、鞋子等装备槽,仓库可用独立枚举或另一张仓库表。
amount:堆叠数量,药水、材料、魔石用。
dura、dura_max:当前与最大持久。
upgrade_level/add_level:追加、强化等级。
hole_count、gem_slot:打孔数与镶嵌宝石ID。
bind_flag/bind_state:绑定状态,0未绑1绑定,绑定后交易规则由服务端脚本控制。
identify:是否鉴定。
god_addition/god_level:神佑等级与附加属性,关联cq_itemgodaddition。
monster_drop_time:掉落时间,部分限时拾取、归属判定用。
chk_sum:行校验。

cq_itemtype
全服物品模板,不是玩家实例。
id:物品ID。
name:显示名。
price:商店基价,拍卖、回购、NPC售价引用。
look:图标/模型ID,对应客户端data资源。
stdmode/type:装备部位、职业限制、使用类型。
dc/mc/ac/mac、needlevel、needprofession:攻魔防、等级职业要求。
weight、stackable、durable:重量、叠加、持久参数。
新增装备必须同时改客户端itemtype.ini/资源,只改库会显示未知物品。

cq_itemaddition
魔魂/追加附加属性规则与实例值;记录每条装备的追加属性类型、数值、上限。

cq_itemgodaddition
神佑附加属性模板与实例;与cq_item.god_level联用。

cq_item_timeout
限时装备、神之祝福到期时间;到期由登录或定时任务移除buff。

cq_warehouse
部分端独立仓库表,字段近似cq_item:owner_id、itemtype_id、position、amount、dura等;有仓库密码时先校验cq_user.warehouse_pwd再允许查询写入。

五、技能与战斗参数

cq_magic
角色已学技能实例。id、owner_id、magic_id、level、exp;magic_id关联cq_magictype。
熟练度升级按版本写exp或单独熟练字段;放技能时服务端查level计算伤害、耗蓝、CD。

cq_magictype
技能模板:名称、职业、最大等级、耗蓝公式参数、伤害类型、范围、Buff标记、是否属于怪物技能。怪物技能也放此表或独立字段,NPC/BOSS读cq_monstertype引用。

cq_magic_timeout
限时技能、活动技能到期记录。

cq_weapon_skill
部分端武器熟练度单独成表,记录角色ID、武器类型、熟练等级、升级进度。

六、军团、家族、社交

cq_syndicate
军团主表。id、name、chief_id、fund、level、create_time、announce。chief_id关联cq_user.id;成员关系通常在独立成员表或通过cq_user.guild_id反查。

cq_family、cq_family_attr
家族信息与属性加成;部分端军团和家族合并,仅用cq_syndicate。

cq_friend
好友双向或单向记录,player_id、friend_id、分组、亲密度。

cq_partner
商业伙伴、结义、婚姻关系;与交易折扣、共享任务有关。

cq_flower
送花记录,player_id被送花人、flower红玫瑰数、flower_w白玫瑰数,用于魅力排行。

cq_special_status
爵位、封号、军团职务等地位标记,部分属性以系数形式回写cq_user。

七、任务、脚本、动作

cq_action
NPC脚本动作表,承载对话、发奖、跳转、条件判断。id、type、data、next_action等;数据最多,改NPC经济、任务奖励主要动这里。
type表示动作类别:发物品、给经验、扣货币、判断等级、判断任务标志、打开商店、传送到map_id。
data存参数,如物品模板ID、数量、地图坐标;结构因脚本编译器不同差异大,手工改先备份再小范围测试。

cq_task
玩家任务进度。role_id、task_id、step、status、complete_time;与cq_action通过任务ID、触发条件联动。

cq_mission
任务模板:名称、接取NPC、交付NPC、等级限制、奖励经验/物品/货币、是否日常。

cq_point_allot也可放职业初始分配;洗点、转职脚本常同时写cq_user和此表。

八、怪物、爆率、地图、NPC

cq_monstertype
怪物模板。id、name、level、hp、mp、phy_atk、mag_atk、def、mac、exp、skill、AI类型、刷新类别。BOSS另设刷新规则和掉落组。

cq_generator
刷怪配置。map_id、x、y、怪物ID、半径、数量、刷新间隔、最大同时存在数;改刷怪密度只调此表,不直改cq_monstertype,避免全服怪物属性被改。

cq_dropitemrule
爆率规则。monster_id、itemtype_id、chance、min_amount、max_amount、quality、绑定标记;按概率抽取后写玩家cq_item。调白羊座蛋、星座材料、装备爆率都从这里改,改完重启相关服务或重载掉落缓存。

cq_map
地图基础信息。id、name、文件、宽高、复活点、安全区、PVP标记。客户端Map资源与服务端map_id必须一致,否则传送到空白图。

cq_mapgate、cq_portal、cq_passway
传送点、地图门、跨图路径;自动寻路表cq_acrossmappathinfo存路点数据。

cq_npc
NPC坐标与脚本绑定。id、map_id、x、y、name、action_id;action_id关联cq_action。商店NPC还会查cq_goods,任务NPC查cq_task/cq_mission。

cq_dynanpc
动态NPC、摊位旗、活动建筑、家族占领点;相比cq_npc更频繁增删,重启服务重新加载。

九、经济、商店、拍卖、邮件

cq_goods
NPC商店与魔石商城商品。shop_id、itemtype_id、price_gold、price_emoney、stock、limit_per_day;VIP价可查cq_config或独立价格表。

cq_shop
部分端独立商城表,新增物品上架要同时有cq_itemtype模板、cq_goods/cq_shop售价、客户端资源,否则显示异常或无法购买。

cq_auction
拍卖行。item_instance_id、seller_user_id、buyer_user_id、start_price、buyout、state、expire_time;state区分未拍/进行中/成交/流拍,成交后通过交易流水写cq_item.owner_id变更。

cq_business
玩家摊位信息,关联摆摊NPC、物品实例、单价。

cq_lottery、cq_card、cq_card1
抽奖奖品池、充值卡、兑换码;卡类充值后写account货币或发cq_item。

邮件表
不同端名称不一,常见cq_mail、cq_post。字段含sender_id、receiver_id、item_append、money、emoney、title、body、send_time、expire_time、pickup_status;附件领取后在cq_item插入新实例并标记邮件已取。

十、关系模型与查询示例

账号到角色:account.id → cq_user.account_id。
角色到幻兽:cq_user.id → cq_eudemon.owner_id。
角色到物品:cq_user.id → cq_item.owner_id,按position区分背包/装备/仓库。
角色到技能:cq_user.id → cq_magic.owner_id → cq_magictype.id。
角色到军团:cq_user.guild_id → cq_syndicate.id,chief_id回指cq_user.id。
怪物到爆率:cq_monstertype.id → cq_dropitemrule.monster_id → cq_itemtype.id。
NPC到脚本:cq_npc.action_id → cq_action.id;任务NPC再绑cq_mission、cq_task。

常用维护查询:

查某账号全部角色及等级:
SELECT u.id,u.name,u.profession,u.level,u.map_id
FROM account a JOIN cq_user u ON u.account_id=a.id
WHERE a.name='目标账号';

查角色出战幻兽与星级:
SELECT id,owner_id,name,item_id,level,star_lev,relationship,position
FROM cq_eudemon
WHERE owner_id=角色ID AND relationship=1;

查角色背包装备及强化:
SELECT i.id,t.name,i.position,i.amount,i.upgrade_level,i.god_level
FROM cq_item i JOIN cq_itemtype t ON t.id=i.itemtype_id
WHERE i.owner_id=角色ID AND i.position>=0;

查某BOSS爆率:
SELECT d.monster_id,m.name,d.itemtype_id,t.name,d.chance,d.min_amount,d.max_amount
FROM cq_dropitemrule d
JOIN cq_monstertype m ON m.id=d.monster_id
JOIN cq_itemtype t ON t.id=d.itemtype_id
WHERE m.name LIKE '%目标怪物%';

查NPC绑定动作:
SELECT n.id,n.name,n.map_id,n.x,n.y,n.action_id,a.type,a.data
FROM cq_npc n LEFT JOIN cq_action a ON a.id=n.action_id
WHERE n.name LIKE '%目标NPC%';

十一、落盘、校验与改库注意

老MMO不每次操作写库,通常采用定时批量落盘加下线强存;因此直接UPDATE cq_user.level、cq_eudemon.star_lev后,若角色在线,内存对象可能在下一次存盘覆盖你的修改。正确做法:角色离线改库,或走服务端GM/管理接口改内存再落盘。

涉及货币、魔石、仓库密码、账号密码的表必须先备份再改;password、warehouse_pwd、account_pwd均按对应端加密方式处理,手工MD5不一定能通过登录校验。

cq_item、cq_eudemon、cq_user都有chk_sum或类似校验的版本,改属性后要重新计算校验,否则登录报数据异常、角色回滚。

新增物品、幻兽、技能要同步四层:数据库模板表、服务端脚本/规则表、客户端ini与data资源、登录器资源;只改一层会出现问号装备、无图标、商店不可买。

爆率、刷怪、任务奖励改完,按服务端要求重载或重启MSG/游戏核心;部分端改cq_action、cq_dropitemrule必须重启相关进程才生效。

不同版本差异:早期cq系多用cq_user/cq_eudemon/cq_item;部分新端把账号拆account库、角色拆my库、日志拆log库;也有端用user_base/item_bag等自研命名,字段可对照上面实体关系映射,不按表名死搬。生产环境禁止直接TRUNCATE account、cq_user、cq_eudemon,清新区数据只清指定区服备份集。
[顶部]