PDA

Просмотр полной версии : Испытание Великого Крестоносца


griffonheart
01.01.2010, 20:43
Есть желающие заняться скриптами боссов в этом инсте?
А то у меня есть некоторые наработки на этот счёт. Я частично реализовал ивент с призывом боссов по очереди, основываясь на снифах, разумеется :)
Вот некоторые данные - http://paste2.org/p/589135

timmit
02.01.2010, 17:04
http://www.wowhead.com/?spell=67924
цепи у джараксуса при вайпе рейда
When you wipe, this is cast on Jaraxxus so that you have time to position before the pull. Also, it's probably there so that a Man'ari Eredar doesn't go bat-*!@# crazy and kill more gnomes.

griffonheart
04.01.2010, 07:16
Выход боссов полностью близлайк (ну процентов на 99% точно)
1) Запускаем ивент у Барретт Ремси
2) Тирион базарит нужные фразы
3) Открываются ворота
4) Выходит босс
5) Закрываются ворота
В финале выходит Король Лич и замогильным голосом объявляет, что нирубианци построили целую империю под льдами Нордскола, после чего рушит пол.
Все игроки проваливаются вместе с летящими осколками пола вниз, где их приветствует Ануб'Арак

Konctantin
04.01.2010, 11:48
не подскажите структуру пакета SMSG_MESSAGECHAT, у меня чего-то никак не получается ее подобрать, пробовал с мангоса и с клиента - никак не могу понять что ему надо:
"MSGTYPE: {0}", gr.ReadByte();
"LENGUAGE: {0}", gr.ReadUInt32();
"GetGUID: {0}", gr.ReadPackedGuid();
"HZ: {0}", gr.ReadUInt32();
"NAME_LENGHT: {0}", gr.ReadUInt32();
"NAME: {0}", gr.ReadCString();
var g = gr.ReadUInt64();
"TARGET_GUID: {0}", g;
// а дальше я незнаю, просто не пойму что да как,
var targetnamelenght = (g > 0) ? gr.ReadUInt32() : 0;
var tname = (g >0) ? gr.ReadByte() : (byte)0;

"TEXT_LENGHT: {0}", gr.ReadUInt64();
"TEXT: {0}", gr.ReadCString();
"CHAT_TAG: {0}", gr.ReadByte();

griffonheart
06.01.2010, 09:39
Да, с ней большая беда.
Вот с трупожорки:
def parse_SMSG_MESSAGECHAT(_stream):
_msg_type = _stream.getB()
f01_msg_type = CHAT(_msg_type)
_lang = _stream.getI()
f02_lang = LANG(_lang)

if _msg_type in (CHAT_MSG_SAY , CHAT_MSG_PARTY, CHAT_MSG_YELL):
f03_1_guid1 = hexQ( _stream.getQ() )
f03_2_lang = LANG(_stream.getI()) #2.1.0
f04_guid2 = hexQ( _stream.getQ() )
f05_text_sz = _stream.getI()
f06_text = _stream.getS(f05_text_sz)

elif _msg_type == CHAT_MSG_CHANNEL:
f03_guid = hexQ( _stream.getQ() ) #2.1.0
f04_shit = _stream.getI() #2.1.0
f05_chanel = _stream.getSZ()
f06_guid = hexQ( _stream.getQ() )
f07_text_sz = _stream.getI()
f08_text = _stream.getS(f07_text_sz)

elif _msg_type in (CHAT_MSG_WHISPER, CHAT_MSG_REPLY, CHAT_MSG_GUILD, CHAT_MSG_BG_SYSTEM_HORDE,CHAT_MSG_BG_SYSTEM_ALLIAN CE,CHAT_MSG_BG_SYSTEM_NEUTRAL,CHAT_MSG_BATTLEGROUN D):
f03_guid1 = hexQ( _stream.getQ() )
f05_text_sz = _stream.getI()
f06_text = _stream.getS(f05_text_sz)

elif _msg_type in (CHAT_MSG_MONSTER_SAY, CHAT_MSG_MONSTER_PARTY, CHAT_MSG_MONSTER_YELL, CHAT_MSG_MONSTER_WHISPER, CHAT_MSG_MONSTER_EMOTE, CHAT_MSG_RAID_BOSS_WHISPER, CHAT_MSG_RAID_BOSS_EMOTE):
f03_0_guid = _stream.getQ()
f03_0_guid_hex = hexQ(f03_0_guid)
f03_1_unk = _stream.getI() #2.1.0
f04_name_sz = _stream.getI()
f05_name = _stream.getS(f04_name_sz)
f06_TargetGuid = _stream.getQ()
f06_TargetGuid_hex = hexQ(f06_TargetGuid)
### 2_4_1
if f06_TargetGuid and (not IS_PLAYER_GUID(f06_TargetGuid_hex)):
f07_string_unk_sz = _stream.getI()
f08_Target_Name = _stream.getS(f07_string_unk_sz)
#####
f09_text_sz = _stream.getI()
f10_text = _stream.getS(f09_text_sz)

