前言

正確的帳號管理是私服運營的基礎。本文將介紹如何建立帳號、設定權限、使用 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;

下一步

帳號管理系統建立完成!下一篇將介紹客戶端連線設定。