Merge branch 'master' into UlagtheCleaverQuestFix
This commit is contained in:
commit
ceb82e3506
105 changed files with 65598 additions and 1017 deletions
7
.dockerignore
Normal file
7
.dockerignore
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
build*/
|
||||
var/*
|
||||
data/contrib/*
|
||||
data/doc/*
|
||||
modules/*
|
||||
conf/*
|
||||
!conf/*.dist
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -12,6 +12,11 @@ modules/*
|
|||
!modules/*.sh
|
||||
build*/
|
||||
var/*
|
||||
docker/authserver/etc/authserver.conf
|
||||
docker/worldserver/etc/worldserver.conf
|
||||
docker/authserver/logs/
|
||||
docker/worldserver/logs/
|
||||
!docker/build
|
||||
|
||||
!.gitkeep
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ install:
|
|||
- echo "DB_WORLD_CONF=\"MYSQL_USER='root'; MYSQL_PASS=''; MYSQL_HOST='127.0.0.1';\"" >> conf/config.sh
|
||||
# create and import mysql
|
||||
- mysql -e "SET GLOBAL sql_mode = '';" # this is necessary because of mysql 5.7
|
||||
- mysql -e "SET GLOBAL max_allowed_packet=128*1024*1024;"
|
||||
- bash ./acore.sh "db-assembler" "import-all"
|
||||
|
||||
script:
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ if( NOPCH )
|
|||
endif()
|
||||
|
||||
include(CheckPlatform)
|
||||
include(GroupSources)
|
||||
|
||||
# basic packagesearching and setup (further support will be needed, this is a preliminary release!)
|
||||
set(OPENSSL_EXPECTED_VERSION 1.0.0)
|
||||
|
|
|
|||
|
|
@ -299,7 +299,7 @@ function dbasm_db_import() {
|
|||
|
||||
export MYSQL_PWD=$MYSQL_PASS
|
||||
|
||||
"$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
|
||||
"$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" --default-character-set=utf8 "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
err=$("$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" 2>&1 )
|
||||
if [[ "$err" == *"Access denied"* ]]; then
|
||||
|
|
|
|||
|
|
@ -11,3 +11,7 @@ option(WITHOUT_GIT "Disable the GIT testing routines"
|
|||
option(ENABLE_EXTRAS "Set to 0 to disable extra features optimizing performances" 1)
|
||||
option(ENABLE_VMAP_CHECKS "Enable Checks relative to DisableMgr system on vmap" 1)
|
||||
option(ENABLE_EXTRA_LOGS "Enable extra log functions that can be CPU intensive" 0)
|
||||
|
||||
# Source tree in IDE
|
||||
set(WITH_SOURCE_TREE "hierarchical" CACHE STRING "Build the source tree for IDE's.")
|
||||
set_property(CACHE WITH_SOURCE_TREE PROPERTY STRINGS no flat hierarchical)
|
||||
|
|
|
|||
733
data/sql/updates/db_world/2019_01_08_00.sql
Normal file
733
data/sql/updates/db_world/2019_01_08_00.sql
Normal file
|
|
@ -0,0 +1,733 @@
|
|||
-- DB update 2019_01_07_00 -> 2019_01_08_00
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||
SELECT COUNT(*) INTO @COLEXISTS
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2019_01_07_00';
|
||||
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE version_db_world CHANGE COLUMN 2019_01_07_00 2019_01_08_00 bit;
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1529507878019895700'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||
--
|
||||
-- START UPDATING QUERIES
|
||||
--
|
||||
|
||||
INSERT INTO version_db_world (`sql_rev`) VALUES ('1529507878019895700');
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of command
|
||||
-- ----------------------------
|
||||
INSERT INTO `command`(`name`, `security`, `help`) VALUES ('reload game_graveyard', 3, 'Syntax: .reload game_graveyard\nReload game_graveyard table.');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for game_graveyard
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `game_graveyard`;
|
||||
CREATE TABLE `game_graveyard` (
|
||||
`ID` int(10) NOT NULL DEFAULT 0,
|
||||
`Map` int(10) NOT NULL DEFAULT 0,
|
||||
`x` float NOT NULL DEFAULT 0,
|
||||
`y` float NOT NULL DEFAULT 0,
|
||||
`z` float NOT NULL DEFAULT 0,
|
||||
`Comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`ID`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of game_graveyard
|
||||
-- ----------------------------
|
||||
INSERT INTO `game_graveyard` VALUES (1, 0, -9115, 423, 96, 'Штормград');
|
||||
INSERT INTO `game_graveyard` VALUES (2, 0, -9194.31, -2313.26, 88.8265, 'Красногорье');
|
||||
INSERT INTO `game_graveyard` VALUES (3, 0, -10774.3, -1189.67, 33.1494, 'Сумеречный лес, Темнолесье');
|
||||
INSERT INTO `game_graveyard` VALUES (4, 0, -10546.9, 1197.24, 31.7263, 'Западный Край, Сторожевой холм');
|
||||
INSERT INTO `game_graveyard` VALUES (5, 0, -5687, -515, 398, 'Дун Морог');
|
||||
INSERT INTO `game_graveyard` VALUES (6, 0, -5351.23, -2881.58, 340.942, 'Лок Модан, Телcамар');
|
||||
INSERT INTO `game_graveyard` VALUES (7, 0, -3289.12, -2435.99, 18.5966, 'Болотина, Перекресток');
|
||||
INSERT INTO `game_graveyard` VALUES (8, 0, -6289.91, -3493.11, 251.483, 'Бесплодные земли, Северо-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (10, 1, -592.601, -2523.49, 91.788, 'Степи, Перекресток');
|
||||
INSERT INTO `game_graveyard` VALUES (31, 1, -448.311, 2512.65, 93.0773, 'Пустоши, Этель-Ретор');
|
||||
INSERT INTO `game_graveyard` VALUES (32, 1, 233.458, -4793.73, 10.1881, 'Дуротар, Колючий Холм');
|
||||
INSERT INTO `game_graveyard` VALUES (33, 1, 1357.1, -4412.01, 28.3841, 'Дуротар, Оргриммар');
|
||||
INSERT INTO `game_graveyard` VALUES (34, 1, -2944.56, -153.215, 65.786, 'Мулгор, Плато Красного Облака');
|
||||
INSERT INTO `game_graveyard` VALUES (35, 1, 6739.19, 209.993, 23.2846, 'Темные берега, Аубердин');
|
||||
INSERT INTO `game_graveyard` VALUES (36, 0, -11110.4, -1833.24, 71.8642, 'Перевал Мертвого Ветра, Надел Моргана');
|
||||
INSERT INTO `game_graveyard` VALUES (39, 1, -4656, -1765, -41, 'Тысяча Игл, Великий Подъемник');
|
||||
INSERT INTO `game_graveyard` VALUES (49, 37, -661.528, -485.309, 385.888, 'Белое Безмолвие, старт Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (70, 1, -6432.26, -278.292, 3.79411, 'Силитус, Погост Отважных');
|
||||
INSERT INTO `game_graveyard` VALUES (89, 1, -2175.19, -342.027, -5.51232, 'Мулгор, Деревня Кровавого Копыта');
|
||||
INSERT INTO `game_graveyard` VALUES (90, 1, 10054.3, 2117.12, 1329.63, 'Тельдрассил, Дарнас');
|
||||
INSERT INTO `game_graveyard` VALUES (91, 1, 9701.25, 945.62, 1291.36, 'Тельдрассил, Доланаар');
|
||||
INSERT INTO `game_graveyard` VALUES (92, 1, 2633.41, -629.735, 107.581, 'Ясеневый лес, Астранаар');
|
||||
INSERT INTO `game_graveyard` VALUES (93, 1, 10384.8, 811.531, 1317.54, 'Тельдрассил, Альдрассил');
|
||||
INSERT INTO `game_graveyard` VALUES (94, 0, 1882.94, 1629.11, 94.4175, 'Тирисфальские леса, Могильник');
|
||||
INSERT INTO `game_graveyard` VALUES (96, 0, 1822.61, 214.674, 60.1402, 'Тирисфальские леса, Подгород');
|
||||
INSERT INTO `game_graveyard` VALUES (97, 0, 516.194, 1589.81, 127.545, 'Серебряный бор, Гробница');
|
||||
INSERT INTO `game_graveyard` VALUES (98, 0, -18.6777, -981.171, 55.8377, 'Предгорья Хилсбрада, Мельница Таррен');
|
||||
INSERT INTO `game_graveyard` VALUES (99, 0, -1307.66, -3192.15, 37.7853, 'Нагорье Арати, Восточная дорога');
|
||||
INSERT INTO `game_graveyard` VALUES (100, 0, -6164.23, 336.321, 399.793, 'Дун Морог, Старая Наковальня');
|
||||
INSERT INTO `game_graveyard` VALUES (101, 0, -5680.04, -518.92, 396.274, 'Дун Морог, Каранос');
|
||||
INSERT INTO `game_graveyard` VALUES (102, 0, -5049.45, -809.697, 495.127, 'Дун Морог, Стальгорн');
|
||||
INSERT INTO `game_graveyard` VALUES (103, 0, -6805, -2287.19, 280.752, 'Бесплодные земли, Каргат');
|
||||
INSERT INTO `game_graveyard` VALUES (104, 0, -9403.25, -2037.69, 58.3687, 'Красногорье, Приозерье');
|
||||
INSERT INTO `game_graveyard` VALUES (105, 0, -8935.33, -188.646, 80.4165, 'Элвиннский лес, Североземье');
|
||||
INSERT INTO `game_graveyard` VALUES (106, 0, -9339.46, 171.408, 61.5618, 'Элвиннский лес, Златоземье');
|
||||
INSERT INTO `game_graveyard` VALUES (107, 0, -9151.98, 410.944, 92.6966, 'Элвиннский лес, Штормград');
|
||||
INSERT INTO `game_graveyard` VALUES (108, 0, -10567.8, -3377.2, 22.2532, 'Болото Печали, Каменор');
|
||||
INSERT INTO `game_graveyard` VALUES (109, 0, -14285, 288.447, 32.332, 'Тернистая долина, Пиратская Бухта');
|
||||
INSERT INTO `game_graveyard` VALUES (129, 1, 8706, 965, 13.27, 'Тельдрассил, Деревня Рут\'теран');
|
||||
INSERT INTO `game_graveyard` VALUES (149, 0, -732.799, -592.502, 22.663, 'Предгорья Хилсбрада, Южнобережье');
|
||||
INSERT INTO `game_graveyard` VALUES (169, 30, -157.409, 31.2063, 77.0506, 'Альтеракская долина, Кладбище Снегопада');
|
||||
INSERT INTO `game_graveyard` VALUES (189, 1, -3525.71, -4315.46, 6.99561, 'Пылевые топи, Остров Терамор');
|
||||
INSERT INTO `game_graveyard` VALUES (209, 1, -7190.95, -3944.65, 9.22739, 'Танарис, Прибамбасск');
|
||||
INSERT INTO `game_graveyard` VALUES (229, 1, -2517.75, -1972.64, 91.7838, 'Степи, Лагерь Таурахо');
|
||||
INSERT INTO `game_graveyard` VALUES (249, 1, -1081.4, -3478.68, 63.6066, 'Степи, Кабестан');
|
||||
INSERT INTO `game_graveyard` VALUES (269, 37, -448.189, -1027.86, 430.724, 'Белое Безмолвие, старт Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (289, 0, 2348.67, 492.027, 33.3665, 'Тирисфальские леса, Брилл');
|
||||
INSERT INTO `game_graveyard` VALUES (309, 1, -4596.4, 3229.43, 8.99376, 'Фералас, Крепость Оперенной Луны');
|
||||
INSERT INTO `game_graveyard` VALUES (310, 1, -4439.97, 370.153, 51.3566, 'Фералас, Лагерь Мохаче');
|
||||
INSERT INTO `game_graveyard` VALUES (329, 1, -5530.28, -3459.28, -45.7444, 'Тысяча Игл, Мерцающая равнина');
|
||||
INSERT INTO `game_graveyard` VALUES (349, 0, 323.513, -2227.2, 137.617, 'Внутренние земли, Заоблачный пик');
|
||||
INSERT INTO `game_graveyard` VALUES (369, 1, 2681.06, -4009.75, 107.849, 'Азшара, Застава Талрендис');
|
||||
INSERT INTO `game_graveyard` VALUES (370, 0, -10846.6, -2949.49, 13.2272, 'Выжженные земли, Форт Молота Ужаса');
|
||||
INSERT INTO `game_graveyard` VALUES (389, 0, -11542.6, -228.637, 27.8427, 'Тернистая долина, Северная Тернистая долина');
|
||||
INSERT INTO `game_graveyard` VALUES (409, 1, 898.261, 434.53, 65.7279, 'Когтистые горы, Паучий тракт');
|
||||
INSERT INTO `game_graveyard` VALUES (429, 0, 2604.52, -543.39, 88.9996, 'Тирисфальские леса, Могила Фаола');
|
||||
INSERT INTO `game_graveyard` VALUES (449, 1, 3806.54, -1600.29, 218.831, 'Оскверненный лес, Морлос\'Аран');
|
||||
INSERT INTO `game_graveyard` VALUES (450, 1, -7205.56, -2436.67, -218.161, 'Кратер Ун\'Горо, Топи');
|
||||
INSERT INTO `game_graveyard` VALUES (469, 1, 4291.28, 96.9557, 43.0753, 'Темные берега, Сумеречная долина');
|
||||
INSERT INTO `game_graveyard` VALUES (489, 0, -3347.72, -856.713, 1.05955, 'Болотина, Бухта Барадин');
|
||||
INSERT INTO `game_graveyard` VALUES (509, 0, 908.323, -1520.29, 55.0372, 'Западные Чумные земли, Лагерь Промозглого Ветра');
|
||||
INSERT INTO `game_graveyard` VALUES (510, 0, 2055.74, -5020.95, 74.8656, 'Восточные Чумные земли, Моровой овраг');
|
||||
INSERT INTO `game_graveyard` VALUES (511, 1, 6875.76, -4661.54, 701.094, 'Зимние Ключи, Круговзор');
|
||||
INSERT INTO `game_graveyard` VALUES (512, 1, 2421.72, -2953.62, 123.473, 'Ясеневый лес, Крепость Каргатия');
|
||||
INSERT INTO `game_graveyard` VALUES (529, 451, 16310.3, 16268.9, 69.4444, 'Остров Программиста');
|
||||
INSERT INTO `game_graveyard` VALUES (549, 451, 16223.8, 16278.6, 20.8913, 'Остров Программиста');
|
||||
INSERT INTO `game_graveyard` VALUES (569, 0, 1750.34, -669.79, 44.5698, 'Западные Чумные земли, Бастион');
|
||||
INSERT INTO `game_graveyard` VALUES (589, 1, 16310.3, 16268.9, 69.4444, 'Остров ГМ');
|
||||
INSERT INTO `game_graveyard` VALUES (609, 1, 2942.76, -6037.13, 5.16996, 'Азшара, Южный пляж');
|
||||
INSERT INTO `game_graveyard` VALUES (610, 30, -1437.67, -610.089, 51.1619, 'Альтеракская долина, укрытие Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (611, 30, 873.002, -491.284, 96.5419, 'Альтеракская долина, укрытие Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (629, 0, 908.323, -1520.29, 55.0372, 'ТЕСТ только для ИМ - не править');
|
||||
INSERT INTO `game_graveyard` VALUES (630, 1, 4788.78, -6845, 89.7901, 'Азшара, Лагерь Легаш');
|
||||
INSERT INTO `game_graveyard` VALUES (631, 1, -3127.69, -3046.94, 33.8313, 'Пылевые Топи, Деревня Гиблотопь');
|
||||
INSERT INTO `game_graveyard` VALUES (633, 1, 7426, -2809, 464, 'Лунная поляна');
|
||||
INSERT INTO `game_graveyard` VALUES (634, 0, 1392, -3701, 77, 'Восточные Чумные земли, Дарроушир');
|
||||
INSERT INTO `game_graveyard` VALUES (635, 1, 5935.47, -1217.75, 383.202, 'Оскверненный лес, Железнолесье');
|
||||
INSERT INTO `game_graveyard` VALUES (636, 0, -6450.61, -1113.51, 308.022, 'Тлеющее ущелье, Лагерь Братства Тория');
|
||||
INSERT INTO `game_graveyard` VALUES (649, 1, -778, -4985, 19, 'Дуротар, Деревня Сен\'джин');
|
||||
INSERT INTO `game_graveyard` VALUES (669, 451, 16614.8, 16663, 21.3422, 'Остров программиста, кладбище кулачных щитов 2');
|
||||
INSERT INTO `game_graveyard` VALUES (670, 451, 16620.7, 16622.7, 21.3382, 'Остров программиста, кладбище кулачных щитов 1');
|
||||
INSERT INTO `game_graveyard` VALUES (671, 451, 16619.5, 16577.5, 43.9018, 'Остров программиста, кладбище кулачных щитов 3');
|
||||
INSERT INTO `game_graveyard` VALUES (689, 30, 676, -374, 30, 'Альтеракская долина, Кладбище Грозовой Вершины (Выс)');
|
||||
INSERT INTO `game_graveyard` VALUES (690, 30, -1090.48, -253.309, 57.6724, 'Альтеракская долина, Кладбище Северного Волка');
|
||||
INSERT INTO `game_graveyard` VALUES (709, 1, -634.635, -4296.03, 40.5254, 'Дуротар, Долина Испытаний');
|
||||
INSERT INTO `game_graveyard` VALUES (729, 30, 73.4178, -496.433, 48.7319, 'Альтеракская долина, PvP кладбище прохода Альянса (А-проход)');
|
||||
INSERT INTO `game_graveyard` VALUES (749, 30, -531.218, -405.231, 49.5514, 'Альтеракская долина, PvP кладбище прохода Орды (О-проход)');
|
||||
INSERT INTO `game_graveyard` VALUES (750, 30, -1496.07, -333.338, 101.135, 'Альтеракская долина, Приют Северного Волка (О-база)');
|
||||
INSERT INTO `game_graveyard` VALUES (751, 30, 643, 44, 69.7402, 'Альтеракская долина, Лазарет Грозовой Вершины (А-база)');
|
||||
INSERT INTO `game_graveyard` VALUES (769, 489, 1523.81, 1481.76, 352.008, 'Ущелье Песни Войны - место входа Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (770, 489, 933.331, 1433.72, 345.536, 'Ущелье Песни Войны, место входа Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (771, 489, 1415.33, 1554.79, 343.156, 'Ущелье Песни Войны, зона Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (772, 489, 1029.14, 1387.49, 340.836, 'Ущелье Песни Войны, зона Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (789, 0, -291, -4374, 107, 'Внутренние земли, Отвесные скалы');
|
||||
INSERT INTO `game_graveyard` VALUES (809, 1, 1035.27, -2104.28, 122.945, 'Ущелье Песни Войны, место выхода Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (810, 1, 1459.17, -1858.67, 124.762, 'Ущелье Песни Войны, место выхода Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (829, 0, 101.144, -184.934, 127.344, 'Альтеракская долина, место выхода Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (830, 0, 536.495, -1085.72, 106.27, 'Альтеракская долина, место выхода Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (849, 1, -4590.41, 1632.08, 93.9738, 'Фералас, Забытый Город');
|
||||
INSERT INTO `game_graveyard` VALUES (850, 1, 1177.78, -4464.24, 21.3539, 'Дуротар, Деревня Сен\'джин');
|
||||
INSERT INTO `game_graveyard` VALUES (851, 1, -981.917, -74.6465, 20.1265, 'Мулгор, Громовой Утес');
|
||||
INSERT INTO `game_graveyard` VALUES (852, 0, -5165.52, -874.664, 507.177, 'Дун Морог, Врата Стальгорна');
|
||||
INSERT INTO `game_graveyard` VALUES (853, 0, 1780.11, 221.761, 59.6169, 'Тирисфальские леса, Руины Лордерона');
|
||||
INSERT INTO `game_graveyard` VALUES (854, 0, -9552.46, -1374.05, 51.2332, 'Элвиннский лес, Лесопилка Восточной долины');
|
||||
INSERT INTO `game_graveyard` VALUES (869, 0, 1236.89, -2411.99, 60.68, 'Западные Чумные земли, Каэр Дарроу');
|
||||
INSERT INTO `game_graveyard` VALUES (889, 529, 684.014, 681.22, -12.9159, 'Arathi Basin - Horde Entrance');
|
||||
INSERT INTO `game_graveyard` VALUES (890, 529, 1313.9, 1310.74, -9.01043, 'Arathi Basin - Alliance Entrance');
|
||||
INSERT INTO `game_graveyard` VALUES (891, 0, -831.881, -3518.52, 72.4831, 'Arathi Basin - Horde Exit');
|
||||
INSERT INTO `game_graveyard` VALUES (892, 0, -1215.59, -2531.75, 21.6734, 'Arathi Basin - Alliance Exit');
|
||||
INSERT INTO `game_graveyard` VALUES (893, 529, 834.726, 784.979, -57.0819, 'Arathi Basin - Graveyard, H-Mid (Farm)');
|
||||
INSERT INTO `game_graveyard` VALUES (894, 529, 1016.59, 955.185, -42.8287, 'Arathi Basin - Graveyard, Mid (Blacksmith)');
|
||||
INSERT INTO `game_graveyard` VALUES (895, 529, 1201.87, 1163.13, -56.286, 'Arathi Basin - Graveyard, A-Mid (Stables)');
|
||||
INSERT INTO `game_graveyard` VALUES (896, 529, 1211.52, 781.557, -82.7095, 'Arathi Basin - Graveyard, ALT-N (Gold Mine)');
|
||||
INSERT INTO `game_graveyard` VALUES (897, 529, 772.756, 1213.11, 15.7974, 'Arathi Basin - Graveyard, ALT-S (Lumber Mill)');
|
||||
INSERT INTO `game_graveyard` VALUES (898, 529, 1354.7, 1270.27, -11.1291, 'Arathi Basin - Graveyard, A-Base (Trollbane Hall)');
|
||||
INSERT INTO `game_graveyard` VALUES (899, 529, 713.71, 638.364, -10.5999, 'Arathi Basin - Graveyard, H-Base (Defiler\'s Den)');
|
||||
INSERT INTO `game_graveyard` VALUES (909, 0, 2647.55, -4014.39, 105.938, 'Восточные Чумные земли, Озеро Чернолесья');
|
||||
INSERT INTO `game_graveyard` VALUES (910, 1, -6831.32, 891.437, 33.8663, 'Силитус, Крепость Кенария');
|
||||
INSERT INTO `game_graveyard` VALUES (911, 0, -10606.8, 294.048, 31.8007, 'Сумеречный лес, Вороний Холм');
|
||||
INSERT INTO `game_graveyard` VALUES (912, 530, 10458.5, -6364.61, 39.7907, 'Леса Вечной Песни, Остров Солнечного Скитальца');
|
||||
INSERT INTO `game_graveyard` VALUES (913, 1, -7991.57, 1557.8, 4.97419, 'Силитус, Стена Скарабея (только Ан\'Кираж)');
|
||||
INSERT INTO `game_graveyard` VALUES (914, 530, 8936.56, -7439.9, 82.0856, 'Леса Вечной Песни, Кладбище Приюта Странников');
|
||||
INSERT INTO `game_graveyard` VALUES (915, 530, 7694.18, -6730.11, 48.2907, 'Призрачные земли, Транквиллион');
|
||||
INSERT INTO `game_graveyard` VALUES (916, 530, 7015.23, -7300, 45.4247, 'Призрачные земли, Святилище');
|
||||
INSERT INTO `game_graveyard` VALUES (917, 530, 6730.49, -7936.89, 170.099, 'Призрачные земли, Перевал Амани');
|
||||
INSERT INTO `game_graveyard` VALUES (918, 530, -4123.14, -13660.1, 74.6, 'Остров Лазурной Дымки, Долина Аммен');
|
||||
INSERT INTO `game_graveyard` VALUES (919, 530, 158.06, 2562.73, 75.7812, 'Полуостров Адского Пламени, Траллмар');
|
||||
INSERT INTO `game_graveyard` VALUES (920, 530, -803.012, 2702.59, 106.758, 'Полуостров Адского Пламени, Оплот Чести');
|
||||
INSERT INTO `game_graveyard` VALUES (921, 530, 9407, -6847.67, 16, 'Леса Вечной Песни, Луносвет');
|
||||
INSERT INTO `game_graveyard` VALUES (922, 530, 8709.46, -6671.76, 70.336, 'Леса Вечной Песни, кладбище Деревни Легкий Ветерок');
|
||||
INSERT INTO `game_graveyard` VALUES (923, 530, -4312.78, -12441, 17.1903, 'Остров Лазурной Дымки, Кладбище Лазурной заставы');
|
||||
INSERT INTO `game_graveyard` VALUES (924, 530, -3324.31, -12089.9, 28.2748, 'Остров Лазурной Дымки, Кладбище племени Тихвой');
|
||||
INSERT INTO `game_graveyard` VALUES (925, 530, -2020.59, -11983.5, 33.248, 'Остров Кровавой Дымки, Кладбище Кровавой заставы');
|
||||
INSERT INTO `game_graveyard` VALUES (926, 530, -1754.21, -11067.3, 76.3423, 'Остров Кровавой Дымки, Кладбище Дебрей');
|
||||
INSERT INTO `game_graveyard` VALUES (927, 0, 1978.47, -3655.89, 119.795, 'Восточные Чумные земли, Кладбище башни КГ');
|
||||
INSERT INTO `game_graveyard` VALUES (928, 530, 335.886, 7625.12, 22.7486, 'Зангартопь, Кладбище Забра\'джин');
|
||||
INSERT INTO `game_graveyard` VALUES (929, 559, 4027.6, 2972.78, 12.0723, 'Арена Награнда, старт команды 1');
|
||||
INSERT INTO `game_graveyard` VALUES (930, 530, -2495.87, 6802.26, 21.3714, 'Награнд, Юго-Восточное Кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (931, 451, 16423, 16237, 71, 'Остров Программиста');
|
||||
INSERT INTO `game_graveyard` VALUES (932, 451, 16223.8, 16278.6, 20.8913, 'Остров Программиста');
|
||||
INSERT INTO `game_graveyard` VALUES (933, 530, 181.475, 4361.58, 116.885, 'Полуостров Адского Пламени, Храм');
|
||||
INSERT INTO `game_graveyard` VALUES (934, 530, -695.875, 4118.21, 64.4865, 'Полуостров Адского Пламени, Соколиный Дозор');
|
||||
INSERT INTO `game_graveyard` VALUES (935, 530, 742.628, 2887.71, 8.90098, 'Полуостров Адского Пламени, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (936, 559, 4085.45, 2866.83, 12.4005, 'Арена Награнда, старт команды 2');
|
||||
INSERT INTO `game_graveyard` VALUES (937, 559, 4055.85, 2921.78, 50.3394, 'Использовать повторно');
|
||||
INSERT INTO `game_graveyard` VALUES (938, 0, 101.144, -184.934, 127.344, 'Альтеракская долина, место выхода Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (939, 562, 6292.66, 288.579, 4.95929, 'Арена Острогорья, команда 1');
|
||||
INSERT INTO `game_graveyard` VALUES (940, 562, 6184.98, 236.011, 4.97687, 'Арена Острогорья, команда 2');
|
||||
INSERT INTO `game_graveyard` VALUES (941, 530, 540.31, 3932.88, 188.932, 'Полуостров Адского Пламени, тестовое местонахождение тела');
|
||||
INSERT INTO `game_graveyard` VALUES (942, 530, 540.98, 3144.23, 8.45675, 'Полуостров Адского Пламени, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (943, 530, 582.864, 2954.06, 4.56392, 'Полуостров Адского Пламени, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (944, 530, 742.628, 2887.71, 8.90098, 'Полуостров Адского Пламени, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (945, 530, 1148.44, 1798.14, 116.296, 'Полуостров Адского Пламени, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (946, 530, 851.694, 1688.06, 89.7566, 'Полуостров Адского Пламени, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (947, 530, 608.097, 1778.63, 104.436, 'Полуостров Адского Пламени, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (948, 530, 354.618, 1952.75, 23.7654, 'Полуостров Адского Пламени, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (949, 530, 107.712, 1841.23, 21.8838, 'Полуостров Адского Пламени, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (950, 530, 274.599, 1674.63, -5.7761, 'Полуостров Адского Пламени, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (951, 530, 60.881, 1542.69, 17.0833, 'Полуостров Адского Пламени, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (952, 530, -92.8317, 1350.91, -12.2025, 'Полуостров Адского Пламени, местонахождение тела 012');
|
||||
INSERT INTO `game_graveyard` VALUES (953, 530, 134.528, 1230.39, 2.39736, 'Полуостров Адского Пламени, местонахождение тела 013');
|
||||
INSERT INTO `game_graveyard` VALUES (954, 530, 298.666, 1225.23, -1.17948, 'Полуостров Адского Пламени, местонахождение тела 014');
|
||||
INSERT INTO `game_graveyard` VALUES (955, 530, 386.682, 1044.78, 26.8734, 'Полуостров Адского Пламени, местонахождение тела 015');
|
||||
INSERT INTO `game_graveyard` VALUES (956, 530, 337.84, 853.218, 13.8851, 'Полуостров Адского Пламени, местонахождение тела 016');
|
||||
INSERT INTO `game_graveyard` VALUES (957, 530, 60.3844, 725.155, 14.5849, 'Полуостров Адского Пламени, местонахождение тела 017');
|
||||
INSERT INTO `game_graveyard` VALUES (958, 530, -213.512, 730.684, -0.830688, 'Полуостров Адского Пламени, местонахождение тела 018');
|
||||
INSERT INTO `game_graveyard` VALUES (959, 530, -570.327, 675.785, -0.703824, 'Полуостров Адского Пламени, местонахождение тела 019');
|
||||
INSERT INTO `game_graveyard` VALUES (960, 530, -958.584, 803.907, 2.53478, 'Полуостров Адского Пламени, местонахождение тела 020');
|
||||
INSERT INTO `game_graveyard` VALUES (961, 530, -827.569, 1194.34, 16.2846, 'Полуостров Адского Пламени, местонахождение тела 021');
|
||||
INSERT INTO `game_graveyard` VALUES (962, 530, -465.075, 1272.1, 12.3895, 'Полуостров Адского Пламени, местонахождение тела 022');
|
||||
INSERT INTO `game_graveyard` VALUES (963, 530, -668.975, 1516.19, 17.9959, 'Полуостров Адского Пламени, местонахождение тела 023');
|
||||
INSERT INTO `game_graveyard` VALUES (964, 530, -1278.37, 1381.71, 9.10488, 'Полуостров Адского Пламени, местонахождение тела 024');
|
||||
INSERT INTO `game_graveyard` VALUES (965, 530, -1306.28, 2478.4, 56.8094, 'Полуостров Адского Пламени, местонахождение тела 025');
|
||||
INSERT INTO `game_graveyard` VALUES (966, 530, -1497.4, 2657.17, -53.1746, 'Полуостров Адского Пламени, местонахождение тела 026');
|
||||
INSERT INTO `game_graveyard` VALUES (967, 530, -1445.7, 3050.23, -16.8279, 'Полуостров Адского Пламени, местонахождение тела 027');
|
||||
INSERT INTO `game_graveyard` VALUES (968, 530, -1510.36, 3281.81, -16.8644, 'Полуостров Адского Пламени, местонахождение тела 028');
|
||||
INSERT INTO `game_graveyard` VALUES (969, 530, 248.339, 7084.93, 36.4931, 'Зангартопь, PvP - кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (970, 530, 211.315, 6200.03, 22.2988, 'Зангартопь, Кладбище Телредора');
|
||||
INSERT INTO `game_graveyard` VALUES (971, 562, 6238.93, 262.963, 0.889519, 'Острогорье, PvP, Кладбище Арены');
|
||||
INSERT INTO `game_graveyard` VALUES (972, 530, 1286.73, 7883.12, 10.2222, 'Зангартопь, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (973, 530, -212.452, 5579.67, 22.178, 'Зангартопь, Кенарийское кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (974, 530, 1011.16, 5039.57, -26.825, 'Зангартопь, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (975, 530, 781.713, 4987.82, -12.3656, 'Зангартопь, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (976, 530, 1001.9, 5714.57, -9.30326, 'Зангартопь, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (977, 530, 1394.98, 7756.5, 12.2897, 'Зангартопь, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (978, 530, 1412.41, 8430.12, -4.67992, 'Зангартопь, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (979, 530, 1398.58, 7763.03, 8.54554, 'Зангартопь, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (980, 530, 1317.5, 8135.39, -2.85692, 'Зангартопь, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (981, 530, 1706.28, 8407.81, -24.7731, 'Зангартопь, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (982, 530, 1348.12, 8677.57, 6.86939, 'Зангартопь, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (983, 530, 1838.93, 8496.51, -19.0251, 'Зангартопь, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (984, 530, 1347.02, 8679.23, 6.67159, 'Зангартопь, местонахождение тела 012');
|
||||
INSERT INTO `game_graveyard` VALUES (985, 530, 1104.4, 8781.98, -10.8889, 'Зангартопь, местонахождение тела 013');
|
||||
INSERT INTO `game_graveyard` VALUES (986, 530, 747.447, 8702.9, 6.10944, 'Зангартопь, местонахождение тела 014');
|
||||
INSERT INTO `game_graveyard` VALUES (987, 530, 381.31, 9113.74, -4.27206, 'Зангартопь, местонахождение тела 016');
|
||||
INSERT INTO `game_graveyard` VALUES (988, 530, 702.758, 8927.53, -2.82061, 'Зангартопь, местонахождение тела 015');
|
||||
INSERT INTO `game_graveyard` VALUES (989, 530, 223.55, 9132.74, -11.746, 'Зангартопь, местонахождение тела 017');
|
||||
INSERT INTO `game_graveyard` VALUES (990, 530, 32.157, 9120.4, -17.2552, 'Зангартопь, местонахождение тела 018');
|
||||
INSERT INTO `game_graveyard` VALUES (991, 530, -160.425, 9053.54, 5.14203, 'Зангартопь, местонахождение тела 019');
|
||||
INSERT INTO `game_graveyard` VALUES (992, 530, -1066.97, 8066.54, -39.2593, 'Награнд, Расщелина Северного Ветра');
|
||||
INSERT INTO `game_graveyard` VALUES (993, 530, -1654.37, 7938.99, -46.235, 'Награнд, Кладбище Халаа');
|
||||
INSERT INTO `game_graveyard` VALUES (994, 530, -1793.42, 4931.61, -22.2095, 'Лес Тероккар, Кладбище Шаттрата');
|
||||
INSERT INTO `game_graveyard` VALUES (995, 530, -2540.15, 3866.65, 10.0769, 'Лес Тероккар, Кладбище Дебрей');
|
||||
INSERT INTO `game_graveyard` VALUES (996, 451, 1463.22, 16470.1, 66.4858, 'Тест - программист');
|
||||
INSERT INTO `game_graveyard` VALUES (997, 451, 66.2969, 60.125, 6.44392, 'Тест - программист 001');
|
||||
INSERT INTO `game_graveyard` VALUES (998, 559, 4055.5, 2919.66, 13.6112, 'Награнд, PvP, Кладбище Арены');
|
||||
INSERT INTO `game_graveyard` VALUES (999, 530, -697.573, 8881.73, 185.45, 'Награнд, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1000, 530, -999.506, 9045.62, 91.5906, 'Награнд, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1001, 530, -1933.72, 9343.67, 74.7306, 'Награнд, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1002, 530, -2153.3, 9323.71, 52.4346, 'Награнд, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1003, 530, -2619.46, 8953.7, -11.5455, 'Награнд, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1004, 530, -2799.85, 8785.75, -42.4943, 'Награнд, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1005, 530, -2984.12, 8700.11, -53.1578, 'Награнд, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1006, 530, -2989.35, 8445.13, -36.2434, 'Награнд, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1007, 530, -3122.56, 8079.49, -49.1307, 'Награнд, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1008, 530, -3155.75, 7316.31, -25.8604, 'Награнд, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1009, 530, -3244.7, 7079.02, -49.572, 'Награнд, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1010, 530, -2987.35, 7045.47, -54.3837, 'Награнд, местонахождение тела 012');
|
||||
INSERT INTO `game_graveyard` VALUES (1011, 530, -2962.33, 6796.88, -51.2624, 'Награнд, местонахождение тела 013');
|
||||
INSERT INTO `game_graveyard` VALUES (1012, 530, -3045.37, 6508.57, 99.6549, 'Награнд, местонахождение тела 014');
|
||||
INSERT INTO `game_graveyard` VALUES (1013, 530, -3379.58, 6206.48, -3.66373, 'Лес Тероккар, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1014, 530, -3621.98, 6225.18, -18.8211, 'Лес Тероккар, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1015, 530, -3898.57, 6147.65, -37.0799, 'Лес Тероккар, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1016, 530, -3844.34, 5931.41, -25.0505, 'Лес Тероккар, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1017, 530, -3801.34, 5618.75, -26.9166, 'Лес Тероккар, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1018, 530, -3910.99, 5404.07, -35.67, 'Лес Тероккар, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1019, 530, -3886.29, 5149.57, -59.6891, 'Лес Тероккар, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1020, 530, -3990.14, 4869.48, -107.634, 'Лес Тероккар, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1021, 530, -3904.3, 4591.4, -45.9821, 'Лес Тероккар, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1022, 530, -4024.3, 4421.72, -50.0018, 'Лес Тероккар, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1023, 530, -3965.06, 4128.62, 0.276609, 'Лес Тероккар, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1024, 530, -2415.76, 1811.62, -1.16446, 'Призрачная Луна, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1025, 530, -2319.13, 1749.94, -13.3446, 'Призрачная Луна, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1026, 530, -2447.42, 1612.81, -27.2319, 'Призрачная Луна, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1027, 530, -2650.24, 1666.66, 10.0941, 'Призрачная Луна, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1028, 530, -4151.09, 3425.82, 293.05, 'Лес Тероккар, местонахождение тела 016');
|
||||
INSERT INTO `game_graveyard` VALUES (1029, 530, -2648.27, 3020.65, -13.2128, 'Лес Тероккар, местонахождение тела 017');
|
||||
INSERT INTO `game_graveyard` VALUES (1030, 530, -2375.42, 2848.08, -69.8786, 'Лес Тероккар, местонахождение тела 018');
|
||||
INSERT INTO `game_graveyard` VALUES (1031, 530, -2205.61, 2968.3, -69.0715, 'Лес Тероккар, местонахождение тела 019');
|
||||
INSERT INTO `game_graveyard` VALUES (1032, 530, -2098.93, 3116.51, -51.3105, 'Лес Тероккар, местонахождение тела 020');
|
||||
INSERT INTO `game_graveyard` VALUES (1033, 530, -2047.74, 3278.56, -61.8309, 'Лес Тероккар, местонахождение тела 021');
|
||||
INSERT INTO `game_graveyard` VALUES (1034, 530, -2059, 3560.39, -74.5024, 'Лес Тероккар, местонахождение тела 022');
|
||||
INSERT INTO `game_graveyard` VALUES (1035, 530, -1876.5, 3700.5, -19.7418, 'Лес Тероккар, местонахождение тела 023');
|
||||
INSERT INTO `game_graveyard` VALUES (1036, 530, 0, 0, 0, 'Использовать повторно');
|
||||
INSERT INTO `game_graveyard` VALUES (1037, 530, -1289.79, 9166.72, 218.081, 'Награнд, Плато Портала');
|
||||
INSERT INTO `game_graveyard` VALUES (1038, 530, -856.214, 6600.06, 173.753, 'Награнд, Плато Стихий');
|
||||
INSERT INTO `game_graveyard` VALUES (1039, 530, -2033.53, 8479.53, -0.312287, 'Награнд, Юго-Западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1040, 530, 700.091, 2207.99, 288.518, 'Полуостров Адского Пламени, Трон Кил\'джедена');
|
||||
INSERT INTO `game_graveyard` VALUES (1041, 530, -249.765, 1023.32, 54.3254, 'Полуостров Адского Пламени, Темный портал');
|
||||
INSERT INTO `game_graveyard` VALUES (1042, 530, -3562.41, 4666.44, -21.9864, 'Лес Тероккар, Кладбище Костяных пустошей');
|
||||
INSERT INTO `game_graveyard` VALUES (1043, 530, 874.911, 7284.72, 23.0167, 'Зангартопь, Кладбище Прибежища');
|
||||
INSERT INTO `game_graveyard` VALUES (1044, 530, 337.125, 8616.87, 24.1563, 'Зангартопь, Кладбище Спореггара');
|
||||
INSERT INTO `game_graveyard` VALUES (1045, 530, 4363.88, 3093.74, 132.97, 'Пустоверть, Кладбище Штормовой Вершины');
|
||||
INSERT INTO `game_graveyard` VALUES (1046, 530, 3032.44, 3594.28, 145.818, 'Пустоверть, кладбище зоны 52');
|
||||
INSERT INTO `game_graveyard` VALUES (1047, 530, -2999.23, 2439.06, 62.3126, 'Долина Призрачной Луны, Кладбище Деревни Призрачной Луны');
|
||||
INSERT INTO `game_graveyard` VALUES (1048, 530, -4022.99, 2048.58, 96.8944, 'Долина Призрачной Луны, Кладбище Громового Молота');
|
||||
INSERT INTO `game_graveyard` VALUES (1049, 530, 1955.9, 6768.81, 164.061, 'Острогорье, кладбище Сильванаара');
|
||||
INSERT INTO `game_graveyard` VALUES (1050, 530, 2218.9, 6017.35, 135.921, 'Острогорье, Кладбище Громоборцев');
|
||||
INSERT INTO `game_graveyard` VALUES (1051, 530, -3942.59, 3686.29, 286.76, 'Лес Тероккар, Кладбище Скеттиса');
|
||||
INSERT INTO `game_graveyard` VALUES (1052, 530, -2652.66, 1484.21, 23.2433, 'Призрачная Луна, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1053, 530, -2477.69, 1386.24, 47.2643, 'Призрачная Луна, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1054, 530, -2459.08, 1277.57, 33.3696, 'Призрачная Луна, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1055, 530, -2464.28, 1074.65, 33.7003, 'Призрачная Луна, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1056, 530, -2597.45, 1040.72, 40.0066, 'Призрачная Луна, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1057, 530, -2753.67, 966.146, -3.37364, 'Призрачная Луна, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1058, 530, -2721.16, 711.034, -21.3014, 'Призрачная Луна, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1059, 530, -2752.54, 509.309, -25.6439, 'Призрачная Луна, местонахождение тела 012');
|
||||
INSERT INTO `game_graveyard` VALUES (1060, 530, -3004.49, 482.051, -15.3962, 'Призрачная Луна, местонахождение тела 013');
|
||||
INSERT INTO `game_graveyard` VALUES (1061, 530, -2997.38, 207.579, 3.1666, 'Призрачная Луна, местонахождение тела 014');
|
||||
INSERT INTO `game_graveyard` VALUES (1062, 530, -4084.62, 120.513, 63.0947, 'Призрачная Луна, местонахождение тела 015');
|
||||
INSERT INTO `game_graveyard` VALUES (1063, 530, -4231.62, 58.6267, 7.60376, 'Призрачная Луна, местонахождение тела 016');
|
||||
INSERT INTO `game_graveyard` VALUES (1064, 530, -4445.81, 224.844, 93.5421, 'Призрачная Луна, местонахождение тела 017');
|
||||
INSERT INTO `game_graveyard` VALUES (1065, 530, -4507.6, 553.553, 124.258, 'Призрачная Луна, местонахождение тела 018');
|
||||
INSERT INTO `game_graveyard` VALUES (1066, 530, -4445.43, 863.558, 6.45198, 'Призрачная Луна, местонахождение тела 019');
|
||||
INSERT INTO `game_graveyard` VALUES (1067, 530, -4791.52, 1082.18, -8.86698, 'Призрачная Луна, местонахождение тела 020');
|
||||
INSERT INTO `game_graveyard` VALUES (1068, 530, -4618.17, 1850.61, 153.439, 'Призрачная Луна, местонахождение тела 021');
|
||||
INSERT INTO `game_graveyard` VALUES (1069, 530, -4568.14, 2023.8, 90.0628, 'Призрачная Луна, местонахождение тела 022');
|
||||
INSERT INTO `game_graveyard` VALUES (1070, 530, -4541.32, 2281.76, 17.7953, 'Призрачная Луна, местонахождение тела 023');
|
||||
INSERT INTO `game_graveyard` VALUES (1071, 530, -4408.89, 2328.78, 31.213, 'Призрачная Луна, местонахождение тела 024');
|
||||
INSERT INTO `game_graveyard` VALUES (1072, 530, 1933, 7389.18, 364.888, 'Острогорье, местонахождение тела 000');
|
||||
INSERT INTO `game_graveyard` VALUES (1073, 530, 2356.31, 7345.09, 363.309, 'Острогорье, местонахождение тела 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1074, 530, 2818.31, 7269.72, 364.234, 'Острогорье, местонахождение тела 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1075, 530, 3199.99, 7264.96, 146.66, 'Острогорье, местонахождение тела 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1076, 530, 3432.89, 7312.38, 138.648, 'Острогорье, местонахождение тела 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1077, 530, 3753.24, 7118.03, 141.142, 'Острогорье, местонахождение тела 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1078, 530, 3797.19, 6900.24, 142.429, 'Острогорье, местонахождение тела 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1079, 530, 3839.15, 6586.81, 135.094, 'Острогорье, местонахождение тела 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1080, 530, 3482.78, 6487.13, 134.426, 'Острогорье, местонахождение тела 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1081, 530, 3656.61, 6208.11, 272.701, 'Острогорье, местонахождение тела 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1082, 530, 3995.33, 6092.06, 262.343, 'Острогорье, местонахождение тела 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1083, 530, 4095.11, 5811.89, 259.762, 'Острогорье, местонахождение тела 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1084, 530, 4153.55, 5508.92, 272.112, 'Острогорье, местонахождение тела 012');
|
||||
INSERT INTO `game_graveyard` VALUES (1085, 530, 4120.71, 5214.15, 264.988, 'Острогорье, местонахождение тела 013');
|
||||
INSERT INTO `game_graveyard` VALUES (1086, 530, 4086.35, 4849.9, 267.429, 'Острогорье, местонахождение тела 014');
|
||||
INSERT INTO `game_graveyard` VALUES (1087, 530, 3926.2, 4825.28, 264.982, 'Острогорье, местонахождение тела 015');
|
||||
INSERT INTO `game_graveyard` VALUES (1088, 530, 3731.12, 4738.45, 240.943, 'Острогорье, местонахождение тела 016');
|
||||
INSERT INTO `game_graveyard` VALUES (1089, 530, 3455.31, 4468.35, 154.243, 'Острогорье, местонахождение тела 017');
|
||||
INSERT INTO `game_graveyard` VALUES (1090, 530, 3323.6, 4503.88, 152.405, 'Острогорье, местонахождение тела 018');
|
||||
INSERT INTO `game_graveyard` VALUES (1091, 530, 2877.52, 4738.91, 278.725, 'Острогорье, местонахождение тела 019');
|
||||
INSERT INTO `game_graveyard` VALUES (1092, 530, 2653, 5100.26, 275.459, 'Острогорье, местонахождение тела 020');
|
||||
INSERT INTO `game_graveyard` VALUES (1093, 530, 2344.62, 5072.5, 268.165, 'Острогорье, местонахождение тела 021');
|
||||
INSERT INTO `game_graveyard` VALUES (1094, 530, 2251.08, 4907.94, 140.958, 'Острогорье, местонахождение тела 022');
|
||||
INSERT INTO `game_graveyard` VALUES (1095, 530, 2274.35, 4725.43, 159.451, 'Острогорье, местонахождение тела 023');
|
||||
INSERT INTO `game_graveyard` VALUES (1096, 530, 2102.66, 4685.08, 139.953, 'Острогорье, местонахождение тела 024');
|
||||
INSERT INTO `game_graveyard` VALUES (1097, 530, 1914.58, 4677.85, 133.28, 'Острогорье, местонахождение тела 025');
|
||||
INSERT INTO `game_graveyard` VALUES (1098, 530, 1771.94, 4585.16, 144.923, 'Острогорье, местонахождение тела 026');
|
||||
INSERT INTO `game_graveyard` VALUES (1099, 530, 1621.04, 4563.14, 137.265, 'Острогорье, местонахождение тела 027');
|
||||
INSERT INTO `game_graveyard` VALUES (1100, 530, 1606.36, 4792.58, 138.085, 'Острогорье, местонахождение тела 028');
|
||||
INSERT INTO `game_graveyard` VALUES (1101, 530, 1596.31, 4948.65, 169.669, 'Острогорье, местонахождение тела 029');
|
||||
INSERT INTO `game_graveyard` VALUES (1102, 530, 1616.9, 5077.05, 174.761, 'Острогорье, местонахождение тела 030');
|
||||
INSERT INTO `game_graveyard` VALUES (1103, 566, 2523.69, 1596.6, 1269.35, 'Поле боя Пустоверти, Кладбище (старт Альянса)');
|
||||
INSERT INTO `game_graveyard` VALUES (1104, 566, 1807.74, 1539.42, 1267.63, 'Поле боя Пустоверти, Кладбище (старт Орды)');
|
||||
INSERT INTO `game_graveyard` VALUES (1105, 566, 2013.06, 1677.24, 1182.13, 'Поле боя Пустоверти, Кладбище (Сквернобот)');
|
||||
INSERT INTO `game_graveyard` VALUES (1106, 566, 2012.4, 1455.41, 1172.2, 'Поле боя Пустоверти, Кладбище (башня эльфов крови)');
|
||||
INSERT INTO `game_graveyard` VALUES (1107, 566, 2351.79, 1455.4, 1185.33, 'Поле боя Пустоверти, Кладбище (дренейская башня)');
|
||||
INSERT INTO `game_graveyard` VALUES (1108, 566, 2355.3, 1683.71, 1173.15, 'Пустоверть, Кладбище (Башня Людей)');
|
||||
INSERT INTO `game_graveyard` VALUES (1109, 566, 2626.9, 1457.85, 1225.54, 'Поле боя Пустоверти, ловец тел 000');
|
||||
INSERT INTO `game_graveyard` VALUES (1110, 566, 2603.99, 1695.96, 1229.46, 'Поле боя Пустоверти, ловец тел 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1111, 566, 2495.96, 1402.39, 1204.59, 'Поле боя Пустоверти, ловец тел 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1112, 566, 2541.25, 1787.24, 1187.98, 'Поле боя Пустоверти, ловец тел 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1113, 566, 2353.73, 1336.66, 1192.14, 'Поле боя Пустоверти, ловец тел 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1114, 566, 2368.35, 1800.79, 1166.33, 'Поле боя Пустоверти, ловец тел 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1115, 566, 2253.47, 1298.66, 1188.84, 'Поле боя Пустоверти, ловец тел 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1116, 566, 2227.6, 1819.58, 1151.61, 'Поле боя Пустоверти, ловец тел 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1117, 566, 2047.89, 1324.84, 1170.77, 'Поле боя Пустоверти, ловец тел 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1118, 566, 2057.31, 1848.26, 1192.27, 'Поле боя Пустоверти, ловец тел 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1119, 566, 1914.77, 1381.5, 1175.39, 'Поле боя Пустоверти, ловец тел 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1120, 566, 1918.94, 1766.3, 1194.12, 'Поле боя Пустоверти, ловец тел 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1121, 566, 1796.22, 1341.52, 1188.57, 'Поле боя Пустоверти, ловец тел 012');
|
||||
INSERT INTO `game_graveyard` VALUES (1122, 566, 1808.19, 1726.82, 1206.02, 'Поле боя Пустоверти, ловец тел 013');
|
||||
INSERT INTO `game_graveyard` VALUES (1123, 566, 1724.51, 1405.74, 1208.55, 'Поле боя Пустоверти, ловец тел 014');
|
||||
INSERT INTO `game_graveyard` VALUES (1124, 566, 1692.78, 1672.57, 1225.53, 'Поле боя Пустоверти, ловец тел 015');
|
||||
INSERT INTO `game_graveyard` VALUES (1125, 566, 2121.79, 1670.5, 1169.27, 'Поле боя Пустоверти, ловец тел 016');
|
||||
INSERT INTO `game_graveyard` VALUES (1126, 566, 2111.42, 1441.82, 1163.87, 'Поле боя Пустоверти, ловец тел 017');
|
||||
INSERT INTO `game_graveyard` VALUES (1127, 566, 2213.18, 1469.54, 1175.01, 'Поле боя Пустоверти, ловец тел 018');
|
||||
INSERT INTO `game_graveyard` VALUES (1128, 566, 2226.6, 1692.81, 1161.85, 'Поле боя Пустоверти, ловец тел 019');
|
||||
INSERT INTO `game_graveyard` VALUES (1129, 566, 2174.9, 1594.51, 1126.51, 'Поле боя Пустоверти, ловец тел 020');
|
||||
INSERT INTO `game_graveyard` VALUES (1130, 566, 2173.64, 1534.45, 1129.24, 'Поле боя Пустоверти, ловец тел 021');
|
||||
INSERT INTO `game_graveyard` VALUES (1131, 566, 2213.83, 1328.19, 1178.46, 'Поле боя Пустоверти, ловец тел 022');
|
||||
INSERT INTO `game_graveyard` VALUES (1132, 566, 2113.42, 1326.88, 1153.99, 'Поле боя Пустоверти, ловец тел 023');
|
||||
INSERT INTO `game_graveyard` VALUES (1133, 566, 2117.21, 1807.68, 1171.55, 'Поле боя Пустоверти, ловец тел 024');
|
||||
INSERT INTO `game_graveyard` VALUES (1134, 530, 3491.41, 4127.39, 119.837, 'Пустоверть, ловец тел 000');
|
||||
INSERT INTO `game_graveyard` VALUES (1135, 530, 3578.56, 3957.1, 117.999, 'Пустоверть, ловец тел 001');
|
||||
INSERT INTO `game_graveyard` VALUES (1136, 530, 3586.96, 3717.31, 115.593, 'Пустоверть, ловец тел 002');
|
||||
INSERT INTO `game_graveyard` VALUES (1137, 530, 3640.77, 3522.84, 104.122, 'Пустоверть, ловец тел 003');
|
||||
INSERT INTO `game_graveyard` VALUES (1138, 530, 3520.2, 3511.7, 125.437, 'Пустоверть, ловец тел 004');
|
||||
INSERT INTO `game_graveyard` VALUES (1139, 530, 3399.31, 3400.41, 101.826, 'Пустоверть, ловец тел 005');
|
||||
INSERT INTO `game_graveyard` VALUES (1140, 530, 3271.49, 3366.92, 105.214, 'Пустоверть, ловец тел 006');
|
||||
INSERT INTO `game_graveyard` VALUES (1141, 530, 3188.37, 3257.08, 88.973, 'Пустоверть, ловец тел 007');
|
||||
INSERT INTO `game_graveyard` VALUES (1142, 530, 3022.79, 3163.7, 118.336, 'Пустоверть, ловец тел 008');
|
||||
INSERT INTO `game_graveyard` VALUES (1143, 530, 2943.66, 3056.64, 112.724, 'Пустоверть, ловец тел 009');
|
||||
INSERT INTO `game_graveyard` VALUES (1144, 530, 2846.52, 2955.54, 113.508, 'Пустоверть, ловец тел 010');
|
||||
INSERT INTO `game_graveyard` VALUES (1145, 530, 2815.3, 2830.89, 76.0171, 'Пустоверть, ловец тел 011');
|
||||
INSERT INTO `game_graveyard` VALUES (1146, 530, 2695.05, 2940.24, 94.9833, 'Пустоверть, ловец тел 012');
|
||||
INSERT INTO `game_graveyard` VALUES (1147, 530, 2570.5, 3135.96, 107.749, 'Пустоверть, ловец тел 013');
|
||||
INSERT INTO `game_graveyard` VALUES (1148, 530, 2511.98, 3275.15, 99.749, 'Пустоверть, ловец тел 014');
|
||||
INSERT INTO `game_graveyard` VALUES (1149, 530, 2449.93, 3377.49, 115.303, 'Пустоверть, ловец тел 015');
|
||||
INSERT INTO `game_graveyard` VALUES (1150, 530, 2519.66, 3538.7, 120.574, 'Пустоверть, ловец тел 016');
|
||||
INSERT INTO `game_graveyard` VALUES (1151, 530, 2479.84, 3695.68, 106.209, 'Пустоверть, ловец тел 017');
|
||||
INSERT INTO `game_graveyard` VALUES (1152, 530, 2433.44, 3835.28, 94.9401, 'Пустоверть, ловец тел 018');
|
||||
INSERT INTO `game_graveyard` VALUES (1153, 530, 2403.43, 3995.29, 99.2667, 'Пустоверть, ловец тел 019');
|
||||
INSERT INTO `game_graveyard` VALUES (1154, 530, 2477.41, 4151.27, 113.695, 'Пустоверть, ловец тел 020');
|
||||
INSERT INTO `game_graveyard` VALUES (1155, 530, 2535.26, 4396.42, 103.322, 'Пустоверть, ловец тел 021');
|
||||
INSERT INTO `game_graveyard` VALUES (1156, 530, 2710.52, 4440.32, 105.852, 'Пустоверть, ловец тел 022');
|
||||
INSERT INTO `game_graveyard` VALUES (1157, 530, 2916.15, 4444.49, 111.442, 'Пустоверть, ловец тел 023');
|
||||
INSERT INTO `game_graveyard` VALUES (1158, 530, 3069.1, 4357.14, 119.069, 'Пустоверть, ловец тел 024');
|
||||
INSERT INTO `game_graveyard` VALUES (1159, 530, 3091.8, 4146.84, 126.162, 'Пустоверть, ловец тел 025');
|
||||
INSERT INTO `game_graveyard` VALUES (1160, 530, 3221.17, 4069.1, 103.294, 'Пустоверть, ловец тел 026');
|
||||
INSERT INTO `game_graveyard` VALUES (1161, 530, 3355.79, 4149.28, 137.783, 'Пустоверть, ловец тел 027');
|
||||
INSERT INTO `game_graveyard` VALUES (1162, 530, 3980.61, 4262.21, 130.059, 'Пустоверть, ловец тел 028');
|
||||
INSERT INTO `game_graveyard` VALUES (1163, 530, 3802.7, 4204.43, 108.911, 'Пустоверть, ловец тел 029');
|
||||
INSERT INTO `game_graveyard` VALUES (1164, 530, 3766.71, 4008.23, 116.788, 'Пустоверть, ловец тел 030');
|
||||
INSERT INTO `game_graveyard` VALUES (1165, 530, 3796.27, 3772.19, 100.545, 'Пустоверть, ловец тел 031');
|
||||
INSERT INTO `game_graveyard` VALUES (1166, 530, 4049.61, 3692.78, 101.573, 'Пустоверть, ловец тел 032');
|
||||
INSERT INTO `game_graveyard` VALUES (1167, 530, 4152.53, 3886.21, 121.304, 'Пустоверть, ловец тел 033');
|
||||
INSERT INTO `game_graveyard` VALUES (1168, 530, 4235.16, 4080.62, 95.3675, 'Пустоверть, ловец тел 034');
|
||||
INSERT INTO `game_graveyard` VALUES (1169, 530, 4169.83, 4209.06, 118.711, 'Пустоверть, ловец тел 035');
|
||||
INSERT INTO `game_graveyard` VALUES (1170, 530, 3836.08, 3477.26, 75.5263, 'Пустоверть, ловец тел 036');
|
||||
INSERT INTO `game_graveyard` VALUES (1171, 530, 3994.95, 3538.27, 122.008, 'Пустоверть, ловец тел 037');
|
||||
INSERT INTO `game_graveyard` VALUES (1172, 530, 4211.4, 3632, 124.109, 'Пустоверть, ловец тел 038');
|
||||
INSERT INTO `game_graveyard` VALUES (1173, 530, 4395.24, 3708.62, 96.616, 'Пустоверть, ловец тел 039');
|
||||
INSERT INTO `game_graveyard` VALUES (1174, 530, 4580.69, 3584, 94.0002, 'Пустоверть, ловец тел 040');
|
||||
INSERT INTO `game_graveyard` VALUES (1175, 530, 4793.19, 3527.37, 102.164, 'Пустоверть, ловец тел 041');
|
||||
INSERT INTO `game_graveyard` VALUES (1176, 530, 4903.71, 3323.86, 101.089, 'Пустоверть, ловец тел 042');
|
||||
INSERT INTO `game_graveyard` VALUES (1177, 530, 4945.87, 3110.83, 98.2189, 'Пустоверть, ловец тел 043');
|
||||
INSERT INTO `game_graveyard` VALUES (1178, 530, 5156.75, 2974.21, 75.555, 'Пустоверть, ловец тел 044');
|
||||
INSERT INTO `game_graveyard` VALUES (1179, 530, 5204.7, 2868.11, 54.3042, 'Пустоверть, ловец тел 045');
|
||||
INSERT INTO `game_graveyard` VALUES (1180, 530, 5019.97, 2798.73, 52.0894, 'Пустоверть, ловец тел 046');
|
||||
INSERT INTO `game_graveyard` VALUES (1181, 530, 4885.18, 2663.13, 85.2405, 'Пустоверть, ловец тел 047');
|
||||
INSERT INTO `game_graveyard` VALUES (1182, 530, 4853.17, 2354.02, 101.279, 'Пустоверть, ловец тел 048');
|
||||
INSERT INTO `game_graveyard` VALUES (1183, 530, 4680.81, 2287.48, 129.446, 'Пустоверть, ловец тел 049');
|
||||
INSERT INTO `game_graveyard` VALUES (1184, 530, 4522.44, 2280.28, 136.924, 'Пустоверть, ловец тел 050');
|
||||
INSERT INTO `game_graveyard` VALUES (1185, 530, 4436.57, 2485.48, 90.3712, 'Пустоверть, ловец тел 051');
|
||||
INSERT INTO `game_graveyard` VALUES (1186, 530, 4448.3, 2658.15, 111.356, 'Пустоверть, ловец тел 052');
|
||||
INSERT INTO `game_graveyard` VALUES (1187, 530, 4285.06, 2837.04, 100.8, 'Пустоверть, ловец тел 053');
|
||||
INSERT INTO `game_graveyard` VALUES (1188, 530, 4136.62, 2699.33, 101.025, 'Пустоверть, ловец тел 054');
|
||||
INSERT INTO `game_graveyard` VALUES (1189, 530, 3975.24, 2807.44, 115.88, 'Пустоверть, ловец тел 055');
|
||||
INSERT INTO `game_graveyard` VALUES (1190, 530, 3931.79, 3020.67, 104.802, 'Пустоверть, ловец тел 056');
|
||||
INSERT INTO `game_graveyard` VALUES (1191, 530, 3895.88, 3257.64, 120.552, 'Пустоверть, ловец тел 057');
|
||||
INSERT INTO `game_graveyard` VALUES (1192, 530, 3629.36, 3095.11, 112.238, 'Пустоверть, ловец тел 058');
|
||||
INSERT INTO `game_graveyard` VALUES (1193, 530, 3476.45, 3293.56, 94.8662, 'Пустоверть, ловец тел 059');
|
||||
INSERT INTO `game_graveyard` VALUES (1194, 530, 3348.41, 3172.06, 91.6889, 'Пустоверть, ловец тел 060');
|
||||
INSERT INTO `game_graveyard` VALUES (1195, 530, 3216.28, 2992.53, 124.764, 'Пустоверть, ловец тел 061');
|
||||
INSERT INTO `game_graveyard` VALUES (1196, 530, 3022.81, 2892.91, 90.2431, 'Пустоверть, ловец тел 062');
|
||||
INSERT INTO `game_graveyard` VALUES (1197, 530, 2860.47, 2735.28, 86.18, 'Пустоверть, ловец тел 063');
|
||||
INSERT INTO `game_graveyard` VALUES (1198, 530, 2863.8, 2537.41, 105.193, 'Пустоверть, ловец тел 064');
|
||||
INSERT INTO `game_graveyard` VALUES (1199, 530, 2856.08, 2297.04, 98.8159, 'Пустоверть, ловец тел 065');
|
||||
INSERT INTO `game_graveyard` VALUES (1200, 530, 2834.86, 2040.24, 92.6892, 'Пустоверть, ловец тел 066');
|
||||
INSERT INTO `game_graveyard` VALUES (1201, 530, 2868.81, 1848.69, 96.8612, 'Пустоверть, ловец тел 067');
|
||||
INSERT INTO `game_graveyard` VALUES (1202, 530, 2895.75, 1708.09, 105.79, 'Пустоверть, ловец тел 068');
|
||||
INSERT INTO `game_graveyard` VALUES (1203, 530, 3110.67, 1624.43, 112.817, 'Пустоверть, ловец тел 069');
|
||||
INSERT INTO `game_graveyard` VALUES (1204, 530, 3276.02, 1726.59, 101.628, 'Пустоверть, ловец тел 070');
|
||||
INSERT INTO `game_graveyard` VALUES (1205, 530, 3332.26, 1986.97, 94.5339, 'Пустоверть, ловец тел 071');
|
||||
INSERT INTO `game_graveyard` VALUES (1206, 530, 3315.85, 2185.52, 108.392, 'Пустоверть, ловец тел 072');
|
||||
INSERT INTO `game_graveyard` VALUES (1207, 530, 3384.58, 2376.22, 73.5116, 'Пустоверть, ловец тел 073');
|
||||
INSERT INTO `game_graveyard` VALUES (1208, 530, 3492.84, 2570.84, 138.484, 'Пустоверть, ловец тел 074');
|
||||
INSERT INTO `game_graveyard` VALUES (1209, 530, 3590.41, 2677.08, 134.967, 'Пустоверть, ловец тел 075');
|
||||
INSERT INTO `game_graveyard` VALUES (1210, 530, 3740.94, 2696.99, 112.495, 'Пустоверть, ловец тел 076');
|
||||
INSERT INTO `game_graveyard` VALUES (1211, 530, 3737.85, 2894.69, 100.461, 'Пустоверть, ловец тел 077');
|
||||
INSERT INTO `game_graveyard` VALUES (1212, 530, 3862.95, 2554.46, 80.6212, 'Пустоверть, ловец тел 078');
|
||||
INSERT INTO `game_graveyard` VALUES (1213, 530, 3648.26, 2414.61, 75.8989, 'Пустоверть, ловец тел 079');
|
||||
INSERT INTO `game_graveyard` VALUES (1214, 530, 3546.97, 2219.76, 92.1654, 'Пустоверть, ловец тел 080');
|
||||
INSERT INTO `game_graveyard` VALUES (1215, 530, 3550.01, 2002.35, 92.2836, 'Пустоверть, ловец тел 081');
|
||||
INSERT INTO `game_graveyard` VALUES (1216, 530, 3509.69, 1762.49, 75.3824, 'Пустоверть, ловец тел 082');
|
||||
INSERT INTO `game_graveyard` VALUES (1217, 530, 3645.26, 1712.66, 106.519, 'Пустоверть, ловец тел 083');
|
||||
INSERT INTO `game_graveyard` VALUES (1218, 530, 3681.18, 1558.56, 103.064, 'Пустоверть, ловец тел 084');
|
||||
INSERT INTO `game_graveyard` VALUES (1219, 530, 3775.55, 1437.54, -152.872, 'Пустоверть, ловец тел 085');
|
||||
INSERT INTO `game_graveyard` VALUES (1220, 530, 3969.01, 1336.41, -143.469, 'Пустоверть, ловец тел 086');
|
||||
INSERT INTO `game_graveyard` VALUES (1221, 530, 4166.45, 1329.15, -149.744, 'Пустоверть, ловец тел 087');
|
||||
INSERT INTO `game_graveyard` VALUES (1222, 530, 4199.54, 1484.24, -127.523, 'Пустоверть, ловец тел 088');
|
||||
INSERT INTO `game_graveyard` VALUES (1223, 530, 4258.28, 1672.84, 113.502, 'Пустоверть, ловец тел 089');
|
||||
INSERT INTO `game_graveyard` VALUES (1224, 530, 4362.23, 1927.16, 95.6414, 'Пустоверть, ловец тел 090');
|
||||
INSERT INTO `game_graveyard` VALUES (1225, 530, 4347.15, 2143.36, 116.927, 'Пустоверть, ловец тел 091');
|
||||
INSERT INTO `game_graveyard` VALUES (1226, 530, 4246.96, 2450.75, 91.2951, 'Пустоверть, ловец тел 092');
|
||||
INSERT INTO `game_graveyard` VALUES (1227, 530, 4117.15, 2332.29, 103.107, 'Пустоверть, ловец тел 093');
|
||||
INSERT INTO `game_graveyard` VALUES (1228, 530, 3975.8, 2437.47, 114.278, 'Пустоверть, ловец тел 094');
|
||||
INSERT INTO `game_graveyard` VALUES (1229, 530, 2501.34, 1983.39, 84.3397, 'Пустоверть, ловец тел 095');
|
||||
INSERT INTO `game_graveyard` VALUES (1230, 530, 2573.35, 2127.1, 98.8223, 'Пустоверть, ловец тел 096');
|
||||
INSERT INTO `game_graveyard` VALUES (1231, 530, 2648.16, 2353.63, 93.2833, 'Пустоверть, ловец тел 097');
|
||||
INSERT INTO `game_graveyard` VALUES (1232, 530, 2659.25, 2547.14, 110.084, 'Пустоверть, ловец тел 098');
|
||||
INSERT INTO `game_graveyard` VALUES (1233, 530, 2587.89, 2711.6, 110.037, 'Пустоверть, ловец тел 099');
|
||||
INSERT INTO `game_graveyard` VALUES (1234, 530, 2473.63, 2964.98, 106.742, 'Пустоверть, ловец тел100');
|
||||
INSERT INTO `game_graveyard` VALUES (1235, 530, 2209.18, 2901.68, 93.6635, 'Пустоверть, ловец тел 101');
|
||||
INSERT INTO `game_graveyard` VALUES (1236, 530, 2164.32, 2667.39, 78.4479, 'Пустоверть, ловец тел 102');
|
||||
INSERT INTO `game_graveyard` VALUES (1237, 530, 2078.21, 2405.5, 65.8779, 'Пустоверть, ловец тел 103');
|
||||
INSERT INTO `game_graveyard` VALUES (1238, 530, 2079.82, 2227.04, 67.6551, 'Пустоверть, ловец тел 104');
|
||||
INSERT INTO `game_graveyard` VALUES (1239, 530, 2240.18, 2067.8, 61.7495, 'Пустоверть, ловец тел 105');
|
||||
INSERT INTO `game_graveyard` VALUES (1240, 530, 552.188, 1995.15, 103.702, 'Полуостров Адского Пламени, Военный лагерь (Альянс)');
|
||||
INSERT INTO `game_graveyard` VALUES (1241, 530, 3065, 5426.42, 148.39, 'Острогорье, Кладбище Вечной рощи');
|
||||
INSERT INTO `game_graveyard` VALUES (1242, 530, 3872.66, 5514.41, 271.977, 'Острогорье, Кладбище Северной Гряды');
|
||||
INSERT INTO `game_graveyard` VALUES (1243, 530, 2296.35, 7023.23, 364.117, 'Острогорье, Кладбище Западной Гряды');
|
||||
INSERT INTO `game_graveyard` VALUES (1244, 530, 2312.27, 5083.93, 272.449, 'Острогорье, Кладбище Восточной Гряды');
|
||||
INSERT INTO `game_graveyard` VALUES (1245, 628, 1212.04, -762.696, 48.9162, 'Icecrown BG - Horde Zone In');
|
||||
INSERT INTO `game_graveyard` VALUES (1246, 0, 101.144, -184.934, 127.344, 'Альтеракская долина, место выхода Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (1247, 530, 2980.19, 1869.82, 143.607, 'Пустоверть, Кладбище Космоворота');
|
||||
INSERT INTO `game_graveyard` VALUES (1248, 530, -1272.42, 2436.85, 64.0972, 'Полуостров Адского Пламени, Кладбище Хребтолома');
|
||||
INSERT INTO `game_graveyard` VALUES (1249, 1, -8159.51, -4628.7, -124.747, 'Танарис, Пещеры Времени');
|
||||
INSERT INTO `game_graveyard` VALUES (1250, 530, -3134.54, 719.484, -20.6363, 'Долина Призрачной Луны, Кладбище Алтаря');
|
||||
INSERT INTO `game_graveyard` VALUES (1251, 530, -4117.03, 1058.26, 31.5656, 'Долина Призрачной Луны, Кладбище Святилища');
|
||||
INSERT INTO `game_graveyard` VALUES (1252, 530, 2362.67, 2327.41, 106.18, 'Пустоверть, Деревня Кирин\'Вар');
|
||||
INSERT INTO `game_graveyard` VALUES (1253, 530, 2011.39, 5575.79, 262.717, 'Острогорье, Кладбище Тошли');
|
||||
INSERT INTO `game_graveyard` VALUES (1254, 530, 3522.84, 6821.62, 140.879, 'Острогорье, Кладбище Леса Ворона');
|
||||
INSERT INTO `game_graveyard` VALUES (1255, 530, 3447.31, 4803.82, 260.213, 'Острогорье, Кладбище Северо-восточной Гряды');
|
||||
INSERT INTO `game_graveyard` VALUES (1256, 0, -382.911, 1117.42, 84.3704, 'Серебряный бор, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1257, 530, -1148.08, 5897.62, 188.337, 'Лес Тероккар, Кладбище Огров');
|
||||
INSERT INTO `game_graveyard` VALUES (1258, 572, 1277.87, 1744.9, 32.5, 'Лордерон, PvP, старт команды 1');
|
||||
INSERT INTO `game_graveyard` VALUES (1259, 572, 1295.13, 1586.44, 32.5, 'Лордерон, PvP, старт команды 2');
|
||||
INSERT INTO `game_graveyard` VALUES (1260, 572, 1285.81, 1667.9, 39.9576, 'Лордерон, PvP - кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1261, 530, -3524.27, 619.528, 4.66533, 'Черный храм, Кладбище Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (1262, 530, -3624.93, 600.007, 11.669, 'Черный храм, Кладбище Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (1263, 530, 3621.87, 6519.53, 124.339, 'Острогорье, местонахождение тела 031');
|
||||
INSERT INTO `game_graveyard` VALUES (1264, 1, -4032.4, -3414.03, 38.5236, 'Пылевые топи, Ферма Табеты');
|
||||
INSERT INTO `game_graveyard` VALUES (1265, 1, -4632.79, -3129.43, 34.9423, 'Пылевые топи, Шестермуть');
|
||||
INSERT INTO `game_graveyard` VALUES (1266, 571, 1958.13, -3682.22, 171.91, 'Ревущий фьорд, Северо-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1267, 571, 728.266, -2992.27, 24.9835, 'Ревущий фьорд, Клыкаррское кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1268, 571, 117.023, -3698.8, 0.683407, 'Ревущий фьорд, Островное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1269, 571, 1191.77, -4115.08, 149.689, 'Ревущий фьорд, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1270, 571, 2243.12, -4650.64, 218.961, 'Ревущий фьорд, Северное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1271, 571, 1923.72, -5986.35, 9.05279, 'Ревущий фьорд, Кладбище лагеря Возмездия');
|
||||
INSERT INTO `game_graveyard` VALUES (1272, 571, 717.778, -5878.41, 287.001, 'Ревущий фьорд, Юго-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1273, 571, 205.003, -5944.01, 7.37471, 'Ревущий фьорд, Кладбище Южного берега');
|
||||
INSERT INTO `game_graveyard` VALUES (1274, 571, 57.9178, -4649.08, 283.569, 'Ревущий фьорд, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1275, 571, 668.024, -4931.68, 3.90933, 'Ревущий фьорд, Кладбище Валгарда');
|
||||
INSERT INTO `game_graveyard` VALUES (1276, 571, 1808.77, -5608.61, 219.419, 'Ревущий фьорд, Северо-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1277, 1, -7351.04, -1315.89, -261.603, 'Кратер Ун\'Горо, Центральное Кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1278, 1, -6160.06, -1142.43, -217.769, 'Кратер Ун\'Горо, Кладбище Маршалла');
|
||||
INSERT INTO `game_graveyard` VALUES (1279, 1, 475.685, 1469.87, 9.63075, 'Когтистые горы, Обугленная долина');
|
||||
INSERT INTO `game_graveyard` VALUES (1280, 1, 2729.91, 1286.64, 292.467, 'Когтистые горы, Кладбище Пика');
|
||||
INSERT INTO `game_graveyard` VALUES (1281, 1, -7754.16, -4971.9, 5.91349, 'Танарис, Пиратское кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1282, 1, -8591.8, -3629.76, 13.5564, 'Танарис, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1283, 1, 5633.33, -4759.59, 777.713, 'Зимние Ключи, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1284, 1, 6499.59, -2384.34, 589.849, 'Зимние Ключи, Западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1285, 571, 5537.46, 2904.91, 517.664, 'Озеро Ледяных Оков, Крепость (Восток)');
|
||||
INSERT INTO `game_graveyard` VALUES (1286, 0, 1839.77, -2149.68, 67.4935, 'Западные Чумные земли, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1287, 0, -6867.31, -1539.84, 241.815, 'Тлеющее ущелье, Северо-Восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1288, 0, -7100.9, -3488.39, 241.925, 'Бесплодные земли, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1289, 1, -3973.53, -2014.49, 96.362, 'Степи, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1290, 571, 3041.21, 4314.9, 29.0761, 'Борейская тундра, Клыкаррское кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1291, 530, -1424.37, 4359.58, 241.566, 'Лес Тероккар, кладбище уступа Острого Шипа');
|
||||
INSERT INTO `game_graveyard` VALUES (1292, 530, 12851.8, -6854.8, 11.8612, 'Остров Кель\'Данас, Кладбище военной базы');
|
||||
INSERT INTO `game_graveyard` VALUES (1293, 530, 12851.8, -6854.8, 11.8612, 'Остров Кель\'Данас, Кладбище военной базы');
|
||||
INSERT INTO `game_graveyard` VALUES (1294, 530, 12851.8, -6854.8, 110.861, 'Остров Кель\'Данас, Кладбище военной базы');
|
||||
INSERT INTO `game_graveyard` VALUES (1295, 451, -10425.3, 7329.17, 313.967, 'Development Land, Theresa\'s Test Land GY');
|
||||
INSERT INTO `game_graveyard` VALUES (1296, 451, -10431.2, 7377.98, 313.967, 'Development Land, Theresa\'s Test Land 2 GY');
|
||||
INSERT INTO `game_graveyard` VALUES (1297, 451, -10414.7, 7414.45, 312.957, 'Development Land, Theresa\'s Test land 3 GY');
|
||||
INSERT INTO `game_graveyard` VALUES (1298, 530, -2433.64, 4660.97, 160.883, 'Лес Тероккар, кладбище озера Иорун');
|
||||
INSERT INTO `game_graveyard` VALUES (1299, 628, 347.641, -836.161, 48.9162, 'Icecrown BG - Alliance Zone In');
|
||||
INSERT INTO `game_graveyard` VALUES (1300, 571, 3100.18, -1983.4, 83.3072, 'Седые холмы, Кладбище Жестокой Травли');
|
||||
INSERT INTO `game_graveyard` VALUES (1301, 571, 3534.13, -2882.06, 204.625, 'Седые холмы, Кладбище Янтарной Сосны');
|
||||
INSERT INTO `game_graveyard` VALUES (1302, 571, 4352.78, -4247.99, 162.318, 'Седые холмы, Кладбище Западного Края');
|
||||
INSERT INTO `game_graveyard` VALUES (1303, 571, 4117.91, -4816.41, 76.0073, 'Седые холмы, Восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1304, 571, 3967.28, -2316.64, 213.873, 'Седые холмы, Северо-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1305, 571, 2933.64, -2836.78, 73.6939, 'Седые холмы, Юго-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1306, 571, 4323.39, -3606.85, 248, 'Седые холмы, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1307, 571, 4604.76, -976.65, 169.54, 'Драконий Погост, Северо-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1308, 571, 3667.91, -1044.36, 130.562, 'Драконий Погост, Кладбище Стражей Зимы');
|
||||
INSERT INTO `game_graveyard` VALUES (1309, 571, 3218.74, -700.367, 167.482, 'Драконий Погост, Восточное кладбище Отрекшихся');
|
||||
INSERT INTO `game_graveyard` VALUES (1310, 571, 3843.01, 1425.52, 90.6411, 'Драконий Погост, Кладбище Молота Агмара');
|
||||
INSERT INTO `game_graveyard` VALUES (1311, 571, 3498.38, 2100.42, 69.5025, 'Драконий Погост, Кладбище Покоя Звезд');
|
||||
INSERT INTO `game_graveyard` VALUES (1312, 571, 2772.18, 1042.4, 25.045, 'Драконий Погост, Кладбище Гавани Моа\'ки');
|
||||
INSERT INTO `game_graveyard` VALUES (1313, 571, 3599.17, 2846.07, 70.9523, 'Драконий Погост, Кладбище Борейской границы');
|
||||
INSERT INTO `game_graveyard` VALUES (1314, 571, 3538.17, 275.51, 45.6119, 'Драконий Погост, Кладбище Драконьего Покоя');
|
||||
INSERT INTO `game_graveyard` VALUES (1315, 571, 4812.89, 1022.49, 144.814, 'Драконий Погост, Кладбище Врат Гнева (Орда)');
|
||||
INSERT INTO `game_graveyard` VALUES (1316, 571, 4466.17, 1257.02, 140.79, 'Драконий Погост, Кладбище Врат Гнева (Альянс)');
|
||||
INSERT INTO `game_graveyard` VALUES (1317, 571, 2842, 5973.16, 114.196, 'Борейская тундра, Кладбище Крепости Песни Войны');
|
||||
INSERT INTO `game_graveyard` VALUES (1318, 571, 2007.96, 5936.55, 37.4033, 'Борейская тундра, Кладбище Берега Терзающего Бича');
|
||||
INSERT INTO `game_graveyard` VALUES (1319, 571, 3621.88, 6805.54, 171.706, 'Борейская тундра, Кладбище Хладарры');
|
||||
INSERT INTO `game_graveyard` VALUES (1320, 571, 3559.93, 5818.79, 128.939, 'Борейская тундра, Кладбище Янтарной Гряды');
|
||||
INSERT INTO `game_graveyard` VALUES (1321, 571, 4223.44, 5335.88, 30.6522, 'Борейская тундра, Кладбище Выкрутеня');
|
||||
INSERT INTO `game_graveyard` VALUES (1322, 571, 4514.81, 5661.56, 82.0308, 'Борейская тундра, Кладбище Бор\'Горока');
|
||||
INSERT INTO `game_graveyard` VALUES (1323, 571, 3041.14, 3843.49, 3.75779, 'Борейская тундра, Кладбище Стоянки Смерти');
|
||||
INSERT INTO `game_graveyard` VALUES (1324, 571, 3576.16, 4087.61, 22.3312, 'Борейская тундра, Кладбище Таунка\'ле');
|
||||
INSERT INTO `game_graveyard` VALUES (1325, 571, 2842.96, 6655.17, 36.4127, 'Борейская тундра, Кладбище Берега Эха');
|
||||
INSERT INTO `game_graveyard` VALUES (1326, 571, 2478.59, 5289.41, 32.3838, 'Борейская тундра, Кладбище Крепости Отваги');
|
||||
INSERT INTO `game_graveyard` VALUES (1327, 0, 791.432, -419.449, 136.572, 'Альтеракская долина');
|
||||
INSERT INTO `game_graveyard` VALUES (1328, 571, 5537.57, 2905.04, 517.724, 'Озеро Ледяных Оков, Крепость (Запад)');
|
||||
INSERT INTO `game_graveyard` VALUES (1329, 571, 5104.35, 2302.23, 368.485, 'Озеро Ледяных Оков, Завод боевых машин (СВ оборона)');
|
||||
INSERT INTO `game_graveyard` VALUES (1330, 571, 5101.04, 3461.45, 368.485, 'Озеро Ледяных Оков, Завод боевых машин (СЗ оборона)');
|
||||
INSERT INTO `game_graveyard` VALUES (1331, 571, 5031.51, 3710.43, 372.364, 'Озеро Ледяных Оков, Начальная зона Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (1332, 571, 5140.35, 2182.01, 390.751, 'Озеро Ледяных Оков, Начальная зона Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (1333, 571, 4317.97, 2407.42, 392.619, 'Озеро Ледяных Оков, Завод боевых машин (ЮВ)');
|
||||
INSERT INTO `game_graveyard` VALUES (1334, 571, 4335.81, 3234.56, 390.251, 'Озеро Ледяных Оков, Завод боевых машин (ЮЗ)');
|
||||
INSERT INTO `game_graveyard` VALUES (1336, 571, 4826.36, 5467.17, -54.7747, 'Низина Шолазар, южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1337, 571, 1335.47, -4785.18, 188.077, 'Ревущий фьорд, Кладбище Утгарда');
|
||||
INSERT INTO `game_graveyard` VALUES (1341, 571, 5620.52, 5840.97, -63.4727, 'Низина Шолазар, Кладбище Эрнестуэя');
|
||||
INSERT INTO `game_graveyard` VALUES (1342, 571, 5538.26, 4851.61, -196.979, 'Низина Шолазар, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1343, 571, 6246.95, 5164.34, -83.2031, 'Низина Шолазар, Северо-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1344, 571, 6274.77, 4409.44, -68.901, 'Низина Шолазар, Северо-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1345, 571, 5519.07, 3593.28, -14.2186, 'Низина Шолазар, Восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1346, 607, 1388.8, 203.355, 32.1527, 'Поле боя Нордскола - Под контролем - Юг');
|
||||
INSERT INTO `game_graveyard` VALUES (1347, 607, 1396.06, -288.037, 32.0815, 'Поле боя Нордскола - Под контролем - Юго-запад');
|
||||
INSERT INTO `game_graveyard` VALUES (1348, 607, 1122.28, 4.41618, 68.9358, 'Поле боя Нордскола - Под контролем - Центр');
|
||||
INSERT INTO `game_graveyard` VALUES (1349, 607, 964.595, -189.784, 90.6605, 'Поле боя Нордскола - Защитник - Конечный пункт');
|
||||
INSERT INTO `game_graveyard` VALUES (1350, 607, 1457.19, -53.7133, 5.18109, 'Поле боя Нордскола - Нападение - Побережье');
|
||||
INSERT INTO `game_graveyard` VALUES (1351, 607, 1618.81, 31.2829, 8.34708, 'Поле боя Нордскола - Нападение - Лодка');
|
||||
INSERT INTO `game_graveyard` VALUES (1352, 571, 5703.97, -2467.94, 287.55, 'Зул\'Драк, Западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1353, 571, 5557.91, -1615.61, 242.247, 'Зул\'Драк, Северо-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1354, 571, 5244.65, -2133.33, 244.753, 'Зул\'Драк, Юго-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1355, 571, 4939.81, -2958.49, 289.535, 'Зул\'Драк, Южное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1356, 571, 5798.52, -3286.55, 363.379, 'Зул\'Драк, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1357, 571, 5522.76, -4101.73, 364.358, 'Зул\'Драк, Юго-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1358, 571, 6618.71, -4795.52, 450.522, 'Зул\'Драк, Кладбище Гун\'Драка');
|
||||
INSERT INTO `game_graveyard` VALUES (1359, 571, 5849.21, 763.311, 641.053, 'Лес Хрустальной Песни, Кладбище Даларана');
|
||||
INSERT INTO `game_graveyard` VALUES (1360, 609, 2364.42, -5771.32, 151.367, 'Кладбище Черного оплота - глава I');
|
||||
INSERT INTO `game_graveyard` VALUES (1361, 617, 1292.14, 790.993, 8.11463, 'Dalaran Arena - PvP Graveyard');
|
||||
INSERT INTO `game_graveyard` VALUES (1362, 617, 1218.01, 764.795, 14.7297, 'Dalaran Arena - Team 1 Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1363, 617, 1361.76, 817.337, 14.8449, 'Dalaran Arena - Team 2 Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1364, 618, 763.562, -273.999, 3.55343, 'Оргриммар Arena - Team 1 Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1365, 618, 763.934, -295.01, 3.5588, 'Orgrimmar Arena - Team 2 Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1366, 618, 762.909, -284.281, 28.2767, 'Orgrimmar Arena - Graveyard');
|
||||
INSERT INTO `game_graveyard` VALUES (1367, 607, 1623.7, -94.8278, 12.3511, 'Sands of Ulduran - Alliance Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1368, 607, 1617.17, 67.1251, 8.05813, 'Sands of Ulduran - Horde Spawn');
|
||||
INSERT INTO `game_graveyard` VALUES (1369, 0, 2366.63, -5774.42, 151.543, 'Восточные Чумные земли, Черный оплот: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1370, 609, 1886.78, -5784.59, 102.861, 'Черный оплот: кладбище - Глава II/III');
|
||||
INSERT INTO `game_graveyard` VALUES (1371, 609, 2116.19, -5286.94, 81.2151, 'Черный оплот: кладбище - Глава IV');
|
||||
INSERT INTO `game_graveyard` VALUES (1372, 1, -6115.09, -1339.45, -179.578, 'Кратер Ун\'Горо, Shaper\'s Terrace');
|
||||
INSERT INTO `game_graveyard` VALUES (1373, 1, -3769.47, -4883.16, 5.5167, 'Пылевые топи, Терамор (безопасно)');
|
||||
INSERT INTO `game_graveyard` VALUES (1374, 1, 1362.55, -5394.17, -28.372, 'Дуротар, Оргриммар (безопасно)');
|
||||
INSERT INTO `game_graveyard` VALUES (1375, 0, -8290.62, 1403.52, 4.7304, 'Штормград, Штормград (безопасно)');
|
||||
INSERT INTO `game_graveyard` VALUES (1376, 571, 1103.08, -4977.5, 32.3225, 'Ревущий фьорд, Утгард 2: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1377, 0, 981.536, 1309.67, 45.9405, 'Великое море - (безопасно) Тирисфаль');
|
||||
INSERT INTO `game_graveyard` VALUES (1378, 1, 1342.17, -5527.75, 10.0886, 'Дуротар, Оргриммар (безопасно) 2');
|
||||
INSERT INTO `game_graveyard` VALUES (1379, 571, 6351.79, 5643.56, 70.5419, 'Низина Шолазар, уступ Ваятеля Бурь: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1380, 571, 5041.85, -642.724, 225.207, 'Лес Хрустальной Песни, Альянс: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1381, 571, 6070.45, 85.9704, 369.616, 'Ледяная Корона, Оплот Серебряного Авангарда');
|
||||
INSERT INTO `game_graveyard` VALUES (1383, 571, 7080.44, -141.224, 783.232, 'Грозовая Гряда, Valkyrion: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1384, 571, 9021.61, -1166.62, 1058.8, 'Грозовая Гряда, Ульдуар: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1385, 571, 7915.03, -2453.76, 1137.96, 'Грозовая Гряда, Temple Восток: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1387, 571, 8105.5, -996.581, 936.71, 'Грозовая Гряда, Храм, Запад: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1388, 571, 7463.99, -3320.57, 897.75, 'Грозовая Гряда, Frostfield: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1391, 571, 5882.89, 666.806, 169.508, 'Лес Хрустальной Песни, Запад: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1392, 571, 5597.15, -595.531, 190.997, 'Лес Хрустальной Песни, Орда: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1393, 571, 3421.2, -1280.93, 125.973, 'Драконий Погост, Наксрамас: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1394, 571, 3793.73, 2064.34, 93.6512, 'Драконий Погост, Icemist: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1395, 571, 8188.08, 2859.48, 604.076, 'Ледник Ледяной Короны, Quarry: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1396, 571, 7233.66, 2159.7, 564.704, 'Ледник Ледяной Короны, Врайкул: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1397, 571, 7886.05, 718.776, 519.196, 'Ледник Ледяной Короны, Северо-восток: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1398, 571, 4421.3, -1981.25, 158.166, 'Седые холмы, Драк\'Тарон: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1399, 607, 1232.39, -65.7293, 70.0843, 'Нордскол BG - Defender Start');
|
||||
INSERT INTO `game_graveyard` VALUES (1400, 571, 7825.23, -2023.12, 1225.4, 'Storm Peaks, Temple of the Makers GY');
|
||||
INSERT INTO `game_graveyard` VALUES (1401, 571, 8387.58, -214.278, 839.446, 'Грозовая Гряда, Snowdrift: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1402, 571, 6947, -545.408, 914.927, 'Грозовая Гряда, Храм Штормов: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1403, 571, 6422.35, -1184.35, 446.533, 'Грозовая Гряда, К-3: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1404, 571, 5036.33, 4494.32, -93.329, 'Низина Шолазар, Frenzyheart: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1405, 0, 2359.22, -5661.06, 382.262, 'Восточные Чумные земли: Акерус');
|
||||
INSERT INTO `game_graveyard` VALUES (1407, 571, 7149.75, 3691.58, 817.852, 'Ледяная Корона, Кладбище Йотунхейма');
|
||||
INSERT INTO `game_graveyard` VALUES (1408, 571, 7092.46, -1440.91, 922.636, 'Storm Peaks, Foot Steppes GY');
|
||||
INSERT INTO `game_graveyard` VALUES (1409, 0, 1773.33, 768.808, 55.6853, 'Подгород - Альянс - Врата Гнева');
|
||||
INSERT INTO `game_graveyard` VALUES (1410, 0, 791.432, -419.449, 136.572, 'AAAAA Test Port Loc');
|
||||
INSERT INTO `game_graveyard` VALUES (1411, 0, 794.763, -422.394, 135.767, 'Альтеракские горы - центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1416, 1, 7766.53, -4100.77, 697.134, 'Зимние Ключи, Кладбище ледопардов');
|
||||
INSERT INTO `game_graveyard` VALUES (1417, 1, 6619.88, -3542.4, 681.873, 'Зимние Ключи, Кладбище на перекрестке');
|
||||
INSERT INTO `game_graveyard` VALUES (1418, 1, 4460.24, -4287.7, 917.647, 'Ледяные Оковы, Кладбище Зловещего Шепота');
|
||||
INSERT INTO `game_graveyard` VALUES (1419, 1, 4320.15, -5574.72, 121.979, 'Азшара, Урсолан');
|
||||
INSERT INTO `game_graveyard` VALUES (1420, 1, 3203.82, -4947.18, 157.752, 'Азшара, Одинокая вершина');
|
||||
INSERT INTO `game_graveyard` VALUES (1421, 1, -1439.21, 1972.74, 85.7449, 'Пустоши, Застава Скитающихся Духов');
|
||||
INSERT INTO `game_graveyard` VALUES (1422, 1, -1783.51, 2857.27, 56.6694, 'Пустоши, Побережье Сар\'Терис');
|
||||
INSERT INTO `game_graveyard` VALUES (1423, 1, -1967.22, 1723.91, 61.6668, 'Пустоши, Поле Маннорок');
|
||||
INSERT INTO `game_graveyard` VALUES (1424, 1, -1553.23, 981.849, 90.2898, 'Пустоши, Деревня Маграм');
|
||||
INSERT INTO `game_graveyard` VALUES (1425, 1, -481.844, 1221.74, 97.3062, 'Пустоши, Засада на дороге');
|
||||
INSERT INTO `game_graveyard` VALUES (1426, 1, 2928.99, 380.251, 91.6667, 'Ясеневый лес, Святилище Эссины');
|
||||
INSERT INTO `game_graveyard` VALUES (1427, 1, 2291.3, -1731.71, 118.359, 'Ясеневый лес, Ночная Песня');
|
||||
INSERT INTO `game_graveyard` VALUES (1428, 1, 1284.34, -298.896, 5.50894, 'Когтистые горы, Утес Ветрорезов');
|
||||
INSERT INTO `game_graveyard` VALUES (1429, 1, 1698.13, 1043.75, 148.291, 'Когтистые горы, Мутное озеро');
|
||||
INSERT INTO `game_graveyard` VALUES (1430, 1, 161.386, -1693.86, 93.5516, 'Степи, Забытые пруды');
|
||||
INSERT INTO `game_graveyard` VALUES (1431, 1, 790.062, -2541.63, 91.6667, 'Степи, Северное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1432, 1, -1887.99, -3055.97, 91.6667, 'Степи, Земли Ящеров');
|
||||
INSERT INTO `game_graveyard` VALUES (1433, 1, -1480.13, -2143.87, 92.8206, 'Степи. Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1434, 1, 271.838, -3313.76, 56.0266, 'Степи, Восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1435, 1, -2725.16, -1115.49, 20.148, 'Мулгор, Юго-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1436, 1, -1171.5, -1129.94, 27.8667, 'Мулгор, Красные скалы');
|
||||
INSERT INTO `game_graveyard` VALUES (1437, 1, -5361.55, -2363.09, -37.392, 'Тысяча Игл, Застава Вольного Ветра');
|
||||
INSERT INTO `game_graveyard` VALUES (1438, 1, -6115.81, -3849.17, -58.7501, 'Тысяча Игл, Виражи на Миражах');
|
||||
INSERT INTO `game_graveyard` VALUES (1439, 1, -9044.9, -2721.88, 37.3756, 'Танарис, Юго-западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1440, 1, -7753.64, -3009.76, 42.0979, 'Танарис, Безбрежные пески');
|
||||
INSERT INTO `game_graveyard` VALUES (1441, 1, -5526.86, 1450.52, 23.8921, 'Фералас, Руины Исильдиэна');
|
||||
INSERT INTO `game_graveyard` VALUES (1442, 1, -4336.89, -383.392, 36.5298, 'Фералас, Низинные чащобы');
|
||||
INSERT INTO `game_graveyard` VALUES (1443, 1, -3332.47, 2276.89, 27.5594, 'Фералас, Два Колосса');
|
||||
INSERT INTO `game_graveyard` VALUES (1444, 1, -7967.79, 784.502, -1.01432, 'Силитус, Улей Регал');
|
||||
INSERT INTO `game_graveyard` VALUES (1445, 1, -7051.92, 1290.27, 5.88543, 'Силитус, Сумеречный лагерь');
|
||||
INSERT INTO `game_graveyard` VALUES (1446, 0, -1343.26, -2046.73, 70.6733, 'Нагорье Арати, Стромгард');
|
||||
INSERT INTO `game_graveyard` VALUES (1447, 0, -898.726, -1473.56, 58.0803, 'Предгорья Хилсбрада, Стена Торадина');
|
||||
INSERT INTO `game_graveyard` VALUES (1448, 0, 3118.51, -4804, 101.631, 'Восточные Чумные земли, Северный Дол');
|
||||
INSERT INTO `game_graveyard` VALUES (1449, 0, 3339.8, -3229.78, 142.813, 'Восточные Чумные земли, Стратхольм');
|
||||
INSERT INTO `game_graveyard` VALUES (1450, 0, 2208.66, -2923.06, 107.93, 'Восточные Чумные земли, Западное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1451, 0, 2663.41, -1725.17, 123.889, 'Западные Чумные земли, Дольный Очаг');
|
||||
INSERT INTO `game_graveyard` VALUES (1452, 0, -577.414, 118.942, 53.746, 'Предгорья Хилсбрада, Хилсбрадские поля');
|
||||
INSERT INTO `game_graveyard` VALUES (1453, 0, 581.797, -3827.57, 119.915, 'Внутренние земли, Серадан');
|
||||
INSERT INTO `game_graveyard` VALUES (1454, 0, -192.387, -3043.9, 120.136, 'Внутренние земли, Шадра\'Алор');
|
||||
INSERT INTO `game_graveyard` VALUES (1455, 0, -2953.3, -1758.1, 9.41316, 'Болотина, Закатное болото');
|
||||
INSERT INTO `game_graveyard` VALUES (1456, 0, -3979.8, -2848.51, 12.4631, 'Болотина, Южная дорога');
|
||||
INSERT INTO `game_graveyard` VALUES (1457, 0, -3343.1, -3424.86, 64.4794, 'Болотина, Гряда Ящеров');
|
||||
INSERT INTO `game_graveyard` VALUES (1458, 0, -13325.5, 153.601, 17.6299, 'Тернистая долина, Арена Гурубаши');
|
||||
INSERT INTO `game_graveyard` VALUES (1459, 0, -12547.2, -586.239, 39.5295, 'Тернистая долина, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1460, 0, -12001.2, 429.749, 2.9454, 'Тернистая долина, Гибельный берег');
|
||||
INSERT INTO `game_graveyard` VALUES (1461, 0, -10839.2, -480.764, 42.4602, 'Сумеречный лес, Центральное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1462, 0, -11218.7, 1711.25, 39.0291, 'Западный Край, Холмы Разбойничьих Кинжалов');
|
||||
INSERT INTO `game_graveyard` VALUES (1463, 0, -9980.25, 1758.08, 37.0801, 'Западный Край, Бескрайний берег');
|
||||
INSERT INTO `game_graveyard` VALUES (1464, 0, -11806.6, -2962.69, 7.6522, 'Выжженные земли, Темный портал');
|
||||
INSERT INTO `game_graveyard` VALUES (1465, 0, -10320.1, -4121.21, 22.355, 'Болото Печали, Озеро Слез');
|
||||
INSERT INTO `game_graveyard` VALUES (1466, 0, -10347.2, -2585.03, 23.5991, 'Болото Печали, Развилка Расщепленного Копья');
|
||||
INSERT INTO `game_graveyard` VALUES (1467, 0, -9473, -3009.03, 134.825, 'Красногорье, Крепость Каменной Стражи');
|
||||
INSERT INTO `game_graveyard` VALUES (1468, 0, -9564.74, -605.882, 58.4409, 'Элвиннский лес, Башня Азоры');
|
||||
INSERT INTO `game_graveyard` VALUES (1469, 0, -7923.56, -1353.23, 134.079, 'Пылающие степи, Черная гора');
|
||||
INSERT INTO `game_graveyard` VALUES (1470, 0, -7987.49, -2370.21, 123.923, 'Пылающие степи, Восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1471, 0, -5382.65, 36.6651, 395.442, 'Дун Морог, Заледеневшее озеро');
|
||||
INSERT INTO `game_graveyard` VALUES (1472, 0, -5475.18, -1845.84, 399.786, 'Дун Морог, Восточная дорога');
|
||||
INSERT INTO `game_graveyard` VALUES (1473, 0, -5329.98, -3779.33, 310.214, 'Лок Модан, Озеро Лок');
|
||||
INSERT INTO `game_graveyard` VALUES (1474, 571, 5463.84, 2840.68, 418.675, 'Ледяные Оковы, Кладбище крепости (интерьер)');
|
||||
INSERT INTO `game_graveyard` VALUES (1476, 1, -103.292, -694.41, 4.24112, 'Когтистые горы, юго-восточное кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1477, 571, 4680.72, 51.0167, 73.2117, 'Драконий Погост, кладбище Порочных Кристаллов');
|
||||
INSERT INTO `game_graveyard` VALUES (1478, 571, 8466.05, 450.37, 596.072, 'Ледяная Корона, Кладбище Серебряного турнира');
|
||||
INSERT INTO `game_graveyard` VALUES (1480, 628, 635.385, -279.658, 11.3836, 'Icecrown BG - GY - Docks');
|
||||
INSERT INTO `game_graveyard` VALUES (1481, 628, 774.179, -1094.28, 135.413, 'Icecrown BG - GY - Airport');
|
||||
INSERT INTO `game_graveyard` VALUES (1482, 628, 774.839, -660.219, 8.88468, 'Icecrown BG - GY - Workshop');
|
||||
INSERT INTO `game_graveyard` VALUES (1483, 628, 455.207, -314.594, 50.991, 'Icecrown BG - GY - Alliance Default');
|
||||
INSERT INTO `game_graveyard` VALUES (1484, 628, 1141.49, -1226.22, 14.9473, 'Icecrown BG - GY - Horde Default');
|
||||
INSERT INTO `game_graveyard` VALUES (1485, 628, 278.356, -876.965, 48.9163, 'ПБ Ледяной Короны - кладбище - крепость Альянса');
|
||||
INSERT INTO `game_graveyard` VALUES (1486, 628, 1302.6, -814.651, 48.9163, 'ПБ Ледяной Короны - кладбище - крепость Орды');
|
||||
INSERT INTO `game_graveyard` VALUES (1493, 1, -647.207, -1118.61, 211.598, 'Степи, Застава Чести');
|
||||
INSERT INTO `game_graveyard` VALUES (1681, 1, -4556.28, -3599.44, 41.3195, 'Пылевые топи, Драконьи топи');
|
||||
INSERT INTO `game_graveyard` VALUES (1682, 571, 6447.49, 2060.86, 564.03, 'Ледник Ледяной Короны, Цитадель: кладбище');
|
||||
INSERT INTO `game_graveyard` VALUES (1683, 580, 1620.95, 624.701, 32.8968, 'Вход в Солнечный Колодец - Кель\'Делар');
|
||||
INSERT INTO `game_graveyard` VALUES (1691, 0, -13205.6, 272.703, 21.8571, 'AAA - Arena (Dev Test)');
|
||||
INSERT INTO `game_graveyard` VALUES (1720, 571, 2585.83, -5808.93, 296.197, 'Ревущий фьорд, Кладбище Ледяного Клинка');
|
||||
--
|
||||
-- END UPDATING QUERIES
|
||||
--
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
36
data/sql/updates/db_world/2019_01_08_01.sql
Normal file
36
data/sql/updates/db_world/2019_01_08_01.sql
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
-- DB update 2019_01_08_00 -> 2019_01_08_01
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||
SELECT COUNT(*) INTO @COLEXISTS
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2019_01_08_00';
|
||||
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE version_db_world CHANGE COLUMN 2019_01_08_00 2019_01_08_01 bit;
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1546538959760274673'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||
--
|
||||
-- START UPDATING QUERIES
|
||||
--
|
||||
|
||||
INSERT INTO version_db_world (`sql_rev`) VALUES ('1546538959760274673');
|
||||
|
||||
ALTER TABLE `game_event`
|
||||
ADD COLUMN `announce` tinyint(3) unsigned NOT NULL DEFAULT 2 COMMENT '0 dont announce, 1 announce, 2 value from config' AFTER `world_event`;
|
||||
|
||||
ALTER TABLE `game_event`
|
||||
CHANGE `start_time` `start_time` TIMESTAMP NULL DEFAULT NULL COMMENT 'Absolute start date, the event will never start before',
|
||||
CHANGE `end_time` `end_time` TIMESTAMP NULL DEFAULT NULL COMMENT 'Absolute end date, the event will never start after';
|
||||
|
||||
UPDATE `game_event` SET `start_time`=NULL WHERE `start_time`='0000-00-00 00:00:00';
|
||||
UPDATE `game_event` SET `end_time`=NULL WHERE `end_time`='0000-00-00 00:00:00';
|
||||
|
||||
--
|
||||
-- END UPDATING QUERIES
|
||||
--
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
40
data/sql/updates/db_world/2019_01_08_02.sql
Normal file
40
data/sql/updates/db_world/2019_01_08_02.sql
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
-- DB update 2019_01_08_01 -> 2019_01_08_02
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||
SELECT COUNT(*) INTO @COLEXISTS
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2019_01_08_01';
|
||||
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE version_db_world CHANGE COLUMN 2019_01_08_01 2019_01_08_02 bit;
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1546882798358682300'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||
--
|
||||
-- START UPDATING QUERIES
|
||||
--
|
||||
|
||||
INSERT INTO version_db_world (`sql_rev`) VALUES ('1546882798358682300');
|
||||
|
||||
-- Vile Fin Minor Oracle SAI
|
||||
SET @ENTRY := 1544;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,0,0,0,100,0,0,0,3400,4800,11,9532,64,0,0,0,0,2,0,0,0,0,0,0,0,"Vile Fin Minor Oracle - In Combat - Cast Lightning Bolt"),
|
||||
(@ENTRY,0,1,0,0,0,100,0,11000,16000,12000,16000,11,2607,0,0,0,0,0,4,0,0,0,0,0,0,0,"Vile Fin Minor Oracle - In Combat - Cast Shock"),
|
||||
(@ENTRY,0,2,0,1,0,100,0,500,1000,600000,600000,11,324,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Fin Minor Oracle - Out of Combat - Cast Lightning Shield"),
|
||||
(@ENTRY,0,3,0,16,0,100,0,324,1,15000,30000,11,324,0,0,0,0,0,1,0,0,0,0,0,0,0,"Vile Fin Minor Oracle - On Friendly Unit Missing Buff Lightning Shield - Cast Lightning Shield"),
|
||||
(@ENTRY,0,4,0,2,0,100,1,0,15,0,0,25,1,0,0,0,0,0,0,0,0,0,0,0,0,0,"Vile Fin Minor Oracle - Between 0-15% Health - Flee For Assist (No Repeat)");
|
||||
|
||||
-- Ragged Scavenger and Young Scavenger
|
||||
UPDATE `creature_template` SET `flags_extra` =+ 2 WHERE `entry` IN (1509, 1508);
|
||||
|
||||
--
|
||||
-- END UPDATING QUERIES
|
||||
--
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
712
data/sql/updates/db_world/2019_01_10_00.sql
Normal file
712
data/sql/updates/db_world/2019_01_10_00.sql
Normal file
|
|
@ -0,0 +1,712 @@
|
|||
-- DB update 2019_01_08_02 -> 2019_01_10_00
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||
SELECT COUNT(*) INTO @COLEXISTS
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2019_01_08_02';
|
||||
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE version_db_world CHANGE COLUMN 2019_01_08_02 2019_01_10_00 bit;
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1546972023891859400'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||
--
|
||||
-- START UPDATING QUERIES
|
||||
--
|
||||
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1546972023891859400');
|
||||
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stormwind' WHERE `ID` = 1;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Redridge Mountains' WHERE `ID` = 2;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Duskwood, Darkshire' WHERE `ID` = 3;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Westfall, Sentinel Hill' WHERE `ID` = 4;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh' WHERE `ID` = 5;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Loch Modan, Thelsamar' WHERE `ID` = 6;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wetlands, Crossroads' WHERE `ID` = 7;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Badlands, Graveyard NE ' WHERE `ID` = 8;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, The Crossroads' WHERE `ID` = 10;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Ethel Rethor' WHERE `ID` = 31;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Razor Hill' WHERE `ID` = 32;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Orgrimmar' WHERE `ID` = 33;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Mulgore, Red Cloud Mesa' WHERE `ID` = 34;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Darkshore, Auberdine' WHERE `ID` = 35;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Deadwind Pass, Morgan\'s Plot' WHERE `ID` = 36;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Thousand Needles, The Great Lift' WHERE `ID` = 39;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Plains of Snow - Horde Start' WHERE `ID` = 49;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silithus, Valor\'s Rest' WHERE `ID` = 70;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Mulgore, Bloodhoof Village' WHERE `ID` = 89;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Teldrassil, Darnassus' WHERE `ID` = 90;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Teldrassil, Dolanaar' WHERE `ID` = 91;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ashenvale, Astranaar' WHERE `ID` = 92;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Teldrassil, Aldrassil' WHERE `ID` = 93;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tirisfal Glades, Deathknell' WHERE `ID` = 94;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tirisfal Glades, Undercity' WHERE `ID` = 96;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silverpine Forest, The Sepulcher' WHERE `ID` = 97;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hillsbrad Foothills, Tarren Mill' WHERE `ID` = 98;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Highlands, Eastern Road' WHERE `ID` = 99;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, Anvilmar' WHERE `ID` = 100;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, Kharanos' WHERE `ID` = 101;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, Ironforge' WHERE `ID` = 102;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Badlands, Kargath' WHERE `ID` = 103;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Redridge Mountains, Lakeshire' WHERE `ID` = 104;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Elwynn Forest, Northshire' WHERE `ID` = 105;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Elwynn Forest, Goldshire' WHERE `ID` = 106;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Elwynn Forest, Stormwind' WHERE `ID` = 107;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Swamp of Sorrows, Stonard' WHERE `ID` = 108;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stranglethorn Vale, Booty Bay' WHERE `ID` = 109;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Teldrassil, Rut\'theran Village' WHERE `ID` = 129;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hillsbrad Foothills, Southshore' WHERE `ID` = 149;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Snowfall Graveyard (Mid)' WHERE `ID` = 169;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, Theramore Isle' WHERE `ID` = 189;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, Gadgetzan' WHERE `ID` = 209;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Camp Taurajo' WHERE `ID` = 229;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Ratchet' WHERE `ID` = 249;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Plains of Snow - Alliance Start' WHERE `ID` = 269;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tirisfal Glades, Brill' WHERE `ID` = 289;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Feathermoon Stronghold' WHERE `ID` = 309;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Camp Mojache' WHERE `ID` = 310;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Thousand Needles, Shimmering Flats' WHERE `ID` = 329;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Hinterlands, Aerie Peak' WHERE `ID` = 349;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azshara, Talrendis Point' WHERE `ID` = 369;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blasted Lands, Dreadmaul Hold' WHERE `ID` = 370;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stranglethorn Vale, Northern Stranglethorn' WHERE `ID` = 389;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Webwinder Path' WHERE `ID` = 409;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tirisfal Glades, Faol\'s Rest' WHERE `ID` = 429;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Felwood, Morlos\'Aran' WHERE `ID` = 449;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Un\'Goro Crater, The Marshlands' WHERE `ID` = 450;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Darkshore, Twilight Vale' WHERE `ID` = 469;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wetlands, Baradin Bay' WHERE `ID` = 489;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Western Plaguelands, Chillwind Camp' WHERE `ID` = 509;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Pestilent Scar' WHERE `ID` = 510;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, Everlook' WHERE `ID` = 511;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ashenvale, Kargathia' WHERE `ID` = 512;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle' WHERE `ID` = 529;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle' WHERE `ID` = 549;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Western Plaguelands, Bulwark' WHERE `ID` = 569;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'GM Island' WHERE `ID` = 589;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azshara, Southridge Beach' WHERE `ID` = 609;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Horde Safe' WHERE `ID` = 610;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Alliance Safe' WHERE `ID` = 611;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'TEST for GM Client Only - Do Not Bug' WHERE `ID` = 629;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azshara, Legash Encampment' WHERE `ID` = 630;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, Brackenwall Village' WHERE `ID` = 631;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Moonglade' WHERE `ID` = 633;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Darrowshire' WHERE `ID` = 634;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Felwood, Irontree Woods' WHERE `ID` = 635;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Searing Gorge, Thorium Point' WHERE `ID` = 636;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Sen\'jin Village' WHERE `ID` = 649;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle, Bucklers Cemetery 2' WHERE `ID` = 669;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle, Bucklers Cemetery 1' WHERE `ID` = 670;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle, Bucklers Cemetery 3' WHERE `ID` = 671;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Stormpike Graveyard (Hi)' WHERE `ID` = 689;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Frostwolf Graveyard (Lo)' WHERE `ID` = 690;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Valley of Trials' WHERE `ID` = 709;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, PvP Alliance Choke Graveyard (A-choke)' WHERE `ID` = 729;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, PvP Horde Choke Graveyard (H-choke)' WHERE `ID` = 749;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Frostwolf Relief Hut (H-base)' WHERE `ID` = 750;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Stormpike Aid Station (A-base)' WHERE `ID` = 751;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Alliance Enter Loc' WHERE `ID` = 769;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Horde Enter Loc' WHERE `ID` = 770;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Alliance Rez Loc' WHERE `ID` = 771;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Horde Rez Loc' WHERE `ID` = 772;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Hinterlands, The Overlook Cliffs' WHERE `ID` = 789;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Horde Exit Loc' WHERE `ID` = 809;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Warsong Gulch - Alliance Exit Loc' WHERE `ID` = 810;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Alliance Exit' WHERE `ID` = 829;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Horde Exit' WHERE `ID` = 830;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Dire Maul' WHERE `ID` = 849;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Northern Durotar' WHERE `ID` = 850;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Mulgore, Thunder Bluff' WHERE `ID` = 851;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, Gates of Ironforge' WHERE `ID` = 852;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tirisfal Glades, Ruins of Lordaeron' WHERE `ID` = 853;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Elwynn Forest, Eastvale Logging Camp' WHERE `ID` = 854;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Western Plaguelands, Caer Darrow' WHERE `ID` = 869;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Horde Entrance' WHERE `ID` = 889;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Alliance Entrance' WHERE `ID` = 890;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Horde Exit' WHERE `ID` = 891;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Alliance Exit' WHERE `ID` = 892;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, H-Mid (Farm)' WHERE `ID` = 893;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, Mid (Blacksmith)' WHERE `ID` = 894;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, A-Mid (Stables)' WHERE `ID` = 895;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, ALT-N (Gold Mine)' WHERE `ID` = 896;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, ALT-S (Lumber Mill)' WHERE `ID` = 897;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, A-Base (Trollbane Hall)' WHERE `ID` = 898;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Basin - Graveyard, H-Base (Defiler\'s Den)' WHERE `ID` = 899;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Blackwood Lake' WHERE `ID` = 909;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silithus, Cenarion Hold' WHERE `ID` = 910;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Duskwood, Ravenhill' WHERE `ID` = 911;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eversong Woods, Sunstrider Isle' WHERE `ID` = 912;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silithus, Scarab Wall (AQ Only)' WHERE `ID` = 913;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eversong Woods, Farstrider Lodge GY' WHERE `ID` = 914;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ghostlands, Tranquillien' WHERE `ID` = 915;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ghostlands, Sanctum' WHERE `ID` = 916;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ghostlands, Amani Pass' WHERE `ID` = 917;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azuremyst Isle, Ammen Vale' WHERE `ID` = 918;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Thrallmar' WHERE `ID` = 919;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Honor Hold' WHERE `ID` = 920;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eversong Woods, Silvermoon City' WHERE `ID` = 921;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eversong Woods, Fairbreeze GY' WHERE `ID` = 922;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azuremyst, Azure Watch GY' WHERE `ID` = 923;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azuremyst, Stillpine GY' WHERE `ID` = 924;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Bloodmyst, Blood Watch GY' WHERE `ID` = 925;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Bloodmyst, Wilderness GY' WHERE `ID` = 926;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Graveyard CG Tower' WHERE `ID` = 927;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Zabra\'jin GY' WHERE `ID` = 928;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand Arena, Team 1 Start' WHERE `ID` = 929;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, SE Graveyard' WHERE `ID` = 930;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle' WHERE `ID` = 931;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Programmer Isle' WHERE `ID` = 932;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Temple' WHERE `ID` = 933;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Falcon Watch' WHERE `ID` = 934;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 004' WHERE `ID` = 935;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand Arena, Team 2 Start' WHERE `ID` = 936;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Reuse' WHERE `ID` = 937;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Alliance Exit' WHERE `ID` = 938;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge Arena, Team 1' WHERE `ID` = 939;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge Arena, Team 2' WHERE `ID` = 940;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Test Corpse Location' WHERE `ID` = 941;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 001' WHERE `ID` = 942;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 002' WHERE `ID` = 943;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 003' WHERE `ID` = 944;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 005' WHERE `ID` = 945;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 006' WHERE `ID` = 946;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 007' WHERE `ID` = 947;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 008' WHERE `ID` = 948;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 009' WHERE `ID` = 949;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 010' WHERE `ID` = 950;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 011' WHERE `ID` = 951;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 012' WHERE `ID` = 952;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 013' WHERE `ID` = 953;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 014' WHERE `ID` = 954;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 015' WHERE `ID` = 955;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 016' WHERE `ID` = 956;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 017' WHERE `ID` = 957;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 018' WHERE `ID` = 958;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 019' WHERE `ID` = 959;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 020' WHERE `ID` = 960;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 021' WHERE `ID` = 961;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 022' WHERE `ID` = 962;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 023' WHERE `ID` = 963;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 024' WHERE `ID` = 964;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 025' WHERE `ID` = 965;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 026' WHERE `ID` = 966;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 027' WHERE `ID` = 967;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Corpse Location 028' WHERE `ID` = 968;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, PvP GY' WHERE `ID` = 969;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Telredor GY' WHERE `ID` = 970;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blades Edge - PvP - Arena Graveyard' WHERE `ID` = 971;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 006' WHERE `ID` = 972;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Cenarion GY' WHERE `ID` = 973;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 001' WHERE `ID` = 974;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 002' WHERE `ID` = 975;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 003' WHERE `ID` = 976;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 004' WHERE `ID` = 977;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 008' WHERE `ID` = 978;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 005' WHERE `ID` = 979;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 007' WHERE `ID` = 980;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 009' WHERE `ID` = 981;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 011' WHERE `ID` = 982;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 010' WHERE `ID` = 983;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 012' WHERE `ID` = 984;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 013' WHERE `ID` = 985;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 014' WHERE `ID` = 986;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 016' WHERE `ID` = 987;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 015' WHERE `ID` = 988;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 017' WHERE `ID` = 989;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 018' WHERE `ID` = 990;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Corpse Location 019' WHERE `ID` = 991;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Northwind Cleft' WHERE `ID` = 992;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Halaa GY' WHERE `ID` = 993;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Shattrath GY' WHERE `ID` = 994;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Wilderness GY' WHERE `ID` = 995;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Test - Programmer' WHERE `ID` = 996;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Test - Programmer 001' WHERE `ID` = 997;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand - PvP - Arena Graveyard' WHERE `ID` = 998;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 001' WHERE `ID` = 999;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 002' WHERE `ID` = 1000;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 003' WHERE `ID` = 1001;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 004' WHERE `ID` = 1002;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 005' WHERE `ID` = 1003;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 006' WHERE `ID` = 1004;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 007' WHERE `ID` = 1005;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 008' WHERE `ID` = 1006;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 009' WHERE `ID` = 1007;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 010' WHERE `ID` = 1008;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 011' WHERE `ID` = 1009;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 012' WHERE `ID` = 1010;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 013' WHERE `ID` = 1011;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Corpse Location 014' WHERE `ID` = 1012;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 001' WHERE `ID` = 1013;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 002' WHERE `ID` = 1014;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 003' WHERE `ID` = 1015;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 004' WHERE `ID` = 1016;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 005' WHERE `ID` = 1017;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 006' WHERE `ID` = 1018;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 007' WHERE `ID` = 1019;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 008' WHERE `ID` = 1020;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 009' WHERE `ID` = 1021;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 010' WHERE `ID` = 1022;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 011' WHERE `ID` = 1023;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 001' WHERE `ID` = 1024;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 002' WHERE `ID` = 1025;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 003' WHERE `ID` = 1026;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 004' WHERE `ID` = 1027;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 016' WHERE `ID` = 1028;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 017' WHERE `ID` = 1029;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 018' WHERE `ID` = 1030;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 019' WHERE `ID` = 1031;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 020' WHERE `ID` = 1032;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 021' WHERE `ID` = 1033;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 022' WHERE `ID` = 1034;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Corpse Location 023' WHERE `ID` = 1035;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Reuse' WHERE `ID` = 1036;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Portal Plateau' WHERE `ID` = 1037;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, Elemental Plateau' WHERE `ID` = 1038;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Nagrand, SW Graveyard' WHERE `ID` = 1039;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Throne of Kil\'Jaedan' WHERE `ID` = 1040;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Dark Portal' WHERE `ID` = 1041;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Bone Wastes GY' WHERE `ID` = 1042;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Harborage GY' WHERE `ID` = 1043;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zangarmarsh, Sporeggar GY' WHERE `ID` = 1044;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm, Stormspire GY' WHERE `ID` = 1045;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm, Area 52 GY' WHERE `ID` = 1046;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon Valley, Shadowmoon Village GY' WHERE `ID` = 1047;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon Valley, Wildhammer GY' WHERE `ID` = 1048;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Sylvanaar GY' WHERE `ID` = 1049;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Thunderlord GY' WHERE `ID` = 1050;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Skettis GY' WHERE `ID` = 1051;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 005' WHERE `ID` = 1052;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 006' WHERE `ID` = 1053;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 007' WHERE `ID` = 1054;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 008' WHERE `ID` = 1055;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 009' WHERE `ID` = 1056;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 010' WHERE `ID` = 1057;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 011' WHERE `ID` = 1058;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 012' WHERE `ID` = 1059;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 013' WHERE `ID` = 1060;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 014' WHERE `ID` = 1061;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 015' WHERE `ID` = 1062;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 016' WHERE `ID` = 1063;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 017' WHERE `ID` = 1064;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 018' WHERE `ID` = 1065;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 019' WHERE `ID` = 1066;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 020' WHERE `ID` = 1067;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 021' WHERE `ID` = 1068;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 022' WHERE `ID` = 1069;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 023' WHERE `ID` = 1070;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon, Corpse Location 024' WHERE `ID` = 1071;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 000' WHERE `ID` = 1072;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 001' WHERE `ID` = 1073;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 002' WHERE `ID` = 1074;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 003' WHERE `ID` = 1075;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 004' WHERE `ID` = 1076;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 005' WHERE `ID` = 1077;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 006' WHERE `ID` = 1078;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 007' WHERE `ID` = 1079;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 008' WHERE `ID` = 1080;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 009' WHERE `ID` = 1081;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 010' WHERE `ID` = 1082;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 011' WHERE `ID` = 1083;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 012' WHERE `ID` = 1084;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 013' WHERE `ID` = 1085;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 014' WHERE `ID` = 1086;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 015' WHERE `ID` = 1087;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 016' WHERE `ID` = 1088;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 017' WHERE `ID` = 1089;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 018' WHERE `ID` = 1090;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 019' WHERE `ID` = 1091;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 020' WHERE `ID` = 1092;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 021' WHERE `ID` = 1093;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 022' WHERE `ID` = 1094;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 023' WHERE `ID` = 1095;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 024' WHERE `ID` = 1096;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 025' WHERE `ID` = 1097;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 026' WHERE `ID` = 1098;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 027' WHERE `ID` = 1099;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 028' WHERE `ID` = 1100;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 029' WHERE `ID` = 1101;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 030' WHERE `ID` = 1102;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (Alliance Start)' WHERE `ID` = 1103;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (Horde Start)' WHERE `ID` = 1104;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (Felreaver)' WHERE `ID` = 1105;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (BE Tower)' WHERE `ID` = 1106;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (Draenei Tower)' WHERE `ID` = 1107;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Graveyard (Human Tower)' WHERE `ID` = 1108;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 000' WHERE `ID` = 1109;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 001' WHERE `ID` = 1110;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 002' WHERE `ID` = 1111;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 003' WHERE `ID` = 1112;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 004' WHERE `ID` = 1113;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 005' WHERE `ID` = 1114;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 006' WHERE `ID` = 1115;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 007' WHERE `ID` = 1116;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 008' WHERE `ID` = 1117;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 009' WHERE `ID` = 1118;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 010' WHERE `ID` = 1119;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 011' WHERE `ID` = 1120;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 012' WHERE `ID` = 1121;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 013' WHERE `ID` = 1122;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 014' WHERE `ID` = 1123;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 015' WHERE `ID` = 1124;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 016' WHERE `ID` = 1125;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 017' WHERE `ID` = 1126;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 018' WHERE `ID` = 1127;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 019' WHERE `ID` = 1128;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 020' WHERE `ID` = 1129;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 021' WHERE `ID` = 1130;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 022' WHERE `ID` = 1131;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 023' WHERE `ID` = 1132;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm BG - Corpse Catcher 024' WHERE `ID` = 1133;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 000' WHERE `ID` = 1134;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 001' WHERE `ID` = 1135;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 002' WHERE `ID` = 1136;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 003' WHERE `ID` = 1137;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 004' WHERE `ID` = 1138;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 005' WHERE `ID` = 1139;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 006' WHERE `ID` = 1140;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 007' WHERE `ID` = 1141;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 008' WHERE `ID` = 1142;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 009' WHERE `ID` = 1143;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 010' WHERE `ID` = 1144;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 011' WHERE `ID` = 1145;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 012' WHERE `ID` = 1146;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 013' WHERE `ID` = 1147;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 014' WHERE `ID` = 1148;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 015' WHERE `ID` = 1149;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 016' WHERE `ID` = 1150;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 017' WHERE `ID` = 1151;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 018' WHERE `ID` = 1152;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 019' WHERE `ID` = 1153;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 020' WHERE `ID` = 1154;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 021' WHERE `ID` = 1155;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 022' WHERE `ID` = 1156;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 023' WHERE `ID` = 1157;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 024' WHERE `ID` = 1158;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 025' WHERE `ID` = 1159;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 026' WHERE `ID` = 1160;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 027' WHERE `ID` = 1161;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 028' WHERE `ID` = 1162;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 029' WHERE `ID` = 1163;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 030' WHERE `ID` = 1164;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 031' WHERE `ID` = 1165;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 032' WHERE `ID` = 1166;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 033' WHERE `ID` = 1167;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 034' WHERE `ID` = 1168;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 035' WHERE `ID` = 1169;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 036' WHERE `ID` = 1170;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 037' WHERE `ID` = 1171;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 038' WHERE `ID` = 1172;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 039' WHERE `ID` = 1173;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 040' WHERE `ID` = 1174;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 041' WHERE `ID` = 1175;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 042' WHERE `ID` = 1176;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 043' WHERE `ID` = 1177;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 044' WHERE `ID` = 1178;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 045' WHERE `ID` = 1179;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 046' WHERE `ID` = 1180;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 047' WHERE `ID` = 1181;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 048' WHERE `ID` = 1182;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 049' WHERE `ID` = 1183;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 050' WHERE `ID` = 1184;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 051' WHERE `ID` = 1185;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 052' WHERE `ID` = 1186;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 053' WHERE `ID` = 1187;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 054' WHERE `ID` = 1188;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 055' WHERE `ID` = 1189;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 056' WHERE `ID` = 1190;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 057' WHERE `ID` = 1191;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 058' WHERE `ID` = 1192;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 059' WHERE `ID` = 1193;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 060' WHERE `ID` = 1194;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 061' WHERE `ID` = 1195;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 062' WHERE `ID` = 1196;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 063' WHERE `ID` = 1197;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 064' WHERE `ID` = 1198;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 065' WHERE `ID` = 1199;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 066' WHERE `ID` = 1200;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 067' WHERE `ID` = 1201;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 068' WHERE `ID` = 1202;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 069' WHERE `ID` = 1203;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 070' WHERE `ID` = 1204;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 071' WHERE `ID` = 1205;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 072' WHERE `ID` = 1206;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 073' WHERE `ID` = 1207;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 074' WHERE `ID` = 1208;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 075' WHERE `ID` = 1209;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 076' WHERE `ID` = 1210;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 077' WHERE `ID` = 1211;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 078' WHERE `ID` = 1212;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 079' WHERE `ID` = 1213;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 080' WHERE `ID` = 1214;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 081' WHERE `ID` = 1215;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 082' WHERE `ID` = 1216;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 083' WHERE `ID` = 1217;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 084' WHERE `ID` = 1218;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 085' WHERE `ID` = 1219;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 086' WHERE `ID` = 1220;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 087' WHERE `ID` = 1221;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 088' WHERE `ID` = 1222;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 089' WHERE `ID` = 1223;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 090' WHERE `ID` = 1224;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 091' WHERE `ID` = 1225;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 092' WHERE `ID` = 1226;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 093' WHERE `ID` = 1227;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 094' WHERE `ID` = 1228;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 095' WHERE `ID` = 1229;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 096' WHERE `ID` = 1230;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 097' WHERE `ID` = 1231;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 098' WHERE `ID` = 1232;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 099' WHERE `ID` = 1233;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 100' WHERE `ID` = 1234;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 101' WHERE `ID` = 1235;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 102' WHERE `ID` = 1236;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 103' WHERE `ID` = 1237;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 104' WHERE `ID` = 1238;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm - Corpse Catcher 105' WHERE `ID` = 1239;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Force Camps (Alliance)' WHERE `ID` = 1240;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Evergrove GY' WHERE `ID` = 1241;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, North Ridge GY' WHERE `ID` = 1242;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, West Ridge GY' WHERE `ID` = 1243;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, East Ridge GY' WHERE `ID` = 1244;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - Horde Zone In' WHERE `ID` = 1245;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley, Alliance Exit' WHERE `ID` = 1246;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm, Cosmowrench GY' WHERE `ID` = 1247;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hellfire Peninsula, Spinebreaker GY' WHERE `ID` = 1248;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, CoT' WHERE `ID` = 1249;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon Valley, Altar GY' WHERE `ID` = 1250;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Shadowmoon Valley, Sanctum GY' WHERE `ID` = 1251;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Netherstorm, Kirin\'Var GY' WHERE `ID` = 1252;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Toshley GY' WHERE `ID` = 1253;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Raven Wood GY' WHERE `ID` = 1254;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, NE Ridge GY' WHERE `ID` = 1255;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silverpine Forest, South GY' WHERE `ID` = 1256;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Ogre GY' WHERE `ID` = 1257;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Lordaeron, PVP - Team 1 Start' WHERE `ID` = 1258;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Lordaeron, PVP - Team 2 Start' WHERE `ID` = 1259;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Lordaeron, PVP - Graveyard' WHERE `ID` = 1260;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Black Temple, Alliance GY' WHERE `ID` = 1261;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Black Temple, Horde GY' WHERE `ID` = 1262;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blade\'s Edge, Corpse Location 031' WHERE `ID` = 1263;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, Tabetha\'s' WHERE `ID` = 1264;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, Mudsprocket' WHERE `ID` = 1265;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Northwest GY' WHERE `ID` = 1266;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Tuskarr GY' WHERE `ID` = 1267;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Island GY' WHERE `ID` = 1268;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Central GY' WHERE `ID` = 1269;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, North GY' WHERE `ID` = 1270;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Vengance GY' WHERE `ID` = 1271;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Southeast GY' WHERE `ID` = 1272;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, South Beach GY' WHERE `ID` = 1273;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, South GY' WHERE `ID` = 1274;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Valgarde GY' WHERE `ID` = 1275;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Northeast GY' WHERE `ID` = 1276;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Un\'Goro Crater, Central GY' WHERE `ID` = 1277;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Un\'Goro Crater, Marshal\'s GY' WHERE `ID` = 1278;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Charred Vale' WHERE `ID` = 1279;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Peak GY' WHERE `ID` = 1280;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, Pirate GY' WHERE `ID` = 1281;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, Central GY' WHERE `ID` = 1282;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, South GY' WHERE `ID` = 1283;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, West GY' WHERE `ID` = 1284;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Fortress (East)' WHERE `ID` = 1285;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Western Plaguelands, Central GY' WHERE `ID` = 1286;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Searing Gorge, SE GY' WHERE `ID` = 1287;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Badlands, South GY' WHERE `ID` = 1288;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, South GY' WHERE `ID` = 1289;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Tuskar GY' WHERE `ID` = 1290;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Razorthorn Rise GY' WHERE `ID` = 1291;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Isle of Quel\'Danas, Staging Area GY' WHERE `ID` = 1292;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Isle of Quel\'Danas, Staging Area GY' WHERE `ID` = 1293;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Isle of Quel\'Danas, Staging Area GY' WHERE `ID` = 1294;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Development Land, Theresa\'s Test Land GY' WHERE `ID` = 1295;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Development Land, Theresa\'s Test Land 2 GY' WHERE `ID` = 1296;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Development Land, Theresa\'s Test land 3 GY' WHERE `ID` = 1297;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Terokkar Forest, Lake Jorune GY' WHERE `ID` = 1298;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - Alliance Zone In' WHERE `ID` = 1299;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Vileprey GY' WHERE `ID` = 1300;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Amberpine GY' WHERE `ID` = 1301;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Westfall GY' WHERE `ID` = 1302;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Eastern GY' WHERE `ID` = 1303;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Northwestern GY' WHERE `ID` = 1304;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Southwestern GY' WHERE `ID` = 1305;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Central GY' WHERE `ID` = 1306;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Northeastern GY' WHERE `ID` = 1307;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Wintergarde GY' WHERE `ID` = 1308;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Forsaken East GY' WHERE `ID` = 1309;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Agmar\'s Hammer GY' WHERE `ID` = 1310;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Star\'s Rest GY' WHERE `ID` = 1311;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Moa\'ki Harbor GY' WHERE `ID` = 1312;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Borean Border GY' WHERE `ID` = 1313;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Wyrmrest GY' WHERE `ID` = 1314;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Wrathgate Horde GY' WHERE `ID` = 1315;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Wrathgate Alliance GY' WHERE `ID` = 1316;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Warsong Hold GY' WHERE `ID` = 1317;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Riplash GY' WHERE `ID` = 1318;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Coldarra GY' WHERE `ID` = 1319;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Amber Ledge GY' WHERE `ID` = 1320;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Fizzcrank GY' WHERE `ID` = 1321;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Bor\'Gorok GY' WHERE `ID` = 1322;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Death\'s Stand GY' WHERE `ID` = 1323;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Taunka\'le GY' WHERE `ID` = 1324;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Coast of Echoes GY' WHERE `ID` = 1325;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Borean Tundra, Valiance Keep GY' WHERE `ID` = 1326;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Valley - DO NOT EDIT' WHERE `ID` = 1327;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Fortress (West)' WHERE `ID` = 1328;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Siege Factory (Defense NE)' WHERE `ID` = 1329;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Siege Factory (Defense NW)' WHERE `ID` = 1330;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Horde Starting Area' WHERE `ID` = 1331;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Alliance Starting Area' WHERE `ID` = 1332;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Siege Factory (SE)' WHERE `ID` = 1333;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Siege Factory (SW)' WHERE `ID` = 1334;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, South GY' WHERE `ID` = 1336;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Utgarde GY' WHERE `ID` = 1337;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Nesingwary GY' WHERE `ID` = 1341;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Central GY' WHERE `ID` = 1342;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Northwest GY' WHERE `ID` = 1343;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Northeast GY' WHERE `ID` = 1344;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, East GY' WHERE `ID` = 1345;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Controlled - South' WHERE `ID` = 1346;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Controlled - South West' WHERE `ID` = 1347;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Controlled - Central' WHERE `ID` = 1348;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Defender - Final' WHERE `ID` = 1349;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Offense - Beach' WHERE `ID` = 1350;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Offense - Boat' WHERE `ID` = 1351;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Western GY' WHERE `ID` = 1352;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Northwestern GY' WHERE `ID` = 1353;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Southwestern GY' WHERE `ID` = 1354;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Southern GY' WHERE `ID` = 1355;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Central GY' WHERE `ID` = 1356;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Southeastern GY' WHERE `ID` = 1357;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Zul\'Drak, Gun\'Drak GY' WHERE `ID` = 1358;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Crystalsong Forest, Dalaran GY' WHERE `ID` = 1359;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ebon Hold GY - Chapter I' WHERE `ID` = 1360;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dalaran Arena - PvP Graveyard' WHERE `ID` = 1361;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dalaran Arena - Team 1 Spawn' WHERE `ID` = 1362;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dalaran Arena - Team 2 Spawn' WHERE `ID` = 1363;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Orgrimmar Arena - Team 1 Spawn' WHERE `ID` = 1364;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Orgrimmar Arena - Team 2 Spawn' WHERE `ID` = 1365;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Orgrimmar Arena - Graveyard' WHERE `ID` = 1366;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sands of Ulduran - Alliance Spawn' WHERE `ID` = 1367;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sands of Ulduran - Horde Spawn' WHERE `ID` = 1368;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Ebon Hold GY' WHERE `ID` = 1369;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ebon Hold GY - Chapter II/III' WHERE `ID` = 1370;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ebon Hold GY - Chapter IV' WHERE `ID` = 1371;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Un\'Goro Crater, Shaper\'s Terrace' WHERE `ID` = 1372;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, Theramore Safe' WHERE `ID` = 1373;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Orgrimmar Safe' WHERE `ID` = 1374;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stormwind City, Stormwind Safe' WHERE `ID` = 1375;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Utgarde 2 GY' WHERE `ID` = 1376;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Great Sea - Safe Point Tirisfal' WHERE `ID` = 1377;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Durotar, Orgrimmar Safe 2' WHERE `ID` = 1378;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Stormwright GY' WHERE `ID` = 1379;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Crystalsong Forest, Alliance GY' WHERE `ID` = 1380;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown, Argent Vanguard' WHERE `ID` = 1381;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Valkyrion GY' WHERE `ID` = 1383;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Ulduar GY' WHERE `ID` = 1384;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Temple East GY' WHERE `ID` = 1385;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Temple West GY' WHERE `ID` = 1387;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Frostfield GY' WHERE `ID` = 1388;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Crystalsong Forest, West GY' WHERE `ID` = 1391;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Crystalsong Forest, Horde GY' WHERE `ID` = 1392;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Naxxramas GY' WHERE `ID` = 1393;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Icemist GY' WHERE `ID` = 1394;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown Glacier, Quarry GY' WHERE `ID` = 1395;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown Glacier, Vrykul Central GY' WHERE `ID` = 1396;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown Glacier, Northeast Ice GY' WHERE `ID` = 1397;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Grizzly Hills, Drak\'tharon GY' WHERE `ID` = 1398;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Northrend BG - Defender Start' WHERE `ID` = 1399;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Temple of the Makers GY' WHERE `ID` = 1400;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Snowdrift GY' WHERE `ID` = 1401;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Temple of Storms GY' WHERE `ID` = 1402;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, K3 GY' WHERE `ID` = 1403;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sholazar Basin, Frenzyheart GY' WHERE `ID` = 1404;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands: Acherus' WHERE `ID` = 1405;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown Glacier, Jotunheim GY' WHERE `ID` = 1407;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Storm Peaks, Foot Steppes GY' WHERE `ID` = 1408;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Undercity - Alliance - Wrath Gate' WHERE `ID` = 1409;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'AAAAA Test Port Loc' WHERE `ID` = 1410;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Alterac Mountains - Central GY' WHERE `ID` = 1411;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, Wintersaber GY' WHERE `ID` = 1416;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, Crossroad GY' WHERE `ID` = 1417;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Winterspring, Darkwhisper GY' WHERE `ID` = 1418;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azshara, Ursolan' WHERE `ID` = 1419;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Azshara, Forlorn Ridge' WHERE `ID` = 1420;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Ghost Walker Post' WHERE `ID` = 1421;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Sar\'theris Strand' WHERE `ID` = 1422;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Mannoroc Coven' WHERE `ID` = 1423;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Magram Village' WHERE `ID` = 1424;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Desolace, Roadside' WHERE `ID` = 1425;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ashenvale, Shrine of Aessina' WHERE `ID` = 1426;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Ashenvale, Nightsong' WHERE `ID` = 1427;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Windshear Crag' WHERE `ID` = 1428;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Mirkfallon' WHERE `ID` = 1429;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Forgotten Pools' WHERE `ID` = 1430;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, North GY' WHERE `ID` = 1431;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Raptor Grounds' WHERE `ID` = 1432;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Central GY' WHERE `ID` = 1433;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, East GY' WHERE `ID` = 1434;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Mulgore, Southeast GY' WHERE `ID` = 1435;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Mulgore, Red Rocks' WHERE `ID` = 1436;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Thousand Needles, Freewind Post' WHERE `ID` = 1437;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Thousand Needles, Mirage Raceway' WHERE `ID` = 1438;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, Southwest GY' WHERE `ID` = 1439;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Tanaris, Abyssal Sands' WHERE `ID` = 1440;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Ruins of Isildien' WHERE `ID` = 1441;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Lower Wilds' WHERE `ID` = 1442;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Feralas, Twin Colossals' WHERE `ID` = 1443;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silithus, Hive\'Regal' WHERE `ID` = 1444;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Silithus, Twilight Base Camp' WHERE `ID` = 1445;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Arathi Highlands, Stromgarde' WHERE `ID` = 1446;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hillsbrad Foothills, Thoradin\'s Wall' WHERE `ID` = 1447;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Northdale' WHERE `ID` = 1448;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, Stratholme' WHERE `ID` = 1449;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Eastern Plaguelands, West GY' WHERE `ID` = 1450;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Western Plaguelands, Hearthglen' WHERE `ID` = 1451;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Hillsbrad Foothills, Hillsbrad Fields' WHERE `ID` = 1452;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Hinterlands, Seradane' WHERE `ID` = 1453;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Hinterlands, Shadra\'Alor' WHERE `ID` = 1454;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wetlands, Sundown Marsh' WHERE `ID` = 1455;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wetlands, South Road' WHERE `ID` = 1456;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wetlands, Raptor Ridge' WHERE `ID` = 1457;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stranglethorn Vale, Gurubashi Arena' WHERE `ID` = 1458;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stranglethorn Vale, Central GY' WHERE `ID` = 1459;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stranglethorn Vale, Savage Coast' WHERE `ID` = 1460;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Duskwood, Central GY' WHERE `ID` = 1461;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Westfall, Dagger Hills' WHERE `ID` = 1462;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Westfall, Longshore' WHERE `ID` = 1463;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Blasted Lands, Dark Portal' WHERE `ID` = 1464;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Swamp of Sorrows, Pool of Tears' WHERE `ID` = 1465;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Swamp of Sorrows, Splinterspear' WHERE `ID` = 1466;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Redridge Mountains, Stonewatch' WHERE `ID` = 1467;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Elwynn Forest, Tower of Azora' WHERE `ID` = 1468;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Burning Steppes, Blackrock Mountain' WHERE `ID` = 1469;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Burning Steppes, East GY' WHERE `ID` = 1470;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, Iceflow Lake' WHERE `ID` = 1471;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dun Morogh, East Road' WHERE `ID` = 1472;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Loch Modan, The Loch' WHERE `ID` = 1473;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Wintergrasp, Fortress Graveyard (Indoors)' WHERE `ID` = 1474;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Stonetalon Mountains, Southeast GY' WHERE `ID` = 1476;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dragonblight, Crystal Vice GY' WHERE `ID` = 1477;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown, Argent Tournament GY' WHERE `ID` = 1478;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Docks' WHERE `ID` = 1480;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Airport' WHERE `ID` = 1481;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Workshop' WHERE `ID` = 1482;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Alliance Default' WHERE `ID` = 1483;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Horde Default' WHERE `ID` = 1484;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Alliance Keep' WHERE `ID` = 1485;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown BG - GY - Horde Keep' WHERE `ID` = 1486;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'The Barrens, Honor\'s Stand' WHERE `ID` = 1493;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Dustwallow Marsh, The Wyrmbog' WHERE `ID` = 1681;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Icecrown Glacier, Citadel GY' WHERE `ID` = 1682;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Sunwell - Quel\'Delar Entrance' WHERE `ID` = 1683;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'AAA - Arena (Dev Test)' WHERE `ID` = 1691;
|
||||
UPDATE `game_graveyard` SET `Comment` = 'Howling Fjord, Frostblade GY' WHERE `ID` = 1720;
|
||||
|
||||
--
|
||||
-- END UPDATING QUERIES
|
||||
--
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
39
data/sql/updates/db_world/2019_01_12_00.sql
Normal file
39
data/sql/updates/db_world/2019_01_12_00.sql
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
-- DB update 2019_01_10_00 -> 2019_01_12_00
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE updateDb ()
|
||||
proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE';
|
||||
SELECT COUNT(*) INTO @COLEXISTS
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2019_01_10_00';
|
||||
IF @COLEXISTS = 0 THEN LEAVE proc; END IF;
|
||||
START TRANSACTION;
|
||||
ALTER TABLE version_db_world CHANGE COLUMN 2019_01_10_00 2019_01_12_00 bit;
|
||||
SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1547251001073984601'; IF OK <> 'FALSE' THEN LEAVE proc; END IF;
|
||||
--
|
||||
-- START UPDATING QUERIES
|
||||
--
|
||||
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1547251001073984601');
|
||||
|
||||
SET @ENTRY := 33810;
|
||||
|
||||
UPDATE `creature_template` SET `modelid1` = 28880, `modelid2` = 0, `modelid3` = 0, `modelid4` = 0, `AIName`='SmartAI' WHERE `entry` = @ENTRY;
|
||||
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (@ENTRY, @ENTRY * 100, @ENTRY * 100 + 1, @ENTRY * 100 + 2);
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`)
|
||||
VALUES
|
||||
(@ENTRY,0,0,0,54,0,100,0,0,0,0,0,11,52619,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sen''Jin Fetish - Just Summoned - Cast Spell ''Enchanted Tiki Warrior: Enchanted Tiki Warrior Glow Visual'' (52619) on self'),
|
||||
(@ENTRY,0,1,0,54,0,100,0,0,0,0,0,87,@ENTRY * 100,@ENTRY * 100 + 1,@ENTRY * 100 + 2,0,0,0,1,0,0,0,0,0,0,0,'Sen''Jin Fetish - Just Summoned - Call Random Script'),
|
||||
(@ENTRY * 100,9,0,0,54,0,100,0,0,0,0,0,11,52614,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sen''Jin Fetish - Just Summoned - Cast Spell ''Enchanted Tiki Warrior: Enchanted Tiki Warrior Visual 01'' (52614) on self'),
|
||||
(@ENTRY * 100 + 1,9,0,0,54,0,100,0,0,0,0,0,11,52617,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sen''Jin Fetish - Just Summoned - Cast Spell ''Enchanted Tiki Warrior: Enchanted Tiki Warrior Visual 02'' (52617) on self'),
|
||||
(@ENTRY * 100 + 2,9,0,0,54,0,100,0,0,0,0,0,11,52618,0,0,0,0,0,1,0,0,0,0,0,0,0,'Sen''Jin Fetish - Just Summoned - Cast Spell ''Enchanted Tiki Warrior: Enchanted Tiki Warrior Visual 03'' (52618) on self');
|
||||
|
||||
--
|
||||
-- END UPDATING QUERIES
|
||||
--
|
||||
COMMIT;
|
||||
END //
|
||||
DELIMITER ;
|
||||
CALL updateDb();
|
||||
DROP PROCEDURE IF EXISTS `updateDb`;
|
||||
58820
data/sql/updates/db_world/2019_01_12_01.sql
Normal file
58820
data/sql/updates/db_world/2019_01_12_01.sql
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||
rev=$( $date +%s%N );
|
||||
filename=rev_"$rev".sql
|
||||
|
||||
echo "INSERT INTO version_db_auth (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
echo "INSERT INTO \`version_db_auth\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||
rev=$( $date +%s%N );
|
||||
filename=rev_"$rev".sql
|
||||
|
||||
echo "INSERT INTO version_db_characters (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
echo "INSERT INTO \`version_db_characters\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@ CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )";
|
|||
rev=$( $date +%s%N );
|
||||
filename=rev_"$rev".sql
|
||||
|
||||
echo "INSERT INTO version_db_world (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
echo "INSERT INTO \`version_db_world\` (\`sql_rev\`) VALUES ('"$rev"');" > "$CUR_PATH/$filename" && echo "File created: $filename";
|
||||
|
|
|
|||
38
docker/README.md
Normal file
38
docker/README.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# Run AzerothCore with Docker
|
||||
|
||||
*This readme it's a summary of the AzerothCore docker features.*
|
||||
|
||||
Docker. is a software that performs operating-system-level virtualization, allowing to wrap and launch applications inside containers.
|
||||
|
||||
Thanks to Docker, you can quickly setup and run AzerothCore in any operating system.
|
||||
|
||||
The **only** requirement is having Docker installed into your system. Forget about installing mysql, visual studio, cmake, etc...
|
||||
|
||||
### Installation instructions
|
||||
|
||||
To install AzerothCore using Docker, you have to follow these steps (**respecting the order**):
|
||||
|
||||
1) Install [Docker](https://docs.docker.com/install/).
|
||||
|
||||
2) Launch one instance of the [AzerothCore Dockerized Database](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/database)
|
||||
|
||||
3) Create an image of the [AzerothCore Dockerized Build](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build)
|
||||
|
||||
4) Launch one instance of the [AzerothCore Dockerized Authserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/authserver)
|
||||
|
||||
5) Launch one instance of the [AzerothCore Dockerized Worldserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/worldserver)
|
||||
|
||||
|
||||
### Memory usage
|
||||
|
||||
The total amount of RAM when running all AzerothCore docker containers is **less than 2 GB**.
|
||||
|
||||

|
||||
|
||||
|
||||
### Docker containers vs Virtual machines
|
||||
|
||||
Usind Docker will have the same benefits as using virtual machines, but with much less overhead:
|
||||
|
||||

|
||||
|
||||
7
docker/authserver/Dockerfile
Normal file
7
docker/authserver/Dockerfile
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
RUN apt update && apt install -y libmysqlclient-dev libssl-dev libace-6.* libace-dev;
|
||||
|
||||
COPY --from=azerothcore/build:latest /azeroth-server/bin /azeroth-server/bin
|
||||
|
||||
CMD ["/azeroth-server/bin/authserver"]
|
||||
31
docker/authserver/README.md
Normal file
31
docker/authserver/README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# AzerothCore Dockerized Authserver
|
||||
|
||||
This provides a way to launch a container with the AzerothCore authserver running inside it.
|
||||
|
||||
## Requirements
|
||||
|
||||
- You need to have [Docker](https://docs.docker.com/install/) installed in your system. You can install it on any operating system.
|
||||
|
||||
- You need to first build the [AzerothCore Build Image](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build).
|
||||
|
||||
- You have to copy the file `docker/authserver/etc/authserver.conf.dockerdist` and rename the copied file to `docker/authserver/etc/authserver.conf`. Then open it and change the values where needed (you may need to change the DB port).
|
||||
|
||||
## Building the container image
|
||||
|
||||
To build the container image you have to be in the **main** folder of your local AzerothCore sources directory.
|
||||
|
||||
```docker build -t azerothcore/authserver -f docker/authserver/Dockerfile docker/authserver/```
|
||||
|
||||
*For more information about the `docker build` command, check the [docker build doc](https://docs.docker.com/engine/reference/commandline/build/).*
|
||||
|
||||
## Run the container
|
||||
|
||||
```
|
||||
docker run --name azt-authserver \
|
||||
--mount type=bind,source="$(pwd)"/docker/authserver/etc/,target=/azeroth-server/etc \
|
||||
--mount type=bind,source="$(pwd)"/docker/authserver/logs/,target=/azeroth-server/logs \
|
||||
--network host \
|
||||
-it azerothcore/authserver
|
||||
```
|
||||
|
||||
*For more information about the `docker run` command, check the [docker run doc](https://docs.docker.com/engine/reference/run/).*
|
||||
0
docker/authserver/etc/.gitkeep
Normal file
0
docker/authserver/etc/.gitkeep
Normal file
271
docker/authserver/etc/authserver.conf.dist
Normal file
271
docker/authserver/etc/authserver.conf.dist
Normal file
|
|
@ -0,0 +1,271 @@
|
|||
###############################################
|
||||
# AzerothCore Auth Server configuration file #
|
||||
###############################################
|
||||
[authserver]
|
||||
|
||||
###################################################################################################
|
||||
# SECTION INDEX
|
||||
#
|
||||
# EXAMPLE CONFIG
|
||||
# AUTH SERVER SETTINGS
|
||||
# MYSQL SETTINGS
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# EXAMPLE CONFIG
|
||||
#
|
||||
# Variable
|
||||
# Description: Brief description what the variable is doing.
|
||||
# Important: Annotation for important things about this variable.
|
||||
# Example: "Example, i.e. if the value is a string"
|
||||
# Default: 10 - (Enabled|Comment|Variable name in case of grouped config options)
|
||||
# 0 - (Disabled|Comment|Variable name in case of grouped config options)
|
||||
#
|
||||
# Note to developers:
|
||||
# - Copy this example to keep the formatting.
|
||||
# - Line breaks should be at column 100.
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# AUTH SERVER SETTINGS
|
||||
#
|
||||
# LogsDir
|
||||
# Description: Logs directory setting.
|
||||
# Important: LogsDir needs to be quoted, as the string might contain space characters.
|
||||
# Logs directory must exists, or log file creation will be disabled.
|
||||
# Default: "" - (Log files will be stored in the current path)
|
||||
|
||||
LogsDir = ""
|
||||
|
||||
#
|
||||
# MaxPingTime
|
||||
# Description: Time (in minutes) between database pings.
|
||||
# Default: 30
|
||||
|
||||
MaxPingTime = 30
|
||||
|
||||
#
|
||||
# RealmServerPort
|
||||
# Description: TCP port to reach the auth server.
|
||||
# Default: 3724
|
||||
|
||||
RealmServerPort = 3724
|
||||
|
||||
#
|
||||
#
|
||||
# BindIP
|
||||
# Description: Bind auth server to IP/hostname
|
||||
# Default: "0.0.0.0" - (Bind to all IPs on the system)
|
||||
|
||||
BindIP = "0.0.0.0"
|
||||
|
||||
#
|
||||
# PidFile
|
||||
# Description: Auth server PID file.
|
||||
# Example: "./authserver.pid" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
PidFile = ""
|
||||
|
||||
#
|
||||
# LogLevel
|
||||
# Description: Server console level of logging
|
||||
# Default: 0 - (Minimum)
|
||||
# 1 - (Basic)
|
||||
# 2 - (Detail)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
LogLevel = 0
|
||||
|
||||
#
|
||||
# LogFile
|
||||
# Description: Log file for main server log.
|
||||
# Default: "Auth.log" - (Enabled)
|
||||
# "" - (Disabled)
|
||||
|
||||
LogFile = "Auth.log"
|
||||
|
||||
#
|
||||
# Debug Log Mask
|
||||
# Description: Bitmask that determines which debug log output (level 3)
|
||||
# will be logged.
|
||||
# Possible flags:
|
||||
#
|
||||
# 64 - Anything related to network input/output,
|
||||
# such as packet handlers and netcode logs
|
||||
#
|
||||
# Simply add the values together to create a bitmask.
|
||||
# For more info see enum DebugLogFilters in Log.h
|
||||
#
|
||||
# Default: 0 (nothing)
|
||||
|
||||
DebugLogMask = 64
|
||||
|
||||
#
|
||||
# SQLDriverLogFile
|
||||
# Description: Log file for SQL driver events.
|
||||
# Example: "SQLDriver.log" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
SQLDriverLogFile = ""
|
||||
|
||||
#
|
||||
# SQLDriverQueryLogging
|
||||
# Description: Log SQL queries to the SQLDriverLogFile and console.
|
||||
# Default: 0 - (Disabled, Query errors only)
|
||||
# 1 - (Enabled, Full query logging - may have performance impact)
|
||||
|
||||
SQLDriverQueryLogging = 0
|
||||
|
||||
#
|
||||
# LogTimestamp
|
||||
# Description: Append timestamp to the server log file name.
|
||||
# Logname_YYYY-MM-DD_HH-MM-SS.Ext for Logname.Ext
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
LogTimestamp = 0
|
||||
|
||||
#
|
||||
# LogFileLevel
|
||||
# Description: Server file level of logging
|
||||
# Default: 0 - (Minimum)
|
||||
# 1 - (Basic)
|
||||
# 2 - (Detail)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
LogFileLevel = 0
|
||||
|
||||
#
|
||||
# LogColors
|
||||
# Description: Colors for log messages (Format: "normal basic detail debug").
|
||||
# Colors: 0 - Black
|
||||
# 1 - Red
|
||||
# 2 - Green
|
||||
# 3 - Brown
|
||||
# 4 - Blue
|
||||
# 5 - Magenta
|
||||
# 6 - Cyan
|
||||
# 7 - Grey
|
||||
# 8 - Yellow
|
||||
# 9 - Lred
|
||||
# 10 - Lgreen
|
||||
# 11 - Lblue
|
||||
# 12 - Lmagenta
|
||||
# 13 - Lcyan
|
||||
# 14 - White
|
||||
# Example: "13 11 9 5" - (Enabled)
|
||||
# Default: "" - (Disabled)
|
||||
|
||||
LogColors = ""
|
||||
|
||||
#
|
||||
# EnableLogDB
|
||||
# Description: Write log messages to database (LogDatabaseInfo).
|
||||
# Default: 0 - (Disabled)
|
||||
# 1 - (Enabled)
|
||||
|
||||
EnableLogDB = 0
|
||||
|
||||
#
|
||||
# DBLogLevel
|
||||
# Description: Log level of databases logging.
|
||||
# Default: 1 - (Basic)
|
||||
# 0 - (Minimum)
|
||||
# 2 - (Detail)
|
||||
# 3 - (Full/Debug)
|
||||
|
||||
DBLogLevel = 1
|
||||
|
||||
#
|
||||
# UseProcessors
|
||||
# Description: Processors mask for Windows and Linux based multi-processor systems.
|
||||
# Example: For a computer with 3 CPUs:
|
||||
# 1 - 1st CPU only
|
||||
# 2 - 2nd CPU only
|
||||
# 4 - 3rd CPU only
|
||||
# 6 - 2nd + 3rd CPUs, because "2 | 4" -> 6
|
||||
# Default: 0 - (Selected by OS)
|
||||
# 1+ - (Bit mask value of selected processors)
|
||||
|
||||
UseProcessors = 0
|
||||
|
||||
#
|
||||
# ProcessPriority
|
||||
# Description: Process priority setting for Windows and Linux based systems.
|
||||
# Details: On Linux, a nice value of -15 is used. (requires superuser). On Windows, process is set to HIGH class.
|
||||
# Default: 0 - (Normal)
|
||||
# 1 - (High)
|
||||
|
||||
ProcessPriority = 0
|
||||
|
||||
#
|
||||
# RealmsStateUpdateDelay
|
||||
# Description: Time (in seconds) between realm list updates.
|
||||
# Default: 20 - (Enabled)
|
||||
# 0 - (Disabled)
|
||||
|
||||
RealmsStateUpdateDelay = 20
|
||||
|
||||
#
|
||||
# WrongPass.MaxCount
|
||||
# Description: Number of login attemps with wrong password before the account or IP will be
|
||||
# banned.
|
||||
# Default: 0 - (Disabled)
|
||||
# 1+ - (Enabled)
|
||||
|
||||
WrongPass.MaxCount = 0
|
||||
|
||||
#
|
||||
# WrongPass.BanTime
|
||||
# Description: Time (in seconds) for banning account or IP for invalid login attempts.
|
||||
# Default: 600 - (10 minutes)
|
||||
# 0 - (Permanent ban)
|
||||
|
||||
WrongPass.BanTime = 600
|
||||
|
||||
#
|
||||
# WrongPass.BanType
|
||||
# Description: Ban type for invalid login attempts.
|
||||
# Default: 0 - (Ban IP)
|
||||
# 1 - (Ban Account)
|
||||
|
||||
WrongPass.BanType = 0
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
|
||||
###################################################################################################
|
||||
# MYSQL SETTINGS
|
||||
#
|
||||
# LoginDatabaseInfo
|
||||
# Description: Database connection settings for the realm server.
|
||||
# Example: "hostname;port;username;password;database"
|
||||
# ".;somenumber;username;password;database" - (Use named pipes on Windows
|
||||
# "enable-named-pipe" to [mysqld]
|
||||
# section my.ini)
|
||||
# ".;/path/to/unix_socket;username;password;database" - (use Unix sockets on
|
||||
# Unix/Linux)
|
||||
# Default: "127.0.0.1;3306;acore;acore;auth"
|
||||
|
||||
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"
|
||||
|
||||
#
|
||||
# LoginDatabase.WorkerThreads
|
||||
# Description: The amount of worker threads spawned to handle asynchronous (delayed) MySQL
|
||||
# statements. Each worker thread is mirrored with its own connection to the
|
||||
# Default: 1
|
||||
|
||||
LoginDatabase.WorkerThreads = 1
|
||||
|
||||
#
|
||||
# LoginDatabase.SynchThreads
|
||||
# Description: The amount of MySQL connections spawned to handle.
|
||||
# Default: 1 - (LoginDatabase.WorkerThreads)
|
||||
#
|
||||
|
||||
LoginDatabase.SynchThreads = 1
|
||||
|
||||
#
|
||||
###################################################################################################
|
||||
13
docker/authserver/etc/authserver.conf.dockerdist
Normal file
13
docker/authserver/etc/authserver.conf.dockerdist
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
###############################################
|
||||
# AzerothCore Auth Server configuration file #
|
||||
###############################################
|
||||
[authserver]
|
||||
|
||||
# Do not change this
|
||||
LogsDir = "/azeroth-server/logs"
|
||||
|
||||
# Change this configuration accordingly with your setup
|
||||
LoginDatabaseInfo = "127.0.0.1;3600;root;password;acore_auth"
|
||||
|
||||
# Add more configuration overwrites
|
||||
LogLevel = 3
|
||||
1
docker/authserver/logs/.gitkeep
Normal file
1
docker/authserver/logs/.gitkeep
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
17
docker/build/Dockerfile
Normal file
17
docker/build/Dockerfile
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
RUN apt update && apt install -y git cmake make gcc g++ clang libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libace-6.* libace-dev
|
||||
|
||||
ADD .git /azerothcore/.git
|
||||
ADD deps /azerothcore/deps
|
||||
ADD conf/config.cmake.dist /azerothcore/conf/config.cmake.dist
|
||||
ADD src /azerothcore/src
|
||||
ADD CMakeLists.txt /azerothcore/CMakeLists.txt
|
||||
|
||||
RUN cd azerothcore; \
|
||||
mkdir build; \
|
||||
cd build; \
|
||||
cmake ../ -DCMAKE_INSTALL_PREFIX=/azeroth-server -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DTOOLS=0 -DSCRIPTS=1; \
|
||||
MTHREADS=`grep -c ^processor /proc/cpuinfo`; MTHREADS=$(($MTHREADS + 2)); \
|
||||
make -j $MTHREADS; \
|
||||
make install -j $MTHREADS;
|
||||
13
docker/build/README.md
Normal file
13
docker/build/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# AzerothCore Dockerized Build
|
||||
|
||||
The AzerothCore Build Dockerfile is not meant to create containers, it is a stage that both the [authserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/authserver) and the [worldserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/worldserver) docker images will use.
|
||||
|
||||
Note: every time you update your AzerothCore sources, you **must** build again this image and the authserver & worldserver images to get the new version on your docker containers.
|
||||
|
||||
*For more information about Docker multi-stage builds, refer to the [docker multi-stage builds doc](https://docs.docker.com/develop/develop-images/multistage-build/).*
|
||||
|
||||
# Usage
|
||||
|
||||
To build the container image you have to be in the **main** folder of your local AzerothCore sources directory.
|
||||
|
||||
```docker build -t azerothcore/build -f docker/build/Dockerfile . ```
|
||||
18
docker/database/Dockerfile
Normal file
18
docker/database/Dockerfile
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
FROM alpine:latest as builder
|
||||
|
||||
RUN apk add --no-cache bash
|
||||
|
||||
ADD apps /azerothcore/apps
|
||||
ADD conf /azerothcore/conf
|
||||
ADD data /azerothcore/data
|
||||
ADD deps /azerothcore/deps
|
||||
ADD acore.json /azerothcore/acore.json
|
||||
|
||||
RUN chmod 755 azerothcore/apps/db_assembler/db_assembler.sh; \
|
||||
/azerothcore/apps/db_assembler/db_assembler.sh 1
|
||||
|
||||
FROM mysql:5.7
|
||||
|
||||
COPY --from=builder /azerothcore/env/dist/sql /sql
|
||||
|
||||
ADD docker/database/generate-databases.sh /docker-entrypoint-initdb.d
|
||||
89
docker/database/README.md
Normal file
89
docker/database/README.md
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# AzerothCore Dockerized Database
|
||||
|
||||
This provides a way to quickly launch one or more instances of a fully-ready AzerothCore database. It is particularly useful for testing/development purposes.
|
||||
|
||||
For example, with this you can quickly create a new, clean instance of the AzerothCore DB. Or create **multiple** instances each one available on a different **port** (that can be handy to test & compare things).
|
||||
|
||||
Instances (containers) can be easily set up and then destroyed, so you can always switch to a clean state after your experiments. Every instance will have the three `acore_auth`, `acore_characters` and `acore_world` mysql databases.
|
||||
|
||||
**NOTE**: you do **not** need to install any mysql-server manually in your system and if you already have it, the docker instances will **not** interfere with it.
|
||||
|
||||
|
||||
# Setup & usage instructions
|
||||
|
||||
### Requirements
|
||||
|
||||
The only requirement is [Docker](https://docs.docker.com/install/). You can install it on any operating system.
|
||||
|
||||
|
||||
## Building the container image
|
||||
|
||||
To build the container image you have to be in the **main folder** of your local AzerothCore sources directory.
|
||||
|
||||
If you don't have the AzerothCore sources, clone it using:
|
||||
|
||||
`git clone https://github.com/azerothcore/azerothcore-wotlk.git`
|
||||
|
||||
and cd into it `cd azerothcore-wotlk`.
|
||||
|
||||
You can build the image using:
|
||||
|
||||
`docker build -t azerothcore/database -f docker/database/Dockerfile .`
|
||||
|
||||
**Note:** the version of your DB will be the one of your sources when you built the image. If you want to update it, just update your sources (`git pull`) and build the image again.
|
||||
|
||||
*For more information about the `docker build` command, check the [docker build doc](https://docs.docker.com/engine/reference/commandline/build/).*
|
||||
|
||||
|
||||
## How to launch a container
|
||||
|
||||
Run the following command to launch a container:
|
||||
|
||||
`docker run --name azt-db -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=password azerothcore/database`
|
||||
|
||||
Where:
|
||||
|
||||
`--name` is followed by a container name like `azt-db`. Put whatever name you like, each container should have an unique name.
|
||||
|
||||
`-p` (port) is followed by `IP_ADDRESS:EXTERNAL_PORT:INTERNAL_PORT`.
|
||||
|
||||
- INTERNAL_PORT **must** always be 3306.
|
||||
- EXTERNAL_PORT is the port that you will use to access the mysql-server that is running in your container
|
||||
|
||||
**NOTE**: You may want to use an external port different than 3306 in case you have already mysql-server installed in your system (or some other service that is using that port). So you can use for example port 9000 with `-p 127.0.0.1:9000:3306`
|
||||
|
||||
`docker run --name azt-db -p 9000:3306 -e MYSQL_ROOT_PASSWORD=password azerothcore/database`
|
||||
|
||||
`-e MYSQL_ROOT_PASSWORD=password` lets you change the default password for the `root` user.
|
||||
|
||||
`azerothcore/database` will be the name of your docker image.
|
||||
|
||||
When the container is ready, you will see a message similar to:
|
||||
|
||||
> Version: '5.7.24' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
|
||||
|
||||
You can optionally pass option `-d` to detach the container run from your terminal.
|
||||
|
||||
You can optionally pass option `-it` to run the container as an interactive process (so you can kill it with ctrl+c).
|
||||
|
||||
*For more information about the `docker run` command, check the [docker run doc](https://docs.docker.com/engine/reference/run/).*
|
||||
|
||||
## Launching more instances
|
||||
|
||||
You can easily run more instances. You just have to specify a different **name** and **port** for each.
|
||||
|
||||
Example: I want to launch three instances of the AzerothCore databases, each one listening respectively on port 9001, 9002 and 9003. I can do it with the following commands:
|
||||
|
||||
`docker run --name azt-db-1 -p 127.0.0.1:9001:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database`
|
||||
`docker run --name azt-db-2 -p 127.0.0.1:9002:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database`
|
||||
`docker run --name azt-db-3 -p 127.0.0.1:9003:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database`
|
||||
|
||||
You can use the `docker ps` command to check your running containers.
|
||||
|
||||
*For more information about the `docker ps` command, check the [docker ps doc](https://docs.docker.com/engine/reference/commandline/ps/).*
|
||||
|
||||
## Stopping / removing
|
||||
|
||||
You can stop a container using `docker stop name-of-the container`, for example `docker stop azt-db-1`.
|
||||
|
||||
You can then remove the container using `docker rm name-of-the container`, for example `docker rm azt-db-1`.
|
||||
41
docker/database/generate-databases.sh
Normal file
41
docker/database/generate-databases.sh
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# TODO: remove this line after we fully support mysql 5.7
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD -e "SET GLOBAL sql_mode = '';"
|
||||
|
||||
|
||||
echo "Creating DBs..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE acore_auth"
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE acore_characters"
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE acore_world"
|
||||
|
||||
|
||||
echo "Importing auth base..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_auth < /sql/auth_base.sql
|
||||
|
||||
echo "Importing characters base..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_characters < /sql/characters_base.sql
|
||||
|
||||
echo "Importing world base..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_world < /sql/world_base.sql
|
||||
|
||||
|
||||
echo "Importing auth updates..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_auth < /sql/auth_update.sql
|
||||
|
||||
echo "Importing characters updates..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_characters < /sql/characters_update.sql
|
||||
|
||||
echo "Importing world updates..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_world < /sql/world_update.sql
|
||||
|
||||
|
||||
echo "Importing auth custom (if any)..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_auth < /sql/auth_custom.sql
|
||||
|
||||
echo "Importing characters custom (if any)..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_characters < /sql/characters_custom.sql
|
||||
|
||||
echo "Importing world custom (if any)..."
|
||||
mysql -u root -p$MYSQL_ROOT_PASSWORD acore_world < /sql/world_custom.sql
|
||||
|
||||
|
||||
echo "Done!"
|
||||
7
docker/worldserver/Dockerfile
Normal file
7
docker/worldserver/Dockerfile
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
FROM ubuntu:bionic
|
||||
|
||||
RUN apt update && apt install -y libmysqlclient-dev libssl-dev libace-6.* libace-dev libreadline-dev;
|
||||
|
||||
COPY --from=azerothcore/build:latest /azeroth-server/bin /azeroth-server/bin
|
||||
|
||||
CMD ["/azeroth-server/bin/worldserver"]
|
||||
36
docker/worldserver/README.md
Normal file
36
docker/worldserver/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# AzerothCore Dockerized Worldserver
|
||||
|
||||
This provides a way to launch a container with the AzerothCore authserver running inside it.
|
||||
|
||||
## Requirements
|
||||
|
||||
- You need to have [Docker](https://docs.docker.com/install/) installed in your system. You can install it on any operating system.
|
||||
|
||||
- You need to first build the [AzerothCore Build Image](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build).
|
||||
|
||||
- You have to copy the file `docker/worldserver/worldserver.conf.dockerdist` and rename the copied file to `docker/worldserver/worldserver.conf`. Then open it and change the values where needed (you may need to change the DB port).
|
||||
|
||||
- You need to have the **data files** somewhere in your system. If you don't have them yet, check the step ["Download the data files" from the installation guide](https://github.com/AzerothCore/azerothcore-wotlk/wiki/Installation#5-download-the-data-files).
|
||||
|
||||
## Building the container image
|
||||
|
||||
To build the container image you have to be in the **main** folder of your local AzerothCore sources directory.
|
||||
|
||||
```docker build -t azerothcore/worldserver -f docker/worldserver/Dockerfile docker/worldserver```
|
||||
|
||||
*For more information about the `docker build` command, check the [docker build doc](https://docs.docker.com/engine/reference/commandline/build/).*
|
||||
|
||||
## Run the container
|
||||
|
||||
Replace `/path/to/your/data` with the path of where your data folder is.
|
||||
|
||||
```
|
||||
docker run --name azt-worldserver \
|
||||
--mount type=bind,source=/mnt/70DD9E0635B3A813/azeroth-server/data,target=/azeroth-server/data \
|
||||
--mount type=bind,source="$(pwd)"/docker/worldserver/etc/,target=/azeroth-server/etc \
|
||||
--mount type=bind,source="$(pwd)"/docker/worldserver/logs/,target=/azeroth-server/logs \
|
||||
--network host \
|
||||
-it azerothcore/worldserver
|
||||
```
|
||||
|
||||
*For more information about the `docker run` command, check the [docker run doc](https://docs.docker.com/engine/reference/run/).*
|
||||
0
docker/worldserver/etc/.gitkeep
Normal file
0
docker/worldserver/etc/.gitkeep
Normal file
3191
docker/worldserver/etc/worldserver.conf.dist
Normal file
3191
docker/worldserver/etc/worldserver.conf.dist
Normal file
File diff suppressed because it is too large
Load diff
16
docker/worldserver/etc/worldserver.conf.dockerdist
Normal file
16
docker/worldserver/etc/worldserver.conf.dockerdist
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
################################################
|
||||
# AzerothCore World Server configuration file #
|
||||
################################################
|
||||
[worldserver]
|
||||
|
||||
# Do not change those
|
||||
LogsDir = "/azeroth-server/logs"
|
||||
DataDir = "/azeroth-server/data"
|
||||
|
||||
# Change those configuration accordingly with your setup
|
||||
LoginDatabaseInfo = "127.0.0.1;3600;root;password;acore_auth"
|
||||
WorldDatabaseInfo = "127.0.0.1;3600;root;password;acore_world"
|
||||
CharacterDatabaseInfo = "127.0.0.1;3600;root;password;acore_characters"
|
||||
|
||||
# Add more configuration overwrites
|
||||
LogLevel = 2
|
||||
0
docker/worldserver/logs/.gitkeep
Normal file
0
docker/worldserver/logs/.gitkeep
Normal file
|
|
@ -117,6 +117,7 @@ if( WIN32 )
|
|||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/lib"
|
||||
|
|
|
|||
46
src/cmake/macros/GroupSources.cmake
Normal file
46
src/cmake/macros/GroupSources.cmake
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Copyright (C) 2008-2018 TrinityCore <https://www.trinitycore.org/>
|
||||
#
|
||||
# This file is free software; as a special exception the author gives
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
macro(GroupSources dir)
|
||||
# Skip this if WITH_SOURCE_TREE is not set (empty string).
|
||||
if (NOT ${WITH_SOURCE_TREE} STREQUAL "")
|
||||
# Include all header and c files
|
||||
file(GLOB_RECURSE elements RELATIVE ${dir} *.h *.hpp *.c *.cpp *.cc)
|
||||
|
||||
foreach(element ${elements})
|
||||
# Extract filename and directory
|
||||
get_filename_component(element_name ${element} NAME)
|
||||
get_filename_component(element_dir ${element} DIRECTORY)
|
||||
|
||||
if (NOT ${element_dir} STREQUAL "")
|
||||
# If the file is in a subdirectory use it as source group.
|
||||
if (${WITH_SOURCE_TREE} STREQUAL "flat")
|
||||
# Build flat structure by using only the first subdirectory.
|
||||
string(FIND ${element_dir} "/" delemiter_pos)
|
||||
if (NOT ${delemiter_pos} EQUAL -1)
|
||||
string(SUBSTRING ${element_dir} 0 ${delemiter_pos} group_name)
|
||||
source_group("${group_name}" FILES ${dir}/${element})
|
||||
else()
|
||||
# Build hierarchical structure.
|
||||
# File is in root directory.
|
||||
source_group("${element_dir}" FILES ${dir}/${element})
|
||||
endif()
|
||||
else()
|
||||
# Use the full hierarchical structure to build source_groups.
|
||||
string(REPLACE "/" "\\" group_name ${element_dir})
|
||||
source_group("${group_name}" FILES ${dir}/${element})
|
||||
endif()
|
||||
else()
|
||||
# If the file is in the root directory, place it in the root source_group.
|
||||
source_group("\\" FILES ${dir}/${element})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endmacro()
|
||||
|
|
@ -1,19 +1,19 @@
|
|||
# output generic information about the core and buildtype chosen
|
||||
message("")
|
||||
message("* AzerothCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
|
||||
message("* AzerothCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
|
||||
if( UNIX )
|
||||
message("* AzerothCore buildtype : ${CMAKE_BUILD_TYPE}")
|
||||
message("* AzerothCore buildtype : ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
message("")
|
||||
|
||||
# output information about installation-directories and locations
|
||||
|
||||
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
||||
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
||||
if( UNIX )
|
||||
message("* Install libraries to : ${LIBSDIR}")
|
||||
message("* Install libraries to : ${LIBSDIR}")
|
||||
endif()
|
||||
|
||||
message("* Install configs to : ${CONF_DIR}")
|
||||
message("* Install configs to : ${CONF_DIR}")
|
||||
add_definitions(-D_CONF_DIR="\\"${CONF_DIR}\\"")
|
||||
|
||||
message("")
|
||||
|
|
@ -21,69 +21,69 @@ message("")
|
|||
# Show infomation about the options selected during configuration
|
||||
|
||||
if( SERVERS )
|
||||
message("* Build world/auth : Yes (default)")
|
||||
message("* Build world/auth : Yes (default)")
|
||||
else()
|
||||
message("* Build world/authserver : No")
|
||||
message("* Build world/authserver : No")
|
||||
endif()
|
||||
|
||||
if( SCRIPTS )
|
||||
message("* Build with scripts : Yes (default)")
|
||||
message("* Build with scripts : Yes (default)")
|
||||
add_definitions(-DSCRIPTS)
|
||||
else()
|
||||
message("* Build with scripts : No")
|
||||
message("* Build with scripts : No")
|
||||
endif()
|
||||
|
||||
if( TOOLS )
|
||||
message("* Build map/vmap tools : Yes")
|
||||
message("* Build map/vmap tools : Yes")
|
||||
add_definitions(-DNO_CORE_FUNCS)
|
||||
else()
|
||||
message("* Build map/vmap tools : No (default)")
|
||||
message("* Build map/vmap tools : No (default)")
|
||||
endif()
|
||||
|
||||
if( USE_COREPCH )
|
||||
message("* Build core w/PCH : Yes (default)")
|
||||
message("* Build core w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build core w/PCH : No")
|
||||
message("* Build core w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( USE_SCRIPTPCH )
|
||||
message("* Build scripts w/PCH : Yes (default)")
|
||||
message("* Build scripts w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build scripts w/PCH : No")
|
||||
message("* Build scripts w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( WITH_WARNINGS )
|
||||
message("* Show all warnings : Yes")
|
||||
message("* Show all warnings : Yes")
|
||||
else()
|
||||
message("* Show compile-warnings : No (default)")
|
||||
message("* Show compile-warnings : No (default)")
|
||||
endif()
|
||||
|
||||
if( WITH_COREDEBUG )
|
||||
message("* Use coreside debug : Yes")
|
||||
message("* Use coreside debug : Yes")
|
||||
add_definitions(-DTRINITY_DEBUG)
|
||||
else()
|
||||
message("* Use coreside debug : No (default)")
|
||||
message("* Use coreside debug : No (default)")
|
||||
endif()
|
||||
|
||||
if ( UNIX )
|
||||
if( WITH_PERFTOOLS )
|
||||
message("* Use unix gperftools : Yes")
|
||||
message("* Use unix gperftools : Yes")
|
||||
add_definitions(-DPERF_TOOLS)
|
||||
else()
|
||||
message("* Use unix gperftools : No (default)")
|
||||
message("* Use unix gperftools : No (default)")
|
||||
endif()
|
||||
endif( UNIX )
|
||||
|
||||
if( WIN32 )
|
||||
if( USE_MYSQL_SOURCES )
|
||||
message("* Use MySQL sourcetree : Yes (default)")
|
||||
message("* Use MySQL sourcetree : Yes (default)")
|
||||
else()
|
||||
message("* Use MySQL sourcetree : No")
|
||||
message("* Use MySQL sourcetree : No")
|
||||
endif()
|
||||
endif( WIN32 )
|
||||
|
||||
if ( WITHOUT_GIT )
|
||||
message("* Use GIT revision hash : No")
|
||||
message("* Use GIT revision hash : No")
|
||||
message("")
|
||||
message(" *** WITHOUT_GIT - WARNING!")
|
||||
message(" *** By choosing the WITHOUT_GIT option you have waived all rights for support,")
|
||||
|
|
@ -94,7 +94,7 @@ if ( WITHOUT_GIT )
|
|||
message(" *** version of git for the revision-hash to work, and be allowede to ask for")
|
||||
message(" *** support if needed.")
|
||||
else()
|
||||
message("* Use GIT revision hash : Yes")
|
||||
message("* Use GIT revision hash : Yes (default)")
|
||||
endif()
|
||||
|
||||
if ( NOJEM )
|
||||
|
|
@ -108,24 +108,34 @@ endif()
|
|||
# Performance optimization options:
|
||||
|
||||
if( ENABLE_EXTRAS )
|
||||
message("* Enable extra features : Yes (default)")
|
||||
message("* Enable extra features : Yes (default)")
|
||||
add_definitions(-DENABLE_EXTRAS)
|
||||
else()
|
||||
message("* Enable extra features : No")
|
||||
message("* Enable extra features : No")
|
||||
endif()
|
||||
|
||||
if( ENABLE_VMAP_CHECKS )
|
||||
message("* Enable vmap DisableMgr checks : Yes (default)")
|
||||
message("* Enable vmap DisableMgr checks : Yes (default)")
|
||||
add_definitions(-DENABLE_VMAP_CHECKS)
|
||||
else()
|
||||
message("* Enable vmap DisableMgr checks : No")
|
||||
message("* Enable vmap DisableMgr checks : No")
|
||||
endif()
|
||||
|
||||
if( ENABLE_EXTRA_LOGS )
|
||||
message("* Enable extra logging functions : Yes")
|
||||
message("* Enable extra logging functions : Yes")
|
||||
add_definitions(-DENABLE_EXTRA_LOGS)
|
||||
else()
|
||||
message("* Enable extra logging functions : No (default)")
|
||||
message("* Enable extra logging functions : No (default)")
|
||||
endif()
|
||||
|
||||
if(WIN32 AND NOT CMAKE_VERSION VERSION_LESS 2.8.12)
|
||||
if(NOT WITH_SOURCE_TREE STREQUAL "no")
|
||||
message("* Show source tree : Yes - \"${WITH_SOURCE_TREE}\"")
|
||||
else()
|
||||
message("* Show source tree : No")
|
||||
endif()
|
||||
else()
|
||||
message("* Show source tree : No (For UNIX default)")
|
||||
endif()
|
||||
|
||||
message("")
|
||||
|
|
|
|||
|
|
@ -78,6 +78,9 @@ include_directories(
|
|||
${OPENSSL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Group sources
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_library(shared STATIC
|
||||
${shared_STAT_SRCS}
|
||||
${shared_STAT_PCH_SRC}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ void WorldDatabaseConnection::DoPrepareStatements()
|
|||
PrepareStatement(WORLD_SEL_QUEST_POOLS, "SELECT entry, pool_entry FROM pool_quest", CONNECTION_SYNCH);
|
||||
PrepareStatement(WORLD_DEL_CRELINKED_RESPAWN, "DELETE FROM linked_respawn WHERE guid = ?", CONNECTION_ASYNC);
|
||||
PrepareStatement(WORLD_REP_CREATURE_LINKED_RESPAWN, "REPLACE INTO linked_respawn (guid, linkedGuid) VALUES (?, ?)", CONNECTION_ASYNC);
|
||||
PrepareStatement(WORLD_SEL_CREATURE_TEXT, "SELECT entry, groupid, id, text, type, language, probability, emote, duration, sound, BroadcastTextID, TextRange FROM creature_text", CONNECTION_SYNCH);
|
||||
PrepareStatement(WORLD_SEL_CREATURE_TEXT, "SELECT CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, BroadcastTextId, TextRange FROM creature_text", CONNECTION_SYNCH);
|
||||
PrepareStatement(WORLD_SEL_SMART_SCRIPTS, "SELECT entryorguid, source_type, id, link, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, target_type, target_param1, target_param2, target_param3, target_x, target_y, target_z, target_o FROM smart_scripts ORDER BY entryorguid, source_type, id, link", CONNECTION_SYNCH);
|
||||
PrepareStatement(WORLD_SEL_SMARTAI_WP, "SELECT entry, pointid, position_x, position_y, position_z FROM waypoints ORDER BY entry, pointid", CONNECTION_SYNCH);
|
||||
PrepareStatement(WORLD_DEL_GAMEOBJECT, "DELETE FROM gameobject WHERE guid = ?", CONNECTION_ASYNC);
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ include_directories(
|
|||
${OPENSSL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Group sources
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(authserver
|
||||
${authserver_SRCS}
|
||||
${authserver_PCH_SRC}
|
||||
|
|
|
|||
|
|
@ -2878,13 +2878,12 @@ void AchievementGlobalMgr::LoadRewardLocales()
|
|||
|
||||
m_achievementRewardLocales.clear(); // need for reload case
|
||||
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, subject_loc1, text_loc1, subject_loc2, text_loc2, subject_loc3, text_loc3, subject_loc4, text_loc4, "
|
||||
"subject_loc5, text_loc5, subject_loc6, text_loc6, subject_loc7, text_loc7, subject_loc8, text_loc8"
|
||||
" FROM locales_achievement_reward");
|
||||
// 0 1 2 3
|
||||
QueryResult result = WorldDatabase.Query("SELECT ID, Locale, Subject, Text FROM achievement_reward_locale");
|
||||
|
||||
if (!result)
|
||||
{
|
||||
sLog->outString(">> Loaded 0 achievement reward locale strings. DB table `locales_achievement_reward` is empty");
|
||||
sLog->outErrorDb(">> Loaded 0 achievement reward locale strings. DB table `achievement_reward_locale` is empty");
|
||||
sLog->outString();
|
||||
return;
|
||||
}
|
||||
|
|
@ -2893,24 +2892,27 @@ void AchievementGlobalMgr::LoadRewardLocales()
|
|||
{
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 entry = fields[0].GetUInt32();
|
||||
uint32 ID = fields[0].GetUInt32();
|
||||
std::string LocaleName = fields[1].GetString();
|
||||
std::string Subject = fields[2].GetString();
|
||||
std::string Text = fields[3].GetString();
|
||||
|
||||
if (m_achievementRewards.find(entry) == m_achievementRewards.end())
|
||||
if (m_achievementRewards.find(ID) == m_achievementRewards.end())
|
||||
{
|
||||
sLog->outErrorDb("Table `locales_achievement_reward` (Entry: %u) has locale strings for non-existing achievement reward.", entry);
|
||||
sLog->outErrorDb("Table `achievement_reward_locale` (Entry: %u) has locale strings for non-existing achievement reward.", ID);
|
||||
continue;
|
||||
}
|
||||
|
||||
AchievementRewardLocale& data = m_achievementRewardLocales[entry];
|
||||
AchievementRewardLocale& data = m_achievementRewardLocales[ID];
|
||||
LocaleConstant locale = GetLocaleByName(LocaleName);
|
||||
if (locale == LOCALE_enUS)
|
||||
continue;
|
||||
|
||||
ObjectMgr::AddLocaleString(Subject, locale, data.Subject);
|
||||
ObjectMgr::AddLocaleString(Text, locale, data.Text);
|
||||
|
||||
for (int i = 1; i < TOTAL_LOCALES; ++i)
|
||||
{
|
||||
LocaleConstant locale = (LocaleConstant) i;
|
||||
ObjectMgr::AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.subject);
|
||||
ObjectMgr::AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.text);
|
||||
}
|
||||
} while (result->NextRow());
|
||||
|
||||
sLog->outString(">> Loaded %lu achievement reward locale strings in %u ms", (unsigned long)m_achievementRewardLocales.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString(">> Loaded %lu Achievement Reward Locale strings in %u ms", (unsigned long)m_achievementRewardLocales.size(), GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -232,8 +232,8 @@ typedef std::map<uint32, AchievementReward> AchievementRewards;
|
|||
|
||||
struct AchievementRewardLocale
|
||||
{
|
||||
StringVector subject;
|
||||
StringVector text;
|
||||
StringVector Subject;
|
||||
StringVector Text;
|
||||
};
|
||||
|
||||
typedef std::map<uint32, AchievementRewardLocale> AchievementRewardLocales;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#include "CreatureTextMgr.h"
|
||||
#include "GroupMgr.h"
|
||||
#include "Transport.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
Battlefield::Battlefield()
|
||||
{
|
||||
|
|
@ -583,7 +584,7 @@ BfGraveyard* Battlefield::GetGraveyardById(uint32 id) const
|
|||
return NULL;
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const * Battlefield::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const * Battlefield::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
BfGraveyard* closestGY = NULL;
|
||||
float maxdist = -1;
|
||||
|
|
@ -604,7 +605,7 @@ WorldSafeLocsEntry const * Battlefield::GetClosestGraveyard(Player* player)
|
|||
}
|
||||
|
||||
if (closestGY)
|
||||
return sWorldSafeLocsStore.LookupEntry(closestGY->GetGraveyardId());
|
||||
return sGraveyard->GetGraveyard(closestGY->GetGraveyardId());
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -682,7 +683,7 @@ void BfGraveyard::SetSpirit(Creature* spirit, TeamId team)
|
|||
|
||||
float BfGraveyard::GetDistance(Player* player)
|
||||
{
|
||||
const WorldSafeLocsEntry* safeLoc = sWorldSafeLocsStore.LookupEntry(m_GraveyardId);
|
||||
const GraveyardStruct* safeLoc = sGraveyard->GetGraveyard(m_GraveyardId);
|
||||
return player->GetDistance2d(safeLoc->x, safeLoc->y);
|
||||
}
|
||||
|
||||
|
|
@ -744,7 +745,7 @@ void BfGraveyard::GiveControlTo(TeamId team)
|
|||
|
||||
void BfGraveyard::RelocateDeadPlayers()
|
||||
{
|
||||
WorldSafeLocsEntry const* closestGrave = NULL;
|
||||
GraveyardStruct const* closestGrave = NULL;
|
||||
for (GuidSet::const_iterator itr = m_ResurrectQueue.begin(); itr != m_ResurrectQueue.end(); ++itr)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(*itr);
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ class Battlefield : public ZoneScript
|
|||
|
||||
// Graveyard methods
|
||||
// Find which graveyard the player must be teleported to to be resurrected by spiritguide
|
||||
WorldSafeLocsEntry const * GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const * GetClosestGraveyard(Player* player);
|
||||
|
||||
virtual void AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid);
|
||||
void RemovePlayerFromResurrectQueue(uint64 player_guid);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "BattlegroundRV.h"
|
||||
#include "Transport.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "GameGraveyard.h"
|
||||
#ifdef ELUNA
|
||||
#include "LuaEngine.h"
|
||||
#endif
|
||||
|
|
@ -40,7 +41,7 @@ namespace Trinity
|
|||
class BattlegroundChatBuilder
|
||||
{
|
||||
public:
|
||||
BattlegroundChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, va_list* args = NULL)
|
||||
BattlegroundChatBuilder(ChatMsg msgtype, uint32 textId, Player const* source, va_list* args = NULL)
|
||||
: _msgtype(msgtype), _textId(textId), _source(source), _args(args) { }
|
||||
|
||||
void operator()(WorldPacket& data, LocaleConstant loc_idx)
|
||||
|
|
@ -69,7 +70,7 @@ namespace Trinity
|
|||
}
|
||||
|
||||
ChatMsg _msgtype;
|
||||
int32 _textId;
|
||||
uint32 _textId;
|
||||
Player const* _source;
|
||||
va_list* _args;
|
||||
};
|
||||
|
|
@ -77,7 +78,7 @@ namespace Trinity
|
|||
class Battleground2ChatBuilder
|
||||
{
|
||||
public:
|
||||
Battleground2ChatBuilder(ChatMsg msgtype, int32 textId, Player const* source, int32 arg1, int32 arg2)
|
||||
Battleground2ChatBuilder(ChatMsg msgtype, uint32 textId, Player const* source, int32 arg1, int32 arg2)
|
||||
: _msgtype(msgtype), _textId(textId), _source(source), _arg1(arg1), _arg2(arg2) {}
|
||||
|
||||
void operator()(WorldPacket& data, LocaleConstant loc_idx)
|
||||
|
|
@ -94,10 +95,10 @@ namespace Trinity
|
|||
|
||||
private:
|
||||
ChatMsg _msgtype;
|
||||
int32 _textId;
|
||||
uint32 _textId;
|
||||
Player const* _source;
|
||||
int32 _arg1;
|
||||
int32 _arg2;
|
||||
uint32 _arg1;
|
||||
uint32 _arg2;
|
||||
};
|
||||
} // namespace Trinity
|
||||
|
||||
|
|
@ -1434,7 +1435,7 @@ void Battleground::RelocateDeadPlayers(uint64 queueIndex)
|
|||
std::vector<uint64>& ghostList = m_ReviveQueue[queueIndex];
|
||||
if (!ghostList.empty())
|
||||
{
|
||||
WorldSafeLocsEntry const* closestGrave = NULL;
|
||||
GraveyardStruct const* closestGrave = NULL;
|
||||
for (std::vector<uint64>::const_iterator itr = ghostList.begin(); itr != ghostList.end(); ++itr)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(*itr);
|
||||
|
|
@ -1692,7 +1693,7 @@ bool Battleground::AddSpiritGuide(uint32 type, float x, float y, float z, float
|
|||
return false;
|
||||
}
|
||||
|
||||
void Battleground::SendMessageToAll(int32 entry, ChatMsg type, Player const* source)
|
||||
void Battleground::SendMessageToAll(uint32 entry, ChatMsg type, Player const* source)
|
||||
{
|
||||
if (!entry)
|
||||
return;
|
||||
|
|
@ -1702,7 +1703,7 @@ void Battleground::SendMessageToAll(int32 entry, ChatMsg type, Player const* sou
|
|||
BroadcastWorker(bg_do);
|
||||
}
|
||||
|
||||
void Battleground::PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ...)
|
||||
void Battleground::PSendMessageToAll(uint32 entry, ChatMsg type, Player const* source, ...)
|
||||
{
|
||||
if (!entry)
|
||||
return;
|
||||
|
|
@ -1717,7 +1718,7 @@ void Battleground::PSendMessageToAll(int32 entry, ChatMsg type, Player const* so
|
|||
va_end(ap);
|
||||
}
|
||||
|
||||
void Battleground::SendWarningToAll(int32 entry, ...)
|
||||
void Battleground::SendWarningToAll(uint32 entry, ...)
|
||||
{
|
||||
if (!entry)
|
||||
return;
|
||||
|
|
@ -1742,7 +1743,7 @@ void Battleground::SendWarningToAll(int32 entry, ...)
|
|||
}
|
||||
}
|
||||
|
||||
void Battleground::SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 arg1, int32 arg2)
|
||||
void Battleground::SendMessage2ToAll(uint32 entry, ChatMsg type, Player const* source, uint32 arg1, uint32 arg2)
|
||||
{
|
||||
Trinity::Battleground2ChatBuilder bg_builder(type, entry, source, arg1, arg2);
|
||||
Trinity::LocalizedPacketDo<Trinity::Battleground2ChatBuilder> bg_do(bg_builder);
|
||||
|
|
@ -1914,9 +1915,9 @@ void Battleground::SetBgRaid(TeamId teamId, Group* bg_raid)
|
|||
old_raid = bg_raid;
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* Battleground::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* Battleground::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
return sObjectMgr->GetClosestGraveyard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), player->GetBgTeamId());
|
||||
return sGraveyard->GetClosestGraveyard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), player->GetBgTeamId());
|
||||
}
|
||||
|
||||
void Battleground::StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class BattlegroundRV;
|
|||
class BattlegroundIC;
|
||||
|
||||
struct PvPDifficultyEntry;
|
||||
struct WorldSafeLocsEntry;
|
||||
struct GraveyardStruct;
|
||||
|
||||
enum BattlegroundDesertionType
|
||||
{
|
||||
|
|
@ -488,12 +488,12 @@ class Battleground
|
|||
void EndBattleground(TeamId winnerTeamId);
|
||||
void BlockMovement(Player* player);
|
||||
|
||||
void SendWarningToAll(int32 entry, ...);
|
||||
void SendMessageToAll(int32 entry, ChatMsg type, Player const* source = NULL);
|
||||
void PSendMessageToAll(int32 entry, ChatMsg type, Player const* source, ...);
|
||||
void SendWarningToAll(uint32 entry, ...);
|
||||
void SendMessageToAll(uint32 entry, ChatMsg type, Player const* source = NULL);
|
||||
void PSendMessageToAll(uint32 entry, ChatMsg type, Player const* source, ...);
|
||||
|
||||
// specialized version with 2 string id args
|
||||
void SendMessage2ToAll(int32 entry, ChatMsg type, Player const* source, int32 strId1 = 0, int32 strId2 = 0);
|
||||
void SendMessage2ToAll(uint32 entry, ChatMsg type, Player const* source, uint32 strId1 = 0, uint32 strId2 = 0);
|
||||
|
||||
// Raid Group
|
||||
Group* GetBgRaid(TeamId teamId) const { return m_BgRaids[teamId]; }
|
||||
|
|
@ -541,7 +541,7 @@ class Battleground
|
|||
virtual void HandlePlayerResurrect(Player* /*player*/) {}
|
||||
|
||||
// Death related
|
||||
virtual WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
virtual GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
|
||||
virtual void AddPlayer(Player* player); // must be implemented in BG subclass
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "DisableMgr.h"
|
||||
#include "Opcodes.h"
|
||||
#include "BattlegroundQueue.h"
|
||||
#include "GameGraveyard.h"
|
||||
#ifdef ELUNA
|
||||
#include "LuaEngine.h"
|
||||
#endif
|
||||
|
|
@ -649,7 +650,7 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
|
|||
else
|
||||
{
|
||||
uint32 startId = fields[5].GetUInt32();
|
||||
if (WorldSafeLocsEntry const* start = sWorldSafeLocsStore.LookupEntry(startId))
|
||||
if (GraveyardStruct const* start = sGraveyard->GetGraveyard(startId))
|
||||
{
|
||||
data.Team1StartLocX = start->x;
|
||||
data.Team1StartLocY = start->y;
|
||||
|
|
@ -658,12 +659,12 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
|
|||
}
|
||||
else
|
||||
{
|
||||
sLog->outError("Table `battleground_template` for id %u have non-existed WorldSafeLocs.dbc id %u in field `AllianceStartLoc`. BG not created.", data.bgTypeId, startId);
|
||||
sLog->outError("Table `battleground_template` for id %u have non-existed `game_graveyard` table id %u in field `AllianceStartLoc`. BG not created.", data.bgTypeId, startId);
|
||||
continue;
|
||||
}
|
||||
|
||||
startId = fields[7].GetUInt32();
|
||||
if (WorldSafeLocsEntry const* start = sWorldSafeLocsStore.LookupEntry(startId))
|
||||
if (GraveyardStruct const* start = sGraveyard->GetGraveyard(startId))
|
||||
{
|
||||
data.Team2StartLocX = start->x;
|
||||
data.Team2StartLocY = start->y;
|
||||
|
|
@ -672,7 +673,7 @@ void BattlegroundMgr::CreateInitialBattlegrounds()
|
|||
}
|
||||
else
|
||||
{
|
||||
sLog->outError("Table `battleground_template` for id %u have non-existed WorldSafeLocs.dbc id %u in field `HordeStartLoc`. BG not created.", data.bgTypeId, startId);
|
||||
sLog->outError("Table `battleground_template` for id %u have non-existed `game_graveyard` table id %u in field `HordeStartLoc`. BG not created.", data.bgTypeId, startId);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "Player.h"
|
||||
#include "Util.h"
|
||||
#include "WorldSession.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundAB::BattlegroundAB()
|
||||
{
|
||||
|
|
@ -424,10 +425,10 @@ void BattlegroundAB::EndBattleground(TeamId winnerTeamId)
|
|||
_bgEvents.Reset();
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundAB::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundAB::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
WorldSafeLocsEntry const* entry = sWorldSafeLocsStore.LookupEntry(BG_AB_GraveyardIds[BG_AB_SPIRIT_ALIANCE + player->GetTeamId()]);
|
||||
WorldSafeLocsEntry const* nearestEntry = entry;
|
||||
GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_AB_GraveyardIds[BG_AB_SPIRIT_ALIANCE + player->GetTeamId()]);
|
||||
GraveyardStruct const* nearestEntry = entry;
|
||||
|
||||
float pX = player->GetPositionX();
|
||||
float pY = player->GetPositionY();
|
||||
|
|
@ -437,7 +438,7 @@ WorldSafeLocsEntry const* BattlegroundAB::GetClosestGraveyard(Player* player)
|
|||
for (uint8 i = BG_AB_NODE_STABLES; i < BG_AB_DYNAMIC_NODES_COUNT; ++i)
|
||||
if (_capturePointInfo[i]._ownerTeamId == player->GetTeamId())
|
||||
{
|
||||
entry = sWorldSafeLocsStore.LookupEntry(BG_AB_GraveyardIds[i]);
|
||||
entry = sGraveyard->GetGraveyard(BG_AB_GraveyardIds[i]);
|
||||
dist = (entry->x - pX)*(entry->x - pX) + (entry->y - pY)*(entry->y - pY);
|
||||
if (dist < minDist)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ class BattlegroundAB : public Battleground
|
|||
bool SetupBattleground();
|
||||
void Init();
|
||||
void EndBattleground(TeamId winnerTeamId);
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
|
||||
void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
|
||||
void FillInitialWorldStates(WorldPacket& data);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "SpellAuras.h"
|
||||
#include "GameEventMgr.h"
|
||||
#include "WorldSession.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundAV::BattlegroundAV()
|
||||
{
|
||||
|
|
@ -1174,23 +1175,23 @@ void BattlegroundAV::SendMineWorldStates(uint32 mine)
|
|||
UpdateWorldState(BG_AV_MineWorldStates[mine][owner], 1);
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundAV::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundAV::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
WorldSafeLocsEntry const* pGraveyard = NULL;
|
||||
WorldSafeLocsEntry const* entry = NULL;
|
||||
GraveyardStruct const* pGraveyard = NULL;
|
||||
GraveyardStruct const* entry = NULL;
|
||||
float dist = 0;
|
||||
float minDist = 0;
|
||||
float x, y;
|
||||
|
||||
player->GetPosition(x, y);
|
||||
|
||||
pGraveyard = sWorldSafeLocsStore.LookupEntry(BG_AV_GraveyardIds[player->GetTeamId()+7]);
|
||||
pGraveyard = sGraveyard->GetGraveyard(BG_AV_GraveyardIds[player->GetTeamId()+7]);
|
||||
minDist = (pGraveyard->x - x)*(pGraveyard->x - x)+(pGraveyard->y - y)*(pGraveyard->y - y);
|
||||
|
||||
for (uint8 i = BG_AV_NODES_FIRSTAID_STATION; i <= BG_AV_NODES_FROSTWOLF_HUT; ++i)
|
||||
if (m_Nodes[i].OwnerId == player->GetTeamId() && m_Nodes[i].State == POINT_CONTROLED)
|
||||
{
|
||||
entry = sWorldSafeLocsStore.LookupEntry(BG_AV_GraveyardIds[i]);
|
||||
entry = sGraveyard->GetGraveyard(BG_AV_GraveyardIds[i]);
|
||||
if (entry)
|
||||
{
|
||||
dist = (entry->x - x)*(entry->x - x)+(entry->y - y)*(entry->y - y);
|
||||
|
|
|
|||
|
|
@ -1591,7 +1591,7 @@ class BattlegroundAV : public Battleground
|
|||
|
||||
void EndBattleground(TeamId winnerTeamId);
|
||||
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
|
||||
/* achievement req. */
|
||||
bool IsBothMinesControlledByTeam(TeamId teamId) const;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "Player.h"
|
||||
#include "Util.h"
|
||||
#include "WorldSession.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundEY::BattlegroundEY()
|
||||
{
|
||||
|
|
@ -309,11 +310,11 @@ bool BattlegroundEY::SetupBattleground()
|
|||
AddObject(BG_EY_OBJECT_SPEEDBUFF_FEL_REAVER + i * 3 + 2, Buff_Entries[2], at->x, at->y, at->z, 0.907571f, 0, 0, 0.438371f, 0.898794f, RESPAWN_ONE_DAY);
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* sg = NULL;
|
||||
sg = sWorldSafeLocsStore.LookupEntry(BG_EY_GRAVEYARD_MAIN_ALLIANCE);
|
||||
GraveyardStruct const* sg = NULL;
|
||||
sg = sGraveyard->GetGraveyard(BG_EY_GRAVEYARD_MAIN_ALLIANCE);
|
||||
AddSpiritGuide(BG_EY_SPIRIT_MAIN_ALLIANCE, sg->x, sg->y, sg->z, 3.124139f, TEAM_ALLIANCE);
|
||||
|
||||
sg = sWorldSafeLocsStore.LookupEntry(BG_EY_GRAVEYARD_MAIN_HORDE);
|
||||
sg = sGraveyard->GetGraveyard(BG_EY_GRAVEYARD_MAIN_HORDE);
|
||||
AddSpiritGuide(BG_EY_SPIRIT_MAIN_HORDE, sg->x, sg->y, sg->z, 3.193953f, TEAM_HORDE);
|
||||
|
||||
for (uint32 i = BG_EY_OBJECT_DOOR_A; i < BG_EY_OBJECT_MAX; ++i)
|
||||
|
|
@ -480,7 +481,7 @@ void BattlegroundEY::EventTeamCapturedPoint(TeamId teamId, uint32 point)
|
|||
if (BgCreatures[point])
|
||||
DelCreature(point);
|
||||
|
||||
WorldSafeLocsEntry const* sg = sWorldSafeLocsStore.LookupEntry(m_CapturingPointTypes[point].GraveYardId);
|
||||
GraveyardStruct const* sg = sGraveyard->GetGraveyard(m_CapturingPointTypes[point].GraveYardId);
|
||||
AddSpiritGuide(point, sg->x, sg->y, sg->z, 3.124139f, teamId);
|
||||
|
||||
UpdatePointsIcons(point);
|
||||
|
|
@ -565,10 +566,10 @@ void BattlegroundEY::FillInitialWorldStates(WorldPacket& data)
|
|||
data << uint32(PROGRESS_BAR_STATUS) << uint32(0);
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundEY::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundEY::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
WorldSafeLocsEntry const* entry = sWorldSafeLocsStore.LookupEntry(BG_EY_GRAVEYARD_MAIN_ALLIANCE + player->GetTeamId());
|
||||
WorldSafeLocsEntry const* nearestEntry = entry;
|
||||
GraveyardStruct const* entry = sGraveyard->GetGraveyard(BG_EY_GRAVEYARD_MAIN_ALLIANCE + player->GetTeamId());
|
||||
GraveyardStruct const* nearestEntry = entry;
|
||||
|
||||
float pX = player->GetPositionX();
|
||||
float pY = player->GetPositionY();
|
||||
|
|
@ -579,7 +580,7 @@ WorldSafeLocsEntry const* BattlegroundEY::GetClosestGraveyard(Player* player)
|
|||
for (uint8 i = 0; i < EY_POINTS_MAX; ++i)
|
||||
if (_capturePointInfo[i].IsUnderControl(player->GetTeamId()))
|
||||
{
|
||||
entry = sWorldSafeLocsStore.LookupEntry(m_CapturingPointTypes[i].GraveYardId);
|
||||
entry = sGraveyard->GetGraveyard(m_CapturingPointTypes[i].GraveYardId);
|
||||
dist = (entry->x - pX)*(entry->x - pX) + (entry->y - pY)*(entry->y - pY) + (entry->z - pZ)*(entry->z - pZ);
|
||||
if (dist < minDist)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ class BattlegroundEY : public Battleground
|
|||
void HandleBuffUse(uint64 buff_guid);
|
||||
void HandleAreaTrigger(Player* player, uint32 trigger);
|
||||
void HandleKillPlayer(Player* player, Player* killer);
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
bool SetupBattleground();
|
||||
void Init();
|
||||
void EndBattleground(TeamId winnerTeamId);
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include "Transport.h"
|
||||
#include "WorldSession.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundIC::BattlegroundIC()
|
||||
{
|
||||
|
|
@ -950,7 +951,7 @@ void BattlegroundIC::EventPlayerDamagedGO(Player* /*player*/, GameObject* /*go*/
|
|||
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundIC::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
// Is there any occupied node for this team?
|
||||
std::vector<uint8> nodes;
|
||||
|
|
@ -958,7 +959,7 @@ WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player)
|
|||
if (nodePoint[i].faction == player->GetTeamId() && !nodePoint[i].needChange) // xinef: controlled by faction and not contested!
|
||||
nodes.push_back(i);
|
||||
|
||||
WorldSafeLocsEntry const* good_entry = NULL;
|
||||
GraveyardStruct const* good_entry = NULL;
|
||||
// If so, select the closest node to place ghost on
|
||||
if (!nodes.empty())
|
||||
{
|
||||
|
|
@ -968,7 +969,7 @@ WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player)
|
|||
float mindist = 999999.0f;
|
||||
for (uint8 i = 0; i < nodes.size(); ++i)
|
||||
{
|
||||
WorldSafeLocsEntry const*entry = sWorldSafeLocsStore.LookupEntry(BG_IC_GraveyardIds[nodes[i]]);
|
||||
GraveyardStruct const*entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[nodes[i]]);
|
||||
if (!entry)
|
||||
continue;
|
||||
float dist = (entry->x - plr_x)*(entry->x - plr_x)+(entry->y - plr_y)*(entry->y - plr_y);
|
||||
|
|
@ -982,7 +983,7 @@ WorldSafeLocsEntry const* BattlegroundIC::GetClosestGraveyard(Player* player)
|
|||
}
|
||||
// If not, place ghost on starting location
|
||||
if (!good_entry)
|
||||
good_entry = sWorldSafeLocsStore.LookupEntry(BG_IC_GraveyardIds[player->GetTeamId()+MAX_NODE_TYPES]);
|
||||
good_entry = sGraveyard->GetGraveyard(BG_IC_GraveyardIds[player->GetTeamId()+MAX_NODE_TYPES]);
|
||||
|
||||
return good_entry;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -911,7 +911,7 @@ class BattlegroundIC : public Battleground
|
|||
void EventPlayerDamagedGO(Player* /*player*/, GameObject* go, uint32 eventType);
|
||||
void DestroyGate(Player* player, GameObject* go);
|
||||
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
|
||||
/* Scorekeeping */
|
||||
void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include "ObjectMgr.h"
|
||||
#include "WorldPacket.h"
|
||||
#include "WorldSession.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundSA::BattlegroundSA()
|
||||
{
|
||||
|
|
@ -163,8 +164,8 @@ bool BattlegroundSA::ResetObjs()
|
|||
//Graveyards!
|
||||
for (uint8 i = 0;i < BG_SA_MAX_GY; i++)
|
||||
{
|
||||
WorldSafeLocsEntry const* sg = NULL;
|
||||
sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);
|
||||
GraveyardStruct const* sg = NULL;
|
||||
sg = sGraveyard->GetGraveyard(BG_SA_GYEntries[i]);
|
||||
|
||||
if (!sg)
|
||||
{
|
||||
|
|
@ -761,9 +762,9 @@ void BattlegroundSA::DestroyGate(Player* player, GameObject* go)
|
|||
}
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundSA::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundSA::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
WorldSafeLocsEntry const* closest = NULL;
|
||||
GraveyardStruct const* closest = NULL;
|
||||
float mindist = 999999.0f;
|
||||
float x, y;
|
||||
|
||||
|
|
@ -774,7 +775,7 @@ WorldSafeLocsEntry const* BattlegroundSA::GetClosestGraveyard(Player* player)
|
|||
if (GraveyardStatus[i] != player->GetTeamId())
|
||||
continue;
|
||||
|
||||
WorldSafeLocsEntry const* ret = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);
|
||||
GraveyardStruct const* ret = sGraveyard->GetGraveyard(BG_SA_GYEntries[i]);
|
||||
|
||||
// if on beach
|
||||
if (i == BG_SA_BEACH_GY)
|
||||
|
|
@ -792,7 +793,7 @@ WorldSafeLocsEntry const* BattlegroundSA::GetClosestGraveyard(Player* player)
|
|||
}
|
||||
}
|
||||
if (!closest && GraveyardStatus[BG_SA_BEACH_GY] == player->GetTeamId())
|
||||
return sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[BG_SA_BEACH_GY]);
|
||||
return sGraveyard->GetGraveyard(BG_SA_GYEntries[BG_SA_BEACH_GY]);
|
||||
|
||||
|
||||
return closest;
|
||||
|
|
@ -883,7 +884,7 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
|
|||
std::vector<uint64> ghost_list = m_ReviveQueue[BgCreatures[BG_SA_MAXNPC + i]];
|
||||
if (!ghost_list.empty())
|
||||
{
|
||||
WorldSafeLocsEntry const* ClosestGrave = NULL;
|
||||
GraveyardStruct const* ClosestGrave = NULL;
|
||||
for (std::vector<uint64>::const_iterator itr = ghost_list.begin(); itr != ghost_list.end(); ++itr)
|
||||
{
|
||||
Player* player = ObjectAccessor::FindPlayer(*itr);
|
||||
|
|
@ -902,7 +903,7 @@ void BattlegroundSA::CaptureGraveyard(BG_SA_Graveyards i, Player *Source)
|
|||
|
||||
DelCreature(BG_SA_MAXNPC + i);
|
||||
|
||||
WorldSafeLocsEntry const* sg = sWorldSafeLocsStore.LookupEntry(BG_SA_GYEntries[i]);
|
||||
GraveyardStruct const* sg = sGraveyard->GetGraveyard(BG_SA_GYEntries[i]);
|
||||
if (!sg)
|
||||
{
|
||||
sLog->outError("BattlegroundSA::CaptureGraveyard: non-existant GY entry: %u", BG_SA_GYEntries[i]);
|
||||
|
|
|
|||
|
|
@ -445,7 +445,7 @@ class BattlegroundSA : public Battleground
|
|||
/// Called when a player kill a unit in bg
|
||||
void HandleKillUnit(Creature* creature, Player* killer);
|
||||
/// Return the nearest graveyard where player can respawn
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
/// Called when a player click on flag (graveyard flag)
|
||||
void EventPlayerClickedOnFlag(Player* Source, GameObject* gameObject);
|
||||
/// Called when a player use a gamobject (relic)
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
#include "Player.h"
|
||||
#include "World.h"
|
||||
#include "WorldPacket.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
BattlegroundWS::BattlegroundWS()
|
||||
{
|
||||
|
|
@ -401,10 +402,10 @@ bool BattlegroundWS::SetupBattleground()
|
|||
AddObject(BG_WS_OBJECT_DOOR_H_4, BG_OBJECT_DOOR_H_4_WS_ENTRY, 950.7952f, 1459.583f, 342.1523f, 0.05235988f, 0, 0, 0.02617695f, 0.9996573f, RESPAWN_IMMEDIATELY);
|
||||
|
||||
|
||||
WorldSafeLocsEntry const* sg = sWorldSafeLocsStore.LookupEntry(WS_GRAVEYARD_MAIN_ALLIANCE);
|
||||
GraveyardStruct const* sg = sGraveyard->GetGraveyard(WS_GRAVEYARD_MAIN_ALLIANCE);
|
||||
AddSpiritGuide(WS_SPIRIT_MAIN_ALLIANCE, sg->x, sg->y, sg->z, 3.124139f, TEAM_ALLIANCE);
|
||||
|
||||
sg = sWorldSafeLocsStore.LookupEntry(WS_GRAVEYARD_MAIN_HORDE);
|
||||
sg = sGraveyard->GetGraveyard(WS_GRAVEYARD_MAIN_HORDE);
|
||||
AddSpiritGuide(WS_SPIRIT_MAIN_HORDE, sg->x, sg->y, sg->z, 3.193953f, TEAM_HORDE);
|
||||
|
||||
for (uint32 i = BG_WS_OBJECT_DOOR_A_1; i < BG_WS_OBJECT_MAX; ++i)
|
||||
|
|
@ -495,12 +496,12 @@ void BattlegroundWS::UpdatePlayerScore(Player* player, uint32 type, uint32 value
|
|||
}
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* BattlegroundWS::GetClosestGraveyard(Player* player)
|
||||
GraveyardStruct const* BattlegroundWS::GetClosestGraveyard(Player* player)
|
||||
{
|
||||
if (GetStatus() == STATUS_IN_PROGRESS)
|
||||
return sWorldSafeLocsStore.LookupEntry(player->GetTeamId() == TEAM_ALLIANCE ? WS_GRAVEYARD_MAIN_ALLIANCE : WS_GRAVEYARD_MAIN_HORDE);
|
||||
return sGraveyard->GetGraveyard(player->GetTeamId() == TEAM_ALLIANCE ? WS_GRAVEYARD_MAIN_ALLIANCE : WS_GRAVEYARD_MAIN_HORDE);
|
||||
else
|
||||
return sWorldSafeLocsStore.LookupEntry(player->GetTeamId() == TEAM_ALLIANCE ? WS_GRAVEYARD_FLAGROOM_ALLIANCE : WS_GRAVEYARD_FLAGROOM_HORDE);
|
||||
return sGraveyard->GetGraveyard(player->GetTeamId() == TEAM_ALLIANCE ? WS_GRAVEYARD_FLAGROOM_ALLIANCE : WS_GRAVEYARD_FLAGROOM_HORDE);
|
||||
}
|
||||
|
||||
void BattlegroundWS::FillInitialWorldStates(WorldPacket& data)
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ class BattlegroundWS : public Battleground
|
|||
bool SetupBattleground();
|
||||
void Init();
|
||||
void EndBattleground(TeamId winnerTeamId);
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(Player* player);
|
||||
GraveyardStruct const* GetClosestGraveyard(Player* player);
|
||||
|
||||
void UpdateFlagState(TeamId teamId, uint32 value);
|
||||
void UpdatePlayerScore(Player* player, uint32 type, uint32 value, bool doAddHonor = true);
|
||||
|
|
|
|||
|
|
@ -213,6 +213,9 @@ include_directories(
|
|||
${OPENSSL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Group sources
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_library(game STATIC
|
||||
${game_STAT_SRCS}
|
||||
${game_STAT_PCH_SRC}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ std::vector<ChatCommand> const& ChatHandler::getCommandTable()
|
|||
return commandTableCache;
|
||||
}
|
||||
|
||||
std::string ChatHandler::PGetParseString(int32 entry, ...) const
|
||||
std::string ChatHandler::PGetParseString(uint32 entry, ...) const
|
||||
{
|
||||
const char *format = GetTrinityString(entry);
|
||||
char str[1024];
|
||||
|
|
@ -70,7 +70,7 @@ std::string ChatHandler::PGetParseString(int32 entry, ...) const
|
|||
return std::string(str);
|
||||
}
|
||||
|
||||
const char *ChatHandler::GetTrinityString(int32 entry) const
|
||||
char const* ChatHandler::GetTrinityString(uint32 entry) const
|
||||
{
|
||||
return m_session->GetTrinityString(entry);
|
||||
}
|
||||
|
|
@ -209,12 +209,12 @@ void ChatHandler::SendGlobalGMSysMessage(const char *str)
|
|||
free(buf);
|
||||
}
|
||||
|
||||
void ChatHandler::SendSysMessage(int32 entry)
|
||||
void ChatHandler::SendSysMessage(uint32 entry)
|
||||
{
|
||||
SendSysMessage(GetTrinityString(entry));
|
||||
}
|
||||
|
||||
void ChatHandler::PSendSysMessage(int32 entry, ...)
|
||||
void ChatHandler::PSendSysMessage(uint32 entry, ...)
|
||||
{
|
||||
const char *format = GetTrinityString(entry);
|
||||
va_list ap;
|
||||
|
|
@ -1217,7 +1217,7 @@ std::string ChatHandler::GetNameLink(Player* chr) const
|
|||
return playerLink(chr->GetName());
|
||||
}
|
||||
|
||||
const char *CliHandler::GetTrinityString(int32 entry) const
|
||||
char const* CliHandler::GetTrinityString(uint32 entry) const
|
||||
{
|
||||
return sObjectMgr->GetTrinityStringForDBCLocale(entry);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,13 +56,13 @@ class ChatHandler
|
|||
static char* LineFromMessage(char*& pos) { char* start = strtok(pos, "\n"); pos = NULL; return start; }
|
||||
|
||||
// function with different implementation for chat/console
|
||||
virtual const char *GetTrinityString(int32 entry) const;
|
||||
virtual void SendSysMessage(const char *str);
|
||||
virtual char const* GetTrinityString(uint32 entry) const;
|
||||
virtual void SendSysMessage(char const* str);
|
||||
|
||||
void SendSysMessage(int32 entry);
|
||||
void PSendSysMessage(const char *format, ...) ATTR_PRINTF(2, 3);
|
||||
void PSendSysMessage(int32 entry, ...);
|
||||
std::string PGetParseString(int32 entry, ...) const;
|
||||
void SendSysMessage(uint32 entry);
|
||||
void PSendSysMessage(char const* format, ...) ATTR_PRINTF(2, 3);
|
||||
void PSendSysMessage(uint32 entry, ...);
|
||||
std::string PGetParseString(uint32 entry, ...) const;
|
||||
|
||||
bool ParseCommands(const char* text);
|
||||
|
||||
|
|
@ -139,13 +139,13 @@ class CliHandler : public ChatHandler
|
|||
explicit CliHandler(void* callbackArg, Print* zprint) : m_callbackArg(callbackArg), m_print(zprint) {}
|
||||
|
||||
// overwrite functions
|
||||
const char *GetTrinityString(int32 entry) const;
|
||||
bool isAvailable(ChatCommand const& cmd) const;
|
||||
void SendSysMessage(const char *str);
|
||||
std::string GetNameLink() const;
|
||||
bool needReportToTarget(Player* chr) const;
|
||||
LocaleConstant GetSessionDbcLocale() const;
|
||||
int GetSessionDbLocaleIndex() const;
|
||||
char const* GetTrinityString(uint32 entry) const override;
|
||||
bool isAvailable(ChatCommand const& cmd) const override;
|
||||
void SendSysMessage(const char *str) override;
|
||||
std::string GetNameLink() const override;
|
||||
bool needReportToTarget(Player* chr) const override;
|
||||
LocaleConstant GetSessionDbcLocale() const override;
|
||||
int GetSessionDbLocaleIndex() const override;
|
||||
|
||||
private:
|
||||
void* m_callbackArg;
|
||||
|
|
|
|||
|
|
@ -1117,9 +1117,9 @@ bool ConditionMgr::addToGossipMenus(Condition* cond)
|
|||
{
|
||||
for (GossipMenusContainer::iterator itr = pMenuBounds.first; itr != pMenuBounds.second; ++itr)
|
||||
{
|
||||
if ((*itr).second.entry == cond->SourceGroup && (*itr).second.text_id == uint32(cond->SourceEntry))
|
||||
if ((*itr).second.MenuID == cond->SourceGroup && (*itr).second.TextID == uint32(cond->SourceEntry))
|
||||
{
|
||||
(*itr).second.conditions.push_back(cond);
|
||||
(*itr).second.Conditions.push_back(cond);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1136,7 +1136,7 @@ bool ConditionMgr::addToGossipMenuItems(Condition* cond)
|
|||
{
|
||||
for (GossipMenuItemsContainer::iterator itr = pMenuItemBounds.first; itr != pMenuItemBounds.second; ++itr)
|
||||
{
|
||||
if ((*itr).second.MenuId == cond->SourceGroup && (*itr).second.OptionIndex == uint32(cond->SourceEntry))
|
||||
if ((*itr).second.MenuID == cond->SourceGroup && (*itr).second.OptionID == uint32(cond->SourceEntry))
|
||||
{
|
||||
(*itr).second.Conditions.push_back(cond);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -183,7 +183,6 @@ DBCStorage <VehicleSeatEntry> sVehicleSeatStore(VehicleSeatEntryfmt);
|
|||
DBCStorage <WMOAreaTableEntry> sWMOAreaTableStore(WMOAreaTableEntryfmt);
|
||||
DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore(WorldMapAreaEntryfmt);
|
||||
DBCStorage <WorldMapOverlayEntry> sWorldMapOverlayStore(WorldMapOverlayEntryfmt);
|
||||
DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore(WorldSafeLocsEntryfmt);
|
||||
|
||||
typedef std::list<std::string> StoreProblemList;
|
||||
|
||||
|
|
@ -589,7 +588,6 @@ void LoadDBCStores(const std::string& dataPath)
|
|||
sWMOAreaInfoByTripple.insert(WMOAreaInfoByTripple::value_type(WMOAreaTableTripple(entry->rootId, entry->adtId, entry->groupId), entry));
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sWorldMapAreaStore, dbcPath, "WorldMapArea.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sWorldMapOverlayStore, dbcPath, "WorldMapOverlay.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sWorldSafeLocsStore, dbcPath, "WorldSafeLocs.dbc");
|
||||
|
||||
// error checks
|
||||
if (bad_dbc_files.size() >= DBCFileCount)
|
||||
|
|
|
|||
|
|
@ -159,7 +159,6 @@ extern DBCStorage <VehicleSeatEntry> sVehicleSeatStore;
|
|||
extern DBCStorage <WMOAreaTableEntry> sWMOAreaTableStore;
|
||||
//extern DBCStorage <WorldMapAreaEntry> sWorldMapAreaStore; -- use Zone2MapCoordinates and Map2ZoneCoordinates
|
||||
extern DBCStorage <WorldMapOverlayEntry> sWorldMapOverlayStore;
|
||||
extern DBCStorage <WorldSafeLocsEntry> sWorldSafeLocsStore;
|
||||
|
||||
void LoadDBCStores(const std::string& dataPath);
|
||||
|
||||
|
|
|
|||
|
|
@ -2044,17 +2044,6 @@ struct WorldMapOverlayEntry
|
|||
// 9-16 some ints
|
||||
};
|
||||
|
||||
struct WorldSafeLocsEntry
|
||||
{
|
||||
uint32 ID; // 0
|
||||
uint32 map_id; // 1
|
||||
float x; // 2
|
||||
float y; // 3
|
||||
float z; // 4
|
||||
//char* name[16] // 5-20 name, unused
|
||||
// 21 name flags, unused
|
||||
};
|
||||
|
||||
/*
|
||||
struct WorldStateSounds
|
||||
{
|
||||
|
|
|
|||
|
|
@ -116,6 +116,5 @@ char const VehicleSeatEntryfmt[] = "niiffffffffffiiiiiifffffffiiifffiiiiiiiffiii
|
|||
char const WMOAreaTableEntryfmt[] = "niiixxxxxiixxxxxxxxxxxxxxxxx";
|
||||
char const WorldMapAreaEntryfmt[] = "xinxffffixx";
|
||||
char const WorldMapOverlayEntryfmt[] = "nxiiiixxxxxxxxxxx";
|
||||
char const WorldSafeLocsEntryfmt[] = "nifffxxxxxxxxxxxxxxxxx";
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -75,23 +75,44 @@ void GossipMenu::AddMenuItem(uint32 menuId, uint32 menuItemId, uint32 sender, ui
|
|||
for (GossipMenuItemsContainer::const_iterator itr = bounds.first; itr != bounds.second; ++itr)
|
||||
{
|
||||
/// Find the one with the given menu item id.
|
||||
if (itr->second.OptionIndex != menuItemId)
|
||||
if (itr->second.OptionID != menuItemId)
|
||||
continue;
|
||||
|
||||
/// Store texts for localization.
|
||||
std::string strOptionText = itr->second.OptionText;
|
||||
std::string strBoxText = itr->second.BoxText;
|
||||
std::string strOptionText, strBoxText;
|
||||
BroadcastText const* optionBroadcastText = sObjectMgr->GetBroadcastText(itr->second.OptionBroadcastTextID);
|
||||
BroadcastText const* boxBroadcastText = sObjectMgr->GetBroadcastText(itr->second.BoxBroadcastTextID);
|
||||
|
||||
/// OptionText
|
||||
if (optionBroadcastText)
|
||||
ObjectMgr::GetLocaleString(optionBroadcastText->MaleText, GetLocale(), strOptionText);
|
||||
else
|
||||
strOptionText = itr->second.OptionText;
|
||||
|
||||
/// BoxText
|
||||
if (boxBroadcastText)
|
||||
ObjectMgr::GetLocaleString(boxBroadcastText->MaleText, GetLocale(), strBoxText);
|
||||
else
|
||||
strBoxText = itr->second.BoxText;
|
||||
|
||||
/// Check need of localization.
|
||||
if (GetLocale() != DEFAULT_LOCALE)
|
||||
/// Find localizations from database.
|
||||
if (GossipMenuItemsLocale const* no = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))
|
||||
{
|
||||
if (!optionBroadcastText)
|
||||
{
|
||||
/// Translate texts if there are any.
|
||||
ObjectMgr::GetLocaleString(no->OptionText, GetLocale(), strOptionText);
|
||||
ObjectMgr::GetLocaleString(no->BoxText, GetLocale(), strBoxText);
|
||||
/// Find localizations from database.
|
||||
if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->OptionText, GetLocale(), strOptionText);
|
||||
}
|
||||
|
||||
if (!boxBroadcastText)
|
||||
{
|
||||
/// Find localizations from database.
|
||||
if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuItemId)))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, GetLocale(), strBoxText);
|
||||
}
|
||||
}
|
||||
|
||||
/// Add menu item with existing method. Menu item id -1 is also used in ADD_GOSSIP_ITEM macro.
|
||||
AddMenuItem(-1, itr->second.OptionIcon, strOptionText, sender, action, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
|
||||
}
|
||||
|
|
@ -588,23 +609,23 @@ void PlayerMenu::SendQuestQueryResponse(Quest const* quest) const
|
|||
void PlayerMenu::SendQuestGiverOfferReward(Quest const* quest, uint64 npcGUID, bool enableNext) const
|
||||
{
|
||||
std::string questTitle = quest->GetTitle();
|
||||
std::string questOfferRewardText = quest->GetOfferRewardText();
|
||||
std::string RewardText = quest->GetOfferRewardText();
|
||||
|
||||
int32 locale = _session->GetSessionDbLocaleIndex();
|
||||
if (locale >= 0)
|
||||
{
|
||||
if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
|
||||
{
|
||||
ObjectMgr::GetLocaleString(localeData->Title, locale, questTitle);
|
||||
ObjectMgr::GetLocaleString(localeData->OfferRewardText, locale, questOfferRewardText);
|
||||
}
|
||||
|
||||
if (QuestOfferRewardLocale const* questOfferRewardLocale = sObjectMgr->GetQuestOfferRewardLocale(quest->GetQuestId()))
|
||||
ObjectMgr::GetLocaleString(questOfferRewardLocale->RewardText, locale, RewardText);
|
||||
}
|
||||
|
||||
WorldPacket data(SMSG_QUESTGIVER_OFFER_REWARD, 400); // guess size
|
||||
data << uint64(npcGUID);
|
||||
data << uint32(quest->GetQuestId());
|
||||
data << questTitle;
|
||||
data << questOfferRewardText;
|
||||
data << RewardText;
|
||||
|
||||
data << uint8(enableNext ? 1 : 0); // Auto Finish
|
||||
data << uint32(quest->GetFlags()); // 3.3.3 questFlags
|
||||
|
|
@ -690,10 +711,10 @@ void PlayerMenu::SendQuestGiverRequestItems(Quest const* quest, uint64 npcGUID,
|
|||
if (locale >= 0)
|
||||
{
|
||||
if (QuestLocale const* localeData = sObjectMgr->GetQuestLocale(quest->GetQuestId()))
|
||||
{
|
||||
ObjectMgr::GetLocaleString(localeData->Title, locale, questTitle);
|
||||
ObjectMgr::GetLocaleString(localeData->RequestItemsText, locale, requestItemsText);
|
||||
}
|
||||
|
||||
if (QuestRequestItemsLocale const* questRequestItemsLocale = sObjectMgr->GetQuestRequestItemsLocale(quest->GetQuestId()))
|
||||
ObjectMgr::GetLocaleString(questRequestItemsLocale->CompletionText, locale, requestItemsText);
|
||||
}
|
||||
|
||||
if (!quest->GetReqItemsCount() && canComplete)
|
||||
|
|
|
|||
|
|
@ -1849,8 +1849,17 @@ namespace Trinity
|
|||
: i_object(obj), i_msgtype(msgtype), i_textId(textId), i_language(Language(language)), i_target(target) { }
|
||||
void operator()(WorldPacket& data, LocaleConstant loc_idx)
|
||||
{
|
||||
char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
|
||||
ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, text, 0, "", loc_idx);
|
||||
if (BroadcastText const* broadcastText = sObjectMgr->GetBroadcastText(i_textId))
|
||||
{
|
||||
uint8 gender = GENDER_MALE;
|
||||
if (Unit const* unit = i_object->ToUnit())
|
||||
gender = unit->getGender();
|
||||
|
||||
std::string text = broadcastText->GetText(loc_idx, gender);
|
||||
ChatHandler::BuildChatPacket(data, i_msgtype, i_language, i_object, i_target, text, 0, "", loc_idx);
|
||||
}
|
||||
else
|
||||
sLog->outError("MonsterChatBuilder: `broadcast_text` id %i missing", i_textId);
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
@ -1975,10 +1984,17 @@ void WorldObject::MonsterWhisper(int32 textId, Player const* target, bool IsBoss
|
|||
if (!target)
|
||||
return;
|
||||
|
||||
uint8 gender = GENDER_MALE;
|
||||
if (Unit const* unit = ToUnit())
|
||||
gender = unit->getGender();
|
||||
|
||||
LocaleConstant loc_idx = target->GetSession()->GetSessionDbLocaleIndex();
|
||||
char const* text = sObjectMgr->GetTrinityString(textId, loc_idx);
|
||||
|
||||
BroadcastText const* broadcastText = sObjectMgr->GetBroadcastText(textId);
|
||||
std::string text = broadcastText->GetText(loc_idx, gender);
|
||||
|
||||
WorldPacket data;
|
||||
ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text, 0, "", loc_idx);
|
||||
ChatHandler::BuildChatPacket(data, IsBossWhisper ? CHAT_MSG_RAID_BOSS_WHISPER : CHAT_MSG_MONSTER_WHISPER, LANG_UNIVERSAL, this, target, text.c_str(), 0, "", loc_idx);
|
||||
|
||||
target->GetSession()->SendPacket(&data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@
|
|||
#include "SavingSystem.h"
|
||||
#include "TicketMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
#ifdef ELUNA
|
||||
#include "LuaEngine.h"
|
||||
|
|
@ -5566,7 +5567,7 @@ void Player::RepopAtGraveyard()
|
|||
SpawnCorpseBones();
|
||||
}
|
||||
|
||||
WorldSafeLocsEntry const* ClosestGrave = NULL;
|
||||
GraveyardStruct const* ClosestGrave = NULL;
|
||||
|
||||
// Special handle for battleground maps
|
||||
if (Battleground* bg = GetBattleground())
|
||||
|
|
@ -5576,7 +5577,7 @@ void Player::RepopAtGraveyard()
|
|||
if (sBattlefieldMgr->GetBattlefieldToZoneId(GetZoneId()))
|
||||
ClosestGrave = sBattlefieldMgr->GetBattlefieldToZoneId(GetZoneId())->GetClosestGraveyard(this);
|
||||
else
|
||||
ClosestGrave = sObjectMgr->GetClosestGraveyard(GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeamId());
|
||||
ClosestGrave = sGraveyard->GetClosestGraveyard(GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeamId());
|
||||
}
|
||||
|
||||
// stop countdown until repop
|
||||
|
|
@ -5586,11 +5587,11 @@ void Player::RepopAtGraveyard()
|
|||
// and don't show spirit healer location
|
||||
if (ClosestGrave)
|
||||
{
|
||||
TeleportTo(ClosestGrave->map_id, ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, GetOrientation());
|
||||
TeleportTo(ClosestGrave->Map, ClosestGrave->x, ClosestGrave->y, ClosestGrave->z, GetOrientation());
|
||||
if (isDead()) // not send if alive, because it used in TeleportTo()
|
||||
{
|
||||
WorldPacket data(SMSG_DEATH_RELEASE_LOC, 4*4); // show spirit healer position on minimap
|
||||
data << ClosestGrave->map_id;
|
||||
data << ClosestGrave->Map;
|
||||
data << ClosestGrave->x;
|
||||
data << ClosestGrave->y;
|
||||
data << ClosestGrave->z;
|
||||
|
|
@ -14817,7 +14818,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
|
|||
|
||||
if (Creature* creature = source->ToCreature())
|
||||
{
|
||||
if (!(itr->second.OptionNpcflag & npcflags))
|
||||
if (!(itr->second.OptionNpcFlag & npcflags))
|
||||
continue;
|
||||
|
||||
switch (itr->second.OptionType)
|
||||
|
|
@ -14880,7 +14881,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
|
|||
canTalk = false;
|
||||
break;
|
||||
default:
|
||||
sLog->outErrorDb("Creature entry %u has unknown gossip option %u for menu %u", creature->GetEntry(), itr->second.OptionType, itr->second.MenuId);
|
||||
sLog->outErrorDb("Creature entry %u has unknown gossip option %u for menu %u", creature->GetEntry(), itr->second.OptionType, itr->second.MenuID);
|
||||
canTalk = false;
|
||||
break;
|
||||
}
|
||||
|
|
@ -14901,22 +14902,40 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
|
|||
|
||||
if (canTalk)
|
||||
{
|
||||
std::string strOptionText = itr->second.OptionText;
|
||||
std::string strBoxText = itr->second.BoxText;
|
||||
std::string strOptionText, strBoxText;
|
||||
BroadcastText const* optionBroadcastText = sObjectMgr->GetBroadcastText(itr->second.OptionBroadcastTextID);
|
||||
BroadcastText const* boxBroadcastText = sObjectMgr->GetBroadcastText(itr->second.BoxBroadcastTextID);
|
||||
LocaleConstant locale = GetSession()->GetSessionDbLocaleIndex();
|
||||
|
||||
int32 locale = GetSession()->GetSessionDbLocaleIndex();
|
||||
if (locale >= 0)
|
||||
if (optionBroadcastText)
|
||||
ObjectMgr::GetLocaleString(getGender() == GENDER_MALE ? optionBroadcastText->MaleText : optionBroadcastText->FemaleText, locale, strOptionText);
|
||||
else
|
||||
strOptionText = itr->second.OptionText;
|
||||
|
||||
if (boxBroadcastText)
|
||||
ObjectMgr::GetLocaleString(getGender() == GENDER_MALE ? boxBroadcastText->MaleText : boxBroadcastText->FemaleText, locale, strBoxText);
|
||||
else
|
||||
strBoxText = itr->second.BoxText;
|
||||
|
||||
if (locale != DEFAULT_LOCALE)
|
||||
{
|
||||
uint32 idxEntry = MAKE_PAIR32(menuId, itr->second.OptionIndex);
|
||||
if (GossipMenuItemsLocale const* no = sObjectMgr->GetGossipMenuItemsLocale(idxEntry))
|
||||
if (!optionBroadcastText)
|
||||
{
|
||||
ObjectMgr::GetLocaleString(no->OptionText, locale, strOptionText);
|
||||
ObjectMgr::GetLocaleString(no->BoxText, locale, strBoxText);
|
||||
/// Find localizations from database.
|
||||
if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuId)))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->OptionText, locale, strOptionText);
|
||||
}
|
||||
|
||||
if (!boxBroadcastText)
|
||||
{
|
||||
/// Find localizations from database.
|
||||
if (GossipMenuItemsLocale const* gossipMenuLocale = sObjectMgr->GetGossipMenuItemsLocale(MAKE_PAIR32(menuId, menuId)))
|
||||
ObjectMgr::GetLocaleString(gossipMenuLocale->BoxText, locale, strBoxText);
|
||||
}
|
||||
}
|
||||
|
||||
menu->GetGossipMenu().AddMenuItem(itr->second.OptionIndex, itr->second.OptionIcon, strOptionText, 0, itr->second.OptionType, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
|
||||
menu->GetGossipMenu().AddGossipMenuItemData(itr->second.OptionIndex, itr->second.ActionMenuId, itr->second.ActionPoiId);
|
||||
menu->GetGossipMenu().AddMenuItem(itr->second.OptionID, itr->second.OptionIcon, strOptionText, 0, itr->second.OptionType, strBoxText, itr->second.BoxMoney, itr->second.BoxCoded);
|
||||
menu->GetGossipMenu().AddGossipMenuItemData(itr->second.OptionID, itr->second.ActionMenuID, itr->second.ActionPoiID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15110,8 +15129,8 @@ uint32 Player::GetGossipTextId(uint32 menuId, WorldObject* source)
|
|||
|
||||
for (GossipMenusContainer::const_iterator itr = menuBounds.first; itr != menuBounds.second; ++itr)
|
||||
{
|
||||
if (sConditionMgr->IsObjectMeetToConditions(this, source, itr->second.conditions))
|
||||
textId = itr->second.text_id;
|
||||
if (sConditionMgr->IsObjectMeetToConditions(this, source, itr->second.Conditions))
|
||||
textId = itr->second.TextID;
|
||||
}
|
||||
|
||||
return textId;
|
||||
|
|
@ -15746,15 +15765,23 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
|||
uint32 quest_id = quest->GetQuestId();
|
||||
|
||||
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||
if (quest->RequiredItemId[i])
|
||||
DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true);
|
||||
|
||||
{
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))
|
||||
{
|
||||
if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->RequiredItemId[i], quest_id, true))
|
||||
DestroyItemCount(quest->RequiredItemId[i], 9999, true);
|
||||
else
|
||||
DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true);
|
||||
}
|
||||
}
|
||||
for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||
{
|
||||
if (quest->ItemDrop[i])
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i]))
|
||||
{
|
||||
uint32 count = quest->ItemDropQuantity[i];
|
||||
DestroyItemCount(quest->ItemDrop[i], count ? count : 9999, true);
|
||||
if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM && !quest->IsRepeatable() && !HasQuestForItem(quest->ItemDrop[i], quest_id))
|
||||
DestroyItemCount(quest->ItemDrop[i], 9999, true);
|
||||
else
|
||||
DestroyItemCount(quest->ItemDrop[i], quest->ItemDropQuantity[i], true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -15878,7 +15905,10 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
|
|||
{
|
||||
//- TODO: Poor design of mail system
|
||||
SQLTransaction trans = CharacterDatabase.BeginTransaction();
|
||||
MailDraft(mail_template_id).SendMailTo(trans, this, questGiver, MAIL_CHECK_MASK_HAS_BODY, quest->GetRewMailDelaySecs());
|
||||
if (quest->GetRewMailSenderEntry() != 0)
|
||||
MailDraft(mail_template_id).SendMailTo(trans, this, quest->GetRewMailSenderEntry(), MAIL_CHECK_MASK_HAS_BODY, quest->GetRewMailDelaySecs());
|
||||
else
|
||||
MailDraft(mail_template_id).SendMailTo(trans, this, questGiver, MAIL_CHECK_MASK_HAS_BODY, quest->GetRewMailDelaySecs());
|
||||
CharacterDatabase.CommitTransaction(trans);
|
||||
}
|
||||
|
||||
|
|
@ -15985,14 +16015,32 @@ void Player::FailQuest(uint32 questId)
|
|||
SendQuestFailed(questId);
|
||||
|
||||
// Destroy quest items on quest failure.
|
||||
for (uint8 i = 0; i < QUEST_OBJECTIVES_COUNT; ++i)
|
||||
if (quest->RequiredItemId[i] > 0 && quest->RequiredItemCount[i] > 0)
|
||||
// Destroy items received on starting the quest.
|
||||
DestroyItemCount(quest->RequiredItemId[i], quest->RequiredItemCount[i], true, true);
|
||||
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))
|
||||
if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM)
|
||||
DestroyItemCount(quest->RequiredItemId[i], 9999, true);
|
||||
|
||||
for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||
if (quest->ItemDrop[i] > 0 && quest->ItemDropQuantity[i] > 0)
|
||||
// Destroy items received during the quest.
|
||||
DestroyItemCount(quest->ItemDrop[i], quest->ItemDropQuantity[i], true, true);
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i]))
|
||||
if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM)
|
||||
DestroyItemCount(quest->ItemDrop[i], 9999, true);
|
||||
}
|
||||
}
|
||||
|
||||
void Player::AbandonQuest(uint32 questId)
|
||||
{
|
||||
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
|
||||
{
|
||||
// It will Destroy quest items on quests abandons.
|
||||
for (uint8 i = 0; i < QUEST_ITEM_OBJECTIVES_COUNT; ++i)
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->RequiredItemId[i]))
|
||||
if (quest->RequiredItemCount[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM)
|
||||
DestroyItemCount(quest->RequiredItemId[i], 9999, true);
|
||||
|
||||
for (uint8 i = 0; i < QUEST_SOURCE_ITEM_IDS_COUNT; ++i)
|
||||
if (ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(quest->ItemDrop[i]))
|
||||
if (quest->ItemDropQuantity[i] > 0 && itemTemplate->Bonding == BIND_QUEST_ITEM)
|
||||
DestroyItemCount(quest->ItemDrop[i], 9999, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -17220,12 +17268,12 @@ void Player::ReputationChanged2(FactionEntry const* factionEntry)
|
|||
}
|
||||
}
|
||||
|
||||
bool Player::HasQuestForItem(uint32 itemid) const
|
||||
bool Player::HasQuestForItem(uint32 itemid, uint32 excludeQuestId /* 0 */, bool turnIn /* false */) const
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_QUEST_LOG_SIZE; ++i)
|
||||
{
|
||||
uint32 questid = GetQuestSlotQuestId(i);
|
||||
if (questid == 0)
|
||||
if (questid == 0 || questid == excludeQuestId)
|
||||
continue;
|
||||
|
||||
QuestStatusMap::const_iterator qs_itr = m_QuestStatus.find(questid);
|
||||
|
|
@ -17234,7 +17282,7 @@ bool Player::HasQuestForItem(uint32 itemid) const
|
|||
|
||||
QuestStatusData const& q_status = qs_itr->second;
|
||||
|
||||
if (q_status.Status == QUEST_STATUS_INCOMPLETE)
|
||||
if ((q_status.Status == QUEST_STATUS_INCOMPLETE) || (turnIn && q_status.Status == QUEST_STATUS_COMPLETE))
|
||||
{
|
||||
Quest const* qinfo = sObjectMgr->GetQuestTemplate(questid);
|
||||
if (!qinfo)
|
||||
|
|
@ -17249,7 +17297,7 @@ bool Player::HasQuestForItem(uint32 itemid) const
|
|||
// This part for ReqItem drop
|
||||
for (uint8 j = 0; j < QUEST_ITEM_OBJECTIVES_COUNT; ++j)
|
||||
{
|
||||
if (itemid == qinfo->RequiredItemId[j] && q_status.ItemCount[j] < qinfo->RequiredItemCount[j])
|
||||
if ((itemid == qinfo->RequiredItemId[j] && q_status.ItemCount[j] < qinfo->RequiredItemCount[j]) || (turnIn && q_status.ItemCount[j] >= qinfo->RequiredItemCount[j]))
|
||||
return true;
|
||||
}
|
||||
// This part - for ReqSource
|
||||
|
|
@ -17259,17 +17307,18 @@ bool Player::HasQuestForItem(uint32 itemid) const
|
|||
if (qinfo->ItemDrop[j] == itemid)
|
||||
{
|
||||
ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(itemid);
|
||||
|
||||
uint32 ownedCount = GetItemCount(itemid, true);
|
||||
// 'unique' item
|
||||
if (pProto->MaxCount && int32(GetItemCount(itemid, true)) < pProto->MaxCount)
|
||||
if ((pProto->MaxCount && int32(ownedCount) < pProto->MaxCount) || (turnIn && int32(ownedCount) >= pProto->MaxCount))
|
||||
return true;
|
||||
|
||||
// allows custom amount drop when not 0
|
||||
if (qinfo->ItemDropQuantity[j])
|
||||
{
|
||||
if (GetItemCount(itemid, true) < qinfo->ItemDropQuantity[j])
|
||||
if ((ownedCount < qinfo->ItemDropQuantity[j]) || (turnIn && ownedCount >= qinfo->ItemDropQuantity[j]))
|
||||
return true;
|
||||
} else if (GetItemCount(itemid, true) < pProto->GetMaxStackSize())
|
||||
}
|
||||
else if (ownedCount < pProto->GetMaxStackSize())
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -22564,8 +22613,8 @@ void Player::SetEntryPoint()
|
|||
|
||||
if (GetMap()->IsDungeon())
|
||||
{
|
||||
if (const WorldSafeLocsEntry* entry = sObjectMgr->GetClosestGraveyard(GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeamId()))
|
||||
m_entryPointData.joinPos = WorldLocation(entry->map_id, entry->x, entry->y, entry->z, 0.0f);
|
||||
if (const GraveyardStruct* entry = sGraveyard->GetClosestGraveyard(GetPositionX(), GetPositionY(), GetPositionZ(), GetMapId(), GetTeamId()))
|
||||
m_entryPointData.joinPos = WorldLocation(entry->Map, entry->x, entry->y, entry->z, 0.0f);
|
||||
}
|
||||
else if (!GetMap()->IsBattlegroundOrArena())
|
||||
m_entryPointData.joinPos = WorldLocation(GetMapId(), GetPositionX(), GetPositionY(), GetPositionZ(), GetOrientation());
|
||||
|
|
|
|||
|
|
@ -1399,6 +1399,7 @@ class Player : public Unit, public GridObject<Player>
|
|||
bool CanRewardQuest(Quest const* quest, uint32 reward, bool msg);
|
||||
void AddQuestAndCheckCompletion(Quest const* quest, Object* questGiver);
|
||||
void AddQuest(Quest const* quest, Object* questGiver);
|
||||
void AbandonQuest(uint32 quest_id);
|
||||
void CompleteQuest(uint32 quest_id);
|
||||
void IncompleteQuest(uint32 quest_id);
|
||||
void RewardQuest(Quest const* quest, uint32 reward, Object* questGiver, bool announce = true);
|
||||
|
|
@ -1486,7 +1487,7 @@ class Player : public Unit, public GridObject<Player>
|
|||
void MoneyChanged(uint32 value);
|
||||
void ReputationChanged(FactionEntry const* factionEntry);
|
||||
void ReputationChanged2(FactionEntry const* factionEntry);
|
||||
bool HasQuestForItem(uint32 itemid) const;
|
||||
bool HasQuestForItem(uint32 itemId, uint32 excludeQuestId = 0, bool turnIn = false) const;
|
||||
bool HasQuestForGO(int32 GOId) const;
|
||||
void UpdateForQuestWorldObjects();
|
||||
bool CanShareQuest(uint32 quest_id) const;
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ i_motionMaster(new MotionMaster(this)), m_regenTimer(0), m_ThreatManager(this),
|
|||
m_rootTimes = 0;
|
||||
|
||||
m_state = 0;
|
||||
m_petCatchUp = false;
|
||||
m_deathState = ALIVE;
|
||||
|
||||
for (uint8 i = 0; i < CURRENT_MAX_SPELL; ++i)
|
||||
|
|
@ -13093,8 +13094,40 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
|
|||
Unit* pOwner = GetCharmerOrOwner();
|
||||
if (pOwner && !IsInCombat() && !IsVehicle() && !HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED) && (IsPet() || IsGuardian() || GetGUID() == pOwner->GetCritterGUID() || GetCharmerGUID() == pOwner->GetGUID()))
|
||||
{
|
||||
if (speed < pOwner->GetSpeedRate(mtype)+0.1f)
|
||||
speed = pOwner->GetSpeedRate(mtype)+0.1f; // pets derive speed from owner when not in combat
|
||||
if (pOwner->GetTypeId() != TYPEID_PLAYER)
|
||||
{
|
||||
if (speed < pOwner->GetSpeedRate(mtype)+0.1f)
|
||||
speed = pOwner->GetSpeedRate(mtype)+0.1f; // pets derive speed from owner when not in combat
|
||||
}
|
||||
else
|
||||
{
|
||||
// special treatment for player pets in order to avoid stuttering
|
||||
float ownerSpeed = pOwner->GetSpeedRate(mtype);
|
||||
float distOwner = GetDistance(pOwner);
|
||||
float minDist = 2.5f;
|
||||
|
||||
if (ToCreature()->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET)
|
||||
{
|
||||
// different minimum distance for vanity pets
|
||||
minDist = 5.0f;
|
||||
|
||||
if (mtype == MOVE_FLIGHT)
|
||||
mtype = MOVE_RUN; // vanity pets use run speed for flight
|
||||
}
|
||||
|
||||
float maxDist = ownerSpeed >= 1.0f ? minDist * ownerSpeed * 1.5f : minDist * 1.5f;
|
||||
|
||||
if (distOwner < minDist && m_petCatchUp)
|
||||
m_petCatchUp = false;
|
||||
|
||||
if (distOwner > maxDist && !m_petCatchUp)
|
||||
m_petCatchUp = true;
|
||||
|
||||
if (m_petCatchUp)
|
||||
speed = ownerSpeed * 1.05f;
|
||||
else
|
||||
speed = ownerSpeed * 0.95f;
|
||||
}
|
||||
}
|
||||
else
|
||||
speed *= ToCreature()->GetCreatureTemplate()->speed_run; // at this point, MOVE_WALK is never reached
|
||||
|
|
|
|||
|
|
@ -2561,6 +2561,7 @@ class Unit : public WorldObject
|
|||
bool m_duringRemoveFromWorld; // lock made to not add stuff after begining removing from world
|
||||
|
||||
uint32 _oldFactionId; ///< faction before charm
|
||||
bool m_petCatchUp;
|
||||
};
|
||||
|
||||
namespace Trinity
|
||||
|
|
|
|||
|
|
@ -209,8 +209,8 @@ void GameEventMgr::LoadFromDB()
|
|||
{
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
// 1 2 3 4 5 6 7 8 9
|
||||
QueryResult result = WorldDatabase.Query("SELECT eventEntry, UNIX_TIMESTAMP(start_time), UNIX_TIMESTAMP(end_time), occurence, length, holiday, holidayStage, description, world_event FROM game_event");
|
||||
// 1 2 3 4 5 6 7 8 9 10
|
||||
QueryResult result = WorldDatabase.Query("SELECT eventEntry, UNIX_TIMESTAMP(start_time), UNIX_TIMESTAMP(end_time), occurence, length, holiday, holidayStage, description, world_event, announce FROM game_event");
|
||||
if (!result)
|
||||
{
|
||||
mGameEvent.clear();
|
||||
|
|
@ -243,6 +243,7 @@ void GameEventMgr::LoadFromDB()
|
|||
pGameEvent.holidayStage = fields[6].GetUInt8();
|
||||
pGameEvent.description = fields[7].GetString();
|
||||
pGameEvent.state = (GameEventState)(fields[8].GetUInt8());
|
||||
pGameEvent.announce = fields[9].GetUInt8();
|
||||
pGameEvent.nextstart = 0;
|
||||
|
||||
++count;
|
||||
|
|
@ -1189,14 +1190,9 @@ void GameEventMgr::UnApplyEvent(uint16 event_id)
|
|||
|
||||
void GameEventMgr::ApplyNewEvent(uint16 event_id)
|
||||
{
|
||||
switch (sWorld->getIntConfig(CONFIG_EVENT_ANNOUNCE))
|
||||
{
|
||||
case 0: // disable
|
||||
break;
|
||||
case 1: // announce events
|
||||
sWorld->SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str());
|
||||
break;
|
||||
}
|
||||
uint8 announce = mGameEvent[event_id].announce;
|
||||
if (announce == 1 || (announce == 2 && sWorld->getIntConfig(CONFIG_EVENT_ANNOUNCE)))
|
||||
sWorld->SendWorldText(LANG_EVENTMESSAGE, mGameEvent[event_id].description.c_str());
|
||||
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDetail("GameEvent %u \"%s\" started.", event_id, mGameEvent[event_id].description.c_str());
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ struct GameEventData
|
|||
GameEventConditionMap conditions; // conditions to finish
|
||||
std::set<uint16 /*gameevent id*/> prerequisite_events; // events that must be completed before starting this event
|
||||
std::string description;
|
||||
uint8 announce; // if 0 dont announce, if 1 announce, if 2 take config value
|
||||
|
||||
bool isValid() const { return length > 0 || state > GAMEEVENT_NORMAL; }
|
||||
};
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -469,15 +469,13 @@ typedef UNORDERED_MAP<uint32/*(mapid, spawnMode) pair*/, CellObjectGuidsMap> Map
|
|||
// Trinity string ranges
|
||||
#define MIN_TRINITY_STRING_ID 1 // 'trinity_string'
|
||||
#define MAX_TRINITY_STRING_ID 2000000000
|
||||
#define MIN_DB_SCRIPT_STRING_ID MAX_TRINITY_STRING_ID // 'db_script_string'
|
||||
#define MAX_DB_SCRIPT_STRING_ID 2000010000
|
||||
#define MIN_CREATURE_AI_TEXT_STRING_ID (-1) // 'creature_ai_texts'
|
||||
#define MAX_CREATURE_AI_TEXT_STRING_ID (-1000000)
|
||||
|
||||
// Trinity Trainer Reference start range
|
||||
#define TRINITY_TRAINER_START_REF 200000
|
||||
|
||||
struct TrinityStringLocale
|
||||
struct TrinityString
|
||||
{
|
||||
StringVector Content;
|
||||
};
|
||||
|
|
@ -491,9 +489,11 @@ typedef UNORDERED_MAP<uint32, GameObjectLocale> GameObjectLocaleContainer;
|
|||
typedef UNORDERED_MAP<uint32, ItemLocale> ItemLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, ItemSetNameLocale> ItemSetNameLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, QuestLocale> QuestLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, QuestOfferRewardLocale> QuestOfferRewardLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, QuestRequestItemsLocale> QuestRequestItemsLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, NpcTextLocale> NpcTextLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, PageTextLocale> PageTextLocaleContainer;
|
||||
typedef UNORDERED_MAP<int32, TrinityStringLocale> TrinityStringLocaleContainer;
|
||||
typedef UNORDERED_MAP<int32, TrinityString> TrinityStringContainer;
|
||||
typedef UNORDERED_MAP<uint32, GossipMenuItemsLocale> GossipMenuItemsLocaleContainer;
|
||||
typedef UNORDERED_MAP<uint32, PointOfInterestLocale> PointOfInterestLocaleContainer;
|
||||
|
||||
|
|
@ -570,25 +570,27 @@ struct PointOfInterest
|
|||
|
||||
struct GossipMenuItems
|
||||
{
|
||||
uint32 MenuId;
|
||||
uint32 OptionIndex;
|
||||
uint32 MenuID;
|
||||
uint32 OptionID;
|
||||
uint8 OptionIcon;
|
||||
std::string OptionText;
|
||||
uint32 OptionBroadcastTextID;
|
||||
uint32 OptionType;
|
||||
uint32 OptionNpcflag;
|
||||
uint32 ActionMenuId;
|
||||
uint32 ActionPoiId;
|
||||
uint32 OptionNpcFlag;
|
||||
uint32 ActionMenuID;
|
||||
uint32 ActionPoiID;
|
||||
bool BoxCoded;
|
||||
uint32 BoxMoney;
|
||||
std::string BoxText;
|
||||
ConditionList Conditions;
|
||||
uint32 BoxBroadcastTextID;
|
||||
};
|
||||
|
||||
struct GossipMenus
|
||||
{
|
||||
uint32 entry;
|
||||
uint32 text_id;
|
||||
ConditionList conditions;
|
||||
uint32 MenuID;
|
||||
uint32 TextID;
|
||||
ConditionList Conditions;
|
||||
};
|
||||
|
||||
typedef std::multimap<uint32, GossipMenus> GossipMenusContainer;
|
||||
|
|
@ -625,16 +627,6 @@ struct QuestPOI
|
|||
typedef std::vector<QuestPOI> QuestPOIVector;
|
||||
typedef UNORDERED_MAP<uint32, QuestPOIVector> QuestPOIContainer;
|
||||
|
||||
struct GraveyardData
|
||||
{
|
||||
uint32 safeLocId;
|
||||
TeamId teamId;
|
||||
};
|
||||
|
||||
typedef std::multimap<uint32, GraveyardData> GraveyardContainer;
|
||||
typedef std::pair<GraveyardContainer::const_iterator, GraveyardContainer::const_iterator> GraveyardMapBounds;
|
||||
typedef std::pair<GraveyardContainer::iterator, GraveyardContainer::iterator> GraveyardMapBoundsNonConst;
|
||||
|
||||
typedef UNORDERED_MAP<uint32, VendorItemData> CacheVendorItemContainer;
|
||||
typedef UNORDERED_MAP<uint32, TrainerSpellData> CacheTrainerSpellContainer;
|
||||
|
||||
|
|
@ -811,14 +803,7 @@ class ObjectMgr
|
|||
return _tavernAreaTriggerStore.find(Trigger_ID) != _tavernAreaTriggerStore.end();
|
||||
}
|
||||
|
||||
GossipText const* GetGossipText(uint32 Text_ID) const;
|
||||
|
||||
WorldSafeLocsEntry const* GetDefaultGraveyard(TeamId teamId);
|
||||
WorldSafeLocsEntry const* GetClosestGraveyard(float x, float y, float z, uint32 MapId, TeamId teamId);
|
||||
bool AddGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist = true);
|
||||
void RemoveGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist = false);
|
||||
void LoadGraveyardZones();
|
||||
GraveyardData const* FindGraveyardData(uint32 id, uint32 zone);
|
||||
GossipText const* GetGossipText(uint32 Text_ID) const;
|
||||
|
||||
AreaTrigger const* GetAreaTrigger(uint32 trigger) const
|
||||
{
|
||||
|
|
@ -969,9 +954,7 @@ class ObjectMgr
|
|||
void ValidateSpellScripts();
|
||||
void InitializeSpellInfoPrecomputedData();
|
||||
|
||||
bool LoadTrinityStrings(char const* table, int32 min_value, int32 max_value);
|
||||
bool LoadTrinityStrings() { return LoadTrinityStrings("trinity_string", MIN_TRINITY_STRING_ID, MAX_TRINITY_STRING_ID); }
|
||||
void LoadDbScriptStrings();
|
||||
bool LoadTrinityStrings();
|
||||
void LoadBroadcastTexts();
|
||||
void LoadBroadcastTextLocales();
|
||||
void LoadCreatureClassLevelStats();
|
||||
|
|
@ -997,6 +980,8 @@ class ObjectMgr
|
|||
void LoadItemSetNameLocales();
|
||||
void LoadQuestLocales();
|
||||
void LoadNpcTextLocales();
|
||||
void LoadQuestOfferRewardLocale();
|
||||
void LoadQuestRequestItemsLocale();
|
||||
void LoadPageTextLocales();
|
||||
void LoadGossipMenuItemsLocales();
|
||||
void LoadPointOfInterestLocales();
|
||||
|
|
@ -1198,6 +1183,18 @@ class ObjectMgr
|
|||
if (itr == _pointOfInterestLocaleStore.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
QuestOfferRewardLocale const* GetQuestOfferRewardLocale(uint32 entry) const
|
||||
{
|
||||
auto itr = _questOfferRewardLocaleStore.find(entry);
|
||||
if (itr == _questOfferRewardLocaleStore.end()) return nullptr;
|
||||
return &itr->second;
|
||||
}
|
||||
QuestRequestItemsLocale const* GetQuestRequestItemsLocale(uint32 entry) const
|
||||
{
|
||||
auto itr = _questRequestItemsLocaleStore.find(entry);
|
||||
if (itr == _questRequestItemsLocaleStore.end()) return nullptr;
|
||||
return &itr->second;
|
||||
}
|
||||
NpcTextLocale const* GetNpcTextLocale(uint32 entry) const
|
||||
{
|
||||
NpcTextLocaleContainer::const_iterator itr = _npcTextLocaleStore.find(entry);
|
||||
|
|
@ -1206,15 +1203,17 @@ class ObjectMgr
|
|||
}
|
||||
GameObjectData& NewGOData(uint32 guid) { return _gameObjectDataStore[guid]; }
|
||||
void DeleteGOData(uint32 guid);
|
||||
|
||||
TrinityStringLocale const* GetTrinityStringLocale(int32 entry) const
|
||||
|
||||
TrinityString const* GetTrinityString(uint32 entry) const
|
||||
{
|
||||
TrinityStringLocaleContainer::const_iterator itr = _trinityStringLocaleStore.find(entry);
|
||||
if (itr == _trinityStringLocaleStore.end()) return NULL;
|
||||
TrinityStringContainer::const_iterator itr = _trinityStringStore.find(entry);
|
||||
if (itr == _trinityStringStore.end())
|
||||
return NULL;
|
||||
|
||||
return &itr->second;
|
||||
}
|
||||
const char *GetTrinityString(int32 entry, LocaleConstant locale_idx) const;
|
||||
const char *GetTrinityStringForDBCLocale(int32 entry) const { return GetTrinityString(entry, DBCLocaleIndex); }
|
||||
char const* GetTrinityString(uint32 entry, LocaleConstant locale) const;
|
||||
char const* GetTrinityStringForDBCLocale(uint32 entry) const { return GetTrinityString(entry, DBCLocaleIndex); }
|
||||
LocaleConstant GetDBCLocaleIndex() const { return DBCLocaleIndex; }
|
||||
void SetDBCLocaleIndex(LocaleConstant locale) { DBCLocaleIndex = locale; }
|
||||
|
||||
|
|
@ -1304,9 +1303,6 @@ class ObjectMgr
|
|||
return _gossipMenuItemsStore.equal_range(uiMenuId);
|
||||
}
|
||||
|
||||
// for wintergrasp only
|
||||
GraveyardContainer GraveyardStore;
|
||||
|
||||
static void AddLocaleString(std::string const& s, LocaleConstant locale, StringVector& data);
|
||||
static inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value)
|
||||
{
|
||||
|
|
@ -1400,7 +1396,6 @@ class ObjectMgr
|
|||
|
||||
private:
|
||||
void LoadScripts(ScriptsType type);
|
||||
void CheckScripts(ScriptsType type, std::set<int32>& ids);
|
||||
void LoadQuestRelationsHelper(QuestRelations& map, std::string const& table, bool starter, bool go);
|
||||
void PlayerCreateInfoAddItemHelper(uint32 race_, uint32 class_, uint32 itemId, int32 count);
|
||||
|
||||
|
|
@ -1461,9 +1456,11 @@ class ObjectMgr
|
|||
ItemLocaleContainer _itemLocaleStore;
|
||||
ItemSetNameLocaleContainer _itemSetNameLocaleStore;
|
||||
QuestLocaleContainer _questLocaleStore;
|
||||
QuestOfferRewardLocaleContainer _questOfferRewardLocaleStore;
|
||||
QuestRequestItemsLocaleContainer _questRequestItemsLocaleStore;
|
||||
NpcTextLocaleContainer _npcTextLocaleStore;
|
||||
PageTextLocaleContainer _pageTextLocaleStore;
|
||||
TrinityStringLocaleContainer _trinityStringLocaleStore;
|
||||
TrinityStringContainer _trinityStringStore;
|
||||
GossipMenuItemsLocaleContainer _gossipMenuItemsLocaleStore;
|
||||
PointOfInterestLocaleContainer _pointOfInterestLocaleStore;
|
||||
|
||||
|
|
@ -1486,7 +1483,4 @@ class ObjectMgr
|
|||
|
||||
#define sObjectMgr ACE_Singleton<ObjectMgr, ACE_Null_Mutex>::instance()
|
||||
|
||||
// scripting access functions
|
||||
bool LoadTrinityStrings(char const* table, int32 start_value = MAX_CREATURE_AI_TEXT_STRING_ID, int32 end_value = std::numeric_limits<int32>::min());
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
#include "Chat.h"
|
||||
#include "BattlegroundMgr.h"
|
||||
#include "ScriptMgr.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
#define MOVEMENT_PACKET_TIME_DELAY 0
|
||||
|
||||
|
|
@ -487,11 +488,10 @@ void WorldSession::HandleMovementOpcodes(WorldPacket & recvData)
|
|||
}
|
||||
else if (!plrMover->HasFlag(PLAYER_FLAGS, PLAYER_FLAGS_IS_OUT_OF_BOUNDS))
|
||||
{
|
||||
WorldSafeLocsEntry const* grave = sObjectMgr->GetClosestGraveyard(plrMover->GetPositionX(), plrMover->GetPositionY(), plrMover->GetPositionZ(), plrMover->GetMapId(), plrMover->GetTeamId());
|
||||
|
||||
GraveyardStruct const* grave = sGraveyard->GetClosestGraveyard(plrMover->GetPositionX(), plrMover->GetPositionY(), plrMover->GetPositionZ(), plrMover->GetMapId(), plrMover->GetTeamId());
|
||||
if (grave)
|
||||
{
|
||||
plrMover->TeleportTo(grave->map_id, grave->x, grave->y, grave->z, plrMover->GetOrientation());
|
||||
plrMover->TeleportTo(grave->Map, grave->x, grave->y, grave->z, plrMover->GetOrientation());
|
||||
plrMover->Relocate(grave->x, grave->y, grave->z, plrMover->GetOrientation());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#include "ScriptMgr.h"
|
||||
#include "CreatureAI.h"
|
||||
#include "SpellInfo.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
enum StableResultCode
|
||||
{
|
||||
|
|
@ -446,10 +447,10 @@ void WorldSession::SendSpiritResurrect()
|
|||
_player->DurabilityLossAll(0.25f, true);
|
||||
|
||||
// get corpse nearest graveyard
|
||||
WorldSafeLocsEntry const* corpseGrave = NULL;
|
||||
GraveyardStruct const* corpseGrave = NULL;
|
||||
Corpse* corpse = _player->GetCorpse();
|
||||
if (corpse)
|
||||
corpseGrave = sObjectMgr->GetClosestGraveyard(corpse->GetPositionX(), corpse->GetPositionY(), corpse->GetPositionZ(), corpse->GetMapId(), _player->GetTeamId());
|
||||
corpseGrave = sGraveyard->GetClosestGraveyard(corpse->GetPositionX(), corpse->GetPositionY(), corpse->GetPositionZ(), corpse->GetMapId(), _player->GetTeamId());
|
||||
|
||||
// now can spawn bones
|
||||
_player->SpawnCorpseBones();
|
||||
|
|
@ -457,10 +458,10 @@ void WorldSession::SendSpiritResurrect()
|
|||
// teleport to nearest from corpse graveyard, if different from nearest to player ghost
|
||||
if (corpseGrave)
|
||||
{
|
||||
WorldSafeLocsEntry const* ghostGrave = sObjectMgr->GetClosestGraveyard(_player->GetPositionX(), _player->GetPositionY(), _player->GetPositionZ(), _player->GetMapId(), _player->GetTeamId());
|
||||
GraveyardStruct const* ghostGrave = sGraveyard->GetClosestGraveyard(_player->GetPositionX(), _player->GetPositionY(), _player->GetPositionZ(), _player->GetMapId(), _player->GetTeamId());
|
||||
|
||||
if (corpseGrave != ghostGrave)
|
||||
_player->TeleportTo(corpseGrave->map_id, corpseGrave->x, corpseGrave->y, corpseGrave->z, _player->GetOrientation());
|
||||
_player->TeleportTo(corpseGrave->Map, corpseGrave->x, corpseGrave->y, corpseGrave->z, _player->GetOrientation());
|
||||
// or update at original position
|
||||
//else
|
||||
// _player->UpdateObjectVisibility(); // xinef: not needed, called in ResurrectPlayer
|
||||
|
|
|
|||
|
|
@ -277,17 +277,17 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recvData)
|
|||
|
||||
recvData >> textID;
|
||||
#if defined(ENABLE_EXTRAS) && defined(ENABLE_EXTRA_LOGS)
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_NPC_TEXT_QUERY ID '%u'", textID);
|
||||
sLog->outDebug(LOG_FILTER_NETWORKIO, "WORLD: CMSG_NPC_TEXT_QUERY TextId: %u", textID);
|
||||
#endif
|
||||
|
||||
recvData >> guid;
|
||||
|
||||
GossipText const* pGossip = sObjectMgr->GetGossipText(textID);
|
||||
GossipText const* gossip = sObjectMgr->GetGossipText(textID);
|
||||
|
||||
WorldPacket data(SMSG_NPC_TEXT_UPDATE, 100); // guess size
|
||||
data << textID;
|
||||
|
||||
if (!pGossip)
|
||||
if (!gossip)
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i)
|
||||
{
|
||||
|
|
@ -307,10 +307,10 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recvData)
|
|||
{
|
||||
std::string text0[MAX_GOSSIP_TEXT_OPTIONS], text1[MAX_GOSSIP_TEXT_OPTIONS];
|
||||
LocaleConstant locale = GetSessionDbLocaleIndex();
|
||||
|
||||
|
||||
for (uint8 i = 0; i < MAX_GOSSIP_TEXT_OPTIONS; ++i)
|
||||
{
|
||||
BroadcastText const* bct = sObjectMgr->GetBroadcastText(pGossip->Options[i].BroadcastTextID);
|
||||
BroadcastText const* bct = sObjectMgr->GetBroadcastText(gossip->Options[i].BroadcastTextID);
|
||||
if (bct)
|
||||
{
|
||||
text0[i] = bct->GetText(locale, GENDER_MALE, true);
|
||||
|
|
@ -318,8 +318,8 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recvData)
|
|||
}
|
||||
else
|
||||
{
|
||||
text0[i] = pGossip->Options[i].Text_0;
|
||||
text1[i] = pGossip->Options[i].Text_1;
|
||||
text0[i] = gossip->Options[i].Text_0;
|
||||
text1[i] = gossip->Options[i].Text_1;
|
||||
}
|
||||
|
||||
if (locale != DEFAULT_LOCALE && !bct)
|
||||
|
|
@ -331,7 +331,7 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recvData)
|
|||
}
|
||||
}
|
||||
|
||||
data << pGossip->Options[i].Probability;
|
||||
data << gossip->Options[i].Probability;
|
||||
|
||||
if (text0[i].empty())
|
||||
data << text1[i];
|
||||
|
|
@ -343,12 +343,12 @@ void WorldSession::HandleNpcTextQueryOpcode(WorldPacket & recvData)
|
|||
else
|
||||
data << text1[i];
|
||||
|
||||
data << pGossip->Options[i].Language;
|
||||
data << gossip->Options[i].Language;
|
||||
|
||||
for (uint8 j = 0; j < MAX_GOSSIP_TEXT_EMOTES; ++j)
|
||||
{
|
||||
data << pGossip->Options[i].Emotes[j]._Delay;
|
||||
data << pGossip->Options[i].Emotes[j]._Emote;
|
||||
data << gossip->Options[i].Emotes[j]._Delay;
|
||||
data << gossip->Options[i].Emotes[j]._Emote;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -418,6 +418,7 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPacket& recvData)
|
|||
}
|
||||
|
||||
_player->TakeQuestSourceItem(questId, true); // remove quest src item from player
|
||||
_player->AbandonQuest(questId); // remove all quest items player received before abandoning quest.
|
||||
_player->RemoveActiveQuest(questId);
|
||||
_player->RemoveTimedAchievement(ACHIEVEMENT_TIMED_TYPE_QUEST, questId);
|
||||
#ifdef ELUNA
|
||||
|
|
|
|||
|
|
@ -61,6 +61,13 @@ MailSender::MailSender(Player* sender)
|
|||
m_senderId = sender->GetGUIDLow();
|
||||
}
|
||||
|
||||
MailSender::MailSender(uint32 senderEntry)
|
||||
{
|
||||
m_messageType = MAIL_CREATURE;
|
||||
m_senderId = senderEntry;
|
||||
m_stationery = MAIL_STATIONERY_DEFAULT;
|
||||
}
|
||||
|
||||
MailReceiver::MailReceiver(Player* receiver) : m_receiver(receiver), m_receiver_lowguid(receiver->GetGUIDLow())
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ class MailSender
|
|||
MailSender(CalendarEvent* sender);
|
||||
MailSender(AuctionEntry* sender);
|
||||
MailSender(Player* sender);
|
||||
MailSender(uint32 senderEntry);
|
||||
public: // Accessors
|
||||
MailMessageType GetMailMessageType() const { return m_messageType; }
|
||||
uint32 GetSenderId() const { return m_senderId; }
|
||||
|
|
|
|||
371
src/server/game/Misc/GameGraveyard.cpp
Normal file
371
src/server/game/Misc/GameGraveyard.cpp
Normal file
|
|
@ -0,0 +1,371 @@
|
|||
#include "GameGraveyard.h"
|
||||
#include "MapManager.h"
|
||||
#include "DBCStores.h"
|
||||
#include "Log.h"
|
||||
|
||||
void Graveyard::LoadGraveyardFromDB()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
_graveyardStore.clear();
|
||||
|
||||
QueryResult result = WorldDatabase.Query("SELECT ID, Map, x, y, z, Comment FROM game_graveyard");
|
||||
if (!result)
|
||||
{
|
||||
sLog->outString(">> Loaded 0 graveyard. Table `game_graveyard` is empty!");
|
||||
sLog->outString();
|
||||
return;
|
||||
}
|
||||
|
||||
int32 Count = 0;
|
||||
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
uint32 ID = fields[0].GetUInt32();
|
||||
|
||||
GraveyardStruct Graveyard;
|
||||
|
||||
Graveyard.Map = fields[1].GetUInt32();
|
||||
Graveyard.x = fields[2].GetFloat();
|
||||
Graveyard.y = fields[3].GetFloat();
|
||||
Graveyard.z = fields[4].GetFloat();
|
||||
Graveyard.name = fields[5].GetString();
|
||||
|
||||
if (!Utf8toWStr(Graveyard.name, Graveyard.wnameLow))
|
||||
{
|
||||
sLog->outErrorDb("Wrong UTF8 name for id %u in `game_graveyard` table, ignoring.", ID);
|
||||
continue;
|
||||
}
|
||||
|
||||
wstrToLower(Graveyard.wnameLow);
|
||||
|
||||
_graveyardStore[ID] = Graveyard;
|
||||
|
||||
++Count;
|
||||
|
||||
} while (result->NextRow());
|
||||
|
||||
sLog->outString(">> Loaded %i graveyard in %u ms", Count, GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString();
|
||||
}
|
||||
|
||||
GraveyardStruct const* Graveyard::GetGraveyard(uint32 ID) const
|
||||
{
|
||||
GraveyardContainer::const_iterator itr = _graveyardStore.find(ID);
|
||||
if (itr != _graveyardStore.end())
|
||||
return &itr->second;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
GraveyardStruct const* Graveyard::GetDefaultGraveyard(TeamId teamId)
|
||||
{
|
||||
enum DefaultGraveyard
|
||||
{
|
||||
HORDE_GRAVEYARD = 10, // Crossroads
|
||||
ALLIANCE_GRAVEYARD = 4, // Westfall
|
||||
};
|
||||
|
||||
return sGraveyard->GetGraveyard(teamId == TEAM_HORDE ? HORDE_GRAVEYARD : ALLIANCE_GRAVEYARD);
|
||||
}
|
||||
|
||||
GraveyardStruct const* Graveyard::GetClosestGraveyard(float x, float y, float z, uint32 MapId, TeamId teamId)
|
||||
{
|
||||
// search for zone associated closest graveyard
|
||||
uint32 zoneId = sMapMgr->GetZoneId(MapId, x, y, z);
|
||||
|
||||
if (!zoneId)
|
||||
{
|
||||
if (z > -500)
|
||||
{
|
||||
sLog->outError("ZoneId not found for map %u coords (%f, %f, %f)", MapId, x, y, z);
|
||||
return GetDefaultGraveyard(teamId);
|
||||
}
|
||||
}
|
||||
|
||||
// Simulate std. algorithm:
|
||||
// found some graveyard associated to (ghost_zone, ghost_map)
|
||||
//
|
||||
// if mapId == graveyard.mapId (ghost in plain zone or city or battleground) and search graveyard at same map
|
||||
// then check faction
|
||||
// if mapId != graveyard.mapId (ghost in instance) and search any graveyard associated
|
||||
// then check faction
|
||||
GraveyardMapBounds range = GraveyardStore.equal_range(zoneId);
|
||||
MapEntry const* map = sMapStore.LookupEntry(MapId);
|
||||
|
||||
// not need to check validity of map object; MapId _MUST_ be valid here
|
||||
if (range.first == range.second && !map->IsBattlegroundOrArena())
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.", zoneId, teamId);
|
||||
return GetDefaultGraveyard(teamId);
|
||||
}
|
||||
|
||||
// at corpse map
|
||||
bool foundNear = false;
|
||||
float distNear = 10000;
|
||||
GraveyardStruct const* entryNear = NULL;
|
||||
|
||||
// at entrance map for corpse map
|
||||
bool foundEntr = false;
|
||||
float distEntr = 10000;
|
||||
GraveyardStruct const* entryEntr = NULL;
|
||||
|
||||
// some where other
|
||||
GraveyardStruct const* entryFar = NULL;
|
||||
|
||||
MapEntry const* mapEntry = sMapStore.LookupEntry(MapId);
|
||||
|
||||
for (; range.first != range.second; ++range.first)
|
||||
{
|
||||
GraveyardData const& data = range.first->second;
|
||||
GraveyardStruct const* entry = sGraveyard->GetGraveyard(data.safeLocId);
|
||||
if (!entry)
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has record for not existing `game_graveyard` table %u, skipped.", data.safeLocId);
|
||||
continue;
|
||||
}
|
||||
|
||||
// skip enemy faction graveyard
|
||||
// team == 0 case can be at call from .neargrave
|
||||
if (data.teamId != TEAM_NEUTRAL && teamId != TEAM_NEUTRAL && data.teamId != teamId)
|
||||
continue;
|
||||
|
||||
// find now nearest graveyard at other map
|
||||
if (MapId != entry->Map)
|
||||
{
|
||||
// if find graveyard at different map from where entrance placed (or no entrance data), use any first
|
||||
if (!mapEntry
|
||||
|| mapEntry->entrance_map < 0
|
||||
|| uint32(mapEntry->entrance_map) != entry->Map
|
||||
|| (mapEntry->entrance_x == 0 && mapEntry->entrance_y == 0))
|
||||
{
|
||||
// not have any corrdinates for check distance anyway
|
||||
entryFar = entry;
|
||||
continue;
|
||||
}
|
||||
|
||||
// at entrance map calculate distance (2D);
|
||||
float dist2 = (entry->x - mapEntry->entrance_x)*(entry->x - mapEntry->entrance_x)
|
||||
+ (entry->y - mapEntry->entrance_y)*(entry->y - mapEntry->entrance_y);
|
||||
if (foundEntr)
|
||||
{
|
||||
if (dist2 < distEntr)
|
||||
{
|
||||
distEntr = dist2;
|
||||
entryEntr = entry;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foundEntr = true;
|
||||
distEntr = dist2;
|
||||
entryEntr = entry;
|
||||
}
|
||||
}
|
||||
// find now nearest graveyard at same map
|
||||
else
|
||||
{
|
||||
float dist2 = (entry->x - x)*(entry->x - x) + (entry->y - y)*(entry->y - y) + (entry->z - z)*(entry->z - z);
|
||||
if (foundNear)
|
||||
{
|
||||
if (dist2 < distNear)
|
||||
{
|
||||
distNear = dist2;
|
||||
entryNear = entry;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foundNear = true;
|
||||
distNear = dist2;
|
||||
entryNear = entry;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (entryNear)
|
||||
return entryNear;
|
||||
|
||||
if (entryEntr)
|
||||
return entryEntr;
|
||||
|
||||
return entryFar;
|
||||
}
|
||||
|
||||
GraveyardData const* Graveyard::FindGraveyardData(uint32 id, uint32 zoneId)
|
||||
{
|
||||
GraveyardMapBounds range = GraveyardStore.equal_range(zoneId);
|
||||
for (; range.first != range.second; ++range.first)
|
||||
{
|
||||
GraveyardData const& data = range.first->second;
|
||||
if (data.safeLocId == id)
|
||||
return &data;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool Graveyard::AddGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist /*= true*/)
|
||||
{
|
||||
if (FindGraveyardData(id, zoneId))
|
||||
return false;
|
||||
|
||||
// add link to loaded data
|
||||
GraveyardData data;
|
||||
data.safeLocId = id;
|
||||
data.teamId = teamId;
|
||||
|
||||
GraveyardStore.insert(WGGraveyardContainer::value_type(zoneId, data));
|
||||
|
||||
// add link to DB
|
||||
if (persist)
|
||||
{
|
||||
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_GRAVEYARD_ZONE);
|
||||
|
||||
stmt->setUInt32(0, id);
|
||||
stmt->setUInt32(1, zoneId);
|
||||
// Xinef: DB Data compatibility...
|
||||
stmt->setUInt16(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
|
||||
|
||||
WorldDatabase.Execute(stmt);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Graveyard::RemoveGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist /*= false*/)
|
||||
{
|
||||
GraveyardMapBoundsNonConst range = GraveyardStore.equal_range(zoneId);
|
||||
if (range.first == range.second)
|
||||
{
|
||||
sLog->outError("Table `game_graveyard_zone` incomplete: Zone %u Team %u does not have a linked graveyard.", zoneId, teamId);
|
||||
return;
|
||||
}
|
||||
|
||||
bool found = false;
|
||||
|
||||
for (; range.first != range.second; ++range.first)
|
||||
{
|
||||
GraveyardData & data = range.first->second;
|
||||
|
||||
// skip not matching safezone id
|
||||
if (data.safeLocId != id)
|
||||
continue;
|
||||
|
||||
// skip enemy faction graveyard at same map (normal area, city, or battleground)
|
||||
// team == 0 case can be at call from .neargrave
|
||||
if (data.teamId != TEAM_NEUTRAL && teamId != TEAM_NEUTRAL && data.teamId != teamId)
|
||||
continue;
|
||||
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// no match, return
|
||||
if (!found)
|
||||
return;
|
||||
|
||||
// remove from links
|
||||
GraveyardStore.erase(range.first);
|
||||
|
||||
// remove link from DB
|
||||
if (persist)
|
||||
{
|
||||
PreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_DEL_GRAVEYARD_ZONE);
|
||||
|
||||
stmt->setUInt32(0, id);
|
||||
stmt->setUInt32(1, zoneId);
|
||||
// Xinef: DB Data compatibility...
|
||||
stmt->setUInt16(2, uint16(teamId == TEAM_NEUTRAL ? 0 : (teamId == TEAM_ALLIANCE ? ALLIANCE : HORDE)));
|
||||
|
||||
WorldDatabase.Execute(stmt);
|
||||
}
|
||||
}
|
||||
|
||||
void Graveyard::LoadGraveyardZones()
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
GraveyardStore.clear(); // need for reload case
|
||||
|
||||
// 0 1 2
|
||||
QueryResult result = WorldDatabase.Query("SELECT id, ghost_zone, faction FROM game_graveyard_zone");
|
||||
|
||||
if (!result)
|
||||
{
|
||||
sLog->outString(">> Loaded 0 graveyard-zone links. DB table `game_graveyard_zone` is empty.");
|
||||
sLog->outString();
|
||||
return;
|
||||
}
|
||||
|
||||
uint32 count = 0;
|
||||
|
||||
do
|
||||
{
|
||||
++count;
|
||||
|
||||
Field* fields = result->Fetch();
|
||||
|
||||
uint32 safeLocId = fields[0].GetUInt32();
|
||||
uint32 zoneId = fields[1].GetUInt32();
|
||||
uint32 team = fields[2].GetUInt16();
|
||||
TeamId teamId = team == 0 ? TEAM_NEUTRAL : (team == ALLIANCE ? TEAM_ALLIANCE : TEAM_HORDE);
|
||||
|
||||
GraveyardStruct const* entry = sGraveyard->GetGraveyard(safeLocId);
|
||||
if (!entry)
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has a record for not existing `game_graveyard` table %u, skipped.", safeLocId);
|
||||
continue;
|
||||
}
|
||||
|
||||
AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(zoneId);
|
||||
if (!areaEntry)
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has a record for not existing zone id (%u), skipped.", zoneId);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (areaEntry->zone != 0)
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has a record for subzone id (%u) instead of zone, skipped.", zoneId);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (team != 0 && team != HORDE && team != ALLIANCE)
|
||||
{
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has a record for non player faction (%u), skipped.", team);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!AddGraveyardLink(safeLocId, zoneId, teamId, false))
|
||||
sLog->outErrorDb("Table `game_graveyard_zone` has a duplicate record for Graveyard (ID: %u) and Zone (ID: %u), skipped.", safeLocId, zoneId);
|
||||
|
||||
} while (result->NextRow());
|
||||
|
||||
sLog->outString(">> Loaded %u graveyard-zone links in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString();
|
||||
}
|
||||
|
||||
GraveyardStruct const* Graveyard::GetGraveyard(const std::string& name) const
|
||||
{
|
||||
// explicit name case
|
||||
std::wstring wname;
|
||||
if (!Utf8toWStr(name, wname))
|
||||
return NULL;
|
||||
|
||||
// converting string that we try to find to lower case
|
||||
wstrToLower(wname);
|
||||
|
||||
// Alternative first GameTele what contains wnameLow as substring in case no GameTele location found
|
||||
const GraveyardStruct* alt = NULL;
|
||||
for (GraveyardContainer::const_iterator itr = _graveyardStore.begin(); itr != _graveyardStore.end(); ++itr)
|
||||
{
|
||||
if (itr->second.wnameLow == wname)
|
||||
return &itr->second;
|
||||
else if (alt == NULL && itr->second.wnameLow.find(wname) != std::wstring::npos)
|
||||
alt = &itr->second;
|
||||
}
|
||||
|
||||
return alt;
|
||||
}
|
||||
58
src/server/game/Misc/GameGraveyard.h
Normal file
58
src/server/game/Misc/GameGraveyard.h
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
#ifndef _GAMEGRAVEYARD_H_
|
||||
#define _GAMEGRAVEYARD_H_
|
||||
|
||||
#include "Common.h"
|
||||
#include "SharedDefines.h"
|
||||
#include <ace/Singleton.h>
|
||||
|
||||
struct GraveyardStruct
|
||||
{
|
||||
uint32 ID;
|
||||
uint32 Map;
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
std::string name;
|
||||
std::wstring wnameLow;
|
||||
};
|
||||
|
||||
struct GraveyardData
|
||||
{
|
||||
uint32 safeLocId;
|
||||
TeamId teamId;
|
||||
};
|
||||
|
||||
typedef std::multimap<uint32, GraveyardData> WGGraveyardContainer;
|
||||
typedef std::pair<WGGraveyardContainer::const_iterator, WGGraveyardContainer::const_iterator> GraveyardMapBounds;
|
||||
typedef std::pair<WGGraveyardContainer::iterator, WGGraveyardContainer::iterator> GraveyardMapBoundsNonConst;
|
||||
|
||||
class Graveyard
|
||||
{
|
||||
friend class ACE_Singleton<Graveyard, ACE_Null_Mutex>;
|
||||
|
||||
public:
|
||||
|
||||
typedef UNORDERED_MAP<uint32, GraveyardStruct> GraveyardContainer;
|
||||
|
||||
GraveyardStruct const* GetGraveyard(uint32 ID) const;
|
||||
GraveyardStruct const* GetGraveyard(const std::string& name) const;
|
||||
GraveyardStruct const* GetDefaultGraveyard(TeamId teamId);
|
||||
GraveyardStruct const* GetClosestGraveyard(float x, float y, float z, uint32 MapId, TeamId teamId);
|
||||
GraveyardData const* FindGraveyardData(uint32 id, uint32 zone);
|
||||
GraveyardContainer const& GetGraveyardData() const { return _graveyardStore; }
|
||||
bool AddGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist = true);
|
||||
void RemoveGraveyardLink(uint32 id, uint32 zoneId, TeamId teamId, bool persist = false);
|
||||
void LoadGraveyardZones();
|
||||
void LoadGraveyardFromDB();
|
||||
|
||||
private:
|
||||
|
||||
GraveyardContainer _graveyardStore;
|
||||
|
||||
// for wintergrasp only
|
||||
WGGraveyardContainer GraveyardStore;
|
||||
};
|
||||
|
||||
#define sGraveyard ACE_Singleton<Graveyard, ACE_Null_Mutex>::instance()
|
||||
|
||||
#endif // _GAMEGRAVEYARD_H_
|
||||
|
|
@ -98,8 +98,22 @@ void TargetedMovementGeneratorMedium<T,D>::_setTargetLocation(T* owner, bool ini
|
|||
if ((!initial || (owner->movespline->Finalized() && this->GetMovementGeneratorType() == CHASE_MOTION_TYPE)) && i_target->IsWithinDistInMap(owner, dist) && i_target->IsWithinLOS(owner->GetPositionX(), owner->GetPositionY(), owner->GetPositionZ()))
|
||||
return;
|
||||
|
||||
// Xinef: Fix follow angle for hostile units
|
||||
float angle = i_angle;
|
||||
|
||||
if (i_target->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
Creature* creature = owner->ToCreature();
|
||||
|
||||
if (creature && creature->GetCreatureType() == CREATURE_TYPE_NON_COMBAT_PET)
|
||||
{
|
||||
// fix distance and angle for vanity pets
|
||||
dist = 0.3f;
|
||||
angle = PET_FOLLOW_ANGLE + M_PI * 0.2f;
|
||||
size = i_target->GetCombatReach() - i_target->GetObjectSize();
|
||||
}
|
||||
}
|
||||
|
||||
// Xinef: Fix follow angle for hostile units
|
||||
if (angle == 0.0f && owner->GetVictim() && owner->GetVictim()->GetGUID() == i_target->GetGUID())
|
||||
angle = MapManager::NormalizeOrientation(i_target->GetAngle(owner)-i_target->GetOrientation());
|
||||
// to at i_offset distance from target and i_angle from target facing
|
||||
|
|
@ -298,6 +312,18 @@ bool TargetedMovementGeneratorMedium<T,D>::DoUpdate(T* owner, uint32 time_diff)
|
|||
if (i_recalculateTravel)
|
||||
_setTargetLocation(owner, false);
|
||||
}
|
||||
|
||||
Unit* pOwner = owner->GetCharmerOrOwner();
|
||||
|
||||
if (pOwner && pOwner->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
// Update pet speed for players in order to avoid stuttering
|
||||
if (pOwner->IsFlying())
|
||||
owner->UpdateSpeed(MOVE_FLIGHT, true);
|
||||
else
|
||||
owner->UpdateSpeed(MOVE_RUN, true);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,8 @@ void Quest::LoadQuestTemplateAddon(Field* fields)
|
|||
RequiredMinRepValue = fields[13].GetInt32();
|
||||
RequiredMaxRepValue = fields[14].GetInt32();
|
||||
StartItemCount = fields[15].GetUInt8();
|
||||
SpecialFlags = fields[16].GetUInt8();
|
||||
RewardMailSenderEntry = fields[16].GetUInt32();
|
||||
SpecialFlags = fields[17].GetUInt8();
|
||||
|
||||
if (SpecialFlags & QUEST_SPECIAL_FLAGS_AUTO_ACCEPT)
|
||||
Flags |= QUEST_FLAGS_AUTO_ACCEPT;
|
||||
|
|
|
|||
|
|
@ -176,6 +176,16 @@ struct QuestLocale
|
|||
std::vector< StringVector > ObjectiveText;
|
||||
};
|
||||
|
||||
struct QuestRequestItemsLocale
|
||||
{
|
||||
std::vector<std::string> CompletionText;
|
||||
};
|
||||
|
||||
struct QuestOfferRewardLocale
|
||||
{
|
||||
std::vector<std::string> RewardText;
|
||||
};
|
||||
|
||||
// This Quest class provides a convenient way to access a few pretotaled (cached) quest details,
|
||||
// all base quest information, and any utility functions such as generating the amount of
|
||||
// xp to give
|
||||
|
|
@ -246,6 +256,7 @@ class Quest
|
|||
int32 GetRewSpellCast() const { return RewardSpell; }
|
||||
uint32 GetRewMailTemplateId() const { return RewardMailTemplateId; }
|
||||
uint32 GetRewMailDelaySecs() const { return RewardMailDelay; }
|
||||
uint32 GetRewMailSenderEntry() const { return RewardMailSenderEntry; }
|
||||
uint32 GetPOIContinent() const { return POIContinent; }
|
||||
float GetPOIx() const { return POIx; }
|
||||
float GetPOIy() const { return POIy; }
|
||||
|
|
@ -371,6 +382,7 @@ class Quest
|
|||
uint32 RequiredMaxRepFaction = 0;
|
||||
int32 RequiredMaxRepValue = 0;
|
||||
uint32 StartItemCount = 0;
|
||||
uint32 RewardMailSenderEntry = 0;
|
||||
uint32 SpecialFlags = 0; // custom flags, not sniffed/WDB
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -371,7 +371,8 @@ void Map::ScriptsProcess()
|
|||
if (Player* player = _GetScriptPlayerSourceOrTarget(source, target, step.script))
|
||||
{
|
||||
LocaleConstant loc_idx = player->GetSession()->GetSessionDbLocaleIndex();
|
||||
std::string text(sObjectMgr->GetTrinityString(step.script->Talk.TextID, loc_idx));
|
||||
BroadcastText const* broadcastText = sObjectMgr->GetBroadcastText(step.script->Talk.TextID);
|
||||
std::string text = broadcastText->GetText(loc_idx, player->getGender());
|
||||
|
||||
switch (step.script->Talk.ChatType)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ WorldSession::WorldSession(uint32 id, WorldSocket* sock, AccountTypes sec, uint8
|
|||
{
|
||||
m_Address = sock->GetRemoteAddress();
|
||||
sock->AddReference();
|
||||
ResetTimeOutTime();
|
||||
ResetTimeOutTime(false);
|
||||
LoginDatabase.PExecute("UPDATE account SET online = online | (1<<(%u-1)) WHERE id = %u;", realmID, GetAccountId());
|
||||
}
|
||||
|
||||
|
|
@ -251,6 +251,9 @@ bool WorldSession::Update(uint32 diff, PacketFilter& updater)
|
|||
if (updater.ProcessLogout())
|
||||
{
|
||||
UpdateTimeOutTime(diff);
|
||||
|
||||
/// If necessary, kick the player because the client didn't send anything for too long
|
||||
/// (or they've been idling in character select)
|
||||
if (IsConnectionIdle())
|
||||
m_Socket->CloseSocket();
|
||||
}
|
||||
|
|
@ -652,7 +655,7 @@ void WorldSession::SendNotification(uint32 string_id, ...)
|
|||
}
|
||||
}
|
||||
|
||||
const char *WorldSession::GetTrinityString(int32 entry) const
|
||||
char const* WorldSession::GetTrinityString(uint32 entry) const
|
||||
{
|
||||
return sObjectMgr->GetTrinityString(entry, GetSessionDbLocaleIndex());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ class WorldSession
|
|||
// Locales
|
||||
LocaleConstant GetSessionDbcLocale() const { return m_sessionDbcLocale; }
|
||||
LocaleConstant GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; }
|
||||
const char *GetTrinityString(int32 entry) const;
|
||||
char const* GetTrinityString(uint32 entry) const;
|
||||
|
||||
uint32 GetLatency() const { return m_latency; }
|
||||
void SetLatency(uint32 latency) { m_latency = latency; }
|
||||
|
|
@ -355,9 +355,12 @@ class WorldSession
|
|||
else
|
||||
m_timeOutTime -= diff;
|
||||
}
|
||||
void ResetTimeOutTime()
|
||||
void ResetTimeOutTime(bool onlyActive)
|
||||
{
|
||||
m_timeOutTime = sWorld->getIntConfig(CONFIG_SOCKET_TIMEOUTTIME);
|
||||
if (GetPlayer())
|
||||
m_timeOutTime = int32(sWorld->getIntConfig(CONFIG_SOCKET_TIMEOUTTIME_ACTIVE));
|
||||
else if (!onlyActive)
|
||||
m_timeOutTime = int32(sWorld->getIntConfig(CONFIG_SOCKET_TIMEOUTTIME));
|
||||
}
|
||||
bool IsConnectionIdle() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -681,8 +681,10 @@ int WorldSocket::ProcessIncoming(WorldPacket* new_pct)
|
|||
return -1;
|
||||
}
|
||||
return HandleAuthSession (*new_pct);
|
||||
case CMSG_KEEP_ALIVE:
|
||||
return 0;
|
||||
case CMSG_KEEP_ALIVE:
|
||||
if (m_Session)
|
||||
m_Session->ResetTimeOutTime(true);
|
||||
break;
|
||||
default:
|
||||
{
|
||||
ACE_GUARD_RETURN (LockType, Guard, m_SessionLock, -1);
|
||||
|
|
@ -691,7 +693,7 @@ int WorldSocket::ProcessIncoming(WorldPacket* new_pct)
|
|||
{
|
||||
// Our Idle timer will reset on any non PING opcodes.
|
||||
// Catches people idling on the login screen and any lingering ingame connections.
|
||||
m_Session->ResetTimeOutTime();
|
||||
m_Session->ResetTimeOutTime(false);
|
||||
|
||||
// OK, give the packet to WorldSession
|
||||
aptr.release();
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include "BattlefieldMgr.h"
|
||||
#include "InstanceScript.h"
|
||||
#include "Player.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
bool IsPrimaryProfessionSkill(uint32 skill)
|
||||
{
|
||||
|
|
@ -5716,6 +5717,7 @@ void SpellMgr::LoadDbcDataCorrections()
|
|||
case 69030: // Val'kyr Target Search
|
||||
spellInfo->EffectRadiusIndex[0] = EFFECT_RADIUS_200_YARDS; // 200yd
|
||||
spellInfo->EffectRadiusIndex[1] = EFFECT_RADIUS_200_YARDS; // 200yd
|
||||
spellInfo->Attributes |= SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY;
|
||||
break;
|
||||
case 73654: // Harvest Souls
|
||||
case 74295: // Harvest Souls
|
||||
|
|
@ -6335,10 +6337,10 @@ void SpellMgr::LoadDbcDataCorrections()
|
|||
|
||||
|
||||
// Ring of Valor starting Locations
|
||||
WorldSafeLocsEntry const* entry = sWorldSafeLocsStore.LookupEntry(1364);
|
||||
const_cast<WorldSafeLocsEntry*>(entry)->z += 6.0f;
|
||||
entry = sWorldSafeLocsStore.LookupEntry(1365);
|
||||
const_cast<WorldSafeLocsEntry*>(entry)->z += 6.0f;
|
||||
GraveyardStruct const* entry = sGraveyard->GetGraveyard(1364);
|
||||
const_cast<GraveyardStruct*>(entry)->z += 6.0f;
|
||||
entry = sGraveyard->GetGraveyard(1365);
|
||||
const_cast<GraveyardStruct*>(entry)->z += 6.0f;
|
||||
|
||||
LockEntry* key = const_cast<LockEntry*>(sLockStore.LookupEntry(36)); // 3366 Opening, allows to open without proper key
|
||||
key->Type[2] = LOCK_KEY_NONE;
|
||||
|
|
|
|||
|
|
@ -155,27 +155,31 @@ void CreatureTextMgr::LoadCreatureTextLocales()
|
|||
|
||||
mLocaleTextMap.clear(); // for reload case
|
||||
|
||||
QueryResult result = WorldDatabase.Query("SELECT entry, groupid, id, text_loc1, text_loc2, text_loc3, text_loc4, text_loc5, text_loc6, text_loc7, text_loc8 FROM locales_creature_text");
|
||||
QueryResult result = WorldDatabase.Query("SELECT CreatureId, GroupId, ID, Locale, Text FROM creature_text_locale");
|
||||
|
||||
if (!result)
|
||||
return;
|
||||
|
||||
uint32 textCount = 0;
|
||||
|
||||
do
|
||||
{
|
||||
Field* fields = result->Fetch();
|
||||
CreatureTextLocale& loc = mLocaleTextMap[CreatureTextId(fields[0].GetUInt32(), uint32(fields[1].GetUInt8()), uint32(fields[2].GetUInt8()))];
|
||||
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
|
||||
{
|
||||
LocaleConstant locale = LocaleConstant(i);
|
||||
ObjectMgr::AddLocaleString(fields[3 + i - 1].GetString(), locale, loc.Text);
|
||||
}
|
||||
|
||||
++textCount;
|
||||
uint32 CreatureId = fields[0].GetUInt32();
|
||||
uint32 GroupId = fields[1].GetUInt8();
|
||||
uint32 ID = fields[2].GetUInt8();
|
||||
std::string LocaleName = fields[3].GetString();
|
||||
std::string Text = fields[4].GetString();
|
||||
|
||||
CreatureTextLocale& data = mLocaleTextMap[CreatureTextId(CreatureId, GroupId, ID)];
|
||||
LocaleConstant locale = GetLocaleByName(LocaleName);
|
||||
if (locale == LOCALE_enUS)
|
||||
continue;
|
||||
|
||||
ObjectMgr::AddLocaleString(Text, locale, data.Text);
|
||||
|
||||
} while (result->NextRow());
|
||||
|
||||
sLog->outString(">> Loaded %u creature localized texts in %u ms", textCount, GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString(">> Loaded %u Creature Text Locale in %u ms", uint32(mLocaleTextMap.size()), GetMSTimeDiffToNow(oldMSTime));
|
||||
sLog->outString();
|
||||
}
|
||||
|
||||
|
|
@ -468,17 +472,21 @@ std::string CreatureTextMgr::GetLocalizedChatString(uint32 entry, uint8 gender,
|
|||
|
||||
if (locale > MAX_LOCALES)
|
||||
locale = DEFAULT_LOCALE;
|
||||
|
||||
std::string baseText = "";
|
||||
|
||||
BroadcastText const* bct = sObjectMgr->GetBroadcastText(groupItr->BroadcastTextId);
|
||||
if (bct)
|
||||
baseText = bct->GetText(locale, gender);
|
||||
else
|
||||
baseText = groupItr->text;
|
||||
|
||||
if (locale != DEFAULT_LOCALE && !bct)
|
||||
{
|
||||
LocaleCreatureTextMap::const_iterator locItr = mLocaleTextMap.find(CreatureTextId(entry, uint32(textGroup), id));
|
||||
if (locItr != mLocaleTextMap.end())
|
||||
ObjectMgr::GetLocaleString(locItr->second.Text, locale, baseText);
|
||||
}
|
||||
|
||||
return baseText;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@
|
|||
#include "WhoListCache.h"
|
||||
#include "AsyncAuctionListing.h"
|
||||
#include "SavingSystem.h"
|
||||
#include "GameGraveyard.h"
|
||||
#include <VMapManager2.h>
|
||||
#ifdef ELUNA
|
||||
#include "LuaEngine.h"
|
||||
|
|
@ -375,7 +376,7 @@ bool World::RemoveQueuedPlayer(WorldSession* sess)
|
|||
if (*iter == sess)
|
||||
{
|
||||
sess->SetInQueue(false);
|
||||
sess->ResetTimeOutTime();
|
||||
sess->ResetTimeOutTime(false);
|
||||
iter = m_QueuedPlayer.erase(iter);
|
||||
found = true;
|
||||
break;
|
||||
|
|
@ -394,7 +395,7 @@ bool World::RemoveQueuedPlayer(WorldSession* sess)
|
|||
{
|
||||
WorldSession* pop_sess = m_QueuedPlayer.front();
|
||||
pop_sess->SetInQueue(false);
|
||||
pop_sess->ResetTimeOutTime();
|
||||
pop_sess->ResetTimeOutTime(false);
|
||||
pop_sess->SendAuthWaitQue(0);
|
||||
pop_sess->SendAddonsInfo();
|
||||
|
||||
|
|
@ -690,6 +691,7 @@ void World::LoadConfigSettings(bool reload)
|
|||
m_int_configs[CONFIG_PORT_WORLD] = sConfigMgr->GetIntDefault("WorldServerPort", 8085);
|
||||
|
||||
m_int_configs[CONFIG_SOCKET_TIMEOUTTIME] = sConfigMgr->GetIntDefault("SocketTimeOutTime", 900000);
|
||||
m_int_configs[CONFIG_SOCKET_TIMEOUTTIME_ACTIVE] = sConfigMgr->GetIntDefault("SocketTimeOutTimeActive", 60000);
|
||||
m_int_configs[CONFIG_SESSION_ADD_DELAY] = sConfigMgr->GetIntDefault("SessionAddDelay", 10000);
|
||||
|
||||
m_float_configs[CONFIG_GROUP_XP_DISTANCE] = sConfigMgr->GetFloatDefault("MaxGroupXPDistance", 74.0f);
|
||||
|
|
@ -1412,6 +1414,9 @@ void World::SetInitialWorldSettings()
|
|||
LoadDBCStores(m_dataPath);
|
||||
DetectDBCLang();
|
||||
|
||||
sLog->outString("Loading Game Graveyard...");
|
||||
sGraveyard->LoadGraveyardFromDB();
|
||||
|
||||
sLog->outString("Loading spell dbc data corrections...");
|
||||
sSpellMgr->LoadDbcDataCorrections();
|
||||
|
||||
|
|
@ -1458,6 +1463,8 @@ void World::SetInitialWorldSettings()
|
|||
sObjectMgr->LoadItemLocales();
|
||||
sObjectMgr->LoadItemSetNameLocales();
|
||||
sObjectMgr->LoadQuestLocales();
|
||||
sObjectMgr->LoadQuestOfferRewardLocale();
|
||||
sObjectMgr->LoadQuestRequestItemsLocale();
|
||||
sObjectMgr->LoadNpcTextLocales();
|
||||
sObjectMgr->LoadPageTextLocales();
|
||||
sObjectMgr->LoadGossipMenuItemsLocales();
|
||||
|
|
@ -1640,7 +1647,7 @@ void World::SetInitialWorldSettings()
|
|||
sLFGMgr->LoadRewards();
|
||||
|
||||
sLog->outString("Loading Graveyard-zone links...");
|
||||
sObjectMgr->LoadGraveyardZones();
|
||||
sGraveyard->LoadGraveyardZones();
|
||||
|
||||
sLog->outString("Loading spell pet auras...");
|
||||
sSpellMgr->LoadSpellPetAuras();
|
||||
|
|
@ -1800,10 +1807,7 @@ void World::SetInitialWorldSettings()
|
|||
sObjectMgr->LoadSpellScripts(); // must be after load Creature/Gameobject(Template/Data)
|
||||
sObjectMgr->LoadEventScripts(); // must be after load Creature/Gameobject(Template/Data)
|
||||
sObjectMgr->LoadWaypointScripts();
|
||||
|
||||
sLog->outString("Loading Scripts text locales..."); // must be after Load*Scripts calls
|
||||
sObjectMgr->LoadDbScriptStrings();
|
||||
|
||||
|
||||
sLog->outString("Loading spell script names...");
|
||||
sObjectMgr->LoadSpellScriptNames();
|
||||
|
||||
|
|
@ -2277,7 +2281,7 @@ namespace Trinity
|
|||
{
|
||||
public:
|
||||
typedef std::vector<WorldPacket*> WorldPacketList;
|
||||
explicit WorldWorldTextBuilder(int32 textId, va_list* args = NULL) : i_textId(textId), i_args(args) {}
|
||||
explicit WorldWorldTextBuilder(uint32 textId, va_list* args = NULL) : i_textId(textId), i_args(args) {}
|
||||
void operator()(WorldPacketList& data_list, LocaleConstant loc_idx)
|
||||
{
|
||||
char const* text = sObjectMgr->GetTrinityString(i_textId, loc_idx);
|
||||
|
|
@ -2311,13 +2315,13 @@ namespace Trinity
|
|||
}
|
||||
|
||||
|
||||
int32 i_textId;
|
||||
uint32 i_textId;
|
||||
va_list* i_args;
|
||||
};
|
||||
} // namespace Trinity
|
||||
|
||||
/// Send a System Message to all players (except self if mentioned)
|
||||
void World::SendWorldText(int32 string_id, ...)
|
||||
void World::SendWorldText(uint32 string_id, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, string_id);
|
||||
|
|
@ -2336,7 +2340,7 @@ void World::SendWorldText(int32 string_id, ...)
|
|||
}
|
||||
|
||||
/// Send a System Message to all GMs (except self if mentioned)
|
||||
void World::SendGMText(int32 string_id, ...)
|
||||
void World::SendGMText(uint32 string_id, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, string_id);
|
||||
|
|
|
|||
|
|
@ -330,6 +330,7 @@ enum WorldIntConfigs
|
|||
CONFIG_WARDEN_NUM_MEM_CHECKS,
|
||||
CONFIG_WARDEN_NUM_OTHER_CHECKS,
|
||||
CONFIG_BIRTHDAY_TIME,
|
||||
CONFIG_SOCKET_TIMEOUTTIME_ACTIVE,
|
||||
INT_CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
|
|
@ -650,9 +651,9 @@ class World
|
|||
void LoadConfigSettings(bool reload = false);
|
||||
void LoadModuleConfigSettings();
|
||||
|
||||
void SendWorldText(int32 string_id, ...);
|
||||
void SendWorldText(uint32 string_id, ...);
|
||||
void SendGlobalText(const char* text, WorldSession* self);
|
||||
void SendGMText(int32 string_id, ...);
|
||||
void SendGMText(uint32 string_id, ...);
|
||||
void SendGlobalMessage(WorldPacket* packet, WorldSession* self = 0, TeamId teamId = TEAM_NEUTRAL);
|
||||
void SendGlobalGMMessage(WorldPacket* packet, WorldSession* self = 0, TeamId teamId = TEAM_NEUTRAL);
|
||||
bool SendZoneMessage(uint32 zone, WorldPacket* packet, WorldSession* self = 0, TeamId teamId = TEAM_NEUTRAL);
|
||||
|
|
|
|||
|
|
@ -180,6 +180,9 @@ include_directories(
|
|||
${MYSQL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Group sources
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_library(scripts STATIC
|
||||
${scripts_STAT_SRCS}
|
||||
${scripts_STAT_PCH_SRC}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ EndScriptData */
|
|||
#include "Chat.h"
|
||||
#include "Language.h"
|
||||
#include "Player.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
class go_commandscript : public CommandScript
|
||||
{
|
||||
|
|
@ -171,7 +172,7 @@ public:
|
|||
if (!graveyardId)
|
||||
return false;
|
||||
|
||||
WorldSafeLocsEntry const* gy = sWorldSafeLocsStore.LookupEntry(graveyardId);
|
||||
GraveyardStruct const* gy = sGraveyard->GetGraveyard(graveyardId);
|
||||
if (!gy)
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDNOEXIST, graveyardId);
|
||||
|
|
@ -179,9 +180,9 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!MapManager::IsValidMapCoord(gy->map_id, gy->x, gy->y, gy->z))
|
||||
if (!MapManager::IsValidMapCoord(gy->Map, gy->x, gy->y, gy->z))
|
||||
{
|
||||
handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, gy->x, gy->y, gy->map_id);
|
||||
handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, gy->x, gy->y, gy->Map);
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -196,7 +197,7 @@ public:
|
|||
else
|
||||
player->SaveRecallPosition();
|
||||
|
||||
player->TeleportTo(gy->map_id, gy->x, gy->y, gy->z, player->GetOrientation());
|
||||
player->TeleportTo(gy->Map, gy->x, gy->y, gy->z, player->GetOrientation());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "GroupMgr.h"
|
||||
#include "BattlegroundMgr.h"
|
||||
#include "MapManager.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
class misc_commandscript : public CommandScript
|
||||
{
|
||||
|
|
@ -1268,7 +1269,7 @@ public:
|
|||
else
|
||||
return false;
|
||||
|
||||
WorldSafeLocsEntry const* graveyard = sWorldSafeLocsStore.LookupEntry(graveyardId);
|
||||
GraveyardStruct const* graveyard = sGraveyard->GetGraveyard(graveyardId);
|
||||
|
||||
if (!graveyard)
|
||||
{
|
||||
|
|
@ -1289,7 +1290,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
if (sObjectMgr->AddGraveyardLink(graveyardId, zoneId, teamId))
|
||||
if (sGraveyard->AddGraveyardLink(graveyardId, zoneId, teamId))
|
||||
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDLINKED, graveyardId, zoneId);
|
||||
else
|
||||
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDALRLINKED, graveyardId, zoneId);
|
||||
|
|
@ -1315,13 +1316,13 @@ public:
|
|||
Player* player = handler->GetSession()->GetPlayer();
|
||||
uint32 zone_id = player->GetZoneId();
|
||||
|
||||
WorldSafeLocsEntry const* graveyard = sObjectMgr->GetClosestGraveyard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), teamId);
|
||||
GraveyardStruct const* graveyard = sGraveyard->GetClosestGraveyard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), teamId);
|
||||
|
||||
if (graveyard)
|
||||
{
|
||||
uint32 graveyardId = graveyard->ID;
|
||||
|
||||
GraveyardData const* data = sObjectMgr->FindGraveyardData(graveyardId, zone_id);
|
||||
GraveyardData const* data = sGraveyard->FindGraveyardData(graveyardId, zone_id);
|
||||
if (!data)
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_GRAVEYARDERROR, graveyardId);
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ EndScriptData */
|
|||
#include "TicketMgr.h"
|
||||
#include "WardenCheckMgr.h"
|
||||
#include "WaypointManager.h"
|
||||
#include "GameGraveyard.h"
|
||||
|
||||
class reload_commandscript : public CommandScript
|
||||
{
|
||||
|
|
@ -75,11 +76,11 @@ public:
|
|||
{ "creature_onkill_reputation", SEC_ADMINISTRATOR, true, &HandleReloadOnKillReputationCommand, "" },
|
||||
{ "creature_queststarter", SEC_ADMINISTRATOR, true, &HandleReloadCreatureQuestStarterCommand, "" },
|
||||
{ "creature_template", SEC_ADMINISTRATOR, true, &HandleReloadCreatureTemplateCommand, "" },
|
||||
//{ "db_script_string", SEC_ADMINISTRATOR, true, &HandleReloadDbScriptStringCommand, "" },
|
||||
{ "disables", SEC_ADMINISTRATOR, true, &HandleReloadDisablesCommand, "" },
|
||||
{ "disenchant_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesDisenchantCommand, "" },
|
||||
{ "event_scripts", SEC_ADMINISTRATOR, true, &HandleReloadEventScriptsCommand, "" },
|
||||
{ "fishing_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesFishingCommand, "" },
|
||||
{ "game_graveyard", SEC_ADMINISTRATOR, true, &HandleReloadGameGraveyardCommand, "" },
|
||||
{ "game_graveyard_zone", SEC_ADMINISTRATOR, true, &HandleReloadGameGraveyardZoneCommand, "" },
|
||||
{ "game_tele", SEC_ADMINISTRATOR, true, &HandleReloadGameTeleCommand, "" },
|
||||
{ "gameobject_questender", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestEnderCommand, "" },
|
||||
|
|
@ -92,17 +93,19 @@ public:
|
|||
{ "item_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesItemCommand, "" },
|
||||
{ "item_set_names", SEC_ADMINISTRATOR, true, &HandleReloadItemSetNamesCommand, "" },
|
||||
{ "lfg_dungeon_rewards", SEC_ADMINISTRATOR, true, &HandleReloadLfgRewardsCommand, "" },
|
||||
{ "locales_achievement_reward", SEC_ADMINISTRATOR, true, &HandleReloadLocalesAchievementRewardCommand, "" },
|
||||
{ "locales_creature", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureCommand, "" },
|
||||
{ "locales_creature_text", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureTextCommand, "" },
|
||||
{ "locales_gameobject", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGameobjectCommand, "" },
|
||||
{ "locales_gossip_menu_option", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGossipMenuOptionCommand, "" },
|
||||
{ "locales_item", SEC_ADMINISTRATOR, true, &HandleReloadLocalesItemCommand, "" },
|
||||
{ "locales_item_set_name", SEC_ADMINISTRATOR, true, &HandleReloadLocalesItemSetNameCommand, "" },
|
||||
{ "locales_npc_text", SEC_ADMINISTRATOR, true, &HandleReloadLocalesNpcTextCommand, "" },
|
||||
{ "locales_page_text", SEC_ADMINISTRATOR, true, &HandleReloadLocalesPageTextCommand, "" },
|
||||
{ "locales_points_of_interest", SEC_ADMINISTRATOR, true, &HandleReloadLocalesPointsOfInterestCommand, "" },
|
||||
{ "locales_quest", SEC_ADMINISTRATOR, true, &HandleReloadLocalesQuestCommand, "" },
|
||||
{ "achievement_reward_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesAchievementRewardCommand, "" },
|
||||
{ "creature_template_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureCommand, "" },
|
||||
{ "creature_text_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesCreatureTextCommand, "" },
|
||||
{ "gameobject_template_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGameobjectCommand, "" },
|
||||
{ "gossip_menu_option_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesGossipMenuOptionCommand, "" },
|
||||
{ "item_template_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesItemCommand, "" },
|
||||
{ "item_set_name_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesItemSetNameCommand, "" },
|
||||
{ "npc_text_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesNpcTextCommand, "" },
|
||||
{ "page_text_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesPageTextCommand, "" },
|
||||
{ "points_of_interest_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesPointsOfInterestCommand, "" },
|
||||
{ "quest_template_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesQuestCommand, "" },
|
||||
{ "quest_offer_reward_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesQuestOfferRewardCommand, "" },
|
||||
{ "quest_request_item_locale", SEC_ADMINISTRATOR, true, &HandleReloadLocalesQuestRequestItemsCommand, "" },
|
||||
{ "mail_level_reward", SEC_ADMINISTRATOR, true, &HandleReloadMailLevelRewardCommand, "" },
|
||||
{ "mail_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesMailCommand, "" },
|
||||
{ "milling_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesMillingCommand, "" },
|
||||
|
|
@ -256,7 +259,6 @@ public:
|
|||
HandleReloadEventScriptsCommand(handler, "a");
|
||||
HandleReloadSpellScriptsCommand(handler, "a");
|
||||
handler->SendGlobalGMSysMessage("DB tables `*_scripts` reloaded.");
|
||||
HandleReloadDbScriptStringCommand(handler, "a");
|
||||
HandleReloadWpScriptsCommand(handler, "a");
|
||||
HandleReloadWpCommand(handler, "a");
|
||||
return true;
|
||||
|
|
@ -308,6 +310,8 @@ public:
|
|||
HandleReloadLocalesPageTextCommand(handler, "a");
|
||||
HandleReloadLocalesPointsOfInterestCommand(handler, "a");
|
||||
HandleReloadLocalesQuestCommand(handler, "a");
|
||||
HandleReloadLocalesQuestOfferRewardCommand(handler, "a");
|
||||
HandleReloadLocalesQuestRequestItemsCommand(handler, "a");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1010,19 +1014,11 @@ public:
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadDbScriptStringCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Script strings from `db_script_string`...");
|
||||
sObjectMgr->LoadDbScriptStrings();
|
||||
handler->SendGlobalGMSysMessage("DB table `db_script_string` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadGameGraveyardZoneCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Graveyard-zone links...");
|
||||
|
||||
sObjectMgr->LoadGraveyardZones();
|
||||
sGraveyard->LoadGraveyardZones();
|
||||
|
||||
handler->SendGlobalGMSysMessage("DB table `game_graveyard_zone` reloaded.");
|
||||
|
||||
|
|
@ -1052,9 +1048,11 @@ public:
|
|||
|
||||
static bool HandleReloadLocalesAchievementRewardCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Achievement Reward Data...");
|
||||
sLog->outString("Re-Loading Achievement Reward Data Locale...");
|
||||
sAchievementMgr->LoadRewardLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `achievement_reward_locale` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_achievement_reward` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("|cff6C8CD5#|cFFFF0000 Таблица|r `achievement_reward_locale` |cFFFF0000перезагружена.|r");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1068,73 +1066,73 @@ public:
|
|||
|
||||
static bool HandleReloadLocalesCreatureCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Creature ...");
|
||||
sLog->outString("Re-Loading Creature Template Locale...");
|
||||
sObjectMgr->LoadCreatureLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_creature` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `creature_template_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesCreatureTextCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Creature Texts...");
|
||||
sLog->outString("Re-Loading Creature Texts Locale...");
|
||||
sCreatureTextMgr->LoadCreatureTextLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_creature_text` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `creature_text_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesGameobjectCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Gameobject ... ");
|
||||
sLog->outString("Re-Loading Gameobject Template Locale ... ");
|
||||
sObjectMgr->LoadGameObjectLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_gameobject` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `gameobject_template_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesGossipMenuOptionCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString( "Re-Loading Locales Gossip Menu Option ... ");
|
||||
sLog->outString( "Re-Loading Gossip Menu Option Locale ... ");
|
||||
sObjectMgr->LoadGossipMenuItemsLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_gossip_menu_option` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `gossip_menu_option_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesItemCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Item ... ");
|
||||
sLog->outString("Re-Loading Item Template Locale ... ");
|
||||
sObjectMgr->LoadItemLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_item` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `item_template_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesItemSetNameCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Item set name... ");
|
||||
sLog->outString("Re-Loading Item set name Locale... ");
|
||||
sObjectMgr->LoadItemSetNameLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_item_set_name` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `item_set_name_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesNpcTextCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales NPC Text ... ");
|
||||
sLog->outString("Re-Loading NPC Text Locale ... ");
|
||||
sObjectMgr->LoadNpcTextLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_npc_text` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `npc_text_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesPageTextCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Page Text ... ");
|
||||
sLog->outString("Re-Loading Page Text Locale ... ");
|
||||
sObjectMgr->LoadPageTextLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_page_text` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `page_text_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesPointsOfInterestCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Locales Points Of Interest ... ");
|
||||
sLog->outString("Re-Loading Points Of Interest Locale ... ");
|
||||
sObjectMgr->LoadPointOfInterestLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_points_of_interest` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `points_of_interest_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1142,7 +1140,23 @@ public:
|
|||
{
|
||||
sLog->outString("Re-Loading Locales Quest ... ");
|
||||
sObjectMgr->LoadQuestLocales();
|
||||
handler->SendGlobalGMSysMessage("DB table `locales_quest` reloaded.");
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_template_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesQuestOfferRewardCommand(ChatHandler* handler, char const* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Quest Offer Reward Locale... ");
|
||||
sObjectMgr->LoadQuestOfferRewardLocale();
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_offer_reward_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadLocalesQuestRequestItemsCommand(ChatHandler* handler, char const* /*args*/)
|
||||
{
|
||||
sLog->outString("Re-Loading Quest Request Item Locale... ");
|
||||
sObjectMgr->LoadQuestRequestItemsLocale();
|
||||
handler->SendGlobalGMSysMessage("DB table `quest_request_item_locale` reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1203,6 +1217,14 @@ public:
|
|||
handler->SendGlobalGMSysMessage("Vehicle template accessories reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadGameGraveyardCommand(ChatHandler* handler, const char* /*args*/)
|
||||
{
|
||||
sLog->outString("Reloading game_graveyard table...");
|
||||
sGraveyard->LoadGraveyardFromDB();
|
||||
handler->SendGlobalGMSysMessage("DB table `game_graveyard` reloaded.");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_reload_commandscript()
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "CombatAI.h"
|
||||
#include "Player.h"
|
||||
#include "PoolMgr.h"
|
||||
#include "GameGraveyard.h"
|
||||
#include "World.h"
|
||||
|
||||
#define GOSSIP_HELLO_DEMO1 "Build catapult."
|
||||
|
|
@ -227,8 +228,8 @@ class npc_wg_spirit_guide : public CreatureScript
|
|||
GraveyardVect gy = wintergrasp->GetGraveyardVector();
|
||||
for (uint8 i = 0; i < gy.size(); i++)
|
||||
if (action - GOSSIP_ACTION_INFO_DEF == i && gy[i]->GetControlTeamId() == player->GetTeamId())
|
||||
if (WorldSafeLocsEntry const* safeLoc = sWorldSafeLocsStore.LookupEntry(gy[i]->GetGraveyardId()))
|
||||
player->TeleportTo(safeLoc->map_id, safeLoc->x, safeLoc->y, safeLoc->z, 0);
|
||||
if (GraveyardStruct const* safeLoc = sGraveyard->GetGraveyard(gy[i]->GetGraveyardId()))
|
||||
player->TeleportTo(safeLoc->Map, safeLoc->x, safeLoc->y, safeLoc->z, 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue