Как именно в варе работает синхронизация? Одновременно на всех компах идут одни и те же действия, отправляется отчет хосту, где идет сравнение, и если такового нет, то десинхрон? Терь главный вопрос, как работает функция GetRandomInt()? Ведь оно будет разным на компах, а значит оно как-то отправляется без проверки данных. И еще интересно GetRandomInt() считывается на хосте и отправляется всем игрокам, или у каждого игрока после чего отправляется хосту и от него другим игрокам?

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

если длинно, то вот
рандом в сетевых, да и не только, играх - всегда псевдорандом, т.к. события происодят у всех, счетчик рандома всегда синхронен
blog.d1stats.ru/blog/dm/214.html о чё писал, тоже немного есть
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
5 лет назад
0
Добавлю по поводу GetRandomInt(), что как-то при тесте карты в кампании оно не выдавало каждый раз новое значение, а всегда при перезапуске одинаковое, которое, наверное, было установлено при сохранении карты. И как же в кампании случайное число получить тогда? Пока предполагаю делать зависимость от игрового времени, но этого не всегда достаточно.
4
18
5 лет назад
4
8gabriel8, в редакторе можно галочку убрать)
Файл => Параметры => Проверка карты => Фиксировать случайный разброс
4
16
5 лет назад
Отредактирован DracoL1ch
4
если длинно, то вот
рандом в сетевых, да и не только, играх - всегда псевдорандом, т.к. события происодят у всех, счетчик рандома всегда синхронен
blog.d1stats.ru/blog/dm/214.html о чё писал, тоже немного есть
Принятый ответ
0
12
5 лет назад
Отредактирован OVOgenez
0
DracoL1ch, но что если например есть 2 компа, ситуация такая.
Во время инициализации карты такой код:
	if GetLocalPlayer()==Player(0){BJDebugMsg(R2S(GetRandomInt(0,9)))}
	BJDebugMsg(R2S(GetRandomInt(0,9)))
Т.е. у одного выведет 2 числа, у другого - 1. Не собьется ли счетчик?
DracoL1ch, хотя не, всё норм будет, тупанул
0
26
5 лет назад
0
UrsaBoss:
8gabriel8, в редакторе можно галочку убрать)
Файл => Параметры => Проверка карты => Фиксировать случайный разброс
Её и не стояло)
0
16
5 лет назад
0
собьется, само собой
0
12
5 лет назад
0
DracoL1ch, ВСМ?? как?
0
16
5 лет назад
0
потому что у одного из игроков стейт сместился. все действия с объектами и рандомом должны быть на всех машинах разом
0
12
5 лет назад
0
DracoL1ch, разве рандом в варе зависит от предыдущего вызова рандома? думал просто считываются какие-то динамические данные в игре.
0
23
5 лет назад
0
рандом тот кто являет хостом вот и он генерирует а остальные игроки с него получает
0
12
5 лет назад
0
JMCode, тогда как он генерирует в GetLocalPlayer() ?
0
23
5 лет назад
0
OVOgenez, локально значит кто имеет карта внутри генерирует
0
12
5 лет назад
0
JMCode, чет не понял фразировку
Чтобы оставить комментарий, пожалуйста, войдите на сайт.