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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
Bergi_Bear, нет, невозможно, курсоры, да что там все визуалки, вся видеопамять твоего компа если тебе так понятнее не синхронизируется, синхронизируются лишь вектора приказов, т.е ты кликнул идти, через N времени хост пересчитал все очереди приказов и раздал команды кто и как дальше движется, синхронизировать курсор не получится, т.к ты не сможешь так часто синхать и так много данных, с уровня.. Jass. Есть лишь 1 путь, кешь, но кешь не годится для таких динамических синхов, он медленный и ненадежный. Других способов нет.
Ни одна добрая фея не сделала библиотеку которая бы сделала возможным то что вы хотите, не смотря на не однократные попытки...
Принятый ответ
32
Ах да. Еще кешь нужно синхронизировать только в действии триггера и желательно чтобы пока идет синх ничего не происходило, реализация есть в статье про getlocalplayer, и там описано что это небыстро и ненадежно.
17
кста попробкй не замарачиваться с координатами а лови дельту от мыхи и для каждого игрока свой сохран файл,тоесть если те над управление игрока 9 проверить то файл должен называтья "Файл9"
33
ledoed, вот зачем ты вселяешь надежду XD, я же уже почти всё понял (что это не возможно и почему), но хочу посмотреть как себя прелоад поведёт, в моём случае тут всё проще, такими возможностями сможет лишь 1 игрок обладать а не несколько
17
да не моно на всех вот пимер
MouseX1{
поворот для игрока 1 по положительному х
}
Mouse_X1{
по отрицательному x
}
для y индечично
смори поварачивать нужно не на динамическое кол,а допустим 100 в сек (а в функции итерполировать буш )
и вызывать эти функции с прелоада
и 2 файла для X,Y для одного игрока
ну таймеры само собой дял игроков должны не в с одинаковым там лайном робить иначе лаги сильней будут
кста а их хэша эти значения ваще моно получать?
33
Ну всё, я успокоился, прелоад работает в целом на десинх его и не стал проверять, потому что он в момент запроса, когда читает из файла делает фриз на 1 секунду XD, это конечно забавно, если он и в локалке будет работать даже через такой лаг. ledoed, а про что ты вообще говорил? Дельта от мышки?
17
dx = x(текущее положение мыхи)-centrx(где центр представим это как 0)
if(dx<100&&dx>-100){
это для того чтобы не дергался на каждое вздергивание мыхи
}elseif(dx>100){
Preload(R2S("поворот в право"))
}elseif(dx<-100){
Preload(R2S("поворот влево"))
}
100 это абстрактное значение для тебя там будет свое
в локалке тести иначе игра на паузу ставиться пока не подгрузит нужный файл
ну и вконце концов моно мега извратом замутить 3д фпс шутан
тут дет статься была насчет абилы артелерия,где она чекает во время работы,короче суть такова создаешь перед камерой стену невидимых юнитов, а артелерия чекает их и в зависимости от дамика поворачиваешь камеру,также и дамиков переносишь в зависимости от направления камеры
33
ledoed, да не делаю я шута, с чего вы взяли, может я хочу пэинт мультиплееровский под варом сделать, я вот все 15 лет хочу добраться до курсора, даже забросил чутка, возвращаюсь а тут мемхаки и рендерэджи, как 2 года уже, кстати да я и забыл что в локалке, то прелоад не будет лагать. в моём случае да обязательно надо двигать юнита мышкой ибо Setunitlookat может смотреть только на юнита, вот я и двигаю курсором дамми юнита. (и всё прекрасно работает, только не в локалке)
Прелоад тоже десинхронит, пошло оно всё нафиг, мне уже смешно, но так и должно быть, ведь у каждого игрока создаётся своё файл прелоада, и в нём у одного 0 записан а у другого 238,787, и естественно что при загрузке рассинхрон...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.