Current time: 29.11.2024, 04:43 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA / WOG - сетевая игра и проблемы с ней
» Очень актуальная тема на день её создания
Author Message
daemon_n Offline
Administrators

Posts: 4343
Post: #121

Всё работает отлично!!!!

Berserker, моё уважение132

Все навыки/уроны/абилки работают одинаково на обеих сторонах!

Дебаггер показывает везде одинаковые адреса и значения SRand

НО один скрипт на неудачу от существ, работающий лишь с одной стороны, возымел разный результат.

На одной стороне "неудача" = -1, на другой = -2, что один раз за бой привело к половинному урону лишь на одном клиенте.
Косяк именно в скрипте, однако будем иметь в виду, что такое возможно, потому все скрипты для мультиплеерных битв пишем очень внимательно и тестируем

Тестировал я намеренно без тестового плагина от igrik'a.

Сейчас буду проверять влияние ГСЧ на изменённые вторичные навыки в бою.

Что ещё требуется от меня?


Image: widget.png?style=banner2

Новейший Heroes Launcher
14.06.2021 21:51
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #122

Скрипт на неудачу не смотрел, возможно там VR:T используются (нельзя, нужно VR:R) или какой-то хак. Отлично, что всё остальное работает. Я ещё добавлю уникальное значение для каждого боя в состояние генератора и этого будет достаточно. Плагин igrik-а не нужен: ни одна пересылка не решит проблемы комплексно так, как решает детерминированный генератор и грамотно написанные скрипты.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.06.2021 22:32
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #123

(14.06.2021 22:32)Berserker Wrote:  Плагин igrik-а не нужен: ни одна пересылка не решит проблемы комплексно так, как решает детерминированный генератор и грамотно написанные скрипты.
Плюс не надо гонять данные туда-сюда постоянно.
Этот плагин - костыль. Поэтому, если появляется решение самой проблемы ГСЧ, то мой плагин явно в топку Yes


game bug fixes extended.dll || My Plugins || My GitHub
14.06.2021 22:43
Visit this user's website Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #124

Berserker, скрипт на неудачу и смотреть не надо - он изначально некорректно работает в PvP бою, так как влияет лишь на одного игрока ещё с самого начало боя.

Сейчас проверяю магию и дополнительные сопротивления героев/существ.

UPD: увы, но се сработало - вог-скрипт "сопротивление" работает с разными результатами (резист/не резист) - на одной стороне rand # показывают различные значения.
Так что скрипты придётся переписывать всё равно.


Image: widget.png?style=banner2

Новейший Heroes Launcher
14.06.2021 22:44
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #125

daemon_n, F11 сразу же после кривого срабатывания и смотрим вместе erm tracing.erm


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.06.2021 22:59
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #126

Berserker, хмм, не думаю, что срабатывание кривое, а дело в пресловутом VR:R - хотя сейчас проверю всё ещё раз и с f11

Кидать всё сюда, или в дискорде тоже норм?

UPD: с "сопротивлением" получил разный результат наложения "яда" от вивернов-монархов

Как я понял, прикол в том, что яд накладывается как заклинание 105


Image: widget.png?style=banner2

Новейший Heroes Launcher
14.06.2021 23:06
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #127

Сюда через dropmefiles


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
14.06.2021 23:47
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #128

Яд вообще странно работает - то его нет, то неожиданно появляется в след раунде.

Ещё баг:

Заклинание "Мины" нанесло урон лишь на одной стороне, хотя все данные одинаковы. Кажется, дело лишь в "минах" от опыта существ "Мастер-гремлинов"

Нормальный erm tracking ещё не нашёл, так как отвлёкся на тест заклинаний. Сейчас ещё тестирую


Image: widget.png?style=banner2

Новейший Heroes Launcher
14.06.2021 23:48
Visit this user's website Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #129

Berserker, сколдовал заклинание "Армагеддон" на одной стороне и всех убил - на второй даже не было колдовства - рассинхрон.

UPD: Проблема повторяется! Для этого армагеддон должен колдовать защитник.
Не работает ни резист вообще105,

Данные по SRand отличаются:
Слева нападающий - все померли, справа защитник (он колдовал)- все выжили, если точнее, это не отобразилось105
Адрес тот же, а результаты разные: (Click to View)

   Сейчас проверю с иммуным юнитом -
Данные передались --колдовство случилось на обеих сторонах, но всё равно померил все (кроме иммун)

И выпали те же "случайные" значения.
1..100 = 55 (#0..#29)
50..9000 = 5846 (#30..#43)

Проверял без скриптов вообще


Image: widget.png?style=banner2

Новейший Heroes Launcher
14.06.2021 23:59
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #130

daemon_n, спасибо, буду ещё тестировать.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
15.06.2021 00:10
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #131

Berserker, а есть более точное ТЗ? Или тестировать всё подряд?))

Мне не раз говорили, что у меня талант находить проблемы даже там, где не надоRolleyes


Image: widget.png?style=banner2

Новейший Heroes Launcher
15.06.2021 00:19
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #132

Видишь ли, если номер действия один и тот же (A2), номер раунда — один и тот же, то и результат должен был быть одним и тем же. Возможно, различается раунд, его вывод тоже добавлю. Ты всё верно проверяешь: способности, заклинания, способности от опыта.

SRand не важен, по сути, так как его значение не используется. Тем не менее, игра его шлёт перед каждым действием. Удобно отслеживать в общем потоке вывода.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
15.06.2021 01:22
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #133

(20.01.2021 19:38)daemon_n Wrote:  
(13.01.2021 06:10)daemon_n Wrote:  1) Навыки, имеющие не 100% от опыта существ вызывают рассинхрон
2) Артподготовка и прочее "перед боем" - решение есть в голове
3) "Разведка II" приходят сообщения о фантомных событиях другого игрока
7) Если каждому игроку пришло до боя сообщения, первый его "принял", попал в бой и сделал хоть что-то, а второй так и не "принял" сообщение, то будет рассинхрон.

1) Есть временный фикс - отключил навыки с рандомным значением во время PvP битвы.
2) Для MP не подходят Триггеры !?MF; - нужен !?BA0; т.к. передача данных идёт после BA, но перед MF.
3) Исправлено проверкой на "за этим ли компом игрок"
7) Чтобы избежать рассинхрон, сообщения перед боем должен получать лишь нападающий.


UPD: сделал решение, что отключает лишь способности с шансом! Немножко молодец Rolleyes (Click to View)

Итак!

После идеи ZVS'а и её прекрасной реализации и дополнением от Berserker'а, мы имеем на 99,9% рабочий сетевой код без рассинхронизаций. Молодцы!132

Все выше описанные проблемы были исправлены, но пара проблем ещё остались:
1) Заклинание "минное поле" от Гремлинов, кастуемое перед атакой вызывает мины одинаково, но срабатывает на обеих сторонах по-разному
как временное решение - переиначенный мой же скрипт для отключения абилок - он будет на время боя отнимать только линию опыта у всех существ на поле боя "с минами" (хотя мог просто выставить шанс в 0% 96 )
Скрипт также попадёт в мою сборку.

Немножко ERM (Click to View)
2) Заклинание "Армагеддон", кастуемое защитником может не отработать на одной стороне - решение пока не придумал, так как на тесты не хватает времени - дерзайте, ребята 118

3) Не забываем, что сообщения и диалоговые окна перед боем вызывать не рекомендуется, так как каждый игрок может "согласиться" раньше другого и начать ход в бою, пока у второго ещё зияет сообщение.

В общем итоге всё так хорошо сложилось, что можно делать моды и улучшать старые под мультиплеер без особой опаски.
Работаем Yes


Image: widget.png?style=banner2

Новейший Heroes Launcher
28.06.2021 23:51
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #134

1) А WOG_PreBeforeBattle когда срабатывает? Уже после создания поля боя? Иначе нельзя настраивать опыт.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
29.06.2021 04:09
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4343
Post: #135

Berserker, срабатывает ещё раньше BA.
Это хук на адресе 75A605 (7710213), который ещё igrik сделал для первых версий скрипта на "сохранение перед боем"


Image: widget.png?style=banner2

Новейший Heroes Launcher
29.06.2021 04:45
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group