26

» WarCraft 3 / Таймер вместо вейта

Принятый ответ
Ну если у тебя через локалку что-то неправильно иногда работает, значит просто у тебя где-то ошибка (или ты вообще делаешь это не так).
Для того что бы работать парой таймер+юнит впринципе то больше ничего и не нужно - таймер и сам юнит. Но если у тебя должно запускаться параллельно несколько точно таких же таймеров, то тут может подойти массив таймеров (и массив юнитов). При срабатывании одного из таймеров ты можешь ссылаться на юнита записанного под тем же индексом массива ( unit[X] и timer[X] соответственно).
А ещё в триггер можно добавлять события на срабатывания новых таймеров.
26

» WarCraft 3 / Помогите с созданием ловушки

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

» WarCraft 3 / скрыть юнита с миникарты

Ну раньше работало.
У героев есть своя отдельная кнопка, которые выключаем им особое геройское отображение на мини карте, ну а эта - есть у всех и должна скрывать юнита с мини-карты... может это какой-то другой параметр? новый какой?
26

» WarCraft 3 / Не удаляется способность

юнит-цель каста сбивается через некоторое время
т.е. для того что бы ссылаться на цель каст надо просто записать её в переменную
в любую
главное лишь понимать что и куда ты записал
26

» WarCraft 3 / Как сделать событие срабатывания пассивки

Taurenus, в конкретный момент у тебя должно что-то сработать.
Это ты уже сам определяй (когда/что/как - атака, каст, урон, смерть)
И вот в этом месте всё тормозишь и кидаешь рандомное число.
Если выпало меньше чем другое число - значит шанс сработал.
Всё просто. Дальше уже твои действия.
Просто пример
объясняю на пальцах
Событие - юнит атакован
Условие - уровень способности ("Удар Великана") у юнита (Атакующий юнит) > 0
Действия:
set N = случайное число от 1 до 100
Если ( N <= 20. ) тогда:
Боевая единица - нанести урон от (атакующий юнит) по (атакованный юнит) в размере 100.
Всё, с вероятностью 20к100 будет наноситься 100 урона, если атакующий юнит имеет абилку.
Так же можно оперировать с уровнем этой абилки
Если ( N <= ( уровень абилки * 5 + 10 ) ) тогда:
тут тогда получается вероятность 15/20/25/30к100
26

» WarCraft 3 / Мульти атака одного юнита.

Принятый ответ
Kawachi, что именно?
Берёшь огненные стрелы, ставишь им урон на 0, расход маны на 0.
Берёшь пассивку от предмета "сфера замедления", она внутри имеет активную абилку "замедление (как у волшебниц). Ставишь вместо замедления свои новые стрелы, а саму абилку "сфера" - даёшь юниту. Настраиваешь в ней шанс на 100%.
В итоге у тебя получаются стрелы в сфере.
Каждая атака будет выпускать стрелу, которая нанесёт 100% обычного урона (от атаки) и +0 от самой стрелы.
А можно ещё отлавливать принимаемый атакуемой целью урон, фильтровать его, детектить эту самую специальную атаку, и дальше делать уже свой триггерный снаряд.
Создаёшь даммика с моделькой атаки, и заставляешь его двигаться за целью, а при контакте - наносишь урон.
26

» WarCraft 3 / Мульти атака одного юнита.

Ну по сути да... либо сделать пассивку вивера из доты (стрелы+сфера).
Либо делать отдельный снаряд и все вытекающие отсюда...
26

» WarCraft 3 / Lua или jass?

Так с чем он его сравнивает? с другими ЯП? так они все появились 20+ лет назад.
И с тех пор все обновлялись, каждый по своему и со своей скоростью.
С чем он его сравнивает? с Jass?
Который сделан из Lua, и соответственно появился позже.
Он сравнивает Jass с Lua? который обновлялся раз в ~4 года.
lua
Lua 3.0 - 1997
Lua 4.0 - 2000
Lua 5.1 - 2014
Lua 5.3 - 2018
Jass ближе к оригиналу, но он не может быть ближе оригинала.
26

» WarCraft 3 / Как отловить момент попадания снаряда

quq_CCCP:
Про тысячи юнитов - ты это харе врать, у тебя на 500+ игра зависнет
Скорее всего он имеет ввиду в течении всей игры, а не в один момент времени.
26

» WarCraft 3 / Помогите найти утечку

Yury13:
что ты имеешь в виду под кастом-конструкцией?
Разворачиваешь всё что есть внутри действий с группой *All_Heroes*.
И просто делаешь с этого свою копию (в основном это касается BJ, в которых ничего нет).
Есть такой момент, когда BJ течёт без причин, делаешь её копию - и она уже не течёт.
Хз что можно было сделать не так в ней... но это есть (ну по крайней мере система которую ты используешь - видит это).
26

» WarCraft 3 / Помогите найти утечку

Yury13:
затирать переменную... Это как?)
set u = null
set g = null
set l = null

Yury13:
Сейчас я выяснил, что болшую утечку вызывает как раз вторая часть моего триггера, которая работает с группой All-Heroes.
Можно попробовать перекопировать ВСЁ содержимое в кастом-конструкцию, и затестить её. Если покажет разницу - значит косяк под капотом. (и ты ничего с этим не сделаешь... а нужно ли?)
26

