Здравствуйте старожилы))))
Недавно ради интереса начал изучать маппинг по Warcraft 3.
Хочу сделать так, чтобы:
Игрок владелец предмета "Боевые Когти" написал сообщение в чат "-Music" и тут начала играть музыка.
Но у меня нечего не получается((((
Поднимаю "Боевые Когти" затем пишу в чат сообщение "Music" а музыка не работает(((((
В чем дело?
И еще один дополнительный вопрос: Вызывает ли проигрывание музыки утечку в памяти?
Скриншот моего триггера внизу.

Принятый ответ

во первых, изучите форматирование
во вторых, вы прикрепили два одинаковых скриншота, пользуйтесь кнопкой редактирования
в третьих, кто такой игрок "владелец нет предмета" и почему на него должно что то срабатывать
в четвертых, в триггере срабатывающим на событие чата в условии фигурирует манипулирующий герой - откуда? кто он такой?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
6 лет назад
Отредактирован biridius
0
Bismarc_Dark, не, это от утечки отряда, т.к. функция "Pick every unit..." создает группу, но если прописать ту строку то группа удаляется после всех этих действий.
Утечки есть от всех объектов вроде юнитов, точек, отрядов, групп игроков (кроме заранее созданных вроде All Players), но от музыки не должно быть.
0
2
6 лет назад
Отредактирован Bismarc_Dark
0
Спасибо.
Я пытался сделать, чтобы музыка играла 6 секунд а потом останавливалась.
Но у меня нечего не вышло((((
Музыка играет циклично.
Не могли бы вы сказать где моя ошибка?
Загруженные файлы
0
26
6 лет назад
0
в том что скорее всего вейт вешает поток при использовании в форгруп
0
24
6 лет назад
0
Bismarc_Dark, я бы сделал иначе - занес героя при получении когтей в переменную, что бы не перебирать всех юнитов каждый раз, а при потере предмета очищал. дальше если владелец юнита игрок написавший команду, то запускать музыку. Если когти могут быть у разных юнитов, то в массив
0
23
6 лет назад
0
все верно верху сказано создаем группу юнит который будет ловить события что данный герой или юнит получил предмет заносим в группу, а при потери удаляем юнита из группы. Если игрок написал в чат проходим цикл по группам сравниваем юнит являет ли свой игрок если да то играем музыку и дальнейшие цикл остановить.
0
26
6 лет назад
0
Bismarc_Dark:
8gabriel8:
Так удали русификатор
И поставь нормально русифицированный редактор FNWE
При всем уважении сударь, я не спрашивал вашего мнения.
Ну что за вредные люди пошли.
Просто времени не было, чтобы рассказать о вреде русификатора.
Некоторые неопытные пользователи редактора считают, что поставив русификатор, они смогут лучше понимать триггеры и быстрее разберуться в них, что логично в отношении большинства других программ. Но, к сожалению, именно для Warcraft 3 перевод в русификаторе отвратный. Какие-то важные слова пропущены, какие-то бессмысленны, а какие-то сбивают с толку. Имеет смысл пользоваться русификатором, если вообще не знаешь английский и смотришь на английские слова, словно на китайские иероглифы. Но если немножко изучал язык в школе, то гораздо лучше поймёшь триггеры без русификатора, их смысл будет ясным, а не извращённым.
А FNWE-это разработка одного из наших пользователей, которую можешь найти через поиск по сайту. Он смог нормально перевести английские слова, чтобы смысл не терялся, а ещё внёс дополнительные возможности, которые позволяют реализовать триггеры близкие к jass.

И по поводу "set bj_wantDestroyGroup = true", наверное, эта переменная готовилась разработчиками редактора триггеров для предотвращения утечек при использовании групп, но её не успели нормально реализовать. Суть в том, что при действиях с юнитами какого-то игрока, как в примере на скрине, группа, в которую выбраны юниты этого игрока, должна быть удалена, но код написан так, что при выборе, например, всех юнитов определённого типа на карте, то есть юнитов определённого типа у всех игроков, группа удаляется после выбора юнитов первого игрока, остальные юниты уже не могут попасть в удалённую группу. То есть, ИСПОЛЬЗУЙ ЭТОТ СКРИПТ ТОЛЬКО ДЛЯ РАБОТЫ С ЮНИТАМИ ОДНОГО ИГРОКА. Раз уже сталкивался с информацией об утечках, то и видел, наверное, запись скрипта, которая удаляет группу после действия с ней, а то что-то запамятовал? Вот это подходит для устранения утечки в любом случае.
0
2
6 лет назад
Отредактирован Bismarc_Dark
0
JMCode:
все верно верху сказано создаем группу юнит который будет ловить события что данный герой или юнит получил предмет заносим в группу, а при потери удаляем юнита из группы. Если игрок написал в чат проходим цикл по группам сравниваем юнит являет ли свой игрок если да то играем музыку и дальнейшие цикл остановить.
Это-то понятно.
Я пытался сделать так чтобы музыка играла 6 секунд после чего переставала играть.
Но у меня нечего не вышло.
Музыка играет бесконечно.
После долгих попыток я понял что функция "Ждать" в данном цикле не работает.
Или может я что-то упустил так как я новичек.
Если так то подскажите пожалуйста, что нужно исправить.
Загруженные файлы
0
21
6 лет назад
Отредактирован biridius
0
можно попробовать сделать проигрывание и остановку музыки отдельным триггером, который запускать из этого
триггер2 - только действия:
1, выключить триггер2
2, запустить музыку
3, ждать
4, выключить музыку
5, включить триггер2
да таймер лучше чем вейт
0
2
6 лет назад
0
триггер2 - только действия:
1, выключить триггер2
2, запустить музыку
3, ждать
4, выключить музыку
5, включить триггер2
Эти все функции прописать второму триггеру?
Без события и условий?
2
26
6 лет назад
Отредактирован Hate
2
Hate:
в том что, скорее всего вейт вешает поток при использовании в форгруп
5 часов назад
После долгих попыток я понял что функция "Ждать" в данном цикле не работает.
вы превосходны

сделайте таймер и отдельный триггер который выключает музыку по истечению таймера, запускаете музыку и запускаете таймер
0
2
6 лет назад
Отредактирован Bismarc_Dark
0
Hate:
Hate:
в том что, скорее всего вейт вешает поток при использовании в форгруп
5 часов назад
После долгих попыток я понял что функция "Ждать" в данном цикле не работает.
вы превосходны

сделайте таймер и отдельный триггер который выключает музыку по истечению таймера, запускаете музыку и запускаете таймер
Ваши комментарии никакой пользы не несут. Так зачем вы их пишите?
Как я понимаю в ваших словах есть, один скрытый смысл это продемонстрировать свое мнимое превосходство над новичками.
Предполагаю, что вы сами слабы в этом деле а хотите казаться настоящим профи как "biridius".
Обычно ламеры самоутверждаются на нубах.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.