2023-12-26技术旧站归档

Acore_auth数据库全面解释

简单说吧,如果你不会源码修改编译,单单玩数据库和DBC就能做出很有特色的端。Azerothcore的数据库是Mysql,所以你得下载个SQL管理工具,大家比较常用的是Navicat SQL,我常用的是HeidiSQL(免费)。连接数据库的话…

GSWXY

GSWXY

Archivist & Author

Acore_auth数据库全面解释

简单说吧,如果你不会源码修改编译,单单玩数据库和DBC就能做出很有特色的端。Azerothcore的数据库是Mysql,所以你得下载个SQL管理工具,大家比较常用的是Navicat SQL,我常用的是HeidiSQL(免费)。连接数据库的话,地址、用户名和密码请自行查找服务端内的worldserver.conf文件,示例:

code
LoginDatabaseInfo     = "gswxy.com;3306;acore;123456;acore_auth"
WorldDatabaseInfo     = "gswxy.com;3306;acore;123456;acore_world"
CharacterDatabaseInfo = "gswxy.com;3306;acore;123456;acore_characters"
#gswxy.com是登陆地址,3306是端口,acore是该数据库用户名,123456是密码,acore_XXX是数据库名称

Azerothcore数据库有三个:acore_auth、acore_characters和acore_world。因为一篇文章讲不完SQL修改,所以本文只把acore_auth各表的含义和字段解释列出来,后期陆续更新acore_world和acore_characters数据库,形成一个系列文章,最后将对实现某些功能做实操讲解。

这篇文章系列会很长很长,也是基于官方Wiki和各类教程,自行翻译糅合而成,如有错误还请指明。请善用Ctrl+F搜索和右边的目录侧边栏。

再次强调,各位若想玩数据库,就先把数据库系列文章详读、熟读!

言归正传,acore_auth数据库目前有 14 张表格,主要存储与用户帐户相关的信息:

account

id

唯一的帐户 ID。

username

用户的帐户名称,限制为 20 个字符。

salt

加密密码。

verifier

用户名和密码加密。

session_key

未知。

totp_secret

谷歌身份验证器的Key,不重要。

email

账户的邮箱地址。

reg_mail

与此帐户关联的注册电子邮件地址。

joindate

账户创建时间。

last_ip

最后一次登录的IP地址。

failed_logins

账户登录失败的次数。

locked

该字段为1时,账户只能从最后一次登录的IP地址登录;为0时,可以从任意IP地址登录。

last_login

最后一次登录的时间。

totaltime

玩家账户内所有角色的游玩时间合计,包括玩家已删除的角色。

online

0代表离线,1代表在线。

expansion

控制该账户的游玩版本,举例:玩家的客户端虽然是WLK335,但该字段的数值为1,则他只能玩经典世界和TBC的内容,而进去不诺森德。

数值版本0经典世界1TBC2WLK

mutetime

账户被禁言的剩余时间。

mutereason

账户被禁言的原因。

muteby

赋予静音的(.mute)命令权限的角色名称。

locale

登录到这个账户的客户所使用的语言。

os

存储有关客户操作系统的信息(Win和Mac)。

recruiter

该账户招募的朋友账户ID。

account_access

简单理解,这张表存储了某区服的GM信息。

id

唯一的帐户 ID,参照account表的id字段。

gmlevel

帐户的GM级别,不同的级别可以使用不同的命令,级别可以参照acore_world数据库内command表的security字段。

RealmID

账户所在的区服,参照realmlist表内的ID。

comment

顾名思义:备注,可自行填写。

account_banned

这个表格列出了所有被禁止的账户,以及禁令何时(或是否)到期的日期。

id

唯一的帐户 ID。

bandate

帐户被禁止的日期。

unbandate

帐户将被自动解禁的日期。假如设置一个小于当前日期的值,实际上是一个永久禁止。

bannedby

禁用该账户的GM角色的名字。但如果是从控制台被禁止的,那这个值将是空的。

banreason

被禁止的原因。

active

数值0则这条禁令无效,数值1则这条禁令有效。

account_muted

该表包含其角色被指定为禁言的账户ID。

GM命令: .mute [$playerName] $timeInMinutes [$reason]

在$timeInMinutes分钟内,禁言$playerName(或当前选择的)角色账户中任何角色。玩家可以不在线。

guid

禁言账户的ID。这个账户上的所有角色都将在禁言期内被禁言。

mutedate

禁言开始的时间。

mutetime

禁言的时长(分钟)。

mutedby

发布禁言的GM名称。

mutereason

禁言的原因。

autobroadcast

这张表包含了你各个区服的广播信息,基于它们的权重随机播放。

realmid

定义这个广播信息属于哪个区服。对所有区服使用的话写:-1。

id

每个区服的唯一标识符。具有相同id的广播信息将相互覆盖而没有警告,假设1广播信息的realmid值设置为-1,那么你想在2区服里不播放1而是播放3广播信息,则readmid写2,id写3。

weight

整数值(不可为负值)。权重高的条目有更多机会被选中。

