Не шарю за джасс, скорее всего переменная gg_trg_selectUnit не существует в глобальном скопе, по причине переименования триггера. И реальное название триггера не selectUnit
Сделай скрин триггера как у меня
я же вот прикладывал спецом с именем самого тригера
koloff, это мемхак, он двигает эффект, такого нет в обычных триггерах 126 патча
Кстати я проверил, у меня вот фаталит вообще функция SetEffectPosition, даже если он просто в выключенном коде, в самом простейшем варианте
globals
boolean off=true
effect eff=null
real y=-120
endglobals
function Trig_A_Actions takes nothing returns nothing
if off then
set off=false
set eff=AddSpecialEffect("units/human/Peasant/Peasant",-1350,y)
endif
set y=y-20
call SetEffectPosition(eff,-1350,y,50)
endfunction
//===========================================================================
function InitTrig_A takes nothing returns nothing
set gg_trg_A = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_A, 0.03 )
call TriggerAddAction( gg_trg_A, function Trig_A_Actions )
endfunction
Чёт странный этот хвалёный мемхак Анрайза, либо действительно что-то криво либо мы опять чего-то не знаем
Скорее всего дело в кривой функции движения эффекта. Вроде бы как он есть, но вот лично я её не проверял, может и автор мемхака тоже её сделал, сдвинул на 300 ед. О работает, и всё чё дальше то тестить. Ну или просто ты как -то не так используешь.
Хотя что я говорю, это же 126 он идеален, на нём не бывает косяков и багов все проблемы только на рефордже (нет)
Чаще заглядывайте в проекты других людей и играйте в них, порой в непротекченых ресурсах, полезных элементов в 100 раз больше ,чем в попсовых и "интересных" картах, в которые все так любят играть
Так я знаю что тут рефордж патч. Кстати какая ирония. Если человек на рефе - то на него думают что он на 126, если на 126, то ему предлагают реф решения. (Экстрасенсы мы так себе).
Кароче Сергей Пичугов, дело всё в том что в ГУИ рефорджа, нет примерно 80% функционала, что по факту добавлен в рефордж, он доступен только из кода на jass или lua/
Опять таки, я уже расписывал, что можно добавить все недостающие гуи функции
но видимо всеми игнорируется, ссылка за этот месяц проскакивает 3й раз
Если по сабжу, то на луа это выглядит вот так
Код будет выдран из каждой моей карты или на работке, везде тоже самое, видимо тоже никому не надо, зачем вообще всё открытым делаю
-----------------------------------------------------------------OSKEY_Q
local TrigPressQ = CreateTrigger()
for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
BlzTriggerRegisterPlayerKeyEvent(TrigPressQ, Player(i), OSKEY_Q, 0, true)
end
TriggerAddAction(TrigPressQ, function()
print("кнопка нажата")
end)
local TrigDePressQ = CreateTrigger()
for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
BlzTriggerRegisterPlayerKeyEvent(TrigDePressQ, Player(i), OSKEY_Q, 0, false)
end
TriggerAddAction(TrigDePressQ, function()
print("кнопка отжата")
end)
На джасе попробую, но не обещаю ибо он слишком сложен для меня
Получилось, проверил, работает
function Trig_Q_Actions takes nothing returns nothing
call BJDebugMsg("Кнопка Q нажата")
endfunction
//===========================================================================
function InitTrig_Q takes nothing returns nothing
set gg_trg_Q = CreateTrigger( )
call BlzTriggerRegisterPlayerKeyEvent(gg_trg_Q, Player(0), OSKEY_Q, 0, true)
call TriggerAddAction(gg_trg_Q, function Trig_Q_Actions)
endfunction
Там ещё 5000 нюансов, ибо в патче 132.2 добавили залипание на это событие
Согласен, такое есть, адекватно работает лишь на самом последнем мемхаке, вот этом вот
На первом и втором мемхаке, мне не удавалось активировать сиджас и прочие фишки. Хотя в рендереже мемхак эдишен, всё снова прекрасно работало
Скрины ошибок, скрины настроек jngp, карту в студию
GetLocalPlayer, всё работает в последней версии блендера, но в версии с сайта, стимовская ругается
и + кто-то его подпиливал , можно ссылки найти в моих комментах и доказательства в дискорд сервере Xgm
(ноябрь 2020)
мемхак, это Контр C + контр V и у тебя гигансткое и функциональное API, тебе не надо понимать вектор. Ибо в функции для повотора можно также передать углы
Тебе нужен Pitch если снаряд эффект выглядит как самолёт в изначальном положении, а там хоть костылями забиваешь как хочешь, но ты можешь его кренить, UnitLookAt - сделан для поворота головы при диалогах в кампании, все его дальнейшие применения - извращение чистой воды, когда есть альтернативы, когда этого не было, то ещё ладно. Но не сейчас, не иди на дорожку инвалида, оставь это для сидящих на айкапе
function GetEffectRoll takes effect e returns real // X | returns Degrees!
return GetObjectRoll( ConvertHandle( e ) )
endfunction
function SetEffectRoll takes effect e, real angle returns nothing
call SetObjectRoll( ConvertHandle( e ), angle )
endfunction
function GetEffectPitch takes effect e returns real // Y | returns Degrees!
return GetObjectPitch( ConvertHandle( e ) )
endfunction
function SetEffectPitch takes effect e, real angle returns nothing // Y | In Degrees!
call SetObjectPitch( ConvertHandle( e ), angle )
endfunction
function GetEffectFacing takes effect e returns real // Z | Yaw | returns Degrees!
return GetObjectFacing( ConvertHandle( e ) )
endfunction
function SetEffectFacing takes effect e, real angle returns nothing // Z | Yaw | In Degrees!
call SetObjectFacing( ConvertHandle( e ), angle )
endfunction
Всё есть вертай не хочу
Дальше останется адаптировать готовый луа код и превратить его в jass
BlzSetSpecialEffectX(missile, x) -- устанавливаем положение эффекта
BlzSetSpecialEffectY(missile, y) -- устанавливаем положение эффекта
local zNew = GetParabolaZ(za, zb, distance * MISSILE_ARC, distance, way) -- считаем новую высоту эффекта
local zDiff = zNew - z -- считаем разницу высот
BlzSetSpecialEffectZ(missile, zNew) -- устанавливаем новую высоту эффекта
local zAngle = zDiff > 0 and math.atan(SPEED_INC / zDiff) - math.pi / 2 or math.atan(-zDiff / SPEED_INC) - math.pi * 2 -- считаем угол наклона снаряда
BlzSetSpecialEffectOrientation(missile, angle, zAngle, 0) -- устанавливаем направление эффекта
z = zNew -- запоминаем новую высоту эффекта
BlzSetSpecialEffectOrientation тут нет, но это по аналогии функий мемхака это Facing, Pitch, Roll
Забабахай 2 вместо одной
SetEffectFacing(missile,angle)
SetEffectPitch(missile,zAngle)
Только 1 самый важный момент - Назар вроде как в радианах работал, а функции мемхака берут угол, но это уже проще
Нужен мемхак или рефордж, чтобы поворачивать эффект по всем направлениям Yaw, Pitch, Roll
Всё остальное костыли 2005 года, оставьте их там же
(я про ту самую модель даммики с 360 анимациями для всех поворотов)
И разумеется 100% делать через эффект, никак юнитов
удалить, а везде в коде TotalReload заменять на udg_TotalFrameReloadSEC, а конкретно в этом месте
заменить на
function StartAllFrameCD(player)
local pid=GetPlayerId(player)
local data=AllAbilityFrames[pid]
for i=1,data.k do --#data.ReadyToReload[i]
StartFrameCD(udg_TotalFrameReloadSEC,data.ReadyToReload[i])
DisableTrigger(data.ClickTrig[i])
TimerStart(CreateTimer(),udg_TotalFrameReloadSEC, false, function()
EnableTrigger(data.ClickTrig[i])
end)
end
end
то я так и дальше бы имел 20 фпс при 90 единовременных снарядах в мапе.
И точно не метож перебора, вот у меня есть карта (ссылка не важна по ней никто не перейдёт и смотреть не будет), сделанная на 126, там юниты - снаряды, я тоже байтодрочил в своё время, и использовал и снаряд на отдельном таймере, и и все в группе и перебор через форгруп и перебор в булекспре , и снаряды отталкивалисб, проходили сковь, тонул в воде трассированные отскакивали от резины, друго от друга, расстраивались и не важно, не важно что я и как делал fps всегда был стабильны 60 для 126 патча. Всегда лишь одна проблема, когда fps падал это лишь число юнитов на экране, больше причин для падения производительности не было. Я эту карту делал на протяжении 4х лет и прохавал ну всё всё всё. Слушал всяких гуру советчиков, сам делал какие-то открытия. И снова приходил лишь к одному - ДАЖЕ ЕСЛИ НА ЭКРАНИЕ НИКТО НЕ ПЕРЕБИРАЕТСЯ в группах. то я испытываю только проблемы с числом юнитов на экране (энитов или декоров или доадов).
Тоже самое в рефордже сейчас благодаря анонимкам я делаю потом внутри потока на периодике внутрипериодика, вся на ультра малых периодах. И каким бы не был громоздким код - я ничего не теряю в производительности ну никак.
Всё что отбирает у вас производительность это юниты, декорации и доады
Я это написал в одном сообщении 3 раза, потому что реально, ну не факт перебора тут важен. И я это знаю уже 10 лет, и Назар это доказал, хоть какими-то бенчмарками, а то бы мне так никто бы и не верил
У меня 1800 сейчас без сталкивания(как у тебя), 380 со сталкиванием, при том что ты двигаешь каждые 0.1, а у меня 0.02, ы
Ясно даже не открывал, там 1/32 период, и снова не период важен а число материала на экране за экраном можно и 20к всего прокручивать, варкрафту всё так же по барабану будет
ещё раз откройте - "все способы переборы группы", разница в методах 1% максимум, 1% не повод для дискуссии
Всё байтодрочерство было актуально в 2003 году или для компов тех же годов. Допустим у вас 100 юнитов и реально комп с 512 метров первого ddr. И то производительность упадёт не от метода перебора, а уже от самого факта 100 юнитов.
Просто все эти "быстрее" реально не быстрее, каждый раз когда вам кто-то говорит, что вот это работает быстрее чем вон то - шлите его на фиг.
» WarCraft 3 / Скрипты через горячие клавиши
я же вот прикладывал спецом с именем самого тригера
» WarCraft 3 / Странно работает эффект
» WarCraft 3 / Странно работает эффект
Кстати я проверил, у меня вот фаталит вообще функция SetEffectPosition, даже если он просто в выключенном коде, в самом простейшем варианте
» WarCraft 3 / Странно работает эффект
Хотя что я говорю, это же 126 он идеален, на нём не бывает косяков и багов все проблемы только на рефордже (нет)
» WarCraft 3 / Как заставить изменённый интерфейс работать нормально?
» WarCraft 3 / TESH для Reforged
» WarCraft 3 / Скрипты через горячие клавиши
и у меня этот код вообще вот так выглядит
» MARS / MARS
» WarCraft 3 / Конвертация картинки в .mdx
» Администрация XGM / Godot Engine [NEW] когда
» WarCraft 3 / Как двигать хп с мемхаком анрайза v1.4 1.26a
» WarCraft 3 / Скрипты через горячие клавиши
Кароче Сергей Пичугов, дело всё в том что в ГУИ рефорджа, нет примерно 80% функционала, что по факту добавлен в рефордж, он доступен только из кода на jass или lua/
Опять таки, я уже расписывал, что можно добавить все недостающие гуи функции
Если по сабжу, то на луа это выглядит вот так
Код будет выдран из каждой моей карты или на работке, везде тоже самое, видимо тоже никому не надо, зачем вообще всё открытым делаю
» WarCraft 3 / Странно работает эффект
» WarCraft 3 / Мемхак с включенным AdicParser
Ред. Берги
» WarCraft 3 / Мемхак с включенным AdicParser
На первом и втором мемхаке, мне не удавалось активировать сиджас и прочие фишки. Хотя в рендереже мемхак эдишен, всё снова прекрасно работало
Скрины ошибок, скрины настроек jngp, карту в студию
» WarCraft 3 / Blender WarCraft 3
и + кто-то его подпиливал , можно ссылки найти в моих комментах и доказательства в дискорд сервере Xgm
(ноябрь 2020)
» WarCraft 3 / Варкрафт 3 Редактор
» WarCraft 3 / Реалистичный снаряд
» WarCraft 3 / Реалистичный снаряд
Ред. Берги
» WarCraft 3 / Реалистичный снаряд
Забабахай 2 вместо одной
SetEffectFacing(missile,angle)
SetEffectPitch(missile,zAngle)
Только 1 самый важный момент - Назар вроде как в радианах работал, а функции мемхака берут угол, но это уже проще
» WarCraft 3 / Реалистичный снаряд
Всё остальное костыли 2005 года, оставьте их там же
(я про ту самую модель даммики с 360 анимациями для всех поворотов)
И разумеется 100% делать через эффект, никак юнитов
Ред. Берги
» WarCraft 3 / Создаём и работаем с фреймами через ГУИ (CS)
» WarCraft 3 / Что лучше использовать?
Тоже самое в рефордже сейчас благодаря анонимкам я делаю потом внутри потока на периодике внутрипериодика, вся на ультра малых периодах. И каким бы не был громоздким код - я ничего не теряю в производительности ну никак.
Всё что отбирает у вас производительность это юниты, декорации и доады
Я это написал в одном сообщении 3 раза, потому что реально, ну не факт перебора тут важен. И я это знаю уже 10 лет, и Назар это доказал, хоть какими-то бенчмарками, а то бы мне так никто бы и не верил
» WarCraft 3 / Что лучше использовать?
» WarCraft 3 / Что лучше использовать?
Просто все эти "быстрее" реально не быстрее, каждый раз когда вам кто-то говорит, что вот это работает быстрее чем вон то - шлите его на фиг.