|
|
Модератор форума: Dimitro |
Форум TrinityCore Патчи / Моды / Фиксы для Trinity [C++] NPC-Музыкант [50] (Версия 1.0 (релиз)) |
[C++] NPC-Музыкант [50] |
Всем привет!
Написал NPC-Музыканта,который играет музыку,добавленную в клиент. В данном примере NPC проигрывает 3 песни моей любимой группы - The Offspring. Скриншот: C++ код NPC: [hide=50]http://pastebin.com/cPX8yTZS[/hide] Патч в клиент и дбц для сервера: [hide=50]http://fbe.am/5b5[/hide] Так же нужно прописать его в ScriptLoader,CmakeLists. Создайте моба сами и установите ему скриптнейм music_npc Немного о том,как добавить свою музыку... 1. Модифицируем скрипт ядра 1.1 Добавляем дефайны 2.1.1 Code enum Music { // Объявляем музыку,добавленную в дбц MUSIC_тут_то_что_взбредет_вам_в_голову = ид_на_1_больше_последнего, 2.1.2 Объявляем пункты меню Code #define GOSSIP_тут_все_что_взбредет_вам_в_голову "название вашей песни" 2.2 Добавляем пункты меню в нпс Code bool OnGossipHello(Player* player, Creature* creature) { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, тут_вводим_то_что_писали_в_пункте_2.1.2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+число_на1_больше_предыдущего); 2.3 Добавляем обработчик выбора госсипа Code case GOSSIP_ACTION_INFO_DEF+3: SendMusicToPlayers(MUSIC_FIX_YOU); player->CLOSE_GOSSIP_MENU(); break; case GOSSIP_ACTION_INFO_DEF+номер_на_один_больше_предыдущего: SendMusicToPlayers(из_пункта_2.1.1); player->CLOSE_GOSSIP_MENU(); break; 3. Модифицируем клиент и серверные DBC 3.1 Сохраняем свою песню в формате *.wav 3.2 Открываем патч,выложенный выше редактором MPQ 3.3 Добавляем свою песню в папку /Sound/Creature/LiveMusic/ 3.4 Запоминаем название песни,которую добавили в патч 3.5 Открываем SoundEntries.dbc из папки DBFilesClient 3.6 По аналогии с последней строкой создаем новую,с тем ид,который вы писали во время пункта 2.1.1 3.7 Копируем SoundEntries.dbc в папку сервера/dbc/ 3.8 Сохраняем патч На этом все. |
МучительТринити, правильно я понимаю это таким макаром нужно босам прикрепить музыку во время боя с ним! И будет играть музыка в игре при агро боса? Ну как димитро типа сделал музыка в кузне?
Добавлено (16.04.2012, 14:52) Quote (Cemak) так же можно и с видео а как можно прикрепить видео к квестам? Например при прохождении квеста на офе часто видео играет) Это тоже нужно искать в дбцшниках нужные ролики и в ядре привязывать их к квесту а именно к местности по квесту? Ну чтобы как заходиш в определенную часть с нужным квестом видио сробатывало?
Сообщение # 3 написано 16.04.2012 в 14:52
|
Quote (Оружейник) МучительТринити, правильно я понимаю это таким макаром нужно босам прикрепить музыку во время боя с ним! Можно, но не нужно. Музыка воспроизводящаяся через script_text это очень грязный хак. Причем имеющий много недостатков. Например нельзя нормально таргетировать цель, которой будет слышна музыка. В данном случае музыка будет слышна ВСЕМ, кто находится в радиусе видимости данного типа данного script_text'a. Quote (Оружейник) Ну как димитро типа сделал музыка в кузне? Я делал с помощью отправления пакета на проигрывание музыки напрямую игроку. ИМХО наиболее правильный и наименее ресурсозатратный путь. Quote (Оружейник) Например при прохождении квеста на офе часто видео играет) Во времена 3.3.5 видушек на оффе во время квестов не было. Сейчас же там тоже отправляется определенный пакет игроку, и видушки там сняты не заранее, а генерируются с помощью снятия сцен на движке игры. Quote (Cemak) МучительТринити, так же можно и с видео ) Через script_text нельзя.
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку. |
Quote (Dimitro) Например нельзя нормально таргетировать цель, которой будет слышна музыка. В данном случае музыка будет слышна ВСЕМ, кто находится в радиусе видимости данного типа данного script_text'a. Ну да и норм игроки боса душат и музыка играет) Нада пробовать учиться) Quote (Dimitro) Во времена 3.3.5 видушек на оффе во время квестов не было. Возможно на офе начал играть только с каты( Спс за разъяснения)))
Сообщение # 5 написано 16.04.2012 в 15:45
|
Quote (Dimitro) Например нельзя нормально таргетировать цель, которой будет слышна музыка. Мне хотелось сделать музыку в радиусе видимости.. В следующих версиях будет сделано по другому.. Добавлено (16.04.2012, 18:03) --------------------------------------------- Обновил скрипт,теперь он работает методом отправки пакетов игрокам. SQL запрос стал не нужен... Добавлено (17.04.2012, 04:29) |
МучительТринити, молодец + твой) Это получается если новую не добовлять то можно просто указать список писен уже которые есть в клиенте?
Quote (МучительТринити) Обновил скрипт,теперь он работает методом отправки пакетов игрокам И такой вопрос теперь музыка будет слышна всем или только тому кто использует? |
Оружейник, да,можно указать ту,что уже есть в клиенте.
Музыка будет проиграна всем,кто находится в локации с запустившим игроком. В следующей версии добавлю возможность вывода только запустившему игроку. |
спс круто))) Можно ивент дискотеку типа сделать))) Сцену рок-группу и метал)) спс)
Добавлено (17.04.2012, 16:12) Code 11>d:\trinitycore\src\server\scripts\custom\music_npc.cpp(62): warning C4700: использована неинициализированная локальная переменная "creature" сама строчка в скрипте Code Map::PlayerList const& players = creature->GetMap()->GetPlayers(); Ядро скомпилило но в чем было дело?
Сообщение # 9 написано 17.04.2012 в 16:12
|
ок) Но почему вот только 1 тема играет? Ну 1 из списка а 2 и 3 нет(((( Взяла трох даже настальгия) Давно не слушал эти темы(
Добавлено (17.04.2012, 16:36)
Сообщение # 11 написано 17.04.2012 в 16:36
|
Quote (Оружейник) ошибка Quote (Оружейник) warning Quote (Оружейник) При смене локи когда возврощаешся музыка перестает играть((( Т е я в 2 окна создал 2 блуда 1 включил музыку и стоял а 2 побежал посмотреть расстояние на котором она слышна) Когда забежал за мост сменилась лока музыка пропала но когда вернулся назад в предыдущую локу она уже не играла а на 2 блуде все еще была) А ты почитай структуру .adt файла. Поймешь.
Сообщение # 13 написано 17.04.2012 в 18:18
|
Извиняюсь,проблема была в моей кривизне..Минут через пятнадцать обновлю скрипт...
Добавлено (18.04.2012, 11:53)
Сообщение # 14 написано 18.04.2012 в 11:53
|
Вопрос зачем это?)
Продам ключи,dc hook,time breaker|dota2| (Не брут)
Сообщение # 22 написано 18.04.2012 в 14:16
|
Quote (ebjaiko) Вопрос зачем это?) Ну мне понравилось) Можно ивенты интересные делать) и не только) печаль последняя чет не пошла( Добавлено (18.04.2012, 15:39)
Сообщение # 23 написано 18.04.2012 в 15:39
|
МучительТринити, Я когда ставлю самого нпц у эльфов то норм! Но когда ставлю в другой локе то уже не пашет! Ну например поставил нпц музыка в шторме запустил но толку нету! Потом взял поставил нпц музыка в локе эльфов и запустил слышно)) Или можно только 1 нпц в игре? 2 и более бестолку?
Сообщение # 25 написано 18.04.2012 в 16:37
|
МучительТринити, Отлично
Сообщение # 28 написано 23.04.2012 в 15:25
|
| |||
| |||