0
27
3 года назад
Отредактирован rsfghd
0

» WarCraft 3 / [lua] Как узнать название переменной для объекта на карте?

Как узнать номер destructable я хз, но там вместо gg_unit_ стоит gg_dest_

Тьфу, забей на менеджер объектов, я инвалид. Вон снизу написано когда выделяешь

upd: для камеры gg_cam_название
Загруженные файлы
2
27
3 года назад
2

» WarCraft 3 / [lua] Как узнать название переменной для объекта на карте?

gg_unit_hdhw_0001
hdhw - равкод юнита
0001 - его номер
Номер можешь посмотреть в менеджере объектов

upd: Выбираем юнита - Правка - Просмотр выборки - Просмотреть в менеджере объектов

upd1: хотя у меня нет рефорджа, вероятно там по другому
Загруженные файлы
0
27
3 года назад
0

» WarCraft 3 / Как при атаке юзануть спелл для крипа

Есть несколько способов заставить юнита кастануть спелл, если не сработал один, пробуй другой
Как приказать юниту выгрузить всех, кто внутри сидит?

upd: native IssueTargetOrder takes unit whichUnit, string order, widget targetWidget returns boolean
0
27
3 года назад
0

» WarCraft 3 / Вылет из лобби

PraetorianSM, ну если вы закинули туда же, куда и карты всегда загружаются при скачивании, то я правда хз
0
27
3 года назад
0

» WarCraft 3 / Вылет из лобби

Та скидывайте просто карты через дискорд или тут же, на хгм)
4
27
3 года назад
4

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

Ты про это что-ли?
Загруженные файлы
1
27
3 года назад
1
0
27
3 года назад
0

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

PT153, у меня только кастом гуи этой функции, может у автора её нет, поэтому я сразу кастом скрипт скинул, некоторые анимки вроде attack 1, attack 2 можно юзануть только по индексу (вроде), поэтому я подумал, что со спеллом такие же проблемы + версии могут отличаться
0
27
3 года назад
0

» Администрация XGM / Из-за апострофа сломался профиль пользователя

Не могу отредачить вопрос, чтобы закинуть норм формат видео, вот
Загруженные файлы
1
27
3 года назад
1

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

Если ты прописывал анимацию сюда
и она не сработала, то можно попробовать следующий вариант
меняешь цифру в кастом скрипте и смотришь какая анимка воспроизводится
Загруженные файлы
0
27
3 года назад
0

» WarCraft 3 / Текстуры.

А ты пробовал у импорта прописать путь к стандартной текстуре, а потом выбрать её в РО?

upd то, что ты хочешь заменить, вероятнее всего текстура почвы
2
27
3 года назад
Отредактирован rsfghd
2

» WarCraft 3 / Как нанести урон 1 раз, дамми юнитом который летит

Qulore, в группу заноси. Прежде чем нанести урон проверяешь, что юнит не в группе, потом вместе с уроном добавляешь его в группу

Загруженные файлы
1
27
3 года назад
Отредактирован rsfghd
1

» WarCraft 3 / Событие отряд вошёл в зону

Есть такое условие, как проверка находится ли юнит в области (логическая). Когда открою редактор, то скину скриншот, но у меня русские триггеры. - Ставишь любое нужное тебе событие - если юнит в области, то - действия

upd функция и скрин
RectContainsUnit takes rect r, unit whichUnit returns boolean

upd хотя в твоём случае достаточно просто выбрать всех юнитов в области через проверку типа юнита и дать им приказ
кат
Загруженные файлы
7
27
3 года назад
Отредактирован rsfghd
7

» WarCraft 3 / Какие блокираторы пути лучше использовать

В варике блокираторы пути 2х2 и 4х4 (маленький и большой). Воздух блочит путь для воздуха, суша для суши, двусторонний для суши и воздуха. Если в одной точке стоят 4 маленьких блокиратора, лучше заменить на один большой блокиратор. А вообще, лучше использовать вариант, который указал quq_CCCP. Там типо с фотошопом надо как-то работать, сетку желательно создать на которой будешь рисовать свой блокиратор пути... Короче на хгм есть где-то статейка, возможно найду


что делает блокиратор поля зрения я без понятия, скорее всего блочит и путь, и поле зрения, если поставить высоту препятствия
1
27
3 года назад
Отредактирован rsfghd
1

» Блог им. rsfghd / Волны помойных волн

WoLLFeR, вау, вульфер)
Не ожидал после стольких лет увидеть тебя снова на хгм, видимо природа в 2021 очистилась

Помойные волны не могут выглядеть красиво, с моими то знаниями)
0
27
3 года назад
0

» Блог им. rsfghd / Барьер со свалки

quq_CCCP, точно, но идеи приходят не сразу, да и в принципе нужно учить вектора. К сожалению, не справляюсь, очень разочарован в себе)
0
27
3 года назад
0

» WarCraft 3 / отлов автоатак при событии "юнит получает урон"

quq_CCCP, ну.. хорошая в плане не сильно замудренная, легка в реализации. Событие только висит, но оно вроде не много занимает. Да и вероятно с кодом можно поправить этот недостаточек

upd: хотя если говорить про урон с автоатак, то дико извиняюсь
0
27
3 года назад
0

» WarCraft 3 / отлов автоатак при событии "юнит получает урон"

Вот тут есть хорошая система на получение урона, только яд не используется
WarCraft 3 Reforged: Отображение Урона\Система атаки
Тебе такое не подходит?
Загруженные файлы
1
27
3 года назад
1

» WarCraft 3 / Как заставить юнита отлететь/оттолкнуться в синематике

Сделал вариант на гуи, если тебе выше не подходят. Но тут чисто для синематика на одного юнита, просто чтобы ты понял суть

Вот скрины
Русификатор на триггерах!
Загруженные файлы
0
27
3 года назад
Отредактирован rsfghd
0

» Блог им. rsfghd / Барьер со свалки

Обнова (кому она нужна в принципе)
+ Переменные в дефайны (это типо оптимизация)
+ Исправлена ошибка с отталкиванием при росте барьера
+ Максимальная высота барьера (для сферического (и то, я не уверен, что у меня правильная формула))
+ Барьер может быть теперь земноводным, полёт настраивается в самом триггере
+ "Исправлена" ошибка с двойным уроном, таймер увеличен и добавлены настройки с дополнительным отталкиванием (юниты всё равно могут получить двойной урон, если оттолкнутся один в другого)
+ Юнитов не отталкивает в непроходимые зоны
+ Юниты, которых нельзя выкинуть с барьера, не получают кучу урона, вместо этого обновляется время дебаффа
- Специальный эффект (дамми) может криво спавнится на горах
- Очень сложно настроить барьер до оптимального значения, всё делается на ощупь (из-за плохого кода)
- Я не проверял все настройки, поэтому что-то может не работать (оч извиняюсь, но это рили много времени жрёт (исправлю, если кто-то напишет))
- Нет возможности добавить собственные условия без малейшего знания джасса (постараюсь что-нибудь придумать с этим в будущем)
- Некоторые значения лучше не ставить ниже единицы
- Минусовое значение урона не будет хилять (в будущем добавлю)
- Минусов больше, чем плюсов, я забыл остальные)
Код и настройки обновил в посте
Загруженные файлы
1
27
3 года назад
Отредактирован rsfghd
1

» WarCraft 3 / Как заставить юнита отлететь/оттолкнуться в синематике

Вот, посмотри

код
scope MySc
globals
define private H = udg_Hash // Название твоей хэш-таблицы

define private AbilityID = 'A000' // ID способности
define private DummyID = 'u000' // ID дамми-юнита

define private Discarding = 5.00 // Сила отбрасывания
define private DiscardingTime = 1.00 // Время отбрасывания
endglobals
//==========================================================================
private function IsUnitDead takes unit u returns boolean
    return IsUnitType(u,UNIT_TYPE_DEAD) or GetUnitTypeId(u) == 0
endfunction

private function move1 takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetHandleId(t)
    local unit u = LoadUnitHandle(H,i,0)
    local real a = LoadReal(H,i,1)
    local real d = LoadReal(H,i,2)
    local real tm = LoadReal(H,i,3)+0.01
    
    if tm > DiscardingTime or IsUnitDead(u) then
        call PauseTimer(t)
        call DestroyTimer(t)
        call FlushChildHashtable(H,i)
    else
        call SetUnitX(u,GetUnitX(u)+d*Cos(a))
        call SetUnitY(u,GetUnitY(u)+d*Sin(a))
        call SaveReal(H,i,2,d-(Discarding/DiscardingTime*0.01))
        call SaveReal(H,i,3,tm)
    endif
    
    set t = null
    set u = null
endfunction

private function Actions takes nothing returns nothing
    local timer t = CreateTimer()
    local integer i = GetHandleId(t)
    local unit u = GetSpellTargetUnit()
    local unit uu = GetSpellAbilityUnit()
    
    //Создание дамми-щита
    set bj_lastCreatedUnit = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE),DummyID,GetUnitX(u),GetUnitY(u),Atan2(GetUnitY(uu)-GetUnitY(u),GetUnitX(uu)-GetUnitX(u))*bj_RADTODEG)
    call UnitApplyTimedLife(bj_lastCreatedUnit,'BTLF',1.)
    set bj_lastCreatedUnit = null
    //===================
    
    call SaveUnitHandle(H,i,0,u)
    call SaveReal(H,i,1,Atan2(GetUnitY(u)-GetUnitY(uu),GetUnitX(u)-GetUnitX(uu)))
    call SaveReal(H,i,2,Discarding)
    call TimerStart(t,0.01,true,function move1)
    
    set t = null
    set u = null
    set uu = null
endfunction

//===========================================================================
private function Conditions takes nothing returns boolean
    return GetSpellAbilityId() == AbilityID
endfunction

function InitTrig_Phoenix takes nothing returns nothing
    local trigger t = CreateTrigger()
    local integer index = 0
    loop
        call TriggerRegisterPlayerUnitEvent(t,Player(index),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
        set index = index + 1
        exitwhen index == bj_MAX_PLAYER_SLOTS
    endloop
    call TriggerAddCondition(t,Condition(function Conditions))
    call TriggerAddAction(t,function Actions)
    set t = null
endfunction
endscope
Загруженные файлы
1
27
3 года назад
Отредактирован rsfghd
1

» WarCraft 3 / Как заставить юнита отлететь/оттолкнуться в синематике

О, недавно делал помойные волны, там такой же принцип отталкивания работает
Вот и сама функция
private function move1 takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetHandleId(t)
    local unit u = LoadUnitHandle(H,i,0)
    local real a = LoadReal(H,i,1)
    local real d = LoadReal(H,i,2)
    local real tm = LoadReal(H,i,3)+0.03
    
    if tm > WaveDiscardingTime then
        call PauseTimer(t)
        call DestroyTimer(t)
        call FlushChildHashtable(H,i)
    else
        call SetUnitX(u,GetUnitX(u)+d*Cos(a))
        call SetUnitY(u,GetUnitY(u)+d*Sin(a))
        call SaveReal(H,i,2,d-(WaveDiscarding/WaveDiscardingTime*0.03))
        call SaveReal(H,i,3,tm)
    endif
    
    set t = null
    set u = null
endfunction
В ячейке 0 - юнит, 1 - угол куда отталкивать, 2 - сила отталкивания (WaveDiscarding), 3 (+0.03) - периодичность истекаемого таймера, чтобы через время остановить отталкивание
Вот формула d-(WaveDiscarding/WaveDiscardingTime*0.03)
WaveDiscarding и WaveDiscardingTime это глобалки, можешь просто сохранить в другие ячейки локальные значения

Upd: но некоторые моменты нужно учесть, у меня этого пока что нет и в итоге юнита может вытолкнуть за границы карты или в непроходимую местность
0
27
3 года назад
Отредактирован rsfghd
0

» Блог им. rsfghd / Барьер со свалки

Нашел много недоработок, например то, что барьер откидывает вне радиуса юнитов
Так же планирую сделать особенность для летающих юнитов, барьер всё-таки сферический, а не цилиндрический