69 lines
2.6 KiB
SQL
69 lines
2.6 KiB
SQL
-- Справочники рас/классов и стартовые наборы (L2J / Essence, protocol 520).
|
|
-- Основные шаблоны всё равно в XML datapack; это минимум для БД и отладки.
|
|
|
|
CREATE TABLE IF NOT EXISTS ref_races (
|
|
race_id SMALLINT NOT NULL PRIMARY KEY,
|
|
code VARCHAR(20) NOT NULL UNIQUE,
|
|
name_en VARCHAR(40) NOT NULL,
|
|
name_ru VARCHAR(40) NOT NULL,
|
|
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
|
spawn_x INTEGER NOT NULL,
|
|
spawn_y INTEGER NOT NULL,
|
|
spawn_z INTEGER NOT NULL,
|
|
spawn_heading INTEGER NOT NULL DEFAULT 0
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS ref_classes (
|
|
class_id INTEGER NOT NULL PRIMARY KEY,
|
|
code VARCHAR(40) NOT NULL,
|
|
name_en VARCHAR(60) NOT NULL,
|
|
name_ru VARCHAR(60) NOT NULL,
|
|
race_id SMALLINT NOT NULL REFERENCES ref_races (race_id),
|
|
parent_id INTEGER REFERENCES ref_classes (class_id),
|
|
class_level SMALLINT NOT NULL DEFAULT 0,
|
|
is_mage BOOLEAN NOT NULL DEFAULT FALSE,
|
|
is_summoner BOOLEAN NOT NULL DEFAULT FALSE,
|
|
can_create BOOLEAN NOT NULL DEFAULT FALSE,
|
|
sex_restrict SMALLINT NOT NULL DEFAULT 0,
|
|
CONSTRAINT chk_sex_restrict CHECK (sex_restrict IN (0, 1, 2))
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_ref_classes_race ON ref_classes (race_id);
|
|
CREATE INDEX IF NOT EXISTS idx_ref_classes_parent ON ref_classes (parent_id);
|
|
CREATE INDEX IF NOT EXISTS idx_ref_classes_create ON ref_classes (can_create) WHERE can_create;
|
|
|
|
-- Совместимость со старыми инсталляторами L2J
|
|
CREATE TABLE IF NOT EXISTS class_list (
|
|
id INTEGER NOT NULL PRIMARY KEY,
|
|
class_name VARCHAR(40) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS starter_equipment (
|
|
id SERIAL PRIMARY KEY,
|
|
class_id INTEGER NOT NULL REFERENCES ref_classes (class_id),
|
|
sex SMALLINT NOT NULL DEFAULT 0,
|
|
item_id INTEGER NOT NULL,
|
|
amount BIGINT NOT NULL DEFAULT 1,
|
|
enchant_level INTEGER NOT NULL DEFAULT 0,
|
|
equipped BOOLEAN NOT NULL DEFAULT FALSE,
|
|
paperdoll_slot SMALLINT NOT NULL DEFAULT 0,
|
|
UNIQUE (class_id, sex, item_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS starter_skills (
|
|
class_id INTEGER NOT NULL REFERENCES ref_classes (class_id),
|
|
skill_id INTEGER NOT NULL,
|
|
skill_level INTEGER NOT NULL DEFAULT 1,
|
|
PRIMARY KEY (class_id, skill_id)
|
|
);
|
|
|
|
-- Упрощённые приросты HP/MP на 1–20 ур. (если сервер читает из БД)
|
|
CREATE TABLE IF NOT EXISTS lvlupgain (
|
|
class_id INTEGER NOT NULL,
|
|
level SMALLINT NOT NULL,
|
|
hp_gain DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
mp_gain DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
cp_gain DOUBLE PRECISION NOT NULL DEFAULT 0,
|
|
PRIMARY KEY (class_id, level)
|
|
);
|