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

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

как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
2
19
5 лет назад
2
Похожие вопросы:

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

0
17
5 лет назад
0
В ласт патчах же добавили целую гору функций для работы со спецэффектами - можно задать масштаб, перекрасить отдельно от того к чему прикреплено, или же повернуть
Редактор от версии 1.30.4.11274
Загруженные файлы
0
13
5 лет назад
Отредактирован Nelloy
0
PyCCKuu_4eJl, завезти то завезли, но не до конца
native BlzSetSpecialEffectScale takes effect whichEffect, real scale returns nothing
не дает изменить соотношение сторон.
BlzPlaySpecialEffect - вообще нет в common.j
0
27
5 лет назад
0
круто. только спецэффекты как помогут определять выделен или нет?
мне кажется оставить как есть (не надо юнитам одним и тем же коррдинаты разные задавать разным локал машинам), только нужно визуально скрыть. А проверять что нажата кнопка (выделена) только нужные опред игроком.
не получится одному и тому же юниту на разных машинах разные координаты задать. это приводит у десинхрону
0
13
5 лет назад
Отредактирован Nelloy
0
Steal nerves, мне не нужно отслеживать выделение, есть нативные функции для получения мыши в глобальных координатах в 1.29+. Проецирую их на экран. Например, на скриншоте все слоты инвентаря - спецэффекты.
0
26
5 лет назад
0
Если обращаться к ссылке на юнита, а для разных игроков сделать разных юнитов под ссылкой, то должно быть нормально. В статье про LocalPlayer описано
0
13
5 лет назад
Отредактирован Nelloy
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()))
Если закомментить последнюю строку, то десинка нет
1
16
5 лет назад
1
как-то делается, но тонкостей дохера - нельзя иметь регионы на карте, чтобы это работало, нельзя иметь события на unitInRange, и тд. и тп. Проще говоря - обломись, дешевле сделать статичный магаз где-то в неиспользуемой зоне
Принятый ответ
0
13
5 лет назад
Отредактирован Nelloy
0
DracoL1ch, хм... Попробую лепить все неквадратные элементы из нескольких эффектов, раз без очередных костылей никак.
DracoL1ch, еще вопрос немного не в тему. Спецэффекты намного легче деструбов?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.