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

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

ответ
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
Шрифты

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

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

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

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