UnitAlive(c) and (not IsUnitIllusion(u))
или
(not IsUnitDead(c)) and (not IsUnitIllusion(u))
или
(not (IsUnitDead(c) or IsUnitIllusion(u)))
Да и зачем проверять, что получатель урона жив? Получатель урона всегда жив, ведь урон нанесётся после окончания триггера, а мёртвые не могут получить урон.
И давно их можно уничтожать? o_O Вот это внезапная новость для меня. Всегда был уверен что нет возможности их уничтожить и в итоге даже не искал нативки для этого...
Castiel, как я уже сказал, можно даже ничего не передавать, а использовать GetTriggerUnit и прочее в самом фильтре. Можно передавать глобалками (или через таблицы Lua), тоже будет верно.
Циклом будет быстрее, удобнее и порой надёжнее, если операции внутри цикла короткие. Лично я фильтр использую там, где операции долгие, так как фильтр создаёт поток на каждого юнита.
BladeInDoom, самый простой конечно через замену оригинала, в Game Interface просто выбираешь тот звук, что заменил. Но если нужны оригиналы, или нужно звук вообще убрать (варианта None нет), то нужно делать моим способом.
не будет ли фарша, когда глобалка перебивается другим игроком вызвавшим таймер, вот к примеру
Не будет, на этом построен vJass.
А так да, при занесении в глобалку фильтр пне может быть кложуром.
Можно так, но тут снова каждый раз будет создаваться новый объект.
function u (p, id)
B = Condition(function()
if p == GetOwningPlayer(GetFilterUnit()) and id == GetUnitId(GetFilterUnit()) then
end
end)
GroupEnumUnitsInRange(group, 500, 500, 500, B)
end
А ещё в фильтрах групп работает всякие GetTriggerUnit и так далее, их даже передавать не надо.
В Lua текут, в JASS нет, выясняли уже.
И лучше заносить фильтры в глобалки, тогда они доступны везде, даже до место определения фильтра. А вместо Condition советую использовать Filter, букв меньше.
Если не новые добавляли, то прежние изменяли, иначе откуда это?
Я кинул патчноут, там ничего из функций не меняли. Поставьте чистый JNGP, багов не будет. И как я уже сказал, когда я сидел на 1.27, проблем с JNGP не было.
8gabriel8, мда, это вообще разные вопросы. Там у ФУНКЦИИ и ПЕРЕМЕННОЙ одинаковые имена. Конечно конфликт будет. А тут проблема вообще в другом (возврат 1, а не 1.), я уже описал решение выше.
nazarpunk уже где-то говорил про область видимости. В JASS она тоже есть. Локальные переменные и аргументы у разных функций могут иметь одинаковые имена, потому что они видны только для той функции, где они определены. А вот глобальные переменные и функции должны иметь разные имена, потому что они видны везде. Локальные переменные не должны дублировать имена функций, но могут дублировать имена глобалок (по крайней мере в vJass), однако при этом глобалка не будет доступна внутри функции с такой локальной переменной. В некоторых ЯП подобное вообще запрещается (дублировать идентификатор во вложенной области видимости).
Нет. Функции разные, переменные разные. Тут никакого конфликта нет.
Ты возвращаешь integer, а надо real. После единицы поставь точку, и всё заработает.
Я давно задавал подобный вопрос, вот твой случай.
Желательно ещё поставить нормальный pjass.exe. В папке с JassHelper сделать папку pjass, кинуть туда pjass.exe отсюда, и в jasshelper.conf написать вместо pjass.exe вот это: pjass\pjass.exe.
По-твоему, ни разу варик с прежней ОС не запускал?
Весь софт, что не прописывает нужные пути в ОС, не удаляю при переустановке системы, варкрафт в том числе. Никогда проблем не было. Уверен, тут дело было в самой системе, да и niBeHb переустанавливал игру, и это не помогло.
который не видит, куда варик установлен
Конечно, при установке приложения система записывает его расположение. Но наличие или отсутствие этих путей на работоспособность приложения никак не влияет. Влиять может что-то другое. Например, отсутствие видеокодеков или MS Visual C++ нужной версии.
Мы так и не узнали, откуда взять система и игра. А потому проблема может быть как в самой системе, так и в сборке игры (что вряд ли).
» WarCraft 3 / Депротект сотдрп, сотфрп и т.д. И их нереальность запуска в игре
» WarCraft 3 / Сущность Льда
» WarCraft 3 / Проверка кто нанёс урон
» WarCraft 3 / Проверка кто нанёс урон
» WarCraft 3 / Проверка кто нанёс урон
» WarCraft 3 / Изменение юнита
Ред. PT153
» WarCraft 3 / Проверка кто нанёс урон
» WarCraft 3 / Проверка кто нанёс урон
» WarCraft 3 / wc3 1.31 и lua
» WarCraft 3 / wc3 1.31 и lua
» WarCraft 3 / wc3 1.31 и lua
Циклом будет быстрее, удобнее и порой надёжнее, если операции внутри цикла короткие. Лично я фильтр использую там, где операции долгие, так как фильтр создаёт поток на каждого юнита.
Ред. PT153
» WarCraft 3 / Кампания
» WarCraft 3 / Кампания
Ред. PT153
» WarCraft 3 / wc3 1.31 и lua
А так да, при занесении в глобалку фильтр пне может быть кложуром.
Можно так, но тут снова каждый раз будет создаваться новый объект.
Ред. PT153
» WarCraft 3 / wc3 1.31 и lua
И лучше заносить фильтры в глобалки, тогда они доступны везде, даже до место определения фильтра. А вместо Condition советую использовать Filter, букв меньше.
» WarCraft 3 / Синхронизация строк в 1.26
Ред. PT153
» WarCraft 3 / Кампания
» WarCraft 3 / Синхронизация строк в 1.26
» WarCraft 3 / Снять защиту с кампании
Ред. PT153
» WarCraft 3 / Syntax Errors Cannot convert returned value from integer to real
» WarCraft 3 / Снять защиту с кампании
Ред. PT153
» WarCraft 3 / Syntax Errors Cannot convert returned value from integer to real
Я давно задавал подобный вопрос, вот твой случай.
» WarCraft 3 / Снять защиту с кампании
Ред. PT153
» WarCraft 3 / Чёрный экран в игре