Добавлен Tumart
Всем привет! Ктонить проверял, можно ли с помощью render_edge.dll(+мемхак), который распаковывается из карты, делать манипуляции с интерфейсом, отслеживать мышь, кнопки и т.д для каждого игрока? Работает ли через GetLocalPlayer или через синхронизацию? Желательно пример если не затруднит)
Будет ли это считаться хаком на гарена, айкап?
Будет ли это считаться хаком на гарена, айкап?
Принятый ответ
здесь можно разделить нужные задачи на 2 категории:
В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с GetLocalPlayer()
Если надо каждому игроку вывести координаты его мышки:
- работа с игровыми объектами (юниты, разрушаемые объекты, таймеры и т.д)
- работа с визуальным отображением (положение камеры, интерфейс, и т.д)
В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с GetLocalPlayer()
Если надо каждому игроку вывести координаты его мышки:
call BJDebugMsg(R2S(GetMouseX())+" - "+R2S(GetMouseY()))
//У каждого игрока на экране будут свои координаты мышки
Если надо определенному игроку вывести координаты его мышки:
if( GetLocalPlayer() == p ) then
call BJDebugMsg(R2S(GetMouseX())+" - "+R2S(GetMouseY()))
endif
//У игрока "p" на экране будут выведены координаты его мышки
Если надо определенному игроку создать спецэффект:
local string s = ""
if( GetLocalPlayer() == p ) then
set s = "effect.mdx"
endif
call AddSpecialEffect(s, x, y)
//Игроку "p" будет создан спецэффект в координатах x,y (спецэффект не будет виден другим игрокам)
А вот если нужно будет создать юнита в координатах мышки игрока:
call SyncReal(p, GetMouseX(), GetMouseY())
call CreateUnit(p, 'hfoo', sync_x, sync_y, 270.)
//Игроку "p" будет создан пехотинец в координатах его мышки
//Функцию SyncReal смотри в статье GetLocalPlayer(), но надо будет чуть её дополнить, чтобы она писала синхронизированные значение в глобалки sync_x, sync_y
//Ну и как говорилось выше - для синхронизации требуется время
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
и какова же скорость синхронизации через гейм кеш? (я то знаю)
Bergi_Bear:
Отредактирован Hodor
Bergi_Bear, я же сказал, работа с объектами требует синхронизацию
если он просто хочет перемещать камеру - то ему не надо синхронизировать
т.е в любом случае ему понадобится GetLocalPlayer(), а при работе с объектами ещё и синхронизация
UPD:
перемещать камеру или редактировать интерфейс
В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с GetLocalPlayer()
Если надо каждому игроку вывести координаты его мышки:
Если надо определенному игроку вывести координаты его мышки:
Если надо определенному игроку создать спецэффект:
А вот если нужно будет создать юнита в координатах мышки игрока: