最近在看mangos代码,从登录服务器看起,即realmd工程.
一.数据库中realmd库是与登陆相关的数据库,其中有七张表,下面列出每个表的每个字段及其意义
1.account表,用户账户信息表
| 字段 | 类型 | 意义 |
| id | int | 主键id,自动生成 |
| username | varchar | 用户名 |
| sha_pass_hash | varchar | 密码散列值 |
| gmlevel | tinyint | GM等级0.普通用户1.GM2.超级GM3.开发人员 |
| sessionkey | longtext | ?登陆过程时会用到这三个值,此处先不描述 |
| v | longtext | 同上 |
| s | longtext | 同上 |
| text | 用户邮箱 | |
| joindate | timestamp | 申请日期 |
| last_ip | varchar | 最后登陆ip |
| failed_logins | int | 失败的登录次数 |
| locked | tinyint | 是否被锁定 |
| last_login | timestamp | 最后登陆时间 |
| active_realm_id | int | 是否在线 |
| expansion | tinyint | 扩展,现用于表示版本 0-wow classic 1-远征 2-巫妖王 |
| mutetime | bigint | 被解除锁定剩余时间 |
| locale | tinyint | 玩家客户端locale |
2.realmlist,服务器列表
| id | int | id,主键 |
| name | varchar | 服务器名 |
| address | varchar | ip |
| port | int | 端口 |
| icon | tinyint | 图标 |
| realmflags | tinyint | 标志,表示负载,0-正常,1-满,2-不在线 |
| timezone | tinyint | 时区 |
| allowedSecurityLevel | tinyint | 允许GM登陆最低级别 |
| population | float | 玩家数量 |
| realmbuilds | varchar | 支持的客户端版本号 |
3.realmcharacters,每个号创建的角色表
| realmid | int | 服务器id |
| acctid | bigint | 帐号id,外键 |
| numchars | tinyint | 角色数量 |
4.account_banned,被封帐号表
| id | int | 主键id |
| bandate | bigint | 封号日期 |
| unbandate | bigint | 解封日期 |
| bannedby | varchar | 封号人 |
| banreason | varchar | 封号原因 |
| active | tinyint | 是否继续有效0.解封状态 1.被封状态 |
5.ip_banned,被封ip
| ip | varchar | 被封ip |
| bandate | bigint | 同上表 |
| unbandate | bigint | 同上表 |
| bannedby | varchar | 同上表 |
| banreason | varchar | 同上表 |
6.realmd_db_version,登录服务器数据库版本
7.uptime,服务器在线时间
| realmid | int | 服务器id |
| starttime | bigint | 启动时间 |
| startstring | varchar | 启动时间的字符表示 |
| uptime | bigint | 共启动了多长时间,单位为秒 |
| maxplayers | smallint | 最大的在线用户数 |
本文详细解读了Mangos代码中的登录服务器Realmd工程,包括与登录相关的数据库结构,如account表、realmlist表等,以及各表字段的意义。
6415

被折叠的 条评论
为什么被折叠?