_entry = ENTRY(f03_0_guid)
_toMob=0
_toPlayer=0
if f06_TargetGuid:
if IS_PLAYER_GUID(f06_TargetGuid_hex):
_toPlayer=1
else:
_toPlayer=0
_toMob=ENTRY(f06_TargetGuid)
_creature_chat_sql = CreatureChatSQL(_entry)
_creature_chat_sql.AddChat(_msg_type,_lang,_toPlay er,_toMob,f05_name.replace("'", "\\'").replace(chr(0),""),f10_text.replace("'", "\\'").replace(chr(0),""))
_creature_chat_sql.close()

f20_tag = _stream.getB()
return dict(sys._getframe().f_locals)

Вот с этим блоком проблема:
### 2_4_1
if f06_TargetGuid and (not IS_PLAYER_GUID(f06_TargetGuid_hex)):
f07_string_unk_sz = _stream.getI()
f08_Target_Name = _stream.getS(f07_string_unk_sz)
#####
Часть пакетов парсится нормально только если он есть, другая только если его нет.
Чтобы вытащить все тексты с ИВК, пришлось пасить всё два раза (с блоком и без него)

Konctantin
06.01.2010, 09:57
А на чем она написана, на питоне?, уж больно синтаксис похож, скопы определяются отступами.

Мдя, с этим то проблема, проверить значение IS_PLAYER_GUID невозможно, а есть другой вариант, сначала работаем без блока, потом проверяем пропарсили ли мы ввесь пакет и если нет, то тогда парсим его с блоком и только тогда возвращаем значение.
Приду сегодня домой попробую.

YuruY
09.01.2010, 20:41
Выхлопал бестолковый флуд (еще замечу попрошаек в теме - "учитаетесь"). =)

Chesterfield
09.01.2010, 22:48
Есть желающие заняться скриптами боссов в этом инсте?
Пытался заниматся, возникла трала с инстом, моя тема в соседнем разделе. Если что, с радостью присоединюсь к вам :)

Chesterfield
19.01.2010, 23:34
griffonheart а вы можете сказать как вы делали разрушение пола? Я пытался сделать так:

m_uiFloorGO->SetLootState(GO_READY);
m_uiFloorGO->UseDoorOrButton(10000);

как делал для открытия ворот. Но почему-то пол никак не хочет реагировать на это

Burned
19.01.2010, 23:59
griffonheart а вы можете сказать как вы делали разрушение пола? Я пытался сделать так:

m_uiFloorGO->SetLootState(GO_READY);
m_uiFloorGO->UseDoorOrButton(10000);

как делал для открытия ворот. Но почему-то пол никак не хочет реагировать на это
Так у него же тип 33, разрушаемые сооружения. На мангосе оно не работает, как обычно;)

Вот недавно выложили патчик:
http://getmangos.com/community/showthread.php?12114-%5BDev%5D-Destructible-Building-%28type-33%29

Chesterfield
20.01.2010, 00:07
Сюда патчик кинуть можешь? А то меня туда пускать не хотят :D

Burned
20.01.2010, 01:27
Сюда патчик кинуть можешь? А то меня туда пускать не хотят :D

http://filebeam.com/80f09fdec047fb0a6397ba61b58e3ff6

griffonheart
21.01.2010, 07:21
griffonheart а вы можете сказать как вы делали разрушение пола? Я пытался сделать так:

m_uiFloorGO->SetLootState(GO_READY);
m_uiFloorGO->UseDoorOrButton(10000);

как делал для открытия ворот. Но почему-то пол никак не хочет реагировать на это

if (GameObject* pGoFloor = m_pInstance->instance->GetGameObject(m_pInstance->GetData64(GO_ARGENT_COLISEUM_FLOOR)))
{
pGoFloor->SetUInt32Value(GAMEOBJECT_DISPLAYID,9060);
//pGoFloor->SetUInt32Value(GAMEOBJECT_FLAGS,544);
pGoFloor->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_UNK_10 | GO_FLAG_NODESPAWN)
pGoFloor->SetUInt32Value(GAMEOBJECT_BYTES_1,8449);
}

Chesterfield
21.01.2010, 11:13
Я проще сделал:)
case PHASE_7:
if (Data == IN_PROGRESS)
{
m_uiFloorGO->TakenDamage(10000);
}

m_auiEncounter[6] = Data;
break;
И меня ещё пару вопросов интересует:
1. На офе фазы начинаются если говорить с нпц, или при каких-то других условиях?
2. А для ордынских рейдов у вас снифов нету? А то охото кричалки и для урков реализовать :)

