function MovePointer takes nothing returns nothing
unit u=GetEnumUnit()
real x=0
real y=0
if GetLocalPlayer() == GetOwningPlayer(u)
x=1000//GetMouseTerrainX() // протестировав с реальными цифрами, понял, что дело не в мемхаке
y=1000//GetMouseTerrainY()
endif
SetUnitX(u,x)
SetUnitY(u,y)
endfunction
Тут у нас десинх из за SetUniX, прочитал на warcraft3ft.clan.su/forum/60-41449-1 пишут вот что
SetUnitX, SetUnitY, SetUnitPosition, SetUnitPositionLoc - нельзя давать приказы двигаться, мешать путям, атаковать юнита
А как же мне тогда передать в SetUnitX(u,GetMouseTerrainX()) ??? без десинхронизации?? как использовать GetLocalPlayer в моём случае?

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

Bergi_Bear, нет, невозможно, курсоры, да что там все визуалки, вся видеопамять твоего компа если тебе так понятнее не синхронизируется, синхронизируются лишь вектора приказов, т.е ты кликнул идти, через N времени хост пересчитал все очереди приказов и раздал команды кто и как дальше движется, синхронизировать курсор не получится, т.к ты не сможешь так часто синхать и так много данных, с уровня.. Jass. Есть лишь 1 путь, кешь, но кешь не годится для таких динамических синхов, он медленный и ненадежный. Других способов нет.
Ни одна добрая фея не сделала библиотеку которая бы сделала возможным то что вы хотите, не смотря на не однократные попытки...
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
6 лет назад
0
quq_CCCP, бились бились, я не вижу попыток биться, я вижу только твои сообщения в каждом посте, о невозможности этого, написал бы уже статью...
0
32
6 лет назад
0
Bergi_Bear, флаг в руки идти дальше ловить десинхи, если не понимаешь почему...
0
32
6 лет назад
0
quq_CCCP, не хочу спорить с тобой, ты разумеется прав и знаешь больше, я в эту синхронизацию даже в Unity не вдолбился, решил добить варкрафт. Правильно ли я понимаю, что допустим данные которые делает триггер на обоих компах каждые 0,01 допустим даже всегда успешно просинхронизированы потому что выполняются одновременно и одинаково? а теоретически курсор заработает если его синхронизировать через гейм кеш допустим каждые 5 сек?, хотя это уже ничего не решит. Мне просто чуваки в ветках мемхака вселили надежду, что всё таки что-то возможно, что не такой уж и гейм кеш медленный, что не всё так плохо, что должно работать.... =(
0
17
6 лет назад
0
ну смори потом эту стрингу в прелоад и от туда эту стрингу получаешь
If(locplayer=player(0)){
_x=mouseposx
}
preload(_x)
_x=getpreload()
preloadclear()
ну накрайняк уже записывать в файл и от туда преладить
0
32
6 лет назад
0
Bergi_Bear, нет, невозможно, курсоры, да что там все визуалки, вся видеопамять твоего компа если тебе так понятнее не синхронизируется, синхронизируются лишь вектора приказов, т.е ты кликнул идти, через N времени хост пересчитал все очереди приказов и раздал команды кто и как дальше движется, синхронизировать курсор не получится, т.к ты не сможешь так часто синхать и так много данных, с уровня.. Jass. Есть лишь 1 путь, кешь, но кешь не годится для таких динамических синхов, он медленный и ненадежный. Других способов нет.
Ни одна добрая фея не сделала библиотеку которая бы сделала возможным то что вы хотите, не смотря на не однократные попытки...
Принятый ответ
0
17
6 лет назад
0
но сделать придеться много функций
0
32
6 лет назад
0
Ах да. Еще кешь нужно синхронизировать только в действии триггера и желательно чтобы пока идет синх ничего не происходило, реализация есть в статье про getlocalplayer, и там описано что это небыстро и ненадежно.
0
17
6 лет назад
0
кста попробкй не замарачиваться с координатами а лови дельту от мыхи и для каждого игрока свой сохран файл,тоесть если те над управление игрока 9 проверить то файл должен называтья "Файл9"
0
32
6 лет назад
Отредактирован Берги
0
ledoed, вот зачем ты вселяешь надежду XD, я же уже почти всё понял (что это не возможно и почему), но хочу посмотреть как себя прелоад поведёт, в моём случае тут всё проще, такими возможностями сможет лишь 1 игрок обладать а не несколько
0
17
6 лет назад
Отредактирован ledoed
0
да не моно на всех вот пимер
MouseX1{
поворот для игрока 1 по положительному х
}
Mouse_X1{
по отрицательному x
}
для y индечично
смори поварачивать нужно не на динамическое кол,а допустим 100 в сек (а в функции итерполировать буш )
и вызывать эти функции с прелоада
и 2 файла для X,Y для одного игрока
ну таймеры само собой дял игроков должны не в с одинаковым там лайном робить иначе лаги сильней будут
кста а их хэша эти значения ваще моно получать?
0
32
6 лет назад
0
Ну всё, я успокоился, прелоад работает в целом на десинх его и не стал проверять, потому что он в момент запроса, когда читает из файла делает фриз на 1 секунду XD, это конечно забавно, если он и в локалке будет работать даже через такой лаг. ledoed, а про что ты вообще говорил? Дельта от мышки?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.