(07.06.2021 20:25)daemon_n Wrote: ZVS, в ТЕ вообще все абилки отключили. Даже в сингловой версии. Я написал скрипт, который только в ПвП битве отключает лишь те абилки, которые имеют не 100% на шанс. При этом работает это дело крайне странно - ни один !?BA; триггер с этим не справится - лишь хук на самый первый момент старта объявления до битвы, но на стороне оппонента сработает лишь в триггере !?IP; то есть надо либо скрипты под такой алгоритм переписать, либо сам механизм всех случайных генераций сделать нативным для героев. С таким вопросом сам не справляюсь
Я недавно там посмотрел последнюю версию. Вроде там опыт есть, но только атака, защита, урон и здоровье. Ну т.е. да - то, что не зависит от ГСЧ. Что логично.
Quote:Но проблема не только в абилках, а вообще в новом ГСЧ, как ты верно заметил. И вызывается он большинством скриптов в том числе, если точнее, то просто наличие активного !!VR:R в бою ещё до начала каких-либо действий уже вызовет рассинхрон – проверено.
Для меня это вообще-то новость. Я, конечно не мог следить за всеми скриптами, т.к. движком занимался. Но, помнится, я говорил, что альтернативный ГСЧ можно использовать только там, где нет никакого отношения к MP. Как раз для того, чтобы "не трогать" на отдельно взятой стороне ГСЧ Г3.
А вообще оба генератора ничем не отличаются. Г3 использует random() из Си и я тоже, но, т.к. у меня, отдельный EXE, то и статическая библиотека Си отдельная.
Quote:Berserker, а вот скрипты пишутся в сохранении. И нужны они лишь хосту. Но нажатием F12 на другой стороне можно заставить игру работать по иному сценарию, и игра будет отталкиваться уже от новых скриптов и уже их передавать между игроками.
В смысле нужны только хосту? Скрипты должен работать на обоих сторонах. Не обязательно все, но те, что MP обязательно. Или я не понял проблему?
Quote:Кстати, вспомнил, что в HD mod есть механизм, сверяющий rmg.txt файлы у разных игроков, о чём говорит уведомление, которое вылезает, если шаблоны либо разные, либо отсутствуют у одного из игроков
Вот это правильно. Надо бы и все так синхронизировать (CRC нам в помощь).
(07.06.2021 21:34)igrik Wrote: Я пробовал делать такую вещь:
После каждого действия в бою, я от активной стороны брал все основные параметры стеков и отправлял их по сети другой стороне. ПОтом на другой стороне я проверял каждый из этих параметров и исправлял различные. И это работало.
Да, я знаю, что это же костыль. Но лично я не видел другого решения с таким обилием модов.
Это одно из решений. Но, не уверен, что в случае, когда на одной стороне ГСЧ вызывается на 1 раз больше, чем на другой, то это поможет решить проблему.
Возможно решение окажется и в передаче параметров и в реинициализации ГСЧ детерминированным значением. Зависит от результатов тестов.