|
|
Модератор форума: Dimitro |
Форум TrinityCore Патчи / Моды / Фиксы для Trinity [Сборник] SQL запросы для Новичков. Часть 1 (Пользуйтесь, дорогие новички =)) |
[Сборник] SQL запросы для Новичков. Часть 1 |
В данном сборнике, опишу "примитивные" запросы в базу, дабы помочь нашим дорогим нубикам в это нелёгком деле И так, в запросах я буду использовать X, Y, Z что бы удобнее объяснить что к чему. Начнём: Следующие запросы делаются в базу `world`: Quote Code update `creature` set `spawntimesecs`=300 where `id`=X; Изменение респа мобов. Здесь 300 - время респа в секундах (300сек=5мин), и Х - ид самого моба. ВНИМАНИЕ! Делайте этот запрос, когда мобы уже расставлены в мире. Quote Code update `access_requirement` set `level_min`=X where `mapId`=Z; update `access_requirement` set `level_max`=X2 where `mapId`=Z; Изменение минимального и максимального уровня входа в инстант. X - минимальный уровень, Х2 -максимальный уровень, Z - ид карты. Что бы узнать ID карты, в нужном инсте введите команду .gps (нужна именно карта, а не зона или область) Quote Code insert into `autobroadcast` values (1, 'Текст'); Добавление Авто-сообщения. Тут всё просто, 1- ID, последующие сообщения должны быть 2,3,4 и тд. Текст - это сам текст сообщения (оязательно в ' ') Quote Code insert into `command` values ('maxskill', 0, 'syntax: .maxskill\r\nsets all skills of the targeted player to their maximum values for its current level.'); insert into `command` values ('instance unbind', 0, 'syntax: .instance unbind <mapid|all> [difficulty]\r\n clear all/some of player\s binds'); Даём игрокам команды .max и .in un all. Менять нечего не нужно. Но для справки 0 - это уровеню доступа, может быть вы захотите изменить его. Quote Code INSERT INTO `creature_equip_template` VALUES (X, Y, Y1, Y2); Даём мобу оружие. Х - это ID самого эквипа, а не моба (об этом чуть позже), Y/Y1/Y1 - это оружие для правой/левой руки/дальнобойное оружие. Теперь, что делать с ID-ом эквипа? Его вписываем нужному мобу в equipment_id и всё. Не знаете где это ?) Вот запрос на этот случай. Code update `creature_template` set `equipment_id`=X where `entry`=Z; Где X это ID нашего эквипа, а Z - ид моба. Quote Code insert into `creature_loot_template` values (лут_ид, ид_предмета, шанс, 0, 0, мин_кол-во, макс_кол-во); Добавляем мобу лут. Это конечно же легко сделать через Truice, но вдруг тоже понадобится. Описание сделал сразу в запросе, что бы не запутать вас. Опять же, "лут_ид" - у самого моба должен быть в луте указан этот ид в lootid, он под значение хп. Так же вот запрос для него. Code update `creature_template` set `lootid`=X where `entry`=Z; Quote Code update `instance_template` set `allowmount`=1 where `map`=X; Разрешаем использование маунта в инсте. X - ид карты, где его использовать можно (т.е. карта самого инста), 1 - это "да", или же указываем "0" - что бы запретить. Quote Code update `item_template` set `X1`=Y1 where `X2`=Y2 Манипуляции с Предметами. Через данный запрос можно сделать довольно таки много, если иметь хорошую фантазию. И так попытаюсь объяснить. X1 - это устанавливаемый параметр (например прочность), Y1 - его значение (например 0), X2 - это параметр, по которому будут определятся наши вещи, т.е. фильтр (например уровень вещи), Y2 - значение этого параметра( например 251). И так, что получится, если взять мои значения. update `item_template` set `MaxDurability`=0 where `itemlevel`=251 И что же сделает данный запрос - он установит прочность вещей с уровнем вещей 251 на 0. И так, можно изменять любой параметр через другой. Если опустить значение where, то проверки (фильтра) не будет и он изменить все вещи. Например, часто используют вот такой запрос без where update `item_template` set `MaxDurability`=0 Т.е. убирают прочность всех вещей. Вот вам несколько запросов для предметов: И так далее. Quote Code INSERT INTO `locales_item` VALUES (X, '', '', '', '', '', '', '', 'Название', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Подпись'); Изменяем "название" предмета. Если вы меняете готовый итем, то название меняется таким запросом (или конечно же вручную). X - ид итема, остальное понятно, название и подпись - это и есть название и подпись. Quote Code INSERT INTO `npc_trainer` VALUES (1, 2, 3, 4, 5, 6); Добавляем тренеру навык. 1 - Ид тренера, 2 - спелл, 3 - цена (в голдах), 4 - "умение" (например кожевничество), 5 - уровень умения (например, уровень кожевничества, что бы уизучить спелл), 6 - требуемый уровень для изучения. Quote Code INSERT INTO `npc_vendor` VALUES (1, 2, 3, 4, 5, 6); Добавляем вендору итем. 1 - вендор, 2 - слот (лучше 0 ставить), 3 - итем, 4 - кол-во итемов (лучше 0), 5 - "перезарядка" (через какое время итем снова можно будет купить, лучше тоже 0), 6 - ид цены (найти эти иды можно на нашем сайте) Quote Code INSERT INTO `playercreateinfo_item` VALUES (1, 2, 3, 4); Добавляем итем персонажу при старте. Этот запрос даёт игроку при старте какой-либо итем. 1 - раса перса, 2 - класс, 3 - итем, 4 - кол-во. Вот запрос, на добавление "классу" Шаман тотемов при старте. И так, пока что это всё. Если будут пожелания - пишите, добавлю что-нибудь.
---||| Продаю акк в CrossFire тык |||---
---||| 3 капсульные оружия, 4 скина! Всего 1000руб.!!! |||--- |
Quote (exersist) Вот запрос, на добавление "классу" Шаман тотемов при старте. Проще использовать данный итем 46978, он дается в конце за квест) + не захламляет сумки и можно удолить потом) А так же данная вещь сразу одета у шаманов при старте) Когда делали всем расам все классы, то использовали след. запрос и было очень удобно) Code INSERT INTO playercreateinfo_item (`race`, `class`, `itemid`, `amount`) VALUES (1, 7, 46978, 1), (2, 7, 46978, 1), (3, 7, 46978, 1), (4, 7, 46978, 1), (5, 7, 46978, 1), (6, 7, 46978, 1), (7, 7, 46978, 1), (8, 7, 46978, 1), (10, 7, 46978, 1), (11, 6, 46978, 1); Автору +, тема интересная и полезная
Сообщение # 2 написано 04.11.2012 в 17:22
|
Норм сборник
Сообщение # 9 написано 12.02.2013 в 21:45
|
Цитата (exersist) insert into `command` values ('maxskill', 0, 'syntax: .maxskill\r\nsets all skills of the targeted player to their maximum values for its current level.'); insert into `command` values ('instance unbind', 0, 'syntax: .instance unbind <mapid|all> [difficulty]\r\n clear all/some of player\s binds'); И тебе выдаст Duplicate блаблабла Перед тем, как заново заливать команды, их нужно удалить из таблицы. Замени insert на replace
Сообщение # 11 написано 23.07.2013 в 08:48
|
есть запрос, чтоб сделать кд на рейды 1 день? в worldserver что меняю, что не меняю все равно неделя кд.
Сообщение # 14 написано 13.05.2016 в 16:22
|
Код UPDATE `creature_template` SET `faction_A` = 7, faction_H = 7 WHERE `faction_A` in (2027,1719, 1981, 1928, 1891, 1980, 1978, 1979, 1923, 1922, 1892, 2026, 2004, 2024, 1929, 2056, 1973, 2025, 2130, 2123, 1926, 1927, 11,12,29,53,55,64,65,68,69,71,79,80,83,84,85,98,104,105,106,118,122,123,124,125,126,149,150,151,210,534,637,714,874,875,876,877,894,995,1034,1074,1075,1076,1077,1078,1096,1097,1134,1154,1174,1314,1315,1575,1594,1595,1600,1602,1603,1604,1611,1612,1618,1619,1623,1628,1636,1637,1638,1639,1640,1646,1647,1650,1651,1653,1654,1655,1656,1657,1658,1666,1669,1670,1671,1694,1695,1698,1699,1700,1721,1722,1723,1724,1729,1732,1733,1737,1745,1835,1,11,12,29,53,55,64,65,68,69,71,79,80,83,84,85,98,104,105,106,118,122,123,124,125,126,149,150,151,210,534,637,714,874,875,876,877,894,995,1034,1074,1075,1076,1077,1078,1096,1097,1134,1154,1174,1217,1314,1315,1575,1594,1595,1600,1602,1603,1604,1611,1612,1618,1619,1623,1628,1636,1637,1638,1639,1640,1646,1647,1650,1651,1653,1654,1655,1656,1657,1658,1666,1669,1670,1671,1694,1695,1698,1699,1700,1721,1722,1723,1724,1729,1732,1733,1737,1745,1835) OR `faction_H` in (2027,1719, 1981, 1928, 1891, 1980, 1978, 1979, 1923, 1922, 1892, 2026, 2004, 2024, 1929, 2056, 1973, 2025, 2130, 2123, 1926, 1927, 11,12,29,53,55,64,65,68,69,71,79,80,83,84,85,98,104,105,106,118,122,123,124,125,126,149,150,151,210,534,637,714,874,875,876,877,894,995,1034,1074,1075,1076,1077,1078,1096,1097,1134,1154,1174,1314,1315,1575,1594,1595,1600,1602,1603,1604,1611,1612,1618,1619,1623,1628,1636,1637,1638,1639,1640,1646,1647,1650,1651,1653,1654,1655,1656,1657,1658,1666,1669,1670,1671,1694,1695,1698,1699,1700,1721,1722,1723,1724,1729,1732,1733,1737,1745,1835,1,11,12,29,53,55,64,65,68,69,71,79,80,83,84,85,98,104,105,106,118,122,123,124,125,126,149,150,151,210,534,637,714,874,875,876,877,894,995,1034,1074,1075,1076,1077,1078,1096,1097,1134,1154,1174,1217,1314,1315,1575,1594,1595,1600,1602,1603,1604,1611,1612,1618,1619,1623,1628,1636,1637,1638,1639,1640,1646,1647,1650,1651,1653,1654,1655,1656,1657,1658,1666,1669,1670,1671,1694,1695,1698,1699,1700,1721,1722,1723,1724,1729,1732,1733,1737,1745,1835); Полезный запрос для Тринити Каты. Обнейтраливание фракционных мобов. И следом - обнейтраливание порталов, становятся доступны всем фракциям. Код UPDATE `gameobject_template` SET `faction` = 0 WHERE `type`= 22; Следует добавить, что если Вы пользователь мангос, скорее всего нужно будет заменить в запросе faction_A на faction_Alliance, а faction_H на facrtion_Horde соответственно.
Alea iacta est.
|
Спасибо за статью, пару sql запросов пригодилось, но опять же sql запрос на команды такие как .max .all и прочее не робят. кривой запрос, только в worldserver.exe ошибку показывает
Добавлено (31.10.2017, 13:57)
Сообщение # 18 написано 31.10.2017 в 13:57
|
Подскажите, как объединить в одном запросе quality с диапазоном 3 до 5, и ItemLevel например c 85 до 164?
Додумался лишь сделать такой запрос, но не как не могу сделать слияние, чтобы конкретно для эпика и легендарок с уровня от и до были замножены статы. Цитата /* * statEL.sql */ UPDATE `item_template` SET `stat_value1` = `stat_value1`*9 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value2` = `stat_value2`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value3` = `stat_value3`*9 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value4` = `stat_value4`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value5` = `stat_value5`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value6` = `stat_value6`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value7` = `stat_value7`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value8` = `stat_value8`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value9` = `stat_value9`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `stat_value10` = `stat_value10`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `armor` = `armor`*2 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `dmg_min1` = `dmg_min1`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `dmg_max1` = `dmg_max1`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `dmg_min2` = `dmg_min2`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `dmg_max2` = `dmg_max2`*6 WHERE `quality` BETWEEN 4 AND 5; UPDATE `item_template` SET `block` = `block`*3 AND `quality` BETWEEN 4 AND 5; /* * Statbc.sql */ UPDATE `item_template` SET `stat_value1` = `stat_value1`*2 WHERE ` ` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value2` = `stat_value2`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value3` = `stat_value3`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value4` = `stat_value4`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value5` = `stat_value5`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value6` = `stat_value6`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value7` = `stat_value7`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value8` = `stat_value8`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value9` = `stat_value9`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `stat_value10` = `stat_value10`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `armor` = `armor`*2 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `dmg_min1` = `dmg_min1`*6 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `dmg_max1` = `dmg_max1`*6 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `dmg_min2` = `dmg_min2`*6 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `dmg_max2` = `dmg_max2`*6 WHERE `ItemLevel` BETWEEN 85 AND 164; UPDATE `item_template` SET `block` = `block`*6 AND `ItemLevel` BETWEEN 85 AND 164; |
UPDATE `item_template` SET `stat_value1` = `stat_value1`*9, `stat_value2` = `stat_value2`*2, `stat_value3` = `stat_value3`*3, `stat_value4` = `stat_value4`*4, `stat_value5` = `stat_value5`*5, `stat_value6` = `stat_value6`*6
,`stat_value7` = `stat_value7`*7, `stat_value8` = `stat_value8*8, `stat_value9` = `stat_value9`*9 WHERE `quality` BETWEEN 4 AND 5; И остальные так же....
Сообщение # 21 написано 25.07.2018 в 07:16
|
grokillers
-я не сильно шарю в запросах, но сделал бы следующим образом: 1. Делаешь запрос по необходимым параметрам так, чтобы тебе вывелся весь необходимый тебе список итемов. 2. Создаешь еще одну базу данных для всякого рода экспериментов, там делаешь таблицу "item_template" и создаешь там итемы из списка (п.1) 3. Получив таким обрзом таблицу, в которой находятся онили предметы нужные тебе, -умножаешь, делишь, пилишь, все что тебе хочется. 4. Копируешь список, обратно в основную базу. сорян что не написал конкрентый запрос, но тут думаю сама идея понятна, и не составит особых сложностей. |
UPDATE `item_template` SET `stat_value1` = `stat_value1`*9, `stat_value2` = `stat_value2`*2, `stat_value3` = `stat_value3`*3, `stat_value4` = `stat_value4`*4, `stat_value5` = `stat_value5`*5, `stat_value6` = `stat_value6`*6,`stat_value7` = `stat_value7`*7, `stat_value8` = `stat_value8*8, `stat_value9` = `stat_value9`*9 WHERE `quality` BETWEEN 4 AND 5; И остальные так же.... даже если он будет выглядеть так, quality и ItemLevel, чтобы эпик и легендарки определенного уровня были подняты по статам, но никак не могу до этого сам додуматься. |
Подскажите пожалуйста, какую ошибку тут я совершил? Код никак не хочет работать, заливать пытаюсь через Navicat.
TrinityCore MySQL 5.7 Цитата UPDATE 'item_template' SET 'stat_value1' = 'stat_value1'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value2' = 'stat_value2'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value3' = 'stat_value3'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value4' = 'stat_value4'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value5' = 'stat_value5'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value6' = 'stat_value6'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value7' = 'stat_value7'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value8' = 'stat_value8'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value9' = 'stat_value9'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'stat_value10' = 'stat_value10'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'armAND' = 'armAND'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'dmg_min1' = 'dmg_min1'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'dmg_max1' = 'dmg_max1'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'dmg_min2' = 'dmg_min2'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'dmg_max2' = 'dmg_max2'*12 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164; UPDATE 'item_template' SET 'block' = 'block'*9 WHERE 'quality' = 4 AND 'ItemLevel' = BETWEEN 95 AND 164;
Сообщение # 27 написано 08.08.2022 в 23:31
|
| |||
| |||