8

» WarCraft 3 / Помогите с улучшением

SAS_Deco, а способность Укреплённые логова 'Arbr'? Только что проверил, если башня улучшается после исследования, визуальный эффект остаётся, но тип защиты возвращается на указанный в РО у башни, видимо зашито в движке.
8

» WarCraft 3 / Помогите с улучшением

У улучшенных башен в Технологии - Улучшения находится исследование фортификации?
8

» WarCraft 3 / Как триггерно, или по умолчанию, установить сложность ИИ?

Изменить видимую сложность ИИ в лобби на 1.26 невозможно, в config в любом случае указывается только флаг бот/игрок
function InitCustomPlayerSlots takes nothing returns nothing
  call SetPlayerStartLocation(Player(0), 0)
  call SetPlayerColor(Player(0), ConvertPlayerColor(0))
  call SetPlayerRacePreference(Player(0), RACE_PREF_HUMAN)
  call SetPlayerRaceSelectable(Player(0), true)
  **call SetPlayerController(Player(0), MAP_CONTROL_USER)** // MAP_CONTROL_COMPUTER
  ...
endfunction

function config takes nothing returns nothing
  ...
  call InitCustomPlayerSlots()
  ...
endfunction
8

» WarCraft 3 / Как добавить урон в способность скачка

Создаётся даммик, либо по одному на каждого игрока при инициализации, либо непосредственно во время каста (и после удаляется); при событии SPELL_CAST - Начинает применять способность вызывается UnitDamagePoint - Боевая единица-Damage Area в позицию кастера, указывается нужный дамми-юнит, радиус, урон, тип урона, задержку в ноль. При событии SPELL_EFFECT - Приводит способность в действие ровно то же самое, только в точку каста.
8

» WarCraft 3 / Багнулся worldeditor

ttoni, одиночная игра или локальная?

ttoni, как ты можешь стартовать за синего, если на скриншоте видно, что за красного? Зайди в одиночную игру, в любую melee карту, например Места боевой славы, убери автоматически поставленного компьютера и посмотри, что будет
8

» WarCraft 3 / Багнулся worldeditor

ttoni, игра запускается через проверку карты в WE? Если да, попробуй просто сохранить карту в папку, и запустить через одиночную игру БЕЗ ботов
8

» WarCraft 3 / Посмтроить здание на почве

Этого можно добиться разными способами, первый - корректировка самой почвы через slk, в JNPG есть удобный интерфейс для редактирования, при этом на ней можно будет строить любые здания; второй - в редакторе объектов у нужного здания отредактировать поле Пути-Требования к расположению, снять Можно построить и поставить Наземный.
8

» WarCraft 3 / Тройной выстрел

Есть вариант с разными типами атак, у юнита настраиваем "атаку 1" для одной цели, "атаку 2"для трёх, а улучшение переключает индекс атаки с 1 на 2.
8

» WarCraft 3 / IssueImmediateOrderById

function Trig_gnmhd_Actions takes nothing returns nothing
  call BJDebugMsg(OrderId2String(GetIssuedOrderId()) + " " + I2S(GetIssuedOrderId()))
endfunction

function InitTrig_gnmhd takes nothing returns nothing
  set gg_trg_gnmhd = CreateTrigger()
  call TriggerRegisterAnyUnitEventBJ(gg_trg_gnmhd, EVENT_PLAYER_UNIT_ISSUED_ORDER)
  call TriggerAddAction(gg_trg_gnmhd, function Trig_gnmhd_Actions)
endfunction
8

» WarCraft 3 / IssueImmediateOrderById

Не у всех способностей приказ имеет строковой эквивалент, как например у рёва: "roar"=852164, способности предметов как раз к таким относятся, соответственно, как сказал quq_CCCP, нужно сначала узнать нужный id и использовать вышеупомянутую функцию в custom script или jass. Таким образом, для свитка защиты это будет IssueImmediateOrderById(unit, 852269)
8

» WarCraft 3 / Как установить сложность компьютера?

Изменить состояние фиксированного слота вряд-ли возможно, главное зачем это делать, если на слоте всегда будет один и тот же ИИ? Просто при инициализации запускаешь нужный скрипт и всё
8

» WarCraft 3 / Работа с StringHash

sha1(myString) , md5(myString)
Мы говорим про варкрафтовский хэш? При чём тут sha?
8

» WarCraft 3 / Работа с StringHash