» WarCraft 3 / Помогите найти утечку

Yury13:
Extremator, имеет значение, однократный таймер, который постоянно перезапускается, или сразу можно ставить многократный?
Таймер можешь работать как одноразово, так и многоразово.
Но отличается он периодика тем, что таймер можно остановить.
А периодик будет работать всю игру, но не вызывать действия (если триггер выключен).

Yury13:
сразу можно ставить многократный?
В твоей ситуации - ставишь старт многократного, в тот самый момент, когда один из героев получает (прокачивает) эту ауру, для которой и делаются все проверки.
26

» WarCraft 3 / Невидимый юнит для всех, кроме владельца

Yury13, его не надо скрывать (после создания).
Нужно перед созданием указать разные пути для разных игроков.
В итоге одни игроки увидят нормальную модельку (рабочую), а другие - ничего.
типа такого
set s = "" // s = string
if p = GetLocalPlayer() then
	set s = "Тут\\Типа\\Адрес\\Модели.mdx"
endif
call СоздатьСпецэффект(s,x,y) // x,y - координаты, либо вместо них точка, либо виджет
26

» WarCraft 3 / Невидимый юнит для всех, кроме владельца

Принятый ответ
Думаю тут однозначно нужен GetLocalPlayer()
Ты уверен что нельзя заменить юнита на спецэффект ?
Ну вообще - можно создавать разных юнитов для разных игроков.
Таким образом одни игроки могут видеть юнита БЕЗ модели, а другие - нормального.
26

» WarCraft 3 / Помогите найти утечку

Принятый ответ
Yury13, попробуй после удаления группы/точки затирать саму переменную.
Теперь используемая тобой система показывает другие значения? или те же?
+ убрать периодик, и добавить таймер
+ заносить в проверку только используемых героев
+ проверить компоненты фильтра в создании группы
26

» WarCraft 3 / Цветовой фильтр союзников

SNART, тебе надо добавить описанную мной функцию в так называемую "шапку карты". Это в редакторе триггеров, самый верхний (корневой) раздел, он имеет иконку карты. В него можно записывать скрипт напрямую. Туда вносишь всё от "function..." до "...endfunction". Дальше в своём триггере тебе надо вызвать эту функцию... сейчас дальше надо будет написать очень много текста...
...но я так понимаю ты не справишься сам
26

» WarCraft 3 / Помогите с Jass (novic)

wetalq:
можно локалки объявить где угодно
Это только если компилятор будет перераспределять расположения строк с объявлением локалок.
26

» WarCraft 3 / Помогите с Jass (novic)

Принятый ответ
1
А это никого не смущает? то что локалки поставлены не первыми
function Trig_treeegs_Actions takes nothing returns nothing
	set udg_Unitper = GetSpellAbilityUnit()
	local unit Usp = udg_Unitper
	local unit orud1
	local unit orud2
	local unit orud3
	. . .
2
Утекают точки...
PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 200., 300.)), 256, 100.)
// GetUnitLoc(Usp)
3
Обращения как в функциям
orud1()
Usp()
В общем - рано тебе ещё прям так полностью переходить на Jass.
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
26

» WarCraft 3 / вопросы Jass

Принятый ответ
Ну про локалки - хз, может ты не в том месте их объявляешь или не в том месте пытаешься на них ссылаться, т.е. для этого момента они не считаются объявленными.
Параметры для функции - тут имеется ввиду число аргументов для функции, т.е. те параметры которые она принимает, если такие вообще для неё имеются. Возможно ты просто где-то ставишь лишнюю запятую, тем самым разграничивая аргументы... такое бывает когда ставишь много скобок и сам в них путаешься.
Просто перепроверяй то что пишешь, и внимательно всматривайся в те моменты, на которые указывает компилятор ссылаясь на ошибку.
26

» WarCraft 3 / Ульт тайдхантера из доты

quq_CCCP:
смотрел реализацию в дотке фрога? Там и 1 в 1 анимация подобрана
Да, об этом и речь.
26

» WarCraft 3 / Ульт тайдхантера из доты

Сделан отдельный триг на подброс юнита и создание под ним эффекта шипа.
Каждый продамаженный юнит посылается в этот триг (как аргумент в функцию), что и заставляет его подпрыгнуть.
26

» WarCraft 3 / Таверна и Герои в ней

  1. После покупки героя можно заблокировать его найм для всех остальных игроков (т.е. поставить его в лимит на 0). При этом иконка героя из таверны пропадёт (не будет такого что он есть, но его там 0 штук). Или надо что бы не пропадал? но купить нельзя было (ну тогда только очень большой откат, но это не 100% гарантия того что героя не купят 2й раз, хотя если игрокам блокируется найм ВСЕХ героев после выбора хотя бы ОДНОГО - тогда да).
  1. Ставишь в одном месте НЕСКОЛЬКО таверн, условно "Таверна А", "Таверна Б", Таверна В". В каждой из них делаешь абилки-кнопки для переключения (можно обойтись юнитом-пустышкой). В момент активации абилок (продажи юнитов) - переключаешь выбор с одного здания на другое. Визуально всё будет выглядеть так как будто просто сменился список (если сами здания будут одинаковыми).