Добавлен Берги
Подробнее
Я тут как то поднимал уже тему по поводу отлова координат курсора в сетевой игре через мемхак 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 патче, я что-то краем глаза читал, что там идёт отлов любой нажатой кнопки, а для каждого игрока ли??? или вообще такого нет =(
Призываю ENAleksey, quq_CCCP, и ЛИЧА, дабы разобраться что да как
==
И так же есть второй вариант
Возможно ли использовать стороннее ПО, дабы переназначить просто кнопки Arrows на WASD ? , но только этот функционал надо вшить в саму карту, может и даже через мемхак, в виде mix архива решение не сильно подходящее (я тут вообще не шарю,), надо создать эффект как бы своего ПО. Тогда мемхак не будет нужен как и синхронизация по сети такого отлова, потому что я смогу использовать 8 стандартных событий отлова нажатий.
===
Так же есть третий вариант
А что у нас по отлову нажатий в 1.30 патче, я что-то краем глаза читал, что там идёт отлов любой нажатой кнопки, а для каждого игрока ли??? или вообще такого нет =(
Принятый ответ
Правильный ответ ДА и он здесь xgm.guru/p/renderedge/memoryhack?postid=408475#comment190
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
(Проверил, возвращает null)
Там можно вернуть только геттриггеркей, который интежер, который потребует 2 секундной синхронизации опять таки (но эта инфа не точна)
Ведь что произойдёт если я использую к примеру гетлокалплеер без этого кешсинха, на пк намут кнопку W на пк 2 ничего, но на обоих компа выполнится проверка кнопки что нажата, пк 2 не знает что мы там прожимали и вернёт Null всемсто n и гг десинхрон. (тут я могу быть не прав, если бы знал точно, не создал бы тему)
Вот скажите мне, ткните пальцем пользователи XGM вы видели ХОТЬ 1 карту с управлением WASD по сети?, ткните ссылкой!
Отредактирован Jack-of-shadow
Код набирается эмуляцией меньше секунды, но все равно не мгновенно.
Jack-of-shadow, Кстати вы же 100% ковыряли эту тему в CDR, и сами понимаете насколько это геморой эти стрелки, левая рука должна лежать не там (и не под столом), она должна лежать на WASD или QWER, я бы ваш CDR по кд бы хостовал, будь в нём это (кстати в сингле с ботами ничего не мешает заменить управление на человеческое)
Такс, проверил 130 вар, там же только из новых событий лишь мышь добавили, down up move, блин, а возлагал надежды, не знаю с чего решил что все клавиши засинхронили =(