nazarpunk, всё верно, равкод обычно содержит ограниченный набор символов, и подобрать его можно за долю секунды, касательно строк, в большинстве случаев нет необходимости находить оригинальную строку, достаточно коллизии, подобрать которую тоже не займет много времени. Помню когда-то давно сам писал такой брутфорсер, на одноядерном 4 пне штук 20 хэш коллизий нашлись буквально за 5 минут.
8

» WarCraft 3 / Работа с StringHash

Выше всё правильно сказали, integer по определению не может вызывать утечек, также
Centyrion:
прочел тут
-Данная функция абсолютно не криптостойкая, она генерирует 32-битный ключ и её исходники есть в интернете
Поэтому ничего не стоит сделать брутфорсер и узнать, что за герой будет у тебя создаваться
Где-то на гитхабе видел готовый брутфорсер на java.
8

» WarCraft 3 / Отслеживание статуса выполнения приказа юнита

Вопрос закрыт, нашел решение: проверять координаты работника в соответствии с картой путей здания.
8

» WarCraft 3 / Отслеживание статуса выполнения приказа юнита

МрачныйВорон, goodlyhero, если бы всё было так просто, я бы не задавал таких вопросов; возможность именно чинить или атаковать здание определяется его картой путей, если юнит стоит около розового пикселя карты путей, он может это делать, а авто ремонт или атака срабатывает на расстоянии обоих физических размеров + дистанция самого ремонта (или атаки). В карте некоторые здания имеют не квадратную карту путей.
8

» WarCraft 3 / Отслеживание статуса выполнения приказа юнита

МрачныйВорон, вся проблема в том, что у работника propWin=0, соответственно он физически не перемещается, а только пытается, и отследить нужно именно repair в зоне досягаемости; просто сравнивать расстояние не получится, так как здания имеют не квадратную карту путей, думал хоть через выполнение приказа получится...
8

» WarCraft 3 / Повернуть юнита с анимацией движения

Как вариант, установить юниту Prop Window Angle на 0 (юнит не сможет ходить, только поворачиваться), приказать ему двигаться в направлении поворота, и вернуть всё на место. Установить prop angle в ноль можно только в jass или с помощью custom script:
call SetUnitPropWindow(unit, 0)
// здесь приказ юниту двигаться
// задержка на время поворота
// приказ юниту остановиться
call SetUnitPropWindow(unit, GetUnitDefaultPropWindow(unit)). // возврат исходного значения
Время поворота можно регулировать меняя скорость поворота юнита.

Также можно использовать функцию SetUnitAnimationByIndex(unit, 9) где 9 - номер анимации, например у паладина анимация ходьбы под номером 9, у каждой модели он свой. Функцию вызывать перед поворотом, после анимацию сбрасывать, либо добавлять "stand" в очередь.
8

» WarCraft 3 / Отслеживание статуса выполнения приказа юнита

quq_CCCP, об этом и спрашиваю, каким образом посмотреть "чем занят работник в данный момент". Есть ссылка на конкретную версию доты, и по каким словам искать в скрипте?

nazarpunk, а нештатно, с помощью мх или ещё чего-нибудь?
8

» WarCraft 3 / Определение скилла, которым убили юнита

quq_CCCP:
Poma, это очень кривая и ненадежная реализация, но особо пофиг каким скиллом убили или не убили. Полезнее для игроков в таблицу или стату писать нанесенный и полученный урон., кто в игре был самым прогрессивным по урону.
А чем убили - не все ли равно, главное кто.
Не знаю, сколько в эту карту играл, всё нормально было, с самых ранних версий, когда эта система появилась.
8

» WarCraft 3 / Определение скилла, которым убили юнита

Порылся в коде карты, там система из нескольких триггеров: первый при применении заклинания записывает этому игроку (не конкретному юниту) название спелла; второй при атаке мыши обнуляет эту переменную у владельца атакера, и третий при убийстве мыши, если переменная пустая, значит не писать, если не пустая тогда писать название скилла.
8

» WarCraft 3 / Неправильный рельеф в карте

Проблема очень просто решилась, я там рельеф чуть-чуть поменял, после того как поднял и опустил обратно всё исчезло. Странно, я раньше так пробовал, не получалось.
8

» WarCraft 3 / Определение скилла, которым убили юнита

LordDracula:
Можно создать отдельный триггер, где записывать последний использованный спел в переменную. Потом выводим ее в триггере, который отслеживает убийство.
А если убил именно юнит, не скиллом, тогда что? Я никак не пойму, как отследить это
Плюс ещё, если просто другой юнит на секунду раньше заюзал скилл какой-нибудь, его имя напишет