Добавлен
Всем привет! Ктонить проверял, можно ли с помощью render_edge.dll(+мемхак), который распаковывается из карты, делать манипуляции с интерфейсом, отслеживать мышь, кнопки и т.д для каждого игрока? Работает ли через GetLocalPlayer или через синхронизацию? Желательно пример если не затруднит)
Будет ли это считаться хаком на гарена, айкап?

здесь можно разделить нужные задачи на 2 категории:
  1. работа с игровыми объектами (юниты, разрушаемые объекты, таймеры и т.д)
  2. работа с визуальным отображением (положение камеры, интерфейс, и т.д)

В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с 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
//Ну и как говорилось выше - для синхронизации требуется время
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
18
вполне должно работать через GetLocalPlayer(), но если ты попытаешься как то работать с объектами используя эту инфу - то тебе понадобится синхронизация.
А к примеру чтобы тупо двигать игровую камеру по курсору - легко)
33
GetLocalPlayer() как раз так и не нуждается в синхрониции, а человек спрашивал за неё
18
Bergi_Bear:
GetLocalPlayer() как раз так и не нуждается в синхрониции, а человек спрашивал за неё

Нужно чуть переделать SyncReal, чтобы синхронизировало два значения
SyncReal(Player(0), GetMouseX(), GetMouseY())
CreateUnit(Player(0), 'hfoo', sync_float1, sync_float2, 270.)
33
ой спасибо, глаза мне открыл, а то я не знал про гетлокалплеер!
и какова же скорость синхронизации через гейм кеш? (я то знаю)
Bergi_Bear:
я выкладывал код где синхронизировал курсор по сети без фатала, но там есть одно НО
и это НО выделено не спроста
18
А если не работать с объектами, а просто перемещать камеру к примеру, то вот:
if( GetLocalPlayer() == Player(0) )
{
	SetCameraPosition(GetMouseX(), GetMouseY())
}

Bergi_Bear, я же сказал, работа с объектами требует синхронизацию
если он просто хочет перемещать камеру - то ему не надо синхронизировать
т.е в любом случае ему понадобится GetLocalPlayer(), а при работе с объектами ещё и синхронизация

UPD:
перемещать камеру или редактировать интерфейс
6
UrsaBoss, тоесть с помощью GetLocalPlayer я могу записать координаты мыши для игрока в переменные, а после к примеру показать эти значения каждому игроку и все будет корректно, а так же не вызовет десинхронизации? Или же для работы с переменными их обязательно нужно синхронизировать? Если тем же способом я сделаю например отображение панели опыта для игрока 0 в левом нижнем углу, а для игрока 1 в правом, то это сработает?
18
здесь можно разделить нужные задачи на 2 категории:
  1. работа с игровыми объектами (юниты, разрушаемые объекты, таймеры и т.д)
  2. работа с визуальным отображением (положение камеры, интерфейс, и т.д)

В первом случае если не синхронизировать данные - то будет десинхрон
А во втором случае можно как угодно шаманить с 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
//Ну и как говорилось выше - для синхронизации требуется время
Принятый ответ
6
UrsaBoss, благодарю за развернутый ответ!)
Теперь остался один вопрос, будит ли это считаться хаком на гарена, айкап и как обходится мемхак на айкап.
32
Tumart, за хак считаться небудет, на ракапе стоит защита от карт мемхака, она обходится. Инфу можно купить у драколича.
16
да хватит за меня говорить, никакой инфы у меня нет и уж тем более не продаю
33
DracoL1ch, а может quq_CCCP, сам хочет инфу продать, его то карта на мемхаке и работает в ICQакпе
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.