28

» WarCraft 3 / MemoryHackAPI

не подскажет кто, пожалуйста, название функций, которые могут повысить/понизить уровень фрейма? (чтобы он был выше или ниже другого фрейма)

Загруженные файлы
28

» WarCraft 3 / Как заменить <Green Square DISBTN> на свою иконку?

Андреич, это не оно, ему надо именно зелёный квадрат для всего заменить, например сделать не зелёным, а полностью прозрачным (при условии что оно сверху на иконку накладывается, а не заменяет её)
28

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

TeX13, подсветку нужно юзать, теш
альтернативы можно посмотреть в blizzard.j, оттуда и вызываются нативки, к примеру RemoveBuff (или как оно там), это UnitRemoveAbility (нативка), но без подсветки нет смысла париться, если ты конечно по памяти уже не запомнил какие у нативок аргументы и что они возвращают
28

» WarCraft 3 / Jass MythBusters

миф который я сам для себя придумал и даже не проверял: постоянно юзать Player( 0x00 ) медленее, чем обращаться к глобальной переменной этого игрока
может у кого-нибудь тоже такая мысль мелькала
28

» WarCraft 3 / Jass Pseudo Group API

а u_temp не будет утекать в функции GroupHasUnitEx?

в остальных функциях оно обнуляется даже при условии что перед присвоением null оно и так будет null
28

» WarCraft 3 / Jass MythBusters

Приведу в пример ту же систему снарядов, ты же что-то будешь проверять, чтобы убедиться что снаряд нужно двигать, верно?
это всё равно что после выгрузки юнита из хэш-таблицы проверять, что он != null

цикл не делается до 8192, оно от минимального и максимального значения, которое варьируется от кол-ва "запусков", если что-то не нужным становится, на его место ставят последнее, а максимальное значение снижают на единичку, ну и дырку в цикле закрывают
28

» WarCraft 3 / Jass MythBusters

Unryze, ну простейший цикл из 6 значений всё-таки, таймер перемножить на 6, т.е. 8х6 и выйдет больше результат, пускай это и не в одном потоке должно быть

массив по индексу никто не проверяет на != null

может мне пример работы с циклом и одним таймером показать, вместо хэштаблицы как используют
28

» WarCraft 3 / Jass MythBusters

Unryze, ну.. стоит не забывать о получении истекающего таймера, получение его айди, потом ещё повытаскивать значения оттуда, сохранить эти значения, уже немало так лишних действий

да и в конце нужно удалять и очищать таймер, а переменные обнулять, половину из этого как раз структура + хэш-таблица нивелирует
28

» WarCraft 3 / Jass MythBusters

Unryze, что-то я уже начинаю сомневаться, всё-таки циклом перебирать массив лучше чем на каждый снаряд делать по таймеру и каждый раз что-либо доставать оттуда и сохранять, исключение хэш-таблица + структура, немного оптимизированный вариант
28

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

TeX13, ты должен быть прошаренным чтобы отловить стрелу (даже я не умею чв), мемхак вот xgm.guru/p/wc3/memoryhackapi
я бы сделал кастомной атакой, мне так проще да и рикошетики там всякие можно делать, прямо в полёте менять модель и т.д. и т.п.

отловить броню можно кстати и без мемхака xgm.guru/p/wc3/get-unit-armor

мемхак дарует тебе новый функционал в обмен на исключение старших патчей и небольшую потерю аудитории (мемхака боятся а так же например на айкапе (вроде) чтобы хостить карту с ним нужно повыеживаться)
28

» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.

Так я же ведь обьяснил. Здесь при нажатии кнопки, юнит скользит до определённой области.
по нажатии какой кнопки? там ивент чата, ты видео я так понимаю тоже не смотрел
CaZaNoVa:
Мне нужно, чтобы при нажатии кнопки, он до этой области допрыгивал. Или ты думаешь ,что раз я скинул эту карту, то я сам её придумал и расписал код???
ты на приколе сейчас или что? я тебе сказал сделать юнита летающим или добавить абилку ворона ему, ты напрямую игноришь потраченное мной время на поиск очевидного ответа
28

» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.

CaZaNoVa, при чём издёвки боже, я по буквам расписал что тебе нужно сделать, ты просто не хочешь это читать, просил помощи соизволь её принять

ты играл хоть раз в карту где юнит скользит по льду? лабиринты там всякие со льдом, ты понимаешь разницу между обычным движением без изменения скорости и скольжением?

тебе ответы дали именно по поводу скольжения, а не той карты что ты скинул

если в твоём понимании "просьба помощи" это "сделайте всю карту за меня", то увы, тут ты таких энтузиастов вряд ли найдёшь
28

» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.

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

вот весь код карты если кому лень смотреть
раскрыть
function MoveTimer takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer th = GetHandleId(t)
    local unit u = LoadUnitHandle(udg_H,th,1)
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local real x1 = LoadReal(udg_H,th,2)
    local real y1 = LoadReal(udg_H,th,3)
    local real x2 = LoadReal(udg_H,th,4)
    local real y2 = LoadReal(udg_H,th,5)
    local real d = LoadReal(udg_H,th,6)
    local real z
    local real a = x - x1
    local real b = y - y1
    local real d1 = SquareRoot(a * a + b * b)
    call SetUnitFlyHeight(u, (d - d1) * (d1 / d), 0.00)
    if (d - d1) > 30 then
        set z = bj_RADTODEG * Atan2(y2 - y, x2 - x)
        call SetUnitPosition(u, x + 20 * Cos(z * bj_DEGTORAD), y + 20 * Sin(z * bj_DEGTORAD))
    else
        call SetUnitPosition(u, x2, y2)
        call SetUnitFlyHeight(u, 0.00, 0.00)
        call SetUnitPathing(u, true)
        call PauseUnit(u, false)
        set u = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), 'h001', x2, y2, 0.00)
        call UnitApplyTimedLife(u, 'BTLF', 0.80)
        call DestroyTimer(t)
        call FlushChildHashtable(udg_H,th)
    endif
    set u = null
    set t = null
endfunction

function Move takes unit u, rect r returns nothing
    local real x = GetRectCenterX(r)
    local real y = GetRectCenterY(r)
    local real xu = GetUnitX(u)
    local real yu = GetUnitY(u)
    local real a = xu - x
    local real b = yu - y
    local real d = SquareRoot(a * a + b * b)
    local timer t = CreateTimer()
    local integer th = GetHandleId(t)
    call SaveUnitHandle(udg_H,th,1,u)
    call SaveReal(udg_H,th,2,xu)
    call SaveReal(udg_H,th,3,yu)
    call SaveReal(udg_H,th,4,x)
    call SaveReal(udg_H,th,5,y)
    call SaveReal(udg_H,th,6,d)
    call SetUnitPathing(u, false)
    call PauseUnit(u, true)
    call TimerStart(t,0.02,true,function MoveTimer)
    set t = null
endfunction

а насчёт прыжка, либо делай юнита прящим/летающим, либо дай и убери абилку 'Arav', достаточно это сделать один раз для юнита за всю игру


а, ну и тут нет защиты от дурака, если применить на нулевой дистанции то юнита навсегда запаузит
Загруженные файлы