VR:T берёт остаток от деления timeGetTime (текущее время в миллисекундах в int32) на интервал генерации, что не верно, конечно же. Числа получаются смещённые.
Сделаю, скорее всего, VR:T равным VR:R и заменю, если получится, генератор.
Berserker, круто, спасибо за инфу i nizkiy poklon.
(25.01.2020 20:52)Berserker Wrote: [ -> ]...что не верно, конечно же. Числа получаются смещённые.
Чет не понял. А можно подробнее? VR:T не дает равномерное распределение или не привязан ко времени?
Так-то задача была в исключении возможности просчитать генератор (повторить последовательность).
В принципе, даёт, каюсь. Но это не ГСЧ от слова совсем. Номер миллисекунды как база.
Невозможность предсказать и так есть априрори. Невозможность повторить при загрузке лечится через VR:R с автосинхронизацией на всех клиентах.
Berserker! Команды для генерации рабочие? Если вдруг работает, то простой пример в две строчки, пожалуйста!
ElfbI, а какая стоит задача?
Berserker, Ну какая задача у гсч, та и стоит, - генерация случайных значений, например двоичного значения с равномерным распределением, выглядит довольно вкусно.
Смотри. ГСЧ в последних версиях Эры хороший в VR:T. Он с мультиплеером не дружит, но это Вихрь Мерсена, можешь почитать в вики.
Если же тебе нужно, чтобы, например, из 10 генераций значения 1-9 среднее было строго 5 (а сумма 50), то тогда по адресу.
Либо другой пример. Гарантированно 2 из 7 раз чтобы срабатывало какое-то свойство. Тогда тоже по адресу.
Но библиотека устарела и её нужно обновлять, если она хранит данные в сохранёнках.
Berserker, ясно, спасибо. На новую эру когда еще перейду. .
Так для размышлений, я в трансцендентных комбо артефактах просто сделал ЕРМ обертку над стандартным ГСЧ, которая позволяет параметрами передавать список исключений. В целом получается, что можно получить псевдослучайную последовательность в которой последние 13 чисел (почти)гарантировано не повторяются.
Zur13, спасибо за информацию, гляну на досуге
Если используется VR:T, то генератор Вихрь Мерсенна, его в Эре 3 можно вручную синхронизировать, задав начальное значение генерации. А может стоит вообще ввести проверку на сетевую игру и в ней все использования T автоматически считать за R? Мы получим прекрасный рандом в скриптах в сингле и стабильность в мульте. Разве что состояние генератора не сохраняется в файлах сохранения. Можно, конечно, принудительно сохранять/загружать.
Berserker, погуглил значение - крутяк! Всегда нравились такие вещи, жаль, что мало понимаю в глубокой терминологии, но основы ухватил. Ореол вечности в таких вещах интригует, язык вселенной.
Вопрос по сути игры - если я будут T использовать для генерации Боевых полей в сетевой, это скажется на синхронизации? С условием, что игр Человек Vs Человек не будут вестись? Или можно наплевать в данном конкретном случае применения?
Night, генератор хороший, много где используется.
В сетевой состояние генератора игрой сотни раз пересылается туда-сюда, чтобы избежать рассинхронизации. Не дай бог на каком-то компьютере хоть один лишний вызов генератора без такого же вызова на другом — и всё. Потому видится мне, что как раз для сетевой игры нужно VR:T делать по действию аналогичным VR:R. Автоматически избавляемся от багов малой кровью. Я ещё поищу генератор на замену оригинальному.
Но любая замена штатного генератора вызова ненависть со стороны картоделов, которые привыкли, что для конкретной локации поле боя и препятствия будут конкретными. А с новым генератором они будут другими.
Ооох, и этот человек, спрашивает, почему он
злюка... Ну место тролля у нас занято, остальные тоже заполняются или заняты уже, да и от тебя
Berserker,
слишком много полезного и незаменимого, но после таких ответов...Только злюка
Мне пожалуйста простой логический оператор True/false -
нет, не пользуй в сетевой для боевых полей убьёт. Или можно использовать, но
ТОЛЬКО в этом случае, для боевых полей.
Я понял, что:
Quote:В сетевой состояние генератора игрой сотни раз пересылается туда-сюда
но на втором ПК не будет же таких же боевых полей, потому что
Human VS Human не играю...
Поэтому:
Quote:Не дай бог на каком-то компьютере хоть один лишний вызов генератора без такого же вызова на другом — и всё
Мне не страшно или же...?? [Для рессивера !!BA:B]