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.
28

» WarCraft 3 / Чёрный экран в игре

По-твоему, ни разу варик с прежней ОС не запускал?
Весь софт, что не прописывает нужные пути в ОС, не удаляю при переустановке системы, варкрафт в том числе. Никогда проблем не было. Уверен, тут дело было в самой системе, да и niBeHb переустанавливал игру, и это не помогло.
который не видит, куда варик установлен
Конечно, при установке приложения система записывает его расположение. Но наличие или отсутствие этих путей на работоспособность приложения никак не влияет. Влиять может что-то другое. Например, отсутствие видеокодеков или MS Visual C++ нужной версии.

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