前言
正確的帳號管理是私服運營的基礎。本文將介紹如何建立帳號、設定權限、使用 GM 指令等重要功能。
建立遊戲帳號
透過控制台建立
連線到 worldserver 控制台:
screen -r wow-world
建立帳號指令:
account create [使用者名稱] [密碼]
account create admin admin123
account create player1 pass123
透過資料庫建立
-- 登入 MySQL
mysql -u acore -p acore_auth
-- 建立帳號
INSERT INTO account (username, sha_pass_hash, email, expansion)
VALUES ('testuser', SHA1(CONCAT(UPPER('testuser'), ':', UPPER('password'))),
'[email protected]', 2);
GM 權限等級
權限等級說明
- 0 - 一般玩家
- 1 - 初級 GM(基本指令)
- 2 - 中級 GM(管理指令)
- 3 - 高級 GM(所有指令)
設定 GM 權限
account set gmlevel [使用者名稱] [等級] [領域ID]
account set gmlevel admin 3 -1 # -1 表示所有領域
account set gmlevel helper 1 -1
常用 GM 指令
傳送指令
.tele [地點名稱] # 傳送到指定地點
.summon [玩家名稱] # 召喚玩家
.appear [玩家名稱] # 傳送到玩家身邊
.gps # 顯示當前座標
物品指令
.additem [物品ID] [數量] # 添加物品
.additemset [套裝ID] # 添加套裝
.send items [玩家] [標題] [內容] [物品ID:數量] # 郵寄物品
等級與技能
.levelup [等級數] # 提升等級
.learn [技能ID] # 學習技能
.learn all # 學習所有技能
.maxskill # 技能熟練度最大化
金錢與聲望
.modify money [數量] # 修改金錢(單位:銅幣)
.modify rep [陣營ID] [數量] # 修改聲望
帳號安全管理
密碼政策
# worldserver.conf 設定
Account.PasswordComplexity = 2 # 0=無限制, 1=簡單, 2=複雜
Account.PasswordLength.Min = 8
Account.PasswordLength.Max = 20
IP 限制
-- 設定 IP 白名單
INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason)
VALUES ('192.168.1.100', UNIX_TIMESTAMP(), 0, 'Admin', 'Whitelist');
-- 查看封鎖列表
SELECT * FROM ip_banned;
批量帳號管理
建立批量腳本
#!/bin/bash
# create_accounts.sh
ACCOUNTS=(
"user1:pass1:[email protected]"
"user2:pass2:[email protected]"
"user3:pass3:[email protected]"
)
for account in "${ACCOUNTS[@]}"; do
IFS=':' read -r username password email <<< "$account"
mysql -u acore -pacore_password acore_auth -e "
INSERT INTO account (username, sha_pass_hash, email, expansion)
VALUES ('$username', SHA1(CONCAT(UPPER('$username'), ':', UPPER('$password'))),
'$email', 2);"
echo "Created: $username"
done
進階管理功能
帳號資訊查詢
.account # 查看自己的帳號資訊
.pinfo [玩家名稱] # 查看玩家資訊
.lookup player account [帳號名] # 查詢帳號下的角色
帳號處罰
.ban account [帳號名] [時間] [原因] # 封鎖帳號
.ban character [角色名] [時間] [原因] # 封鎖角色
.ban ip [IP] [時間] [原因] # 封鎖 IP
.unban account [帳號名] # 解封帳號
實用 SQL 查詢
-- 查看所有 GM 帳號
SELECT username, gmlevel FROM account WHERE gmlevel > 0;
-- 查看最近登入
SELECT username, last_login, last_ip FROM account
ORDER BY last_login DESC LIMIT 10;
-- 統計角色數量
SELECT a.username, COUNT(c.guid) as char_count
FROM account a
LEFT JOIN characters c ON a.id = c.account
GROUP BY a.username;
下一步
帳號管理系統建立完成!下一篇將介紹客戶端連線設定。