10

» WarCraft 3 / Отдаление камеры во время каста

call SetCameraFieldForPlayer( GetOwningPlayer(GetEnumUnit()), CAMERA_FIELD_TARGET_DISTANCE, 5000.00, 3.00/*3 - время отдаления */ )
Камеру можно прикрепить к юниту-кастеру. Также можно настроить смещение камеры
local real angle = GetUnitFacing(unit)*bj_DEGTORAD //угол взгляда кастера - угол смещения
local real dist = 300//расстояние, на которое сместится камера.
call SetCameraTargetControllerNoZForPlayer(GetOwningPlayer(unit),unit, dist*Cos(angle), dist*Sin(angle), false)
10

» WarCraft 3 / Триггеры

можно юниту, созданному через триггер, дать способность "Гидра" ну и настроить ее.
10

» WarCraft 3 / GetRealId( )

//# +nosemanticerror
перед функцией надо добавить и pjass для мемхака
10

» WarCraft 3 / Что я сделал не так?

Лучше вместо вейтов добавить юниту таймер жизни на 1(или сколько надо) сек. Также мб у дамми-спела малый радиус каста.
10

» WarCraft 3 / Способность на продажу юнита

Еще есть функция, которая возвращает стоимость юнита. Можешь ей воспользоваться.
Ее нужно объявить в нестандартном коде.
10

» WarCraft 3 / Позиция добавляемой способности

А если передать героя нейтральному игроку, и локально для него настроить расположение кнопок, а потом вернуть обратно владельцу?
Хотя не, думаю, это либо ни на что не повлияет, либо будет десихнрон.
10

» WarCraft 3 / Новый детект физического урона на мемхаке

Разобрался. Там перед некоторыми функциями отсутствовала инструкция # +nosemanticerror
так, теперь все сохраняется, но не работает:
cjass у меня отключен
_____________________________________________________________________________
в общем, проблема решена. в параметрах vjass поставил галочку напротив disable script optimization
Загруженные файлы
10

» WarCraft 3 / Как отловить событие когда герой наносит урон

Stalker Freedom:
Мало что понял про твой спелл. Но предложу такой вариант:
Событие - юнит атакован
Условие - integer compasion - боевая единица - level of ability [твоя способность] for attacking unit больше 0
Действие - боевая единица - damage target
это плохой вариант, т.к. урон будет наносится сразу при замахе, вне зависимости от того, нанес ли юнит урон.
также можно спамить приказами "атаковать"
10

» WarCraft 3 / Новый детект физического урона на мемхаке

Не могу сохранить наработку, т.к. выдает ошибку
В чем причина? парсер и оптимайзер выключил. pjass скачал отсюда: xgm.guru/p/wc3/memoryhack
Загруженные файлы
10

» WarCraft 3 / Пассивная способность героя

Кстати, реализация доп. дамага через событие "Атакован" позволяет игроку спамить приказами "Отставить", после чего герой будет вновь пытаться атаковать. Это приведет к почти безинтервальному вызову триггера, и, соответственно, имбалансному урону. Но это не единственная проблема в контексте задуманного. Крч, тебе нужно отлавливать получение урона.
10

» WarCraft 3 / Координаты

Нет. Для решения нужно либо включить дамми-юнитам возможность проходить через объекты, либо увеличить в условии расстояние с 10 до 40-50, т.к. юнит не может пересечь черту, за которой следует удаление.
10

» WarCraft 3 / "Убивающая" камера

FabulousTiger:
Попробуй этот код, вроде не должен десихронить
globals
    camerasetup theCam = CreateCameraSetup()
endglobals


function Trig_camera_Conditions takes nothing returns boolean
    if (GetSpellAbilityId() != 'AOws') then
        return false
    endif
    return true
endfunction


function Trig_camera_KillUnits takes nothing returns nothing
    call KillUnit( GetEnumUnit() )
endfunction
function Trig_camera_Actions takes nothing returns nothing
    local group g = CreateGroup()
    local real x
    local real y
    local rect r
    if (GetLocalPlayer()==GetOwningPlayer(GetTriggerUnit())) then
        set x = GetCameraTargetPositionX()
        set y = GetCameraTargetPositionY()
    endif
    call CameraSetupSetDestPosition(theCam,x,y,0)
    set x = CameraSetupGetDestPositionX(theCam)
    set y = CameraSetupGetDestPositionY(theCam)
    set r = Rect( x - 500.00*0.5, y - 500.00*0.5, x + 500.00*0.5, y + 500.00*0.5 )
    call GroupEnumUnitsInRect(g, r, null)
    call ForGroup(g, function Trig_camera_KillUnits)
    call DestroyGroup(g)
    call RemoveRect(r)
    set g = null
    set r = null
    set x = 0
    set y = 0
endfunction

//===========================================================================
function InitTrig_camera takes nothing returns nothing
    set gg_trg_camera = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_camera, EVENT_PLAYER_UNIT_SPELL_CHANNEL )
    call TriggerAddCondition( gg_trg_camera, Condition( function Trig_camera_Conditions ) )
    call TriggerAddAction( gg_trg_camera, function Trig_camera_Actions )
endfunction
10

» WarCraft 3 / Юниты возвращаются на точку появления (редактор Warcraft III).

Я любимый:
Ох, чувствую меня опять заминусят, но что такое слот?
В этом контексте, ячейка игрока. Например, 1 игрок, 2 игрок и т.д. начиная с 13 игрока - это уже нейтралы(если это не в 1.29 версии)
10

» WarCraft 3 / Не отображается перезарядка способностей

Впрочем, можно сделать проще. Добавь себе эту модель
и установи ей путь UI\Feedback\Cooldown\UI-Cooldown-Indicator.mdx
это другая моделька перезарядки. Если уже есть модель с этим путем - удали.
Проверяй все на резервной версии карты.
Загруженные файлы
10

» WarCraft 3 / Массив таймера

попробуй увеличить кол-во элементов массива, если установлено на 1
Загруженные файлы
10

» WarCraft 3 / Не отображается перезарядка способностей

Видимость перезарядки навыка обеспечивает моделька или blp. Возможно, ты заменил стандартную на нерабочую. Попробуй удалить весь импорт на скопированной версии карты, если будет нормальная перезарядка, значит ищи импортированную.
10

» WarCraft 3 / Модели из dota 2?

На wc3 maps есть раздел моделей из доты. Гугли, качай, что нужно. Мб и паки есть.