28

» Btooom / Btooom

Maxim105, читай патчи WC3, начиная с 1.27.
Reforged будет повторять последний патч классики, потому ничего кардинально нового там не будет.
28

» WarCraft 3 / Депротект сотдрп, сотфрп и т.д. И их нереальность запуска в игре

то недопустимо во всех языках программирования
В JASS имена даже с _ начинаться не могут (и заканчиваться тоже).
28

» WarCraft 3 / Проверка кто нанёс урон

он проходит как событие EVENT_UNIT_DAMAGED
Тут не проходит. Юнит умер - событие не реагирует.
Загруженные файлы
28

» WarCraft 3 / Проверка кто нанёс урон

Naadir, причём тут это? Событие на получения урона срабатывает только для живых юнитов.
28

» WarCraft 3 / Изменение юнита

Naadir, возможно, только это надо будет проверять на 1.30+, ведь только там можно понизить уровень улучшения.
28

» WarCraft 3 / Проверка кто нанёс урон

IsUnitDead(c)==false and IsUnitIllusion(u)==false
Ну это бан.
UnitAlive(c) and (not IsUnitIllusion(u))
или
(not IsUnitDead(c)) and (not IsUnitIllusion(u))
или
(not (IsUnitDead(c) or IsUnitIllusion(u)))
Да и зачем проверять, что получатель урона жив? Получатель урона всегда жив, ведь урон нанесётся после окончания триггера, а мёртвые не могут получить урон.
28

» WarCraft 3 / Проверка кто нанёс урон

В триггере по получении урона смотришь GetEventDamageSource (тот, кто нанёс урон) и GetEventDamage (количество урона).
28

» WarCraft 3 / wc3 1.31 и lua

И давно их можно уничтожать? o_O Вот это внезапная новость для меня. Всегда был уверен что нет возможности их уничтожить и в итоге даже не искал нативки для этого...
В blizzard.j их всегда уничтожают.
28

» WarCraft 3 / wc3 1.31 и lua

или утечки
По идее, уничтожение булэкспры должно помогать.
28

» WarCraft 3 / wc3 1.31 и lua

Castiel, как я уже сказал, можно даже ничего не передавать, а использовать GetTriggerUnit и прочее в самом фильтре. Можно передавать глобалками (или через таблицы Lua), тоже будет верно.
Циклом будет быстрее, удобнее и порой надёжнее, если операции внутри цикла короткие. Лично я фильтр использую там, где операции долгие, так как фильтр создаёт поток на каждого юнита.
28

» WarCraft 3 / Кампания

BladeInDoom, самый простой конечно через замену оригинала, в Game Interface просто выбираешь тот звук, что заменил. Но если нужны оригиналы, или нужно звук вообще убрать (варианта None нет), то нужно делать моим способом.
28

» WarCraft 3 / wc3 1.31 и lua

не будет ли фарша, когда глобалка перебивается другим игроком вызвавшим таймер, вот к примеру
Не будет, на этом построен 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 и так далее, их даже передавать не надо.
28

» WarCraft 3 / wc3 1.31 и lua

фильтры не текут
В Lua текут, в JASS нет, выясняли уже.
И лучше заносить фильтры в глобалки, тогда они доступны везде, даже до место определения фильтра. А вместо Condition советую использовать Filter, букв меньше.
28

» WarCraft 3 / Синхронизация строк в 1.26

Принятый ответ
ProximityCat, pld файл - это файл, что ты прелоадишь. В нём должен быть вызов только функции ExecuteFunc, которая вызывает другую функцию из карты.
28

» WarCraft 3 / Кампания

Принятый ответ
Меняется тут.
Но скорее всего там не будет выбора твоего звука. Нужно сделать вот что.
  1. Поставить какие-нибудь другие значения у нужного звука в Game Interface.
  2. Нажать Display Values As Raw Data и запомнить такое название поля.
  3. Сохранить кампанию.
  4. Открыть файл кампании через MPQ Editor.
  5. Найти файл war3campaignMisc.txt, нажать по нему ПКМ и выбрать Edit.
  6. В открывшемся файле найти запомненное поле и прописать путь, куда был импортирован твой звук.
  7. Сохранить файл. MPQ Editor спросит, вносить ли изменения, нужно нажать Yes (или OK).
  8. Если не спрашивает, то:
    • Экспортировать war3campaignMisc.txt в любое удобное место.
    • Отредактировать его, как сказано в пункте 6.
    • Импортировать его назад в архив подтверждая замену.
Загруженные файлы
28

» WarCraft 3 / Снять защиту с кампании

Если не новые добавляли, то прежние изменяли, иначе откуда это?
Я кинул патчноут, там ничего из функций не меняли. Поставьте чистый JNGP, багов не будет. И как я уже сказал, когда я сидел на 1.27, проблем с JNGP не было.
28

» WarCraft 3 / Syntax Errors Cannot convert returned value from integer to real

8gabriel8, мда, это вообще разные вопросы. Там у ФУНКЦИИ и ПЕРЕМЕННОЙ одинаковые имена. Конечно конфликт будет. А тут проблема вообще в другом (возврат 1, а не 1.), я уже описал решение выше.

nazarpunk уже где-то говорил про область видимости. В JASS она тоже есть. Локальные переменные и аргументы у разных функций могут иметь одинаковые имена, потому что они видны только для той функции, где они определены. А вот глобальные переменные и функции должны иметь разные имена, потому что они видны везде. Локальные переменные не должны дублировать имена функций, но могут дублировать имена глобалок (по крайней мере в vJass), однако при этом глобалка не будет доступна внутри функции с такой локальной переменной. В некоторых ЯП подобное вообще запрещается (дублировать идентификатор во вложенной области видимости).
28

» WarCraft 3 / Снять защиту с кампании

У 1.27 тоже появились какие-то новые функции
Ничего там не добавили (патчноут), только кнопку проверки скрипта. Сам сидел на 1.27, с JNGP всё прекрасно работало (как минимум карты).
28

» WarCraft 3 / Syntax Errors Cannot convert returned value from integer to real

Принятый ответ
у тебя выше i задана как integer, а ниже как real
Нет. Функции разные, переменные разные. Тут никакого конфликта нет.

Ты возвращаешь integer, а надо real. После единицы поставь точку, и всё заработает.
Я давно задавал подобный вопрос, вот твой случай.

Желательно ещё поставить нормальный pjass.exe. В папке с JassHelper сделать папку pjass, кинуть туда pjass.exe отсюда, и в jasshelper.conf написать вместо pjass.exe вот это: pjass\pjass.exe.