PDA

Просмотр полной версии : [patch] ObjectScriptSpawn (Horde/Alliance/Event)


MaxXx2021
10.11.2011, 09:09
Доброго всем времени суток. Как всем известно, что на оффе есь такое понятие как спавн мобов в инстах в зависимости от тима находящегося в нем и от текущего прогресса инста. Данный патч реализует такой спавн.
Что сделано:
1. Спавн НПЦ и Геймобьектов в зависимости от того кто в инсте (Орда/Альянс), нужно для инстов (Нексус, ЗО, ИЧ, КД, ЯС и тд)
2. Спавн, Деспавн и запрет на загрузку нпц и обьектов в определенные моменты. Те нам нужно к примеру что бы в определенный момент обьектов не было в мире, но потом эти обьекты появились или наоборот нам нужно убрать обьекты в определенный момент. Нужно для инстов (Ульдуар, Очищение Стратхольма, ЦЛК и тд). Работает для мировой карты.
Что нужно сделать:
1. Нужно сделать динамические координаы определенным обьектам при определенном прогрессе карты.
2. Отсылка номера WorldEvent в InstanceData при его старте и окончании, так как для некоторых стартов праздников нужно убирать существующих нпц, пример: Атака Плети, Тралл в оргримаре у трона пропадает и появляется у арены, как показали сниффы у них одинаковый entry.

структура таблиц

+/* ************************************************** *******
+ * Method to Load From DB
+ * DB Format: spawn_guid, team_control, add_control, remove_control
+ * 0 1 2 3
+ * **************************************
+ * spawn_guid: creature.guid or gameobject.guid
+ * team_control: Team control
+ * add_control: Add Action
+ * remove_control: Remove Action
+ *
+ * ************************************************** *** */

Патч для мангоса Revision 11817. Описание как пользоваться таблицами есть в файлах. Для смены фазы карты в скрипте делаем так: map->ProcessMapEvent(фаза);
те мобы, которое соответствуют условию в таблицах появления появятся и наоборот.

Для теста:
Запрос для проверки возможностей патча для YTDB. Нужно убрать фазы у нипов с гуидами 130956 и 130961, а так же очистить spell_area подземелья Испытания Чемпиона.

insert into `creature_script_spawn` (`spawn_guid`, `team_control`, `add_control`, `remove_control`, `description`) values('130956','469','0','0','Arelas Brightstar (35005)');
insert into `creature_script_spawn` (`spawn_guid`, `team_control`, `add_control`, `remove_control`, `description`) values('130961','67','0','0','Jaeren Sunsworn (35004)');
insert into `creature_script_spawn` (`spawn_guid`, `team_control`, `add_control`, `remove_control`, `description`) values('115440','0','0','1','Brann Bronzebeard (28070)');


Тест №2 для YTDB:
Поправка подземелья Nexus...

INSERT INTO creature_script_spawn SELECT guid, '469', '0', '0', 'Nexus Horde Soldiers' FROM creature WHERE map = 576 AND phaseMask = 128;
INSERT INTO creature_script_spawn SELECT guid, '67', '0', '0', 'Nexus Alliance Soldiers' FROM creature WHERE map = 576 AND phaseMask = 64;
UPDATE creature SET phaseMask = 1 WHERE phaseMask = 128 AND map = 576;
UPDATE creature SET phaseMask = 1 WHERE phaseMask = 64 AND map = 576;

Результат вы должны получить такой как на скринах в аттаче.
Патч на GitHub: Патч (https://github.com/bwsrv/mangos/commit/0aa5a433451f0a3b9643c3eb535f9e4b8387626a)
Дополнительно: Поправка к патчу (https://github.com/bwsrv/mangos/commit/0866d9ede19f61133b2d9e68fa977f0f4ccd85eb)

MaxXx2021
15.11.2011, 13:10
Обновил Первый пост, добавил поправку к патчу.

Mayss
18.11.2011, 19:16
Я так понял что это для WOTLK ?.

MaxXx2021
18.11.2011, 19:24
Я так понял что это для WOTLK ?.

Конечно для WOTLK!

YuruY
19.11.2011, 16:04
Ну на катаклизме будет актуально для большинства данжей.