Показать сообщение отдельно
Старый 20.05.2014, 23:45   #1
Chaosua
Helper TC_YTDB
 
Аватар для Chaosua
 
Регистрация: 09.11.2009
Адрес: интернет
Сообщений: 352
Сказал(а) спасибо: 69
Поблагодарили 348 раз(а) в 158 сообщениях
Chaosua Реально хороший человекChaosua Реально хороший человекChaosua Реально хороший человекChaosua Реально хороший человек
Отправить сообщение для Chaosua с помощью ICQ Отправить сообщение для Chaosua с помощью Skype™
По умолчанию Trinity Заселение ЦЛК (чиcтка 335+434)

Уже давно хотел про это написать, да все забывал, пока игроки опять не затянули в цлк

в коде тринити есть такая штука в instance_icecrown_citadel.cpp
Код:
                    case NPC_KOR_KRON_GENERAL:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_ALLIANCE_COMMANDER);
                        break;
                    case NPC_KOR_KRON_LIEUTENANT:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_SKYBREAKER_LIEUTENANT);
                        break;
                    case NPC_TORTUNOK:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_ALANA_MOONSTRIKE);
                        break;
                    case NPC_GERARDO_THE_SUAVE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_TALAN_MOONSTRIKE);
                        break;
                    case NPC_UVLUS_BANEFIRE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_MALFUS_GRIMFROST);
                        break;
                    case NPC_IKFIRUS_THE_VILE:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_YILI);
                        break;
                    case NPC_VOL_GUK:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_JEDEBIA);
                        break;
                    case NPC_HARAGG_THE_UNSEEN:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_NIBY_THE_ALMIGHTY);
                        break;
                    case NPC_GARROSH_HELLSCREAM:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_KING_VARIAN_WRYNN);
                        break;
                    case NPC_DEATHBRINGER_SAURFANG:
                        DeathbringerSaurfangGUID = creature->GetGUID();
                        break;
                    case NPC_ALLIANCE_GUNSHIP_CANNON:
                    case NPC_HORDE_GUNSHIP_CANNON:
                        creature->SetControlled(true, UNIT_STATE_ROOT);
                        break;
                    case NPC_SE_HIGH_OVERLORD_SAURFANG:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_SE_MURADIN_BRONZEBEARD, creature->GetCreatureData());
                        // no break;
                    case NPC_SE_MURADIN_BRONZEBEARD:
                        DeathbringerSaurfangEventGUID = creature->GetGUID();
                        creature->LastUsedScriptID = creature->GetScriptId();
                        break;
                    case NPC_SE_KOR_KRON_REAVER:
                        if (TeamInInstance == ALLIANCE)
                            creature->UpdateEntry(NPC_SE_SKYBREAKER_MARINE);
                        break;
все эти апдейты темплейта рабтают на ТДБ на ура.
Весь принцип в следующем:
1. В цлк есть мобы которые видны лиш одной фракции. В результате образовались пары мобов которые не пересекаются.
2. Скрипт проверяет фракцию и на соответствующем условии меняет темплейт моба на противоположный в паре
Скрипт сделан так что нужно заселение "пары" только для одной стороны (в нашем случае - орда), противоположная сторона получит противоположного моба из пары автоматически. (прямо как на оло)
Следовательно уменьшается количество записей в базе, меньше нагрузка на память ну и все вытекающие.
К чему я все это пишу? на YTDB заспавнены эти "парные мобы" для обеих сторон в фазах 64 и 128 изза чего скрипт работает очень странно иногда, то ивент не активируется то мобов слишком много.
Что надо сделать чтобы этого не было. - удалить все заселение парных комплектов для альянса, а ордынской половине прописать первую фазу, чтобы скрипт мог адекватно работать по инструкции. В том куске кода наглядно видно какие мобы образуют парность.

Код:
DELETE FROM `creature` WHERE `map`=631 AND `id` IN (37190, 38492, 37999, 37998, 38283, 37997, 38840, 38182, 39371);
UPDATE `creature` SET `phaseMask`=1 WHERE `map`=631 AND `id` IN (37189, 38491, 37992, 37993, 38284, 37991, 38841, 38181, 39372);
PS: эти черти склетоны http://ru.wowhead.com/npc=37007 должны стоять пока ловушку не активируют, на 4,3,4 они бродят
http://www.ytdb.ru/showthread.php?t=...ighlight=37007 тут уже писали
Плюс надо поправить координаты спавна под стойки для них, так как они все почти по центру коридора фактически заспавнены, если мне не изменяет память на 335 они правильно стояли.
Код:
UPDATE `creature` SET `MovementType` = 0 WHERE `id` = 37007;
#колонка emote=417 отменяет ауру - зануляем
Код:
DELETE FROM `creature_template_addon` WHERE (`entry`=37007);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES 
(37007, 0, 0, 0, 0, 0, 70733);
DELETE FROM `creature_template_addon` WHERE (`entry`=38031);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES 
(38031, 0, 0, 0, 0, 0, 70733);
__________________
и взгляда малого хватает, дабы увидеть тьму твою

Последний раз редактировалось Chaosua; 21.05.2014 в 00:22.
Chaosua вне форума   Ответить с цитированием