|
Архив - только для чтения |
Модератор форума: andycrowz |
Форум Корзина форума Корзина Проблема в скрипте Иллидана (Oregon Core) (С++) |
Проблема в скрипте Иллидана (Oregon Core) |
Приветствую форумчане
Есть проблемка Копаюсь со скриптом в boss_illidan.cpp Как думаю многие знают - площадку перед Иллиданом в БТ от лестниц отгораживают 2 ворот (горизонтальные прутья с зелёным свечением между ними) Так вот я заметил что при начале разговора Акамы и Иллидана закрываются только 1 ворота "Doodad_BT_Illidan_Door_Right01 (186261)" а вторые "Doodad_BT_Illidan_Door_Left01 (186262)" остаются распахнутыми Что я только ни делал (даже пытался насильно прописывать их обнаружение и активацию) - ничего не помогает - отрабатывают только правые ворота - левые неподвижны Более того в коде указано что обе воротины должны быть закрыты до начала скрипта - но когда я проверил оказалось что закрыты опять только правые Вот кусок кода отвечающий за это: Код В хедере: DATA_GAMEOBJECT_ILLIDAN_DOOR_R = 23, DATA_GAMEOBJECT_ILLIDAN_DOOR_L = 24, В СРР: uint64 DoorGUID[2]; void Reset() { WalkCount = 0; if (pInstance) { pInstance->SetData(DATA_ILLIDANSTORMRAGEEVENT, NOT_STARTED); IllidanGUID = pInstance->GetData64(DATA_ILLIDANSTORMRAGE); GateGUID = pInstance->GetData64(DATA_GAMEOBJECT_ILLIDAN_GATE); DoorGUID[0] = pInstance->GetData64(DATA_GAMEOBJECT_ILLIDAN_DOOR_R); DoorGUID[1] = pInstance->GetData64(DATA_GAMEOBJECT_ILLIDAN_DOOR_L); if (JustCreated) //close all doors at create { pInstance->HandleGameObject(GateGUID, false); for (uint8 i = 0; i < 2; ++i) pInstance->HandleGameObject(DoorGUID[i], false); } else { //open all doors, raid wiped Подскажите плиз в чём может быть проблема? Так же есть проблема - Иллидан в фазе полёта не всегда летает Тоесть взлететь он взлетает но при любой остановке он не висит в воздухе и падает обратно на землю - и получается что он не летит а скачет как козёл смена флагов не помогла - ставил все какие только можно а SetLevitate(true) вообще рушит скрипт (он тупо не запускается - Акама отказывается ломать ворота к Иллидану - стоит и нифига не делает)
Если помог, ставь плюсик в репу :)
|
https://github.com/Trinity....pp#L129
Посмотри.
Сообщение # 3 написано 22.07.2014 в 01:16
|
как и в твоём примере так и в моём ядре - в этом файле нет обработки дверей - лишь их объявление
case GO_ILLIDAN_DOOR_R: IllidanDoorGUIDs[0] = go->GetGUID(); break; case GO_ILLIDAN_DOOR_L: IllidanDoorGUIDs[1] = go->GetGUID(); break; case DATA_GO_ILLIDAN_DOOR_R: return IllidanDoorGUIDs[0]; case DATA_GO_ILLIDAN_DOOR_L: return IllidanDoorGUIDs[1];
Если помог, ставь плюсик в репу :)
|
В instance_black_temple.cpp есть обработка, получаем GUID при создании. Код void OnGameObjectCreate(GameObject* go) { switch (go->GetEntry()) { // ...................................... case 186261: IllidanDoor[0] = go->GetGUID(); // Right door at Temple Summit break; case 186262: IllidanDoor[1] = go->GetGUID(); // Left door at Temple Summit break; } }
Сообщение # 5 написано 22.07.2014 в 11:39
|
А толку-то?
ну получили мы GUID а дальше? Вот мои: case 186261: IllidanDoor[0] = pGo->GetGUID(); break; // Right door at Temple Summit case 186262: IllidanDoor[1] = pGo->GetGUID(); break; // Left door at Temple Summit
Если помог, ставь плюсик в репу :)
Сообщение # 6 написано 22.07.2014 в 11:53
|
Далее получаем GUID через ф-ию instance->GetData64. Код uint64 GetData64(uint32 identifier) const { switch (identifier) { case DATA_HIGHWARLORDNAJENTUS: return Najentus; case DATA_AKAMA: return Akama; case DATA_AKAMA_SHADE: return Akama_Shade; case DATA_SHADEOFAKAMA: return ShadeOfAkama; case DATA_SUPREMUS: return Supremus; case DATA_ILLIDANSTORMRAGE: return IllidanStormrage; case DATA_GATHIOSTHESHATTERER: return GathiosTheShatterer; case DATA_HIGHNETHERMANCERZEREVOR: return HighNethermancerZerevor; case DATA_LADYMALANDE: return LadyMalande; case DATA_VERASDARKSHADOW: return VerasDarkshadow; case DATA_ILLIDARICOUNCIL: return IllidariCouncil; case DATA_GAMEOBJECT_NAJENTUS_GATE: return NajentusGate; case DATA_GAMEOBJECT_ILLIDAN_GATE: return IllidanGate; case DATA_GAMEOBJECT_ILLIDAN_DOOR_R: return IllidanDoor[0]; case DATA_GAMEOBJECT_ILLIDAN_DOOR_L: return IllidanDoor[1]; case DATA_GAMEOBJECT_SUPREMUS_DOORS: return MainTempleDoors; case DATA_BLOOD_ELF_COUNCIL_VOICE: return BloodElfCouncilVoice; } return 0; } И привязываешь к своей переменной значение нужной тебе даты.
Сообщение # 7 написано 22.07.2014 в 11:58
|
В ресете их закрытие
Более того в коде указано что обе воротины должны быть закрыты до начала скрипта - но когда я проверил оказалось что закрыты опять только правые И оно так же не отрабатывает для левой двери а как отправить в консоль? что там написать?
Если помог, ставь плюсик в репу :)
|
Ты что прописал в консоль ?)
Разбираюсь в компиляции, и установке серверов с ядрами СMaNGoS и Trinity.
Учусь модкрафтить (DBC-Edit, Локации в Noggit, Конвертирование/редактирование моделей в 3D-Max + Blender). Интересуюсь технологиями, информатикой, физикой, и многим другим. Warlocks 'Evil Empire'
Сообщение # 13 написано 22.07.2014 в 14:02
|
ОФИГЕТЬ!!!!
GUID[1] = 0 НОЛЬ МЛЯЯЯЯЯ!!!!!!!!!!! Да как же так а? он не получает гуида от левой двери ща посмотрю что в том же месте выдаёт правая Добавлено (22.07.2014, 14:45) --------------------------------------------- Выдаёт какую-то адскую муть но хотябы не ноль я в тупике товарищи вроде всё правильно а левая дверь не определяет гуид а у правой какая-то цифровая муть но она работает........ Добавлено (22.07.2014, 15:22) --------------------------------------------- Такс с дверьми проблему я решил - осталась проблема с полётом Иллидана Вот тут уж даже хз за что взяться....... Я заметил что визуальный баг с падением на землю не происходит если Иллидан постоянно находится в движении (специально делал его копию для тестирования) Однако не очень понятно как заставить его двигаться постоянно и при этом выполнять требования скрипта (кастовать спеллы в определённых местах)
Если помог, ставь плюсик в репу :)
|
Как решил?)
Интересно жы)
Разбираюсь в компиляции, и установке серверов с ядрами СMaNGoS и Trinity.
Учусь модкрафтить (DBC-Edit, Локации в Noggit, Конвертирование/редактирование моделей в 3D-Max + Blender). Интересуюсь технологиями, информатикой, физикой, и многим другим. Warlocks 'Evil Empire'
Сообщение # 20 написано 22.07.2014 в 15:23
|
| |||
| |||