26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

LastUchiha, через полчаса проверю, по идее такого быть не должно, мб накосячил в коде при переносе переменных.
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

nazarpunk, я уверен, алгоритм можно оптимизировать. Осталось узнать, как там для каждого нового таймера передать аргумент в функцию. Вроде в стандартном джассе этого нет. vjass и другие инструменты и библиотеки я не рассматриваю для этой наработки.
26

» WarCraft 3 / Сбрасываются триггерные способности

Valentine, еще смущает, что ты используешь конкретные переменные на конкретного юнита. Мб из-за сейва они сбиваются. Делай способки в целом на применение от любого юнита. Попробуй тестануть у себя такой вариант, вместо 1 события сделай 2-рое событие как на скрине:
Загруженные файлы
26

» WarCraft 3 / Сбрасываются триггерные способности

Valentine, я протестил, сохранился, загрузился, все работает. Мб ты какие-то условия недоговорил как тестил?
Это же реф верно?
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

LastUchiha, а так я сделал работу с массивом как и описывал ниже. Там еще есть пару моментов, как тот-же фильтр, туда нельзя передать напрямую индекс, по которому ему надо проверять. Для этого используем глобальную переменную LastI.
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

LastUchiha, ну вот, у тебя тут была самая главная проблема, что есть таймер для каждого каста свой, и после каждого исхода таймера надо находить, какой там таймер закончился. С помощью цикла проходимся по ним, находим и выполняем действия с данными под индексом данного таймера.
При касте создаем таймер, группу и тд записываем в массив. Когда абилка закончила свое действие - удаляем таймер, группу и тд, а массив смещаем, чтобы не было пустых элементов.
Можно теперь юзать способку хоть 10 юнитов, хоть 100, пока движок варика не помрет от каста стольких абилок сразу :D
Загруженные файлы
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

LastUchiha, просто саму способку, можешь попробовать на массивах, что не получится - помогу доделать
26

» WarCraft 3 / Как обойти проблему, что ИИ в сражении стопорится в развитии, если ограничить подготовку героев до 1

TowLaptev, я сам ИИ не разрабатывал, но попробуй почитать эту статейку, мб она поможет тебе правильно отредактировать ИИ.
Я думаю, что тебе надо открыть стандартный ИИ и разобрать, как он работает, найти эти условия с одним вторым третьим героем... Надо покопаться в файлах и найти эти ИИ.
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

LastUchiha, сделай абилку на 1 юнита, я тебе помогу сделать с массивами для многА юнитов :D
Ну и скинь сюда эту карту с такой абилкой.
26

» WarCraft 3 / Как обойти проблему, что ИИ в сражении стопорится в развитии, если ограничить подготовку героев до 1

Мб переписать этот ИИ, ибо видимо там заложено условие, что дальше развитие должно пойти после найма 2 героя. А так, как ты ограничил найм внешне, он не может это сделать и стопорится, бесконечно ждет второго героя.

По сути писать свой кастом ИИ.
26

» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]

мммм, а в чем проблема?)
Сделаем абилку, которая будет хилять юнита (кастующего) каждую секунду на 10 хп а противника (цель) уменьшать хп на 10 в секунду в течении 5 секунд.
Ну как вариант:
  1. Создаем массивы всех данных, что использует твоя способка, к примеру Heroes, Targets, Times
  2. Создаем переменную, означающую количество активных способок ACount
Далее 2 варианта сохранения и удаления данных из массива. А именно, когда абилка завершила свое действие, надо удалить ее данные из массива. Что делаем с остальными абилками идущими после этого индекса? Если ничего, то остается пустое место в середине массива, куда сможем записать новую абилку. Либо лучше сместить все данные после текущей абилки влево, закрыв пустое место и уменьшив счетчик ACount.
Тут как раз таки главная проблема в том, как ты будешь ориентироваться и находить данные этой способки в течении всего жизненного цикла ее, чтобы не потерять связь между этими данными.
Как один из вариантов, будем сдвигать все данные влево при уничтожении абилки.
Использую псевдокод чтобы был понятен смысл и мне лень вспоминать какие там функции в варике и как они выглядят.
  1. При касте способки сохраняем все данные в массив под индексом ACount + 1:
index = ACount + 1
Heroes[index] = КастующийЮнит()
Targets[index] = ЦельКаста()
Times[index] = 5
  1. Далее будет какой-то глобальный таймер или событие "каждую секунду" запускающий триггер:
цикл для i от 1 до ACount делаем
	Если Heroes[i] жив и Target[i] жив то
		устанавливаем хп Target[i] на Target[i] - 10.
		устанавливаем хп Heroes[i] на Heroes[i] + 10.
		устанавливаем время Times[i] = Times[i] - 1
	Иначе 
		Times[i] = 0
  1. Далее надо сместить (удалить) все способки, что закончили свое действие. В этом же триггере:
free = -1 // индекс свободной ячейки
цикл для i от 1 до ACount делаем
	если Times[i] == 0 то
		если free < 0 то
			free = i
	иначе
		если free > 0 то
		Heroes[free] = Heroes[i]
		Targets[free] = Targets[i]
		Times[free] = Times[i]
		free = free + 1 
конец цикла
Если free > 0 то
	ACount = free - 1
  1. Если тебе нужно будет в какой-то момент получить данные способки, просто ищем этого юнита в массиве Heroes[] и далее используй тот-же индекс для получения остальных данных из других массивов. Усе.
Можно еще добавить про "правильное" очищение ссылок переменных но это уже вопрос оптимизации.

И да, хэштаблицу проще использовать, чем параллельные массивы данных. Но я постарался ответить именно на твой вопрос с примером, как можно было бы сделать и оно будет работать.
26

» WarCraft 3 / Декорации лагеря гноллов

Думаю для Рефа они лучше подойдут, слишком гладкий декор, выделяется)

Хотя бочонки и сумки можно и на SD
26

» WarCraft 3 / Batle for Quel'Thalas

автор, думаю будет полезно
пссс, посмотри
Battle for Quel'Thalas
А также:
Попробуй защитить солнечный колодец, или воскресить в нём лича Кел'Тузада, или возродить империю Амани.
26

» WarCraft 3 / Пак моделей из игр на движке Gold Source.

jasonrus96, так и пропадают ресурсы в бездне и никто их не видит и не находит, даже если действительно нужно...
26

» WarCraft 3 / Сбрасываются триггерные способности

Какой ты хочешь ответ на вопрос "У меня не работает, что делать?". Ну сделай так, чтобы работало :D
Поисследуй, что именно у тебя ломается после загрузки. Не все же способки ломаются а некоторые?
А еще лучше, если ты выложишь карту с указанными способками, чтобы могли посмотреть код, потестить, найти причину. Можно даже вынести способки на отдельную пустую карту если не хочешь палить свою карту.