Тема: Crimson Hall.
Показать сообщение отдельно
Старый 04.03.2014, 00:28   #1
Ulduar
Ученый
 
Регистрация: 23.11.2012
Сообщений: 196
Сказал(а) спасибо: 68
Поблагодарили 16 раз(а) в 16 сообщениях
Ulduar На верном пути
По умолчанию Нужно что-то ещё.

Добрый вечер. Имеется вот такая дверь(то что она закрыта по дефолту - это правильно), также есть и нпц перед ней. Скриншот:
http://ytdb.ru/attachment.php?attach...1&d=1393878412
На оффе после убийства мобов должна открываться эта самая дверь.

Код:
DATA_CRIMSONHALL_EVENT           = 1,                   Pre Blood Prince mini event.
NPC_DARKFALLEN_NOBLE            = 37663,         Pre Blood Prince Door mini event.
	NPC_DARKFALLEN_BLOOD_KNIGHT     = 37595,
	NPC_DARKFALLEN_ADVISOR          = 37571,
	NPC_DARKFALLEN_ARCMAGE          = 37664,

void SetData64(uint32 uiType, uint64 uiGuid) override;
GuidSet m_sPreCrimsonHallMobsAliveGUIDSet;
это для файла icecrown_citadel.h если что-то забыл добавить, пишите.
Для файла instance_icecrown_citadel.cpp
Код:
void instance_icecrown_citadel::OnCreatureCreate(Creature* pCreature)
            case NPC_DARKFALLEN_NOBLE           
	    case NPC_DARKFALLEN_BLOOD_KNIGHT     
	    case NPC_DARKFALLEN_ARCMAGE
            case NPC_DARKFALLEN_ARCMAGE
		// Filter only the mobs spawned on Pre Crimson Hall Door.
            if (pCreature->GetPositionZ() < 361.0f)
		m_sPreCrimsonHallMobsGUIDSet.insert(pCreature->GetObjectGuid());
		    break;
    }
}

void instance_icecrown_citadel:SetData64(uint32 uiData, uint64 uiGuid)
{
    // If Blood Prince Council already completed, just ignore
    if (GetData(TYPE_BLOOD_PRINCE_COUNCIL) == DONE)
        return;

    // Note: this is handled in Acid. The purpose is check which Pre Crimson Hall mobs is alive, in case of server reset
    // The function is triggered by eventAI on generic timer
    if (uiData == DATA_CRIMSONHALL_EVENT)
        m_sPreCrimsonHallMobsGUIDSet.insert(pCreature->GetObjectGuid());
}
Код:
 void instance_icecrown_citadel::OnCreatureDeath(Creature* pCreature)
            case NPC_DARKFALLEN_NOBLE           
	    case NPC_DARKFALLEN_BLOOD_KNIGHT     
	    case NPC_DARKFALLEN_ARCMAGE
	    case NPC_DARKFALLEN_ARCMAGE
	        break;
Постараюсь потом добавить ещё что-нибудь. Одно знаю точно - эти мобы не уникальны, поэтому нужен check Guid.
Вообщем от скрипта требуется одно - сделать проверку на этих нпц и если они убиты(те что перед дверью, а не за ней и перед Ланателью) то открывать дверь.
Миниатюры
Нажмите на изображение для увеличения
Название: WoWScrnShot_030414_012622.jpg
Просмотров: 373
Размер:	311.1 Кб
ID:	2722  

Последний раз редактировалось Ulduar; 04.03.2014 в 23:08. Причина: 0f добавлять нужно обязательно, я смотрел похожие примеры в ядре. Для спеллов с 226 аурой.
Ulduar вне форума   Ответить с цитированием