Синхронизация.
Добрый всем день.
Переписываю DGUI на wurst. Версия 1.30.3 PTR
Для работы в мультиплеере с меньшими затратами ресурсов решил создавать интерфейс локально, а потом синхронизировать непосредственно действия игроков. Не думал, что с эти возникнет проблема, но ловлю десинк при различии координат дамми юнитов (элементы UI). В связи с чем возникает вопрос: что можно использовать взамен дамми юнитов или как их правильно настроить? Крайне хотелось бы оставить возможность изменять размер непропорционально, что, например невозможно для спецэффекта. Сейчас "непропорциональность" реализуется с помощью анимации модели.
Ну и похвастаюсь текущим состоянием в сингле))

Лучший ответ:
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне


Views: 1 122

XGM Bot #1 - 2 years ago 2
Голосов: +2 / -0
Похожие вопросы:

» ответ
когда игроки подгрузили данные из прелоада и синхронизировали их то устанавливаем им флаг загрузил
а потом просто сохраняем всё что надо у тех у кого нету флага
подробнее в статье про прелоад
данные надо синхронить со всеми иначе десинк
» ответ
Разработчики игры не доделали синхронизацию строк. Тебе придется искать обходные пути.
» ответ
Можешь спокойно передавать параметры через глобалки, в варе все выполняется строго синхронно.
» ответ
Правильный ответ ДА и он здесь xgm.guru/p/renderedge/memoryhack?postid=408475#comment190
» ответ
если длинно, то вот
рандом в сетевых, да и не только, играх - всегда псевдорандом, т.к. события происодят у всех, счетчик рандома всегда синхронен
blog.d1stats.ru/blog/dm/214.html о чё писал, тоже немного есть

N1ghtSiren #2 - 2 years ago 0
Голосов: +0 / -0
В ласт патчах же добавили целую гору функций для работы со спецэффектами - можно задать масштаб, перекрасить отдельно от того к чему прикреплено, или же повернуть
Редактор от версии 1.30.4.11274
Прикрепленные файлы
Nelloy #3 - 2 years ago (изм. ) 0
Голосов: +0 / -0
PyCCKuu_4eJl, завезти то завезли, но не до конца
native BlzSetSpecialEffectScale takes effect whichEffect, real scale returns nothing
не дает изменить соотношение сторон.
BlzPlaySpecialEffect - вообще нет в common.j
МрачныйВорон #4 - 2 years ago 0
Голосов: +0 / -0
круто. только спецэффекты как помогут определять выделен или нет?
мне кажется оставить как есть (не надо юнитам одним и тем же коррдинаты разные задавать разным локал машинам), только нужно визуально скрыть. А проверять что нажата кнопка (выделена) только нужные опред игроком.
не получится одному и тому же юниту на разных машинах разные координаты задать. это приводит у десинхрону
Nelloy #5 - 2 years ago (изм. ) 0
Голосов: +0 / -0
Steal nerves, мне не нужно отслеживать выделение, есть нативные функции для получения мыши в глобальных координатах в 1.29+. Проецирую их на экран. Например, на скриншоте все слоты инвентаря - спецэффекты.
8gabriel8 #6 - 2 years ago 0
Голосов: +0 / -0
Если обращаться к ссылке на юнита, а для разных игроков сделать разных юнитов под ссылкой, то должно быть нормально. В статье про LocalPlayer описано
Nelloy #7 - 2 years ago (изм. ) 0
Голосов: +0 / -0
8gabriel8, не нашел в статье ничего про перемещение юнитов.
public class UI_Dummy extends UI_Object
protected unit instance = CreateUnit(dummy_owner, ui_dummy2d_id, 0, 0, 0)
override function setPos (vec3 world_pos)
this.instance.setPosFly(vec3(world_pos.x, world_pos.y, world_pos.z - world_pos.toVec2().getTerrainZ()))
Если закомментить последнюю строку, то десинка нет
DracoL1ch #8 - 2 years ago 0
Голосов: +0 / -0

как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
Nelloy #9 - 2 years ago (изм. ) 0
Голосов: +0 / -0
DracoL1ch, хм... Попробую лепить все неквадратные элементы из нескольких эффектов, раз без очередных костылей никак.
DracoL1ch, еще вопрос немного не в тему. Спецэффекты намного легче деструбов?
DracoL1ch #10 - 2 years ago 0
Голосов: +0 / -0
в разы, естественно
8gabriel8 #11 - 2 years ago 0
Голосов: +0 / -0
Nelloy:
8gabriel8, не нашел в статье ничего про перемещение юнитов.
Да как же, вот xgm.guru/p/wc3/getlocalplayer внизу же про создание разных юнитов, у одного будет модель, а у другого нет. То есть один игрок увидит перемещение, а другой нет.