text

要广播的文本。可以使用颜色和物品、技能、任务链接形成的代码。

build_info

各类客户端信息。

ip_banned

这个表格包含了所有被禁止的IP,以及禁令何时(或是否)到期的日期。

ip

被禁止的IP地址。

bandate

该IP首次被禁止的日期。

unbandate

该IP将被解禁的日期。任何低于当前日期的日期基本上都被归类为永久禁止,因为它永远不会自动过期。

bannedby

禁用该IP的角色名字。该角色应该属于一个有权在游戏中使用.ban命令的账户。

banreason

所给出的禁止IP的理由。

logs

This table stores logs from Appender type database in config file. Example db appender:

code
Appender.DB=3,5,0

time

这个字符串被记录的时间。

realm

该日志字符串的区服ID(RealmID)。

type

配置中的Logger 名称,示例logger:

code
Logger.server=4,Console Server

level

取决于authserver.conf中的LogLevel:

ValueDescription1(Fatal)2(Error)3(Warning)4(Info)5(Debug)6(Trace)

string

被记录下来的实际字符串。

logs_ip_actions

记录logs_ip_actions 的表。

realmcharacters

这个表保存了每个账户在每个区服拥有的角色数信息,此表的数据由核心自动更改,不可自行更改。

realmid

区服的ID。

acctid

账户的ID。

numchars

该账户在该区服上拥有的角色数。

realmlist

这个表设置了所有可用的区服的信息。每一行控制一个不同的区服。

id

区服ID。数值必须>=0且必须唯一,它必须与worldserver.conf中的RealmID配置值相关。

name

区服的名称。这将出现在区服选择列表以及角色选择屏幕中。

address

世界服务器的互联网(WAN)或局域网(LAN)IP地址。如果只有你架设在局域网内,在这个地址使用gswxy.com,如果想让互联网访问,请输入公网IP地址。

或者,你可以使用一个域名,比如: *example.com。

localAddress

本地IP地址,请填gswxy.com。

port

服务端所运行的端口,在一台机子上运行了很多服务端,或者出于安全考虑,你可以自行更改这个端口。

icon

区服的ICON图,可标识为PVP或者RP服等,数值示例:

IconType0一般1PvP服4一般6RP服8RP PvP服

flag

区服的标志:

FlagHex valueDescription00x0无10x1无效20x2离线40x4特定服80x8中型160xF中型320x10新服640x20建议服1280x40满服

timezone

区服的时区,它将显示在realmlist的标签中,数值示例:

timezonedisplayed name1Development2United States3Oceanic4Latin America5Tournament6Korea7Tournament8English9German10French11Spanish12Russian13Tournament14Taiwan15Tournament16China17CN118CN219CN320CN421CN522CN623CN724CN825Tournament26Test Server27Tournament29CN930Test Server 231CN1032CTC33CNC34CN1/435CN/2/6/936CN3/737Russian Tournament38CN5/839CN1140CN1241CN1342CN1443CN1544CN1645CN1746CN1847CN1948CN2049Brazil50Italian51Hyrule52QA2 Test53 54 55Recommended Realm56Test57Recommended Realm58 59Future Test

allowedSecurityLevel

帐户登录到该区服所需的最低帐户gm级别。改变这个值会自动更新游戏中可见的区服列表,但必须重新启动世界服务器才能真正生效。可以建立个GM专属服。

population

该区服的玩家数量,每隔一段时间会自动更新。计算公式为:目前在线玩家数量/最大玩家数量* 2。在区服的列表中,低、中、高人口的阈值分别为0.5、1.0和2.0。

gamebuild

这个区服可使用的的客户端版本,示例:

Build VersionClient Patch58751.12.160051.12.286062.4.399473.1.3101463.2.0105053.2.2a105713.3.0111593.3.0a114033.3.2116233.3.3117233.3.3a123403.3.5a

secret_digest

记录 secret_digest 的表。

updates

记录了该数据库更新情况。

name

导入文件的文件名。

hash

来自导入文件的SHA1哈希值。

state

定义更新是否已发布、自定义或归档。

timestamp

文件被导入的时间。

speed

导入文件所需的时间(毫秒)。

updates_include

该表定义了更新所需要的目录。

path

更新目录。$表示相对于源目录。

state

定义该目录是否有发布的、自定义的或存档的更新。

uptime

这个表保存了服务器的正常运行时间。核心将自动更新最新条目的值。

realmid

区服的ID。

starttime

服务器启动的时间。

uptime

服务器的正常运行时间,以秒为单位。

maxplayers

连接的最大玩家数量。

revision

对服务端的详细修订。

version_db_auth

描述了该数据库的版本信息。

sql_rev

标识数值。

required_rev

不知道是啥,一般是空值。

date

Sql的修订日期。

2021_06_17_00

最后一次更新认证数据库的日期。请注意,这一栏会根据授权数据库的最后一次更新而自动改变。

Conversation

评论

0

首次发布需要审核,邮箱只用于必要联系。

正在加载评论…