50 lines
2.0 KiB
SQL
50 lines
2.0 KiB
SQL
-- Минимальные таблицы под логин-сервер в стиле L2J (accounts / gameservers / account_data).
|
||
-- Подходит для многих форков; у Samurai Crow/Essence могут отличаться имена колонок или хеш пароля —
|
||
-- тогда сверьте с SQL из вашей сборки и поправьте этот файл.
|
||
--
|
||
-- Тестовый логин: admin / admin
|
||
-- Хеш: Base64(SHA1 от UTF-8 строки «admin») — типично для L2J/Mobius.
|
||
-- Альтернатива (если сборка ждёт hex SHA1): замените поле password на
|
||
-- d033e22ae348aeb5660fc2140aec35850c4da997
|
||
|
||
CREATE TABLE IF NOT EXISTS accounts (
|
||
login VARCHAR(45) NOT NULL PRIMARY KEY,
|
||
password VARCHAR(128),
|
||
lastactive BIGINT,
|
||
accesslevel INTEGER NOT NULL DEFAULT 0,
|
||
lastip VARCHAR(45),
|
||
lastserver SMALLINT DEFAULT 1
|
||
);
|
||
|
||
CREATE TABLE IF NOT EXISTS account_data (
|
||
account_name VARCHAR(45) NOT NULL,
|
||
var VARCHAR(50) NOT NULL,
|
||
value VARCHAR(255),
|
||
PRIMARY KEY (account_name, var),
|
||
CONSTRAINT fk_account_data_account FOREIGN KEY (account_name)
|
||
REFERENCES accounts (login) ON DELETE CASCADE
|
||
);
|
||
|
||
CREATE TABLE IF NOT EXISTS gameservers (
|
||
hexid VARCHAR(255) NOT NULL,
|
||
server_id INTEGER NOT NULL PRIMARY KEY,
|
||
host VARCHAR(255) NOT NULL
|
||
);
|
||
|
||
INSERT INTO accounts (login, password, lastactive, accesslevel, lastip, lastserver)
|
||
VALUES (
|
||
'admin',
|
||
'0DPiKuNIrrVmD8IUCuw1hQxNqZc=',
|
||
(EXTRACT(EPOCH FROM NOW()) * 1000)::bigint,
|
||
0,
|
||
'127.0.0.1',
|
||
1
|
||
)
|
||
ON CONFLICT (login) DO NOTHING;
|
||
|
||
-- Игровой сервер при первом подключении к логину часто сам делает INSERT в gameservers.
|
||
-- Если нужна явная запись (hexid должен совпасть с RequestServerID / hex в конфиге GS):
|
||
-- INSERT INTO gameservers (hexid, server_id, host)
|
||
-- VALUES ('ВАШ_32_СИМВОЛА_HEX', 1, '127.0.0.1')
|
||
-- ON CONFLICT (server_id) DO UPDATE SET hexid = EXCLUDED.hexid, host = EXCLUDED.host;
|