(11.02.2019 09:36)totkotoriy Wrote: [ -> ]А можно как нибудь сохранить игру в битве? Надо рассинхрон отловить, а без сохранения очень долго будет.
И может у кого есть идея как комплексно избавится от проблемы рассинхрона в сетевой игре? Пробовал передавать переменные на другую сторону каждый ход - не помогает...
Нет, сохранения в битвах нельзя сделать даже в простом SoD. А в WoG и подавно.
На счет рассинхрона - Берсеркер вроде пробовал решать. Но опять же - есть ERM, который далеко не всегда стабильно по сети работает. И если мне не изменяет память - опыт стеков тоже вызвает рассинхрон. В любом случае, по моему мнению, Вог и рассинхрон это неразделимые вещи.
(11.02.2019 09:36)totkotoriy Wrote: [ -> ]Ещё хотел давно спросить, можно как нибудь сделать чтоб по нажатию, какой либо новой кнопки выполнялось действие при нажатии пробела на клавиатуре?
На ERM - наврятли. Через плагины - легко.
А что именно вызывает рассинхрон сам опыт или умения полученные от опыта, не знаешь?
Мне казалось просто, что я у кого-то видел опцию сохранение в битве... нет так нет тогда
А нажатие кнопки на клавиатуре сымитировать, тоже плагин нужен? Такой плагин где-то есть?
igrik, решены основные проблемы с удалением/созданием объектов на всех компах при удалении на компе-инициаторе (UN:O, UN:I). Остальное решается грамотным кодом. Если событие произошло только локально, например щелчок по кнопке и выбор в диалоге нового режима атаки (стрелок/рукопашник). Обработчик пишем в функции, эту же функцию вызываем обязательно удалённо. !!FU:D или какая там команда, уже не помню. Например, в Йоне есть режим меткой стрельбы арбалетчиков по ESC. Он поддерживает сетевой бой.
Berserker, вот с этим тоже ничего не понятно, функции ЕРМ и на другой стороне тоже работают, зачем тогда ещё дополнительно их вызывать от другого игрока?
Вот если б можно было пачкой все данные передавать каждое действие - была бы красота....
А есть какой-нибудь точный способ определение рассинхронизации?
totkotoriy, ряд событий происходят только на одной стороне. Например, щелчки мышкой или нажатия кнопок на клавиатуре, не приводящих к стандартным действиям. На другой стороне они не возникают. Проверять можно, запустив две копии игры на одном компьютере из разных папок и с разным Unique System ID из heroes3.ini.
Вызвать функцию удалённо можно через
Code:
!!FU:
D$1[/$2/$3/.../$16]
Поддержка интернет-игр. Вызывает функцию на противоположной стороне. Синтаксис такой же, как и FU:P, и, соответственно, особенности такие же. Для получения доступа к параметрам используйте синтаксис x# (# = 1...16). Они могут быть использованы где угодно (внутри функции) как обычные переменные. Когда вы вызываете функцию, все параметры, которые не были установлены, будут наследованы.
Примечание: параметр $1 D должен быть помещен в вызове !!FU (даже если нет значений, необходимых для передачи в функцию) для корректной работы команды.
Если важные переменные будут изменены в событии по щелчку/кнопке только на одной стороне, рассинхрон уже произошёл. Последствия зависят о того, что код делает с этими переменными.
(13.02.2019 16:56)Berserker Wrote: [ -> ]Если важные переменные будут изменены в событии по щелчку/кнопке только на одной стороне, рассинхрон уже произошёл. Последствия зависят о того, что код делает с этими переменными.
Да это всё понятно. Просто тяжело это искать по всем скриптам. Я надеюсь большую часть кода, вызывающую рассинхрон исправил. Проверим скоро...
А что за патч у вас в настройках для маски 192.168.*.*?
Мы с товарищем 4 часа пытались по сетке соединиться - не получалось, потом ещё раз все новые файлы скопировал из ЭРА 2.7.7 и потом заработало. Думаю эта опция не была включена, и у нас IPшники как раз такие и были. Что эта опция дает?
totkotoriy, если не ошибаюсь, патч сортирует IP адреса, выбирая лучший. Сперва пробует любой не из 10.xxxx или 192.xxxx серии, то есть белый внешний IP, затем откатываясь на локальный вида 192, затем 10.ххх. Потому как игра иногда вместо белого ИП адреса работала по локальному. Для игры по интернету это невозможность соединиться.
А кто-то делал чтоб ангелы могли воскрешать друг друга?
Если имеются в виду Архангелы - они и так воскрешают. Если просто Ангелы - то в последней версии Тифона любые существа могут воскрешать любых живых.
(19.02.2019 14:34)MOP Wrote: [ -> ]Если имеются в виду Архангелы - они и так воскрешают*
* если хватает мощи. 1 арх 1го арха не воскресит. Я так как-то накололся. Всю голову сломал, думая, что поломал воскрешалку

(12.02.2019 00:30)totkotoriy Wrote: [ -> ]А есть какой-нибудь точный способ определение рассинхронизации?
Самый надежный способ определения - наверное это сравнивать данные 2х баттлменеджеров на локальной и удаленной машине.
А вот с коррекцией рассинхронизаци - из-за огромного кол-ва скриптов я вижу только копирование почти всего баттлменеджера (точнее его части идущей до параметров диалога битвы) перед поиском нового стека, и последующая передача его удаленному компу, но это на секундочку постоянная швырялка 78592 байт кода.
Вообще надо попробовать запилить это плагином и увидеть что получится.
Блин, сорян, точно у них просто мощности не хватает )))
igrik, было бы круто
Сложно ли сделать запрет элементам сборных артефактов быть квестовыми? И чем это делать вообще? Скрипт или плагин? Может, уже сделал кто?
(04.03.2019 16:56)daemon_n Wrote: [ -> ]Сложно ли сделать запрет элементам сборных артефактов быть квестовыми? И чем это делать вообще? Скрипт или плагин? Может, уже сделал кто?
Так ведь так и есть. Части сборных не являются квестовыми. Если, конечно, не настраивались новые сборники.