`win
21.01.2010, 12:30
там сделано, если не ошибаюсь, первые 3 босса НОН_СТОП, а потом после каждого босса эвент активируется разговором с НПС. Или в рейде там так? Я их путаю постоянно :)

Chesterfield
21.01.2010, 12:38
там сделано, если не ошибаюсь, первые 3 босса НОН_СТОП
Да, я это реализовал. Интересует начало первого энкаунтера (разговор с нпц или ещё что-то). И если у кого-нибудь есть возможность, снемите подробный ролик, а то все что на ютубе нашел - фигня. Нафиг мне нада смотреть на то, как они героически боссов бьют? :) Самые интерестные места они не снимают(

Shadez
21.01.2010, 13:34
1. Говорим анонсеру, что готовы -> старт 1го босса (нордскольские чудовища)
2. Говорим анонсеру, что готовы -> появляется варлок-гнум, призывает Джараксусса
3. Говорим анонсеру, что готовы -> Фордринг объявляет о схватке с чемпионами Серебряного Авангарда. Потом в зависимости от фракции начинает возмущаться Гаррош/Вариан Ринн, противоположная сторона предлагает выпустить своих чемпионов, начинается бой.
После этого боя, емнип, анонсеру ничего не говорим, сразу появляются валькирии.
После смерти валькирий спавнится лич кинг, болтает свою речь и ломает пол колизея.
2. А для ордынских рейдов у вас снифов нету? А то охото кричалки и для урков реализовать
Я, лично, транскрипции звуковых файлов делаю :) Ну нет у меня возможности снифать данные) Да и не умею я это делать.

timmit
21.01.2010, 13:49
С каких это пор на Валькириях не надо говорить? НАДО. После Валькирий снова болтаем - он говорит что типо все ок, и тут появляется Лич неожиданно

griffonheart
21.01.2010, 16:57
1. На офе фазы начинаются если говорить с нпц, или при каких-то других условиях?
Всего базарить с NPC нужно 5 ряз. Эти пять этапов у меня названы как фазы ивента. Подробнее тут - http://paste2.org/p/623916

2. А для ордынских рейдов у вас снифов нету?
снифов нету, так подобрал - http://paste2.org/p/623916
Пример:
Они хотели запятнать честь Альянса, они пытались нас оклеветать! Я требую справедливости! Тириорн, позволь моим чемпионам сражаться вместо твоих рыцарей. Мы бросаем вызов Орде!

Shadez
21.01.2010, 17:24
С каких это пор на Валькириях не надо говорить? НАДО. После Валькирий снова болтаем - он говорит что типо все ок, и тут появляется Лич неожиданно
Значит, кто-то успевал тыкнуть моба раньше)

Chesterfield
22.01.2010, 00:05
Ну и для полного близзлайка: какой текст у него в госсип менюхе?)

rodionov12
22.01.2010, 12:31
Ну и для полного близзлайка: какой текст у него в госсип менюхе?)

помоему: мы готовы сражаться дальше

timmit
22.01.2010, 13:02
Там кстати от неудавшегося трая меняется госсип, другие фразы

griffonheart
22.01.2010, 18:32
Нашёл 6 ГО Champion's Cache:
195709
195710
195631
195632
195633
195635
И целых 8 ГО Argent Crusade Tribute Chest
195665
195666
195667
195668
195669
195670
195671
195672
Какой из них для какого режима инстанции? :eek:

YuruY
22.01.2010, 18:42
Не путать:
195709
195710
Из http://www.wowhead.com/?object=195709
195631
195632
195633
195635
Из http://www.wowhead.com/?object=195631
На названия глянь (сундуков и месторасположения). =)

ЗЫ: Ты еще 8 штук позже найдешь .... :rofl:
ЗЗЫ: Пока писал - уже нашел .... лут в них будет в [531].

Первые по уровню шмота видно.
Krek - помогай, последние и я не разберу с набега (можно также по шмоту: http://www.wowhead.com/?object=195665 - я правильно понимаю?).

Krek
22.01.2010, 18:58
Нашёл 6 ГО Champion's Cache:
195709
195710
195631
195632
195633
195635
И целых 8 ГО Argent Crusade Tribute Chest
195665
195666
195667
195668
195669
195670
195671
195672
Какой из них для какого режима инстанции? :eek:
Champion's Cache
195709 - Trial of the Champion Normal
195710 - Trial of the Champion Heroic

Champions' Cache
195631 - Trial of the Crusader Normal 10
195632 - Trial of the Crusader Normal 25
195633 - Trial of the Crusader Heroic 10
195635 - Trial of the Crusader Heroic 25

Argent Crusade Tribute Chest
195665 - Trial of the Crusader Heroic 10 Попытки 1-24
195666 - Trial of the Crusader Heroic 10 Попытки 25-44
195667 - Trial of the Crusader Heroic 10 Попытки 45-49
195668 - Trial of the Crusader Heroic 10 Попытки 50
195669 - Trial of the Crusader Heroic 25 Попытки 1-24
195670 - Trial of the Crusader Heroic 25 Попытки 25-44
195671 - Trial of the Crusader Heroic 25 Попытки 45-49
195672 - Trial of the Crusader Heroic 25 Попытки 50

griffonheart
22.01.2010, 19:08
Argent Crusade Tribute Chest
195665 - Trial of the Crusader Heroic 10 Попытки 1-24
195666 - Trial of the Crusader Heroic 10 Попытки 25-44
195667 - Trial of the Crusader Heroic 10 Попытки 45-49
195668 - Trial of the Crusader Heroic 10 Попытки 50
195669 - Trial of the Crusader Heroic 25 Попытки 1-24
195670 - Trial of the Crusader Heroic 25 Попытки 25-44
195671 - Trial of the Crusader Heroic 25 Попытки 45-49
195672 - Trial of the Crusader Heroic 25 Попытки 50
Имеется ввиду, сколько попыток осталось? или сколько попыток истрачено?

Chesterfield
22.01.2010, 19:16
Имеется ввиду, сколько попыток осталось? или сколько попыток истрачено?
И как эти попытки считаются? По входу в инст?

timmit
22.01.2010, 19:31
По вайпам за сейв

Krek
22.01.2010, 21:16
Вот тут чтото про попытки:
http://www.wowwiki.com/Trial_of_the_Grand_Crusader#Tribute_Chest

"Trial of the Crusader Heroic 25 Попытки 50" содержит самый лучший шмот, значит это оставшиеся попытки.

griffonheart
23.01.2010, 06:21
И как эти попытки считаются? По входу в инст?
По умолчанию 50 попыток. Вайп и одной попыткой меньше
UPDATE_STATE_UI_SHOW = 4390,
UPDATE_STATE_UI_COUNT = 4389,
void OnPlayerEnter(Player *m_player)
{
if (instance->GetDifficulty() == RAID_DIFFICULTY_10MAN_HEROIC || instance->GetDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC)
{
m_player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW,1);
m_player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT,GetData (ENCOUNTER_SPECIAL1));
}
}

Chesterfield
23.01.2010, 06:57
griffonheart, а вы ещё не придумали как считать вайпы?)

add: судя по названия сундуков, как я понял на гере 2 сундука спавнятся. Это так?

Chesterfield
23.01.2010, 23:20
Кстати, в ИК ворота не той стороной стоят) Они открываются внутрь, а должны наоборот :)

griffonheart
25.01.2010, 06:31
griffonheart, а вы ещё не придумали как считать вайпы?)

По EnterEvade босса. Насколько это правильно - покажет практика, но пока что так.

add: судя по названия сундуков, как я понял на гере 2 сундука спавнятся. Это так?
Попытки считаются только в героиках. Первый сундук идёт после убийства pvp-боссов (как и на нормале), второй - после ануб-арака (только на героике)

Chesterfield
25.01.2010, 10:50
По EnterEvade босса. Насколько это правильно - покажет практика, но пока что так.
Идея неплохая, но получается при начале битвы с каждым боссом, счетчик будет уменьшатся на 1, а я как понял этого не должно быть.

add: у меня тут появилась идея, а если в KilledUnit() обрабатывать полностью группу, и проверять, все ли члены пати мертвые?

add: Вобщем вот что набросал :)
bool OnRaidWipe()
{
Map::PlayerList const &players = instance->GetPlayers();

for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)
{
if(Player* pPlayer = i->getSource())
{
if(pPlayer->isAlive())
return false;
}
}

return true;
}
И вопросег)
Те колонки, которые вы приводили для INIT_WORLD_STATE они соответствуют тем, которые у UPDATE_WORLD_STATE?

Fedia22
25.01.2010, 11:17
add: у меня тут появилась идея, а если в KilledUnit() обрабатывать полностью группу, и проверять, все ли члены пати мертвые?


уход в йас блок (1 раз было такое), невидимость у мага, сливание с тенью и т.д абилки приводящие к скидыванию агро так же делают количество попыток -1

Chesterfield
25.01.2010, 11:22
уход в йас блок (1 раз было такое), невидимость у мага, сливание с тенью и т.д абилки приводящие к скидыванию агро так же делают количество попыток -1
на офе?

Fedia22
25.01.2010, 11:23
ну я только там играю :)
айс блок у меня был на первом боссе кентавре, я ради любопытства забегал в ИВК чтоб сравнить количество хп у босов)) бос подбежал ко мне, ударил 1 раз, и убежал. итог: -1 попытка. ну и остальные абилки были заюзаны по мере прохождения, доходил до 3 боса :)

timmit
25.01.2010, 11:36
А не лучше считать по кол-ву Evade боса?

Shadez
28.01.2010, 12:08
Кто-нибудь знает как эссенции (мобов) заставить работать?

YuruY
28.01.2010, 12:49
Кстате в [531] все сундуки с соотв. им лутом, как и говорил выше - на местах. =)

Krek
28.01.2010, 14:39
Вместе с лутом сундука за ачивку 50 попыток, я так понял, ревардом должна выдаваться пара маунтов Swift Alliance Steed (http://www.wowwiki.com/Swift_Alliance_Steed) и Swift Horde Wolf (http://www.wowwiki.com/Swift_Horde_Wolf) для альянса и орды соответственно.

griffonheart
29.01.2010, 06:22
Идея неплохая, но получается при начале битвы с каждым боссом, счетчик будет уменьшатся на 1, а я как понял этого не должно быть.
Разве? Не замечал такого. По идее эвейд как раз и вызывается при спадании агро или я не прав?


И вопросег)
Те колонки, которые вы приводили для INIT_WORLD_STATE они соответствуют тем, которые у UPDATE_WORLD_STATE?

INIT_WORLD_STATE и UPDATE_WORLD_STATE - одно и тоже. Только в UPDATE_WORLD_STATE идёт пакет с одним значением на апдейт, а в INIT_WORLD_STATE - группа значений на апдейт, поэтому INIT_WORLD_STATE присылается только при первом входе на карту.

Chesterfield
29.01.2010, 20:09
Разве? Не замечал такого. По идее эвейд как раз и вызывается при спадании агро или я не прав?
Просто я считал что этот метод вызывается когда нпц агрицо. Получается я заблуждался?) Расскажите мне тогда про неё если не трудно))

Chesterfield
31.01.2010, 22:06
Хм, попробывал использовать EnterEvadeMode(). Вроде все как и задумно, за исключением одной маленькой детальки - он зацикливается :) Т.е. после выхода босса из боя счетчик начинает тикать каждую секунду :)

griffonheart
07.02.2010, 07:28
Кто знает, как работает мастер-лут? У меня почему-то в колизее не пашет O_O (вещь может взять любой член рейда)
От чего это зависит?

timmit
07.02.2010, 13:26
а мастер лут давно уже не пашет :) да и не работал никогда :)

Feel the Power
07.02.2010, 13:36
Для сундуков лут всегда "free for all".:(

griffonheart
08.02.2010, 06:44
Я не про сундуки, а про мобов....

YuruY
08.02.2010, 08:50
Чегото по луту закоммитили, гляньте .... =)

Mayss
10.02.2010, 07:56
Извиняюсь если создал тему не там или не корректно.
Мой вопрос заключается в том что при написании скрипта для рейда Испытание крестоносца, я столкнулся с тем что игрокам перед последним боссом нужно упасть вниз к боссу, и из данной темы возникает вопрос, этот "пол" это object, phase, map ?, я уже постил на этом форуме, но темы своей я не нашёл, поэтому создал новую, так-как в старой теме я не услышал внятный и доходчивый отсвет.

Спасибо.
-- Mayss

timmit
10.02.2010, 08:09
да, это object типа 33 - разрушаемый, в приципе никто не мешал вам сделать .gobject target (.gobject near) и самому посмотреть

YuruY
10.02.2010, 08:12
Пол это ГО.
Там ивент, появляется лич, толкает речь, втыкает меч в пол и пол рушися.
Както так на оффе.

Mayss
10.02.2010, 08:28
да, это object типа 33 - разрушаемый, в приципе никто не мешал вам сделать .gobject target (.gobject near) и самому посмотреть

Я не знал, но теперь с вашей помощью я знаю, спасибо.
Тему пере назвал в соответствии с ответом.

Mayss
10.02.2010, 10:03
И последний вопрос, как активировать объект ? id 195527

timmit
10.02.2010, 10:05
Склеено с _http://ytdb.ru/showthread.php?t=1940

Chesterfield
12.02.2010, 06:58
Смотрел ролик по ик, увидел что когда появляется лич, ворота те, из которых выходили боссы, горят. Есть какаянибудь информация как это реализуется? Или там респавн другово го идет?

timmit
12.02.2010, 07:37
спелом, специальный спелл есть, сумонится тригер невидимый либо с аурой этого спела, либо после спавна кастит на себя
http://www.wowhead.com/?spell=51807 если правильно помню

Chesterfield
13.02.2010, 00:58
Эффект у спелла красивый) Как я понял, должен быть триггер, т.к. артас помоему движется если мне не изменяет память, а портал движется в след за нпц :D У кого-нибудь есть точные данные по перемещению Артаса? А то ни одного номального ролика не могу найти с ним :(

Shadez
13.02.2010, 05:34
Горят не ворота, просто на месте спавна артаса начинает дымить какая-то завеса.
У кого-нибудь есть точные данные по перемещению Артаса?Идет от места, на котором появляется Гормок прямо в центр Колизея

timmit
13.02.2010, 10:36
Завеса эта не двигается, в 4 квестах она используется.

YuruY
13.02.2010, 19:22
Кстате сундук остается на полу, даже когда его (пола) нет, после вайпа, заходим рейдом в инст - и весь рейд как дураки стоят на сунуке (лута там уже нет), а не сразу в низу, как только двинешься - падаешь в низ, незнаю есть изменения/нет, данные перед новым годом. =)

Shadez
13.02.2010, 19:39
После вайпа на ануб'араке игроки падают вниз сразу после входа в инст - до места спавна сундука не успеют добежать)

griffonheart
14.02.2010, 08:49
После вайпа на ануб'араке игроки падают вниз сразу после входа в инст - до места спавна сундука не успеют добежать)
Слышал что иногда сундук зависает (не деспавнится после лута) и игроки после телепорта в ИК падают прямо на сундук и стоят на нём, пока не спрыгут вниз :)

YuruY
14.02.2010, 08:53
Это не слух, я про это и говорил выше. =)

griffonheart
14.02.2010, 08:55
Смотрел ролик по ик, увидел что когда появляется лич, ворота те, из которых выходили боссы, горят. Есть какаянибудь информация как это реализуется? Или там респавн другово го идет?
NPC 22517 спавнится и вешает на себя спелл 51807, он стоит не движим, а из портала выходит Артас и направляется в центр Колизея, после чего толкает речь :)
Координаты движения Лича (две точки достаточно, xyz):
563.549, 152.474, 394.393
563.547, 141.613, 393.908
Координаты спавна Лича (map, x, y, z, o):
649 563,571 174,835 394,495 4,71239
Координаты спавна NPC-портала (map, x, y, z, o):
649 563,7 175,983 394,504 4,69494

Это не слух, я про это и говорил выше. =)
А я и не говорил что слух :) Мне друг рассказывал, который потом у меня дома с моего компа ходил в ИК и отснифил мне его :D

Konctantin
14.02.2010, 18:38
и отснифил мне его
А снифом не поделитесь? в личку...

Immortal
15.02.2010, 07:44
griffonheart, спасибо вам огромное) А по эвенту с Демонов у вас есть чтонибудь?)

dimitrius
15.02.2010, 12:51
m_creature->SummonCreature(22517, 563.7, 175.983, 394.504, 4.69494, TEMPSUMMON_MANUAL_DESPAWN, 0); //сумоним триггер
DoCast(m_creature,51807); //сумоним портал
m_creature->SummonCreature(35877, 563.571, 174.835, 394.495, 4.71239, TEMPSUMMON_MANUAL_DESPAWN, 0); //сумон лича
DoCast(m_creature,72729); //каст ледяной скорби

Как привязать портал к триггеру? Сейчас он открывается на месте текущей выделенной цели. И почему спел 72729 не пробивает пол? мб не тот спел юзаю?
И еще подскажите как заставить артаса говорить речь, и какую именно?

timmit
15.02.2010, 13:01
А вы сделали для этого спела обработчик в ядре?
У триггера сделать свой скрипт, который при его суммоне будет кастовать стену. И который в свою очередь будет управлять эвентом артаса

Chesterfield
15.02.2010, 13:12
Так, что-то я не догоняю, для пробивания пола разве спелл ещё какой-то нада? :)

PS: У кого-нибудь есть возможность отснять этот эвент на офе, и слить куданибудь, а то все игроки снимают тока как безжалостно боссам люлей развешывают, а самое интерестное не льют :)

Shadez
15.02.2010, 13:45
У кого-нибудь есть возможность отснять этот эвент на офе, и слить куданибудь
Постараюсь не забыть)

dimitrius
15.02.2010, 13:49
Так, что-то я не догоняю, для пробивания пола разве спелл ещё какой-то нада? :)
Насколько я знаю, лич выходит в центр инста, протыкает мечем пол (кастуется http://ru.wowhead.com/?spell=72729). Но пока данный спел не реализован можно пустить с этим http://ru.wowhead.com/?spell=50896
Пол разбивается гарантировано.

Chesterfield
15.02.2010, 13:51
(кастуется http://ru.wowhead.com/?spell=72729).
Но визуальный эффект то у него работает? Если да, то больше и не нада))

PS: А что с личем происходит дальше после протыкания пола? Он весит в воздухе, или просто удаляется? Или что-то ещё?

Постараюсь не забыть)
И кеш тогда если не трудно кинь :)

dimitrius
15.02.2010, 13:55
Но визуальный эффект то у него работает?
Да, работает.
После пробивания сам лич просто исчезает, а все пати благополучно летит вместе с осколками пола вниз.

Chesterfield
15.02.2010, 18:16
Хм, в 3.2.2 клиенте нету этого спелла 72729 :(

bsnox
15.02.2010, 19:29
Так, что-то я не догоняю, для пробивания пола разве спелл ещё какой-то нада? :)

PS: У кого-нибудь есть возможность отснять этот эвент на офе, и слить куданибудь, а то все игроки снимают тока как безжалостно боссам люлей развешывают, а самое интерестное не льют :)

сразу нашел на ютубе
http://www.youtube.com/watch?v=m3f1yUBWOdo

dimitrius
15.02.2010, 20:36
struct MANGOS_DLL_DECL npc_lich_kingAI : public ScriptedAI
{
npc_lich_kingAI(Creature *c) : ScriptedAI(c)
{
m_pInstance = (ScriptedInstance*)c->GetInstanceData();
Reset();
}

ScriptedInstance* m_pInstance;
uint32 IsCasted;
uint32 IsMoved;
uint32 Cast_Timer;

void Reset()
{
IsCasted = 0;
IsMoved = 0;
Cast_Timer = 15000;
}

void UpdateAI(const uint32 diff)
{
if(IsMoved == 0)
{
m_creature->GetMotionMaster()->MovePoint(0, 563.547, 141.613, 393.908);
IsMoved = 1;
}
if(IsCasted == 0)
{
if (Cast_Timer < diff)
{
DoCast(m_creature, SPELL_FROSTMOURNE);
IsCasted = 1;
}
else Cast_Timer -= diff;
}
}
};

Как спозиционировать каст на геймобьект чтобы был эффект пронзания пола мечем? Ато получается он кастует его на себя.

Проблему со скоростью решил, но вот как сделать видимым сам эффект портала, из которого выходит артас. Ведь триггер, вешающий на себя каст портала, невидимый. В следствии чего все красивости можно наблюдать только при .gm on =)

Chesterfield
15.02.2010, 22:51
Ведь триггер, вешающий на себя каст портала, невидимый. В следствии чего все красивости можно наблюдать только при .gm on
Вот это меня тоже заинтересовало. Есть конечно мысль дать ему модель невидимки, и сделать не селектабельным, чтобы его имя не светилось, но это как я понял не близзлайк :)
А что насчет спелла то? В 3.2.2 этого спелла нету. Там другой был?

dimitrius
15.02.2010, 22:59
А что насчет спелла то? В 3.2.2 этого спелла нету. Там другой был?
Походу там другой спел, даже по видео с ютуба отличается. всю базу пересмотрел, так и не смог найти.
И кстати как ты сделал разрушение пола с использованием TakenDamage()? У меня серв падает когда применяю pGoFloor->TakenDamage(100, m_creature); Можно канеш разрушить спелом 50896 но там радиус маленький, а центр пола как я понял совсем не в центре.

Chesterfield
15.02.2010, 23:11
Я через TakenDamage() его рушил. У тебя он падает, скорее всего из-за того, что не может скрипт получить pGoFloor, либо ты его как-то неправильно получаешь. У меня по эвенту впринципе почти все, осталось эфект портала, и втыкание скорби в пол.

dimitrius
16.02.2010, 10:47
Получаю через GameObject* pGoFloor = m_pInstance->instance->GetGameObject(m_pInstance->GetData64(GO_COLISEUM_FLOOR))
Или может нужно как то по другому? Причем у процедуры TakenDamage() 2 параметра - 1ый урон, 2ой как я понял ссылка на инициатора.

Chesterfield
16.02.2010, 17:19
Я его создавал в OnGameObjectCreate()

У меня у TakenDamage() 1 аргумен :) (у меня тк2))

griffonheart
18.02.2010, 09:10
Не мучайтесь догадками, держите скрипит - http://paste2.org/p/674641 :)
Номера саундов и текстов помжно найди в первом посте темы - http://paste2.org/p/589135

griffonheart
18.02.2010, 09:19
Вот это меня тоже заинтересовало. Есть конечно мысль дать ему модель невидимки, и сделать не селектабельным, чтобы его имя не светилось, но это как я понял не близзлайк :)
А что насчет спелла то? В 3.2.2 этого спелла нету. Там другой был?

Вот:
UPDATE creature_template SET flags_extra = 2 WHERE entry = 22517;
UPDATE creature SET modelid = 16925 WHERE id = 22517;
Если моб - невидимка, кто вам сказал, что он должен иметь флаг CREATURE_FLAG_EXTRA_INVISIBLE? Вообще не понимаю, зачем эта хрень была введена в мангос. На этих мобов ДОЛЖНЫ приходить апдейт-пакеты (иначе как бы я их отснифил?). Они невидимы за счёт модели и флага UNIT_FLAG_NOT_SELECTABLE и/или UNIT_FLAG_NON_ATTACKABLE. Если же использовать экстра-флаг CREATURE_FLAG_EXTRA_INVISIBLE, то апдейт-пакет не уйдёт клиенту и никакого пртала вы не увидите, как бы не старались :)

griffonheart
18.02.2010, 09:29
PS: А что с личем происходит дальше после протыкания пола? Он весит в воздухе, или просто удаляется? Или что-то ещё?

Просто удаляется. В файле с текстами обратите внимание, что первую и последнюю фразы говорит другой моб Король-Лич, который стоит за пределами колизея невидимым.
Таки образом, после протыкания пола, видимый Лич-Кинг просто исчезает, а диалог завершает невидимый Лич-Кинг, который никуда не исчезал и не появлялся, да и вообще, судя по снифу наблюдал за состязанием из-под полы :D

timmit
18.02.2010, 09:33
Угу, грифон прав, я так намучался с цепями для мобов, когда делал. Потом додумался правильно сделать без флага инвиза - только невидимая модель + флаг не атакуемости.

dimitrius
18.02.2010, 10:03
Благодарю за скриптик, он мне помог решить много вопросов.
Вот еще такой ньюанс - с ролике из ютуба заметил что все мобы выходят с оружием. Как в скрипте это прописать и где узнать какое именно у них должно быть?

timmit
18.02.2010, 11:10
Для этого в базе делается `creature_equip_template` и в таблицу creature или в данном случае кретуре_темплате прописывается номер этого эквипа, как искать? вов_модел_вювер (http://ytdb.ru/showthread.php?t=2988) вам в помощь :)

Chesterfield
19.02.2010, 06:56
А для орды текстов у вас нет? :)

dimitrius
19.02.2010, 19:45
как можно воспроизвести анимацию из той программки (вов_модел_вювер (http://ytdb.ru/showthread.php?t=2988))? например для анимирования закапывающихся в землю червей (2ых боссов 1ого пака)
через m_creature->HandleEmoteCommand() это можно или как то по другому?

Chesterfield
20.02.2010, 08:57
например для анимирования закапывающихся в землю червей
Помоему это должно реализовывацо спеллом, по крайней мере у Ануб'Арака так :)
Кстати, никто не думал над реализацией хп на двоих у валькирий? У меня есть некоторая идейка, то че-то метод не могу найти, который определяет сколько дамагу нпц получает...

dimitrius
20.02.2010, 10:47
вот нашел http://luahyparc.pastebin.com/f4dc01b6b и откуда только в той программе значения анимации.
У меня есть некоторая идейка, то че-то метод не могу найти, который определяет сколько дамагу нпц получает...
А если считать разницу между старым и новым hp в UpdateAI() и отнимать ее от hp обоих монстров?

Chesterfield
20.02.2010, 11:51
А если считать разницу между старым и новым hp в UpdateAI() и отнимать ее от hp обоих монстров?
мммм.... идея)

хотя врятли... может зацикливание получиться... вобщем ща проверю.

dimitrius
20.02.2010, 12:41
Какими командами можно выводить сообщения (в общий чат например) чтобы было проще проводить отладку?

Chesterfield
20.02.2010, 13:11
DoSay()

PS: Это не комманды, а методы (или функции :))

Shadez
20.02.2010, 16:57
Кстати, никто не думал над реализацией хп на двоих у валькирий? У меня есть некоторая идейка, то че-то метод не могу найти, который определяет сколько дамагу нпц получает...
Посмотри на скрипт близнецов в анкираже, у них вроде тоже 1 хп на двоих

dimitrius
21.02.2010, 17:31
Как можно переместить существо чтобы флаг UNIT_NPC_EMOTESTATE при его перемещении не изменялся? Делаю момент, где черви зарываются в землю, меняются местами, и выползают уже поменявшись ролями.
Вот часть кода, которая неверно работает. Существо теряет состояние "закопанности" и перемещается как обычно пешком. Или подскажите метод который бы просто телепортировал их.

m_creature->GetMotionMaster()->Clear(false);
m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_SUBMERGED);
float orientation = m_creature->GetOrientation();
m_creature->GetMap()->CreatureRelocation(m_creature,GlobalX,GlobalY,Glob alZ,orientation);
m_creature->SendMonsterMove(GlobalX,GlobalY,GlobalZ,SPLINETYPE _NORMAL,SPLINEFLAG_NONE, 0);

warrex
06.03.2010, 10:29
А может кто кинуть сам патч? На последние ревы.

timmit
06.03.2010, 10:30
Подождите немного, сейчас SD2 team взялась патч на ИК и ИВК в основной репозиторий перегонять, скоро все будет :)

warrex
06.03.2010, 10:36
Я как бы новичек в этом деле, пытаюсь скомпилировать свое ядро. Хотелось бы чтобы работал ИК и ИВК хотябы частично. Но немогу найти патч.

timmit
06.03.2010, 10:39
scriptdev2.com там посмотрите

Gen1us2k
06.03.2010, 18:51
ИК:
http://github.com/rsa/scriptdev2/tree/master/scripts/northrend/crusaders_coliseum/trial_of_the_crusader/
ИЧ:
http://github.com/rsa/scriptdev2/tree/master/scripts/northrend/crusaders_coliseum/trial_of_the_champion/
для тех кому влом искать...
ЗЫ поковыряю сам.. вроде нет скулей к нему.. но тут уже mangos.creature_template заполнить не составит труда :)
UPD скули в addition папке =)