Андреич, это не оно, ему надо именно зелёный квадрат для всего заменить, например сделать не зелёным, а полностью прозрачным (при условии что оно сверху на иконку накладывается, а не заменяет её)
TeX13, подсветку нужно юзать, теш
альтернативы можно посмотреть в blizzard.j, оттуда и вызываются нативки, к примеру RemoveBuff (или как оно там), это UnitRemoveAbility (нативка), но без подсветки нет смысла париться, если ты конечно по памяти уже не запомнил какие у нативок аргументы и что они возвращают
миф который я сам для себя придумал и даже не проверял: постоянно юзать Player( 0x00 ) медленее, чем обращаться к глобальной переменной этого игрока
может у кого-нибудь тоже такая мысль мелькала
Приведу в пример ту же систему снарядов, ты же что-то будешь проверять, чтобы убедиться что снаряд нужно двигать, верно?
это всё равно что после выгрузки юнита из хэш-таблицы проверять, что он != null
цикл не делается до 8192, оно от минимального и максимального значения, которое варьируется от кол-ва "запусков", если что-то не нужным становится, на его место ставят последнее, а максимальное значение снижают на единичку, ну и дырку в цикле закрывают
Unryze, ну простейший цикл из 6 значений всё-таки, таймер перемножить на 6, т.е. 8х6 и выйдет больше результат, пускай это и не в одном потоке должно быть
массив по индексу никто не проверяет на != null
может мне пример работы с циклом и одним таймером показать, вместо хэштаблицы как используют
Unryze, ну.. стоит не забывать о получении истекающего таймера, получение его айди, потом ещё повытаскивать значения оттуда, сохранить эти значения, уже немало так лишних действий
да и в конце нужно удалять и очищать таймер, а переменные обнулять, половину из этого как раз структура + хэш-таблица нивелирует
Unryze, что-то я уже начинаю сомневаться, всё-таки циклом перебирать массив лучше чем на каждый снаряд делать по таймеру и каждый раз что-либо доставать оттуда и сохранять, исключение хэш-таблица + структура, немного оптимизированный вариант
TeX13, ты должен быть прошаренным чтобы отловить стрелу (даже я не умею чв), мемхак вот xgm.guru/p/wc3/memoryhackapi
я бы сделал кастомной атакой, мне так проще да и рикошетики там всякие можно делать, прямо в полёте менять модель и т.д. и т.п.
мемхак дарует тебе новый функционал в обмен на исключение старших патчей и небольшую потерю аудитории (мемхака боятся а так же например на айкапе (вроде) чтобы хостить карту с ним нужно повыеживаться)
Так я же ведь обьяснил. Здесь при нажатии кнопки, юнит скользит до определённой области.
по нажатии какой кнопки? там ивент чата, ты видео я так понимаю тоже не смотрел CaZaNoVa:
Мне нужно, чтобы при нажатии кнопки, он до этой области допрыгивал. Или ты думаешь ,что раз я скинул эту карту, то я сам её придумал и расписал код???
ты на приколе сейчас или что? я тебе сказал сделать юнита летающим или добавить абилку ворона ему, ты напрямую игноришь потраченное мной время на поиск очевидного ответа
CaZaNoVa, при чём издёвки боже, я по буквам расписал что тебе нужно сделать, ты просто не хочешь это читать, просил помощи соизволь её принять
ты играл хоть раз в карту где юнит скользит по льду? лабиринты там всякие со льдом, ты понимаешь разницу между обычным движением без изменения скорости и скольжением?
тебе ответы дали именно по поводу скольжения, а не той карты что ты скинул
если в твоём понимании "просьба помощи" это "сделайте всю карту за меня", то увы, тут ты таких энтузиастов вряд ли найдёшь
Я тут прикрепил карту, на которой с помощью немыслимой мне магии 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', достаточно это сделать один раз для юнита за всю игру
а, ну и тут нет защиты от дурака, если применить на нулевой дистанции то юнита навсегда запаузит
» WarCraft 3 / MemoryHackAPI
» WarCraft 3 / Jass Pseudo Group API
» WarCraft 3 / Как заменить <Green Square DISBTN> на свою иконку?
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
альтернативы можно посмотреть в blizzard.j, оттуда и вызываются нативки, к примеру RemoveBuff (или как оно там), это UnitRemoveAbility (нативка), но без подсветки нет смысла париться, если ты конечно по памяти уже не запомнил какие у нативок аргументы и что они возвращают
» WarCraft 3 / Jass MythBusters
может у кого-нибудь тоже такая мысль мелькала
» WarCraft 3 / Jass Pseudo Group API
Ред. rsfghd
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Jass MythBusters
» WarCraft 3 / Белая полоса от полета стрелы, как вернуть?
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
я бы сделал кастомной атакой, мне так проще да и рикошетики там всякие можно делать, прямо в полёте менять модель и т.д. и т.п.
» WarCraft 3 / Как отловить попадание "огненной стрелы"?
» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.
» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.
CaZaNoVa:
» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.
» WarCraft 3 / Махонькая такая просьбочка... Для тех, кто шарит.
» WarCraft 3 / Бесплатный AutoHost Bot на IrInA для вашего проекта
» WarCraft 3 / Тригерная аура, WE GUI
» WarCraft 3 / Тригерная аура, WE GUI
» WarCraft 3 / Почему фрейм крашит wc3 (reforged) ?
» WarCraft 3 / кто может прочитать кэш Crash Errors?
» WarCraft 3 / кто может прочитать кэш Crash Errors?
» WarCraft 3 / Почему фрейм крашит wc3 (reforged) ?