Странная проблема когда я пытаюсь сделать РПГ-карту и протестировать ее через ирину. Когда тестируем вдвоем с кем-то, все работает идеально, но если игроков 3 или больше то через несколько минут после начала, в случайное время, игра десинхронится. GetLocalPlayer() у меня в карте есть, но он вроде как используется только в показе текстовых сообщений и это десинхрона не вызывает. Способки тоже скорее всего нет... Я вот думаю на разные штуки которые используют хеш-таблицы, вроде системы дропа. Ошибка довольно уникальная и странная, может кто-то знает что ее вызывает?

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

Инициализация хешки в блоке глобалок не вызывает десинков
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
1
1 год назад
0
ты тестировал по ребуту варика? если ты в соло покатаешь в игру и не ребутнишь а твой друг ребутнит и к тебе зайдет - словит ли он десинх?
без него вылетает намного меньше
вылетать не должно вообще ни разу
хотя это зависит от навороченности карты. когда нетиз ещё жил и позволял играть в навороченные китайские карты размером по 400 МБ (которые даже JN loader открывал со скрипом и частично неработающими функциями) (и я сейчас не про импорт многотонных моделей, а про движок в карте и новые возможности всяких окошек и менюшек) - то не просто так сам нетиз при подключении к кому-то в игру открывал новое окно варика, а при отключении от игры это окно закрывал - т.е. принудительно делал так, что на каждую игру у всех игроков открывается новое окно.
другое дело, насколько у тебя там навороченная карта?
и странно, что в этой теме не было дано ни одной ссылки по оптимизации кода от других картоделов
чё-нить хотя бы такое
хотя конкретно десинх или криты это более специфичный и тонкий вопрос чем общая оптимизация
Globals - hasthable x = InitHashtable - endglobals. Как сделать что бы этот код не вызвал ошибку загрузки карты = десинхрон?
0
8
1 год назад
0
Когда-то давно я предлагал инструмент для продвинутого поиска причин десинхронов, работающий не всегда, но все равно полезный.
А еще там есть настройка на запись того, как исполнялся jass код, как в известной программе для этого дела, так что при желании вы можете в точности просмотреть еще и порядок выполнения кода и где же вознико расхождение в жасе, если оно возникло там.
Настройка hookjvm = true отвечает за это.
Ну а если вы думаете, что проблема точно в той самой строчке, то попробуйте запихать инициализацию ХТ в отдельный триггер на событие прошло времени(0) или в функцию, вызываемую из мейна любым другим образом.
0
14
1 год назад
Отредактирован host_pi
0
я предлагал
делай релиз отдельным ресурсом, а не в коменте, который никто не прочитает
если десинхов на картах будет меньше - то от этого выйграют все
0
28
1 год назад
0
Инициализация хешки в блоке глобалок не вызывает десинков
Принятый ответ
0
14
1 год назад
Отредактирован host_pi
0
Инициализация хешки в блоке глобалок не вызывает десинков
а что вызывает десинхи? есть статья с примерами?
в гугле xgm сплошные Q A и ответы в стиле "да нет" от бывалых
вот только одну статью 2011 года про десинх нашёл
Загруженные файлы
0
28
1 год назад
0
а что вызывает десинхи? есть статья с примерами?
Да много чего, обычно неверное использование GetLocalPlayer. А так много чего, например порча в некоторых ситуациях.
Я лишь указал на то, что конкретно тот кейс не вызывает этой проблемы.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.