21

» WarCraft 3 / Юниты странно себя ведут

Я задавал аналогичный вопрос.
Решил проблему следующим образом:
В точке наибольшего отклонения от траектории пути создаём еще одну область, назовём её С. После этого, воинам, которые наступили на область А отдаем приказ идти не точку В, а в новую точку С. А после точки С в точку В. Повторять нужно до тех пор, пока траектория передвижения не станет максимально близкой к прямой линии.
P.S: нет, на самом деле, я забросил карту, потому что мой внутренний перфекциониизм не смог стерпеть подобного.
21

» WarCraft 3 / как найти айди юнита

GetUnitTypeId( unit )
unit - юнит, unitId (RAW CODE) которого хотите получить.
21

» Лаборатория Маньяка / Захват зданий

Maniac_91, можно и 0.52, только тогда, наверное, придётся стереть часть пробелов после
call DisplayTimedTextToPlayer( toPlayer, 0.0, 0.0, 1.5, "\n\n\n\n
21

» WarCraft 3 / Есть ли функция, которая возвращает стоимость юнита?

native GetUnitGoldCost        takes integer unitid                                            returns integer
native GetUnitWoodCost        takes integer unitid                                            returns integer
21

» Лаборатория Маньяка / Захват зданий

Maniac_91, попробуйте эту функцию:
	globals
        sound  INTERFACE_ERROR  =  null
    endglobals

    function InterfaceError takes player toPlayer, string message returns nothing
        if ( INTERFACE_ERROR == null ) then
            set  INTERFACE_ERROR  =  CreateSoundFromLabel("InterfaceError", false, false, false, 10, 10)
        endif

        if ( GetLocalPlayer( ) == toPlayer ) then
            call ClearTextMessages( )
            call DisplayTimedTextToPlayer( toPlayer, 0.0, 0.0, 1.5, "\n\n\n\n                                                          |cffffcc00" + message + "|r\n\n\n\n\n\n\n\n\n\n\n\n" )
            call StartSound( INTERFACE_ERROR )
        endif
    endfunction
21

» WarCraft 3 / Баффы на мёртвых юнитах

pro100master, можно кодом, а то словами не понятно, что вы написали.
Каждого юнита с бафов отловить и повесить на него таймер, который через определенное время проверит с баффом воин или нет?
21

» WarCraft 3 / Баффы на мёртвых юнитах

quq_CCCP, цифру я из воздуха взял. Но такая реализация мне не очень подходит, я уже сделал так, как предложил ClotPh.
21

» WarCraft 3 / Как создать точку в случайном месте в радиусе от юнита?

х = GetUnitX( ... ) + GetRandomReal( -radius, radius )
y = GetUnitY( ... ) + GetRandomReal( -radius, radius )
Правда, если выпадет макс. или мин. значения, то расстояние получится больше указанного радиуса.
Но это бывает редко, да и глазу незаметно.
21

» WarCraft 3 / Баффы на мёртвых юнитах

quq_CCCP:
Все стандартные баффы удаляются перед смертью, это механика игры такая.
Просто заносите всех с баффом в группу, а при смерти смотрите есть ли он в группе и делайте что нужно.
Maniac_91:
ScopteRectuS, я имею в виду костыльный способ: если у юнита висит бафф, то давать ему способность-пустышку.
Ну или как quq_CCCP написал, через группу.
Это придётся каждые 0.001 сек. выбирать всех воинов на карте и проверять у них наличие баффа, и, если бафф имеется, то добавлять их в группу / добавлять им способность? Мне кажется это ресурсозатратно.

ClotPh:
проверяй что враг умирает рядом с носителем ауры в области ее действия
Думаю, это самый лучший вариант.
по идее в такой ситуации НЕ быть баффа до смерти на нем почти никогда не может
А этого я не понял. Я же буду отлавливать момент смерти, когда уже не будет баффа и проверять через функцию IsUnitInRange( dyingUnit, caster, auraRadius ).
21

» WarCraft 3 / Баффы на мёртвых юнитах

Используйте способность-пустышку. Способности триггер видит.
Нужен именно бафф. Ведь у врагов будет именно бафф, а способность будет у обладателя этой ауры.
А если в целях способности, которая вешает бафф, поставить галочку, где "Мёртвый"?
Так аура вообще перестаёт действовать на кого-либо.
21

» Лаборатория Маньяка / Захват зданий

Интерфейс приближен к стандартному: сообщения об ошибках (использована наработка эмуляции ошибки), а также при захвате и потере появляются метки на миникарте.
Возможно, это дело вкуса, но я считаю, что если делать вещи похожими на стандартные, то нужно делать их, как не странно, похожими на стандартные...))
**Здание захвачено** и **Здание потеряно** должно быть написано цветом **FFFFCC00** и опущено вниз.
Например, **|cFFFFCC00Выполнено: Захват здания|r** (точка не ставится) или **|cFFFFCC00Здание захвачено.|r** (точка ставится)
21

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Я так и не понял.. В новом патче будут добавлены все вышеперечисленные функции или только та малая часть, которую недавно нам показали?
21

» WarCraft 3 / Синглтаргет в АоЕ

Raised, в GUI же есть Custom Script. Туда можно легко вписать одну функцию, а вот целую библиотеку уже не вписать.
21

» WarCraft 3 / Синглтаргет в АоЕ

Сделайте функцию, которая берёт определённые аргументы и применяет нужную способность по области. А здесь у Вас получилась способность, а не система.
21

» WarCraft 3 / Как заставить героя проходить сквозь деревья и юнитов

Какой ещё обрыв потока? Там вход в секретку максимум через 5-10 деревьев.
Нужно конкретно чтоб герой применив абилку пробегал в секретки сквозь деревья.
21

» WarCraft 3 / Как заставить героя проходить сквозь деревья и юнитов

Возможно, что немного костыльный вариант, но, мне кажется, самый идеально работающий: запоминаете все деревья в какую-нибудь переменную, а когда воин применяет способность, то заменяете все ранее сохраненные деревья на такие же, но без текстуры пути.
21

» WarCraft 3 / Jass (Как выпилить нахер Any Unit эвенты)

Все прекрасно работает. Просто вы неправильно делаете. если юнит создается во время игры, то TriggerRegisrerUnitEvent( ) пишите после создания этого юнита.
21

» WarCraft 3 / Jass (Как выпилить нахер Any Unit эвенты)

ну напишите там же внутри этой функции
	set varName = CreateUnit( ... )
и только после этого создаёте ивенты для триггера.
21

» WarCraft 3 / Jass (Как выпилить нахер Any Unit эвенты)

Возможно, когда вызывается данная функция, у вас еще не инициализированы переменные.