diff --git a/data/sql/updates/db_characters/2026_05_15_00.sql b/data/sql/updates/db_characters/2026_05_15_00.sql new file mode 100644 index 000000000..5bcdbeee0 --- /dev/null +++ b/data/sql/updates/db_characters/2026_05_15_00.sql @@ -0,0 +1,45 @@ +-- DB update 2026_04_12_00 -> 2026_05_15_00 +-- +CREATE TABLE lost_corpses ( + lost_corpse_id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, + player_guid BIGINT UNSIGNED NOT NULL, + corpse_guid BIGINT UNSIGNED NULL, + map_id SMALLINT UNSIGNED NOT NULL, + zone_id SMALLINT UNSIGNED NOT NULL, + position_x FLOAT NOT NULL, + position_y FLOAT NOT NULL, + position_z FLOAT NOT NULL, + orientation FLOAT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + money BIGINT UNSIGNED DEFAULT 0, + active TINYINT(1) NOT NULL DEFAULT 1, + + INDEX idx_player_guid (player_guid), + INDEX idx_corpse_guid (corpse_guid), + INDEX idx_map_zone (map_id, zone_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +CREATE TABLE lost_corpse_items ( + id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, + lost_corpse_id BIGINT UNSIGNED NOT NULL, + item_entry INT UNSIGNED NOT NULL, + count INT UNSIGNED NOT NULL DEFAULT 1, + randomPropertyId INT DEFAULT 0, + durability INT UNSIGNED DEFAULT 0, + enchantments TEXT, + looted TINYINT(1) NOT NULL DEFAULT 0, + + CONSTRAINT fk_lost_corpse + FOREIGN KEY (lost_corpse_id) + REFERENCES lost_corpses(lost_corpse_id) + ON DELETE CASCADE, + + INDEX idx_lost_corpse_id (lost_corpse_id), + INDEX idx_item_entry (item_entry) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +ALTER TABLE lost_corpses +ADD UNIQUE KEY uniq_lookup (player_guid, corpse_guid, created_at); + +ALTER TABLE lost_corpses +ADD COLUMN money_collected TINYINT(1) NOT NULL DEFAULT 0; diff --git a/data/sql/updates/db_world/2026_05_15_00.sql b/data/sql/updates/db_world/2026_05_15_00.sql new file mode 100644 index 000000000..d2a2ae2cc --- /dev/null +++ b/data/sql/updates/db_world/2026_05_15_00.sql @@ -0,0 +1,92 @@ +-- DB update 2026_04_30_03 -> 2026_05_15_00 +-- +UPDATE creature_template +SET HealthModifier = HealthModifier * 3, + DamageModifier = DamageModifier * 3; + +UPDATE player_xp_for_level +SET Experience = Experience * 1.5; + +INSERT INTO creature_template ( + entry, name, subname, + minlevel, maxlevel, + faction, npcflag, unit_class, type +) VALUES ( + 90000, + 'Chromie', + 'Timewalker Guide', + 80, 80, + 35, 0, 1, 7 +); + +INSERT INTO creature_template_model ( + CreatureID, + CreatureDisplayID, + DisplayScale, + Probability +) VALUES ( + 90000, + 24877, + 1, + 1 +); + +INSERT INTO creature ( + id1, + map, + position_x, + position_y, + position_z, + orientation, + spawntimesecs, + wander_distance, + curhealth, + curmana, + MovementType +) VALUES ( + 90000, + 0, + -8844.938, + 617.47314, + 95.53623, + 5.0512466, + 120, + 0, + 1, + 0, + 0 +); + +INSERT INTO creature ( + id1, + map, + position_x, + position_y, + position_z, + orientation, + spawntimesecs, + wander_distance, + curhealth, + curmana, + MovementType +) VALUES ( + 90000, + 1, + 1546.3574, + -4447.2905, + 12.005171, + 1.002923, + 120, + 0, + 1, + 0, + 0 +); + +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (90001, 'spell_custom_recover_corpse_items'); + +INSERT INTO trainer_spell VALUES (11, 90000, 10000, 0, 0, 0, 0, 0, 12, 0); +INSERT INTO trainer_spell VALUES (12, 90000, 10000, 0, 0, 0, 0, 0, 12, 0); + +INSERT INTO trainer_spell VALUES (33, 90001, 10000, 0, 0, 0, 0, 0, 12, 0); +INSERT INTO trainer_spell VALUES (34, 90001, 10000, 0, 0, 0, 0, 0, 12, 0);