Hellfim
Новичок
offline
Опыт:
79,707Активность: |
dodge555, он бред сказал =) Эта функция не может быть причиной десинка
|
25.05.2009, 15:10 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKbru
offline
Опыт:
1,407Активность: |
Hellfim по-моему, любая операция, при определённых обстоятельствах, с GetLocalPlayer() может вызвать де синхронизацию. dodge555, советую удалить на время функции с GetLocalPlayer() (это и некоторые действия с камерой и выделение юнита), особенно уделить внимания квестам, и проверить все действия с вылетающими игроками, а также, какие действия ты не делал только для них.
|
25.05.2009, 17:11 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
А квесты то что? Там задания не создаются, просто обычный текст. GetLocalPlayer() используется только в -ar, но там нормально сделано, и в действиях с камерой. Попробую отключить и проверить. |
25.05.2009, 20:14 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
DKbru, разумеется любая, но не эта дефолтная функция. Она десинк не вызывает.
Вообще десинк вызывается когда контрольные суммы не компе хоста и игрока не совпадают, ну например: Если создать юнита для одного игрока, а для остальных нет, то изменится контрольная сумма. |
25.05.2009, 20:22 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKbru
offline
Опыт:
1,407Активность: |
Не знаю, при аккуратном использовании, когда каждую функцию проверил, тогда проблем не должно возникать. А когда навалял кучу кода, проверенной только для Single Player, тогда приходится долго и муторно разбираться, что вызывает десинк. Вообще условия с GetLocalPlayer() крайне нежелательны, особенно, когда много игроков. Сама функция и вызывает десинк ИМХО, так как, она вообще исключает возможность существования ведущего компьютера и ведомых... Даже в комментах в функции написано про это...
DKbru добавил: Цитата:
|
|
25.05.2009, 20:39 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
Hellfim для особо умных в ней даже написали
"Use only local code (no net traffic) within this block to avoid desyncs." а близы просто так ничего не делают. надо смотреть че за код вокруг этой ф-ии agentex добавил: Цитата:
ахахах эпик фэлс, как говорится. ты еще скажи что SmartPanCameraBJ не вызывает десинка (она самая что ни на есть дефолтная) |
|
25.05.2009, 21:36 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
А если функция которая выделяет юнита для игрока и есть причина десинка, то на какую ее можно заменить? При ресанье чара желательно выделять его)
dodge555 добавил: Кстати. В функции PanCameraToTimedLocForPlayer написано // Use only local code (no net traffic) within this block to avoid desyncs. Ее тоже нужно отключать? Там GetLocalPlayer() используется |
25.05.2009, 21:52 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKbru
offline
Опыт:
1,407Активность: |
dodge555 сам проверь в своей карте является или нет Возможно, можно убрать какой то багнутный фрагмент коды, взаимодействующий с выделенными юнитами и десинка удастся избежать. У меня возможности что-то исправить в мультиплеере нет, так что не могу ничем конкретно помочь
DKbru добавил: Цитата:
Ещё раз повторюсь... Удалить == закомментировать. Но не отключать триггеры! |
|
25.05.2009, 22:19 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
Да я уже закоиментил их все, но pan camera пока не трогал, но там тоже в ней поидее использвуется GetLocalPlayer(), их все тож коментить (камеры)? |
25.05.2009, 22:35 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKbru
offline
Опыт:
1,407Активность: |
Понятно то что именно функция выбора юнитов при нормальных обстоятельствах никакого десинка вызвать не может. А если, допустим, на коде, где куча проверок и выделяется юниты разных игроков с событиями вроде Pan Camera + ещё этот -ar мод, тогда вполне может при выборе юнита быть десинк, ибо такое может быть даже не конкретном действии, а просто при игровом процессе. Код-то может и не выполняться, но обрабатывается он в любом случае. |
26.05.2009, 00:11 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
только что пробовал отключил все действия камеры и выбора юнитов, десинк был... |
26.05.2009, 00:12 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DKbru
offline
Опыт:
1,407Активность: |
У тех же игроков? Или игроки всегда разные? Время десинка всегда одно и тоже (до секунды)? Какие действия следуют до и какие после? |
26.05.2009, 00:18 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
вообще непонятно какие действия, может это изза сборки предметов ?? игроки теперь разные.. раньше одинаковые были, при том что я ниче не добавлял в мапу, вообще, токо описание и кд у скилов менял)) время десинка чуток разное 7-10 мин. наверху часы как в доте, так что я слежу) |
26.05.2009, 00:30 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Garret
Недоброе творится
offline
Опыт:
3,893Активность: |
Потенциально дисконнектить выделение войск может. У меня кикало игрока, для которого выделяло, при последовательности действий (примерно):
Код:
|
26.05.2009, 00:36 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
у меня ни хайда ни запоминалки выделения нету, щас опять еще тестил, с отключенной пан камерой и селек юнит, десинк, 3 вылетело на 10 минуте.
Из-за собирания вещей мб еще происходит это? мож че не так там? вот скрин Отредактировано dodge555, 26.05.2009 в 01:01. |
26.05.2009, 00:55 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Preveder
StarCraft II® Inside
offline
Опыт:
1,927Активность: |
Есть приравнивание какой-либо глобальной переменной типа отряд == текущие выделенные юниты такого-то игрока? Очень злой вариант, когда начинает глючить очень много всего (например, самопроизвольно сбрасывается выделение, перестают отдаваться приказы) + велика вероятность десинка. |
26.05.2009, 21:27 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
не нету, есть токо set hero[1] = GetTriggerUnit и тд)
dodge555 добавил: Кому не лень можете плз посмотреть war3map.j, может чтонить еще найдете там, что может вызывать десинк? |
26.05.2009, 22:09 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
пробовал отключить квесты, играл 4х4, все ровно десинк, ваще на второй минуте, трое вылетело... |
28.05.2009, 00:31 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,707Активность: |
dodge555, вставь в _каждый_ триггер по действию: Игра - Display Message <название триггера>, потом выложи код триггера сюда =) Возможно, что десинк не из-за последнего выведенного триггера, а из-за предпоследнего или чуть раньше.
|
28.05.2009, 00:50 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
dodge555
offline
Опыт:
1,232Активность: |
ух, там полно таких (5 или больше) что делается при каждом ударе моба, это пассивные скиллы в основном. Например - юнит атакован - у атакующего есть скилл мангуст - рандом от 1 до 100, если рандом 1 - 10 то увеличить скорость атаки на 100% (10% при каждом ударе увеличить скорость атаки), и таких много разных, во флуда будет при кождом ударе моба по несколько триггеров)) |
28.05.2009, 01:02 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|