Подробнее
Я тут как то поднимал уже тему по поводу отлова координат курсора в сетевой игре через мемхак 1 версии (тот что внутри RenderEdge), и там я сдался, решил что это не возможно без десинхрона, но .... я вся такие это сделал (спустя время), хотя использовать это к сожалению невозможно, через синхронизацию координат в кеше и не быстрее чем в 2 секунды
синхронизация и отлов координат мыши по сети
gamecache cache = InitGameCache("cache")
function SyncReal takes player p, real val returns real
if (GetLocalPlayer() == p) then
 StoreReal(cache, "", "", val)
endif
TriggerSyncStart()
if (GetLocalPlayer() == p) then
SyncStoredReal(cache, "", "")
endif
TriggerSleepAction(2)// меньшнее значение вызывает десинх
TriggerSyncReady()
return GetStoredReal(cache, "", "")
endfunction
//==================================================
function Trig_CameraSynh_Actions takes nothing returns nothing
player p = Player(0)
real x=0
real y=0
real syncx=0
real syncy=0
string xs,ys
if GetLocalPlayer()==p
xs=R2S(GetMouseTerrainX())
ys=R2S(GetMouseTerrainY())
x=S2R(xs)// перезапись через строковый тип
y=S2R(ys)// иначе нули
endif
syncx = SyncReal(p, x)
syncy = SyncReal(p, y)
CreateUnit(p, 'e009', syncx, syncy, 0)
endfunction

//===========================================================================
function InitTrig_CameraSynh takes nothing returns nothing
    set gg_trg_CameraSynh = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_CameraSynh, 2.10 )
    call TriggerAddAction( gg_trg_CameraSynh, function Trig_CameraSynh_Actions )
endfunction
=
Первый вариант
Но не об этом моя тема, а об отлове других клавиш у игроков в сетевой игре, может кто проводил исследования в этой теме? скажу честно, я ещё не пробовал выполнить проверку на игрока у функции
TriggerRegisterKeyEvent(gg_trg_rightON, 68, EVENT_Down) 
TriggerRegisterKeyEvent(gg_trg_rightOFF, 68, EVENT_Up)
Это событие для триггера по отлову кнопки D аналогичное как и:
TriggerRegisterPlayerKeyEventBJ( gg_trg_rightON, GetOwningPlayer(u), bj_KEYEVENTTYPE_DEPRESS, bj_KEYEVENTKEY_RIGHT )
TriggerRegisterPlayerKeyEventBJ( gg_trg_rightOFF, GetOwningPlayer(u), bj_KEYEVENTTYPE_RELEASE, bj_KEYEVENTKEY_RIGHT )
Но в стандартном отлове есть куда указать игрока, а в мемхаковском нет.
Призываю ENAleksey, quq_CCCP, и ЛИЧА, дабы разобраться что да как
==
И так же есть второй вариант
Возможно ли использовать стороннее ПО, дабы переназначить просто кнопки Arrows на WASD ? , но только этот функционал надо вшить в саму карту, может и даже через мемхак, в виде mix архива решение не сильно подходящее (я тут вообще не шарю,), надо создать эффект как бы своего ПО. Тогда мемхак не будет нужен как и синхронизация по сети такого отлова, потому что я смогу использовать 8 стандартных событий отлова нажатий.
===
Так же есть третий вариант
А что у нас по отлову нажатий в 1.30 патче, я что-то краем глаза читал, что там идёт отлов любой нажатой кнопки, а для каждого игрока ли??? или вообще такого нет =(

Принятый ответ

Правильный ответ ДА и он здесь xgm.guru/p/renderedge/memoryhack?postid=408475#comment190
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
18
5 лет назад
0
может быть это?)
GetTriggerPlayer()
2
25
5 лет назад
2
Можно кстыльным способом, через способности. Например отлавливаем тем же мемхаком нажатие [w] => эмулируем нажатие клавиши игроком ForceUIKeyBJ( Player(), "w" ). Способность CommadW (Hotkey [W]) включает либо выключает (при повторном касте, который вызывается если клавишу отпустили) уже синхронизированное нажатие.
0
32
5 лет назад
0
UrsaBoss, я без понятия, вернёт ли GetTriggerPlayer() нужно игрока для события TriggerRegisterKeyEvent, ведь оно же кастомное
(Проверил, возвращает null)
Там можно вернуть только геттриггеркей, который интежер, который потребует 2 секундной синхронизации опять таки (но эта инфа не точна)
Ведь что произойдёт если я использую к примеру гетлокалплеер без этого кешсинха, на пк намут кнопку W на пк 2 ничего, но на обоих компа выполнится проверка кнопки что нажата, пк 2 не знает что мы там прожимали и вернёт Null всемсто n и гг десинхрон. (тут я могу быть не прав, если бы знал точно, не создал бы тему)
Вот скажите мне, ткните пальцем пользователи XGM вы видели ХОТЬ 1 карту с управлением WASD по сети?, ткните ссылкой!
0
25
5 лет назад
Отредактирован Jack-of-shadow
0
Можно кстыльным способом, через способности. Например отлавливаем тем же мемхаком нажатие [w] => эмулируем нажатие клавиши игроком ForceUIKeyBJ( Player(), "w" ). Способность CommadW (Hotkey [W]) включает либо выключает (при повторном касте, который вызывается если клавишу отпустили) уже синхронизированное нажатие.
Однако возможно ForceUIKey может иметь небольшую задержку.

Похожим способом делаю синхронизацию загрузочного кода для ачивок без ввода в чат. То бишь в начале игры выбирается юнит со способностями QWERASDFZXCV, прелоадом читается файл с сохраненной информацией. А затем эмуляцией нажатия клавиш комп сам вводит загрузочный код.
Код набирается эмуляцией меньше секунды, но все равно не мгновенно.
0
32
5 лет назад
0
Однако возможно ForceUIKey может иметь небольшую задержку
Да, уже давно известно что не применить мгновенно, какой нить 0.01 всегда нужен
Jack-of-shadow, Кстати вы же 100% ковыряли эту тему в CDR, и сами понимаете насколько это геморой эти стрелки, левая рука должна лежать не там (и не под столом), она должна лежать на WASD или QWER, я бы ваш CDR по кд бы хостовал, будь в нём это (кстати в сингле с ботами ничего не мешает заменить управление на человеческое)
0
25
5 лет назад
0
ну в CDR управление на WASD не очень удобно, так как абилки кастовать все равно левой придеца) я вообще с джостика играю. Настроил себе JoyToKey, правда очень извращенно (в нем не получается отловить одновременное зажатие курка и кнопок, поэтому на нижнюю строку скилов переключаюсь грибочком), но уже привыкся.
0
32
5 лет назад
0
Jack-of-shadow, вооот, JoyToKey, но его же не вшить в карту вара =( (это было бы вторым вариантом)
Такс, проверил 130 вар, там же только из новых событий лишь мышь добавили, down up move, блин, а возлагал надежды, не знаю с чего решил что все клавиши засинхронили =(
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.