Правильно ли я сделал триггер, что бы способность у мобов повышалась на уровень в зависимости от количества игроков

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

Второй триггер правильный, а первый нет:
  • Событие нормальное
  • Условие нужно только (Переключающий юнит) типа Герой равно Да
  • Первое действие меняешь сопоставление на (Совпадающий игрок) равно Человек И ((Совпадающий игрок) статус слота) равно Играет
  • Второе действие не Группа игроков, а Отряд - Выбрать всех юнитов на карте типа Герой, туда перенеси действия на установку уровня способности.
Когда ресаются, вроде ничего не надо, уровень способности либо сохранится, либо переустановится.
`
ОЖИДАНИЕ РЕКЛАМЫ...
4
19
5 лет назад
4
Похожие вопросы:

ответ
bazeba, чтобы мазохисты могли убирать часть утечек и таким образом и дальше заниматься мазохизмом
там ещё точка утекает
Position of () создаёт точку которая утекает
ответ
Sylvanas:
Да, но сами текстуры находятся в Terrainart/.../
Это похоже что варовские архивы надо обсматривать.
Sylvanas, я просмотрел архивы и вот что нашел: В архивах Вара (War3 и War3x) есть другие архивы, в их "корне" (они находятся вне папок). Эти архивы - маленькие (названы одной буквой). В них - текстуры клиффов для каждого вида местности. В папке "TerrainArt" (находится в War3 и в War3x) есть файл-таблица Excel: CliffTypes.slk - он содержит ссылки на клиффы. По-видимому, этот файл ссылается на клиффы внутри маленьких архивов, игра по этим ссылкам считывает их из малых архивов и воспроизводит в игре. Все эти клиффы в малых архивах имеют имена "Cliff1" и "Cliff0". Т.е., текстуры клиффов разных видов местности (которые непосредственно считываются Варом) имеют одинаковое имя И находятся как бы в разных "папках" (малые архивы внутри основного). Вот почему возник такой глюк с заменой одного файла.
ответ
~8gabriel8:
Hargeus, тут несколько вариантов возможно. Первым делом проверь пути к импортированным файлам, не оставил ли в пути к текстуре "war3Imported\", который обычно надо удалять?
Если с этим нормально, то текстура могла быть не прописана в модели, как указал Hate. Кидай модель и текстуру в одну папку без кириллицы в пути к ней, например, в корневую папку диска. Открываешь модель в w3me, нажимаешь Windows->Texture Manager, там щёлкаешь правой кнопкой мыши и в меню Import, указываешь свою текстуру. Потом открываешь Windows->Material Manager, где перебираешь все элементы списка в поисках текстуры, которую надо заменить, меняя её на свою. Либо создаёшь новый Material со своей текстурой, а далее в Geoset Manager перебором подставляешь свой материал на место других и обратно, пока не найдёшь нужную поверхность.
Если получилось всё нормально, то сохраняй, если что-то не вышло, либо в игре всё равно лишь тень модели, то приложи сюда карту с моделью, посмотреть в чём дело может быть.
ответ
~8gabriel8:
Только вечером, как приду с работы.
UI\Widgets\EscMenu\Human\human-options-menu-border.blp
UI\Widgets\EscMenu\Human\human-options-menu-background.blp
Шрифты

0
29
5 лет назад
0
Если не учитывать утечек каждые 2 секунды, через минуту способности станут 30 * количество игроков уровня.
0
15
5 лет назад
0
NazarPunk, он устанавливает уровень, а не повышает
0
29
5 лет назад
Отредактирован nazarpunk
0
Andrey33:
NazarPunk, он устанавливает уровень, а не повышает
Каждые две секунды для каждого играющего User = User+1.
User = 0, я что-то не заметил.

плюс утечки...
0
15
5 лет назад
0
NazarPunk, Он же делает подсчет сколько игроков играет и устанавливает уровень на количество игроков, разве не так?
1
29
5 лет назад
1
Andrey33:
NazarPunk, Он же делает подсчет сколько игроков играет и устанавливает уровень на количество игроков, разве не так?
Но не сбрасывает значение переменной.

И по хорошему нужно не перебирать всех каждые две секунды, а использовать событие Игрок покидает игру. А нужных юнитов в группе хранить.
0
26
5 лет назад
0
Во-первых, события следует ставить Юнит вошёл в игровую область и Игрок покинул игру. Во-вторых, переменную User можно напрямую задать, что это группа игроков, соответствующих условиям. В-третьих, ставишь действие Если/То/Иначе, где в если (Переключающий юнит) равно Герой равно Да, То установи уровень способностей, Иначе (пусто).
0
15
5 лет назад
0
8gabriel8, вот это не понял как сделать
переменную User можно напрямую задать, что это группа игроков, соответствующих условиям
0
29
5 лет назад
0
переменную User можно напрямую задать, что это группа игроков, соответствующих условиям
Переименовать в CountPlayingHuman
0
15
5 лет назад
Отредактирован Desgul
0
Вот так должно быть?
NazarPunk, А в чем прикол переименования если одно и тоже по функциям будет
я же могу назвать переменную как угодно
Загруженные файлы
0
26
5 лет назад
0
В User сопостовляй не то, что (Переключающий юнит) типа Герой равно Да, а выбери внизу списка условий И, поставь там оба условия со скрина в вопросе, только не (Выбранный игрок), а (Совпадающий игрок).
0
29
5 лет назад
0
А в чем прикол переименования если одно и тоже по функциям будет
я же могу назвать переменную как угодно
В том, что переменная глобальная и по такому названию через месяц можно и забыть зачем она нужна.
0
15
5 лет назад
0
Вот так?
Загруженные файлы
1
26
5 лет назад
1
Сейчас сообразил, что там два триггера нужно. Первый почти такой же, как на последнем скрине, только там не надо Если/То/Иначе, перенеси условие из Если в условие триггера. Потом зря убрал выбор всех героев в группу, но тут моя вина, выбери всех героев в группу и поставь им действия из То. Только у тебя на всех героев это распространится, в том числе и вражеских, чтобы вражеские бонуса не получали, задай в сопоставлении кроме Герой ещё (Владелец юнита) не равно Игрок_за_мобов.
А во втором триггере делаешь событие, что Игрок оставил игру и действие Триггер - Выполнить Первый триггер, игнорируя условия.

Andrey33:
Вот так?
Нет. В переменную User поставь условия.
Самое первое действие.
Чтобы не было утечки в самый низ триггера (не в действия с группой, а отдельно под него) поставь Custom Script:
call DestroyGroup( GetLastCreatedGroup() )
Но в таком случае будет некритичное количество утечек, потому можно и без него.
0
15
5 лет назад
Отредактирован Desgul
0
Вроде сделал правильно
А что делать когда они ресаются мне же надо установить им уровень способности
сделать еще 1 триггер
юнит вошел в зону вся карта
условие нейтральный врождебный
действие установить уровень способности на user ?
Загруженные файлы
0
26
5 лет назад
0
Второй триггер правильный, а первый нет:
  • Событие нормальное
  • Условие нужно только (Переключающий юнит) типа Герой равно Да
  • Первое действие меняешь сопоставление на (Совпадающий игрок) равно Человек И ((Совпадающий игрок) статус слота) равно Играет
  • Второе действие не Группа игроков, а Отряд - Выбрать всех юнитов на карте типа Герой, туда перенеси действия на установку уровня способности.
Когда ресаются, вроде ничего не надо, уровень способности либо сохранится, либо переустановится.
Принятый ответ
0
15
5 лет назад
0
8gabriel8, вот с этим совсем запутался как в действие поставить И это же только в условие можно
Первое действие меняешь сопоставление на (Совпадающий игрок) равно Человек И ((Совпадающий игрок) статус слота) равно Играет
1
26
5 лет назад
1
В данный момент внутри действия у тебя стоит логическое условие, что (Переключающий юнит) типа Герой равно Да, меняй его на И.
0
15
5 лет назад
0
8gabriel8, А всё сделал
А не понял как героя выбрать в отряде
я сделал отряд с циклом
Загруженные файлы
1
26
5 лет назад
Отредактирован 8gabriel8
1
Да, теперь всё правильно.
Ты ведь не давал вражеским героям способности, которым триггер устанавливает уровень? Если нет, то всё отлично, у них ведь нечему будет уровень устанавливать.
0
15
5 лет назад
0
8gabriel8, я давал только мобам, у меня нету герои нейтрально враждебных на карте
Спасибо большое
Пойду тестить
Чтобы оставить комментарий, пожалуйста, войдите на сайт.