upd - выдал 14 игроку слот и стартовую позицию - перестало и на нем крашить. Напоминаю, нумерация игроков в jass идет с нуля, а не с 1 как в гуях.
В общем, крашит на игроках которым не выданы слоты и стартовая позиция - игра очевидно не понимает что с ними делать и как отображать для них наведение.
Ага тут 131.2, мне такое не открыть пока что, но думаю связано с моделями, модели нестандартные? если да, то надо смотреть в область наведения, скорее всего это связано с кругом наведения, который появляется под моделю юнита, скорее всего игра не знает, где расположить круг или просто ошибка при его отображении, или же этот параметр скручен в РО и некорректно это влияет на модель и игру
там просто обычные футмены рефоржа, я думаю бета блокирует или что-то типа того...
if GetPlayerController(ConvertedPlayer(udg_pid)) != MAP_CONTROL_COMPUTER then
endif
if GetPlayerSlotState(ConvertedPlayer(udg_pid)) != PLAYER_SLOT_STATE_EMPTY then
endif
if GetPlayerSlotState(ConvertedPlayer(udg_pid)) != PLAYER_SLOT_STATE_LEFT then
endif
Гуи
а я кстати нашел не так как ты показал на ГУИ, а там есть функция slot statys равно Играет. и не надо исключить все виды как ты предложил!
VVelikolepniy, проще всего - массив типов юнитов плюс случайное число. Есть и более красивые решения (те же юнитпулы, например), но массив все-же проще если в гуях работать.
А группа это совсем другое - группа это список конкретных юнитов.
Ну я так и сделал в итоге, при инициализации добавил всех юнитов по очереди в массив типа юнитов и вызываю номер юнита через рандомное число
Ну когда переменную создаешь там начальное значение надо указывать. стандартно ноль
Какой ноль у массива групп? Скрин переменной CreepsGroup, пожалуйста.
У групп нельзя никакое начальное значение задать, там по умолчанию создаётся группа.
Ну да, это я ни туда посмотрел. Типа того сделать для всех групп нужно?
А группы в массиве CreepsGroup созданы? Нужно либо создавать группы при инициализации, проходясь циклом по массиву, либо в константах указать "размер" массива, и тогда они будут сами созданы.
Ну когда переменную создаешь там начальное значение надо указывать. стандартно ноль
Ставь просто два условия, что юнит в области и юнит жив. Либо таким образом можешь выбрать в отряд юнитов в области для проверки, схожим образом оно задаётся для твоего Integer comparsion:
Нельзя сменить тип прицела абилки, мгновенных заклинаний которые ничего не сбивают всего 6 на всю игру, юзайте их для основы, это Безумие, Стремительность, все щиты, вроде божесвенного щита или щита маны, все переключатели, жжение демонхантера и еще превратится в сфинкса.
Важно - безумие не складывается со своими клонами и перебивает их.
Ну все эти заклинания не применяются на цель, а мне нужно минимизировать время каста именно на цель
VVelikolepniy,
глобальная переменная - доступна в любом месте
локальная - доступна только в той ФУНКЦИИ в которой объявлена
функция - в рамках jass это самодостаточный фрагмент кода, могущий принимать параметры, содержать локальные переменные и возвращать значение
триггер - конструкция, которая при срабатывании события проверяет условия и вызывает действие если условие выполнено, условия и действия триггера выполнены в виде функций
Я понимаю, то есть мне не получится добавить локальную переменную в триггер из другого триггера, тк локальная переменная типа не может передаваться... Но как мне обойти тогда это? У меня есть мысль что надо вынуть из локальной переменной значение координаты и вписать ее в аргумент функции
VVelikolepniy, просто сформулируй ответы на эти вопросы - я не смогу помочь не разобравшись в том, что именно ты пропустил из основ. А попытки получить доступ к локальной переменной - явно говорят о том что что-то пропущено.
Переменная - занимаемая ячейка памяти с записанными значениями
Глобальная переменная используется в любом количестве триггеров
Локальная - для конкретного триггера
триггер - реакция на событие
функция - алгоритм берущий один результат и выдающий другой
Я просто не понимаю почему я в функцию не могу взять ПЕРЕМЕННУЮ, как мне создать триггер, использующий локальную переменную из другого триггера? засовывать в глобальную переменную массив это костыли, наверняка есть способ это сделать
Начнем с простого - что такое переменная? Что такое глобальная переменная? Что такое локальная переменная? Что такое триггер? Что такое функция? Без понимания этого тебе не продвинуться дальше.
С чего вы решили, что я не понимаю? Мне нудо локальную переменную координаты переместить в функцию, которая использует эту координату для дальнейших действий. И у меня 9999 вызовов такойфункции с разными координатами сделать Maniac_91:
Лучше использовать координаты вместо точек, чтоб потом утечки не пришлось удалять. Да, так немного сложнее, но лучше. Есть формулы, заменяющие утечные функции (расстояние между точками, например). Их можно найти здесь, на XGM, или спросить в теме вопросов.
А еще от BJ избавиться надо бы и удалением спецэффекта озаботиться. И вобще, если присмотреться к коду, то там какая-то чуш творится с очисткой локального массива, в который никогда ничего не пишется.
Я просто не смог довести эти триггера до идеала в плане переменных и утечек, потому что у меня не работает нифига) prog:
VVelikolepniy, и зачем тебе создание огня отдельным триггером? Что мешает сдувать огоньки созданные в обычной функции?
Потому что у меня будет 3 разных спелла которые будут по разному вызывать огоньки, мне кажется было бы оптимальнее сделать функцию и просто во всех моих заклинаниях вызывать ее и спокойно работать дальше
А и я еще не сказал я хотел периодическое событие добавить в каждый созданный триггер и если в в какой то радиусе юнит от огня, то на него вешается дебафф, а на дебафф ЕЩЕ отдельный триггер, потому что каждый тик дебафа увеличивает урон. и в теории когда юнит уже горит и заходит в зону огня, у него обнуляется таймер (становится максимальным, скажем 5 секунд) окончания горения и урон продолжает возрастать prog:
Потому что у меня будет 3 разных спелла которые будут по разному вызывать огоньки, мне кажется было бы оптимальнее сделать функцию и просто во всех моих заклинаниях вызывать ее и спокойно работать дальше
Замечательно, три спела создающих огоньки, но зачем триггер при этом? Что не так с вызовом функции которая просто создает огоньки без вызова триггера?
А если мне делать через массив мне все равно нужно делать периодическое событие на проверку есть ли юниты в зоне огня или нет
Я просто не понимаю почему я в функцию не могу взять ПЕРЕМЕННУЮ, как мне создать триггер, использующий локальную переменную из другого триггера? засовывать в глобальную переменную массив это костыли, наверняка есть способ это сделать
А еще от BJ избавиться надо бы и удалением спецэффекта озаботиться. И вобще, если присмотреться к коду, то там какая-то чуш творится с очисткой локального массива, в который никогда ничего не пишется.
Я просто не смог довести эти триггера до идеала в плане переменных и утечек, потому что у меня не работает нифига) prog:
VVelikolepniy, и зачем тебе создание огня отдельным триггером? Что мешает сдувать огоньки созданные в обычной функции?
Потому что у меня будет 3 разных спелла которые будут по разному вызывать огоньки, мне кажется было бы оптимальнее сделать функцию и просто во всех моих заклинаниях вызывать ее и спокойно работать дальше
А зачем передавать агрумент в триггер экзекут? Я понимаю еще передачу в таймер или триггер эвалуейт для сложных систем, но в экзекут зачем? Тем более, что у автора вопроса триггер без событий и условий - по сути ему более чем достаточно обычной функции.
Ну мне нужновызвать огонь через функцию, что бы это был отдельный триггер, потому что я хочу сделать спелл типа сдувать эти огоньки по конусу( типа двигать). У меня идея была выбрать каждый эффект в зоне и через цикл двигать
Спасибо, это помогло! в русификации этот параметр называется ПОЛОЖЕНИЕ ВСТАВКИ, и значения можно выбирать от 0 до 8, как я понял там нелинейная зависимость и 0 это самый быстрый разворот, а 4 самый медленный)
ScopteRectuS:
Потому что я сначала присваиваю в переменную группу, а потом удаляю то, что я присваивал в эту группу PT153:
не p player, а player p ))
обьясни плиз что это за цифры constant integer Order_attack = 851983
» WarCraft 3 / Вылет рефоржа в игре как только мышка попадает на юнита
Ред. VVelikolepniy
» WarCraft 3 / Вылет рефоржа в игре как только мышка попадает на юнита
» WarCraft 3 / Вылет рефоржа в игре как только мышка попадает на юнита
Bergi_Bear: да, идут и дерутся, но наводить и кликать по ним нельзя)
» WarCraft 3 / Выбор всех реальных игроков.
» WarCraft 3 / Группа типов юнитов
» WarCraft 3 / Группа типов юнитов
Ред. VVelikolepniy
» WarCraft 3 / Не работает триггер на создание лесных крипов
» WarCraft 3 / Не работает триггер на создание лесных крипов
» WarCraft 3 / Респавн лесных крипов как в Доке 2
» WarCraft 3 / Респавн лесных крипов как в Доке 2
» WarCraft 3 / Мгновенное применение заклинание Канал
» WarCraft 3 / Проблема с дамми заклинанием Канал
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
Ред. VVelikolepniy
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
Глобальная переменная используется в любом количестве триггеров
Локальная - для конкретного триггера
триггер - реакция на событие
функция - алгоритм берущий один результат и выдающий другой
Ред. VVelikolepniy
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
prog: С чего вы решили, что я не понимаю? Мне нудо локальную переменную координаты переместить в функцию, которая использует эту координату для дальнейших действий. И у меня 9999 вызовов такойфункции с разными координатами сделать
Maniac_91: А в чем проблема очистки точки командой
Ред. VVelikolepniy
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
prog: А если мне делать через массив мне все равно нужно делать периодическое событие на проверку есть ли юниты в зоне огня или нет
Я просто не понимаю почему я в функцию не могу взять ПЕРЕМЕННУЮ, как мне создать триггер, использующий локальную переменную из другого триггера? засовывать в глобальную переменную массив это костыли, наверняка есть способ это сделать
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
prog: Потому что у меня будет 3 разных спелла которые будут по разному вызывать огоньки, мне кажется было бы оптимальнее сделать функцию и просто во всех моих заклинаниях вызывать ее и спокойно работать дальше
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
Ред. VVelikolepniy
» WarCraft 3 / Модернизация триггеров из 5 урока по джазу
» WarCraft 3 / Идеальный дамми скил для вызова триггероно заклинания
» WarCraft 3 / Скорость разворота юнита героя
» WarCraft 3 / Мини триггер для выявления утечек в карте.
» WarCraft 3 / Скорость разворота юнита героя
» WarCraft 3 / Оптимизация кода на создание юнитов для МОБА игры
Потому что я сначала присваиваю в переменную группу, а потом удаляю то, что я присваивал в эту группу
PT153:
не p player, а player p ))
обьясни плиз что это за цифры constant integer Order_attack = 851983