Тут как раз вчера вопрос задали про систему дропа, народ насоветовал много всякого разного, но никто не упомянул настолько простую и очевидную систему. Возможно я что-то не знаю и проблема связана с ней.
По 1.1 явно видно что десинков меньше (вроде их и не было) в первой же игре, так что нет, у фулл перезашедших по идее не десинкает. По остальным пунктам явной корреляции не видел, но возможно она была.
Возможно скриншот тоже поможет. (Первая игра нормально, на второй мы разлетелись. Состав в первой был я, игрок Х и рандом, во второй я, игрок Х и новый рандом)
вылетать не должно вообще ни разу
хотя это зависит от навороченности карты. когда нетиз ещё жил и позволял играть в навороченные китайские карты размером по 400 МБ (которые даже JN loader открывал со скрипом и частично неработающими функциями) (и я сейчас не про импорт многотонных моделей, а про движок в карте и новые возможности всяких окошек и менюшек) - то не просто так сам нетиз при подключении к кому-то в игру открывал новое окно варика, а при отключении от игры это окно закрывал - т.е. принудительно делал так, что на каждую игру у всех игроков открывается новое окно.
другое дело, насколько у тебя там навороченная карта?
и странно, что в этой теме не было дано ни одной ссылки по оптимизации кода от других картоделов
чё-нить хотя бы такое
Сделай переменные и1 и и2, при постройке добавляй 1000 дерева и 1000 к переменной и1, убери из карты стоимость дерева у юнитов. Когда часть из этого дерева надо будет занять, например ты строишь башню и она занимает 100 дерева, добавляй эти 100 к переменной и2. Если и2 больше и1 то не позволяй построить здание. При уничтожении лесопилки отнимай 1000 от и1 и дерева игрока. Так оно будет заниматься но не будет тратится.
Тестовая карта весит 300 кб и там пара триггеров всего. Десинка в твоей ситуации не будет, механизм десинка хитрее. Но я уже почти закончил, скоро запощу что давало проблема
Что-то типа такого
Событие - игрок пропускает кинематик (esc)
Условие
Действие -
If (udg_int == 3) then
Skip cinematic
Else
Set udg_int = udg_int + 1
endif
Возникли подозрения, что дело в цикле на 500 повторений. Он не разу не триггерился, т.к. там куча ифов в триггере на этот цикл, но почему-то без него вылетает намного меньше. Впрочем ещё несколько дней я буду в этом убеждатся.
То, что ты описал похоже на 23 рассы, там постоянно десинхрон если не перезапустить. Особенность моей ошибки в том что ее десинхронит не на старте, а через пару минут, при чем точное время каждый раз разное. По поводу кода - я сейчас сделал новую такую же карту, попробую заменить все функции в карте на простое гуи и посмотрю будет ли десинкать. Если да, то на этом мои полномочия все, а если нет, то по одной системе найду ту которая багается и закреплю в ответ, что бы если у кого ещё так будет он знал на что ориентироваться. Я вопрос задал этот на случай если такое (десинх от 3 игроков посреди игры) вызывается чем-то конкретным, например неправильным использованием хештейблов. Раз нет буду методом тыка. Код карты не вставил потому что его слишком много.
Отредактирован lioloisigisi
» WarCraft 3 / Депротект (знаю заеженная тема)
» WarCraft 3 / Вообще нет идей с десинхроном...
Отредактирован lioloisigisi
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Ошибка при открытии карт-способностей
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Вообще нет идей с десинхроном...
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Помогите реализовать альтернативную систему добычи ресурсов
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Голосование за пропуск ролика
Событие - игрок пропускает кинематик (esc)
Условие
Действие -
If (udg_int == 3) then
Skip cinematic
Else
Set udg_int = udg_int + 1
endif
» WarCraft 3 / Система нападения
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Десинхронизация
» WarCraft 3 / Много триггерных абилок
library mySpell initializer init{
void mySpellAction(){
call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Hello, world!")
}
Я попробовал сделать по той наработке, но что-то пошло не так) Ошибок компилятора 0 но оно не работает
» WarCraft 3 / Помогите найти карту