Current time: 21.04.2024, 11:07 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ГСЧ - Генератор случайных чисел & ЕРМ
» Готовые решения, вопросы, обсуждение и т.п.
Author Message
Berserker Offline
Administrators

Posts: 16488
Post: #46

VR:T берёт остаток от деления timeGetTime (текущее время в миллисекундах в int32) на интервал генерации, что не верно, конечно же. Числа получаются смещённые.
Сделаю, скорее всего, VR:T равным VR:R и заменю, если получится, генератор.


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

Posts: 140
Post: #47

Berserker, круто, спасибо за инфу i nizkiy poklon.
(This post was last modified: 25.01.2020 21:14 by Igor.)
25.01.2020 21:13
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #48

(25.01.2020 20:52)Berserker Wrote:  ...что не верно, конечно же. Числа получаются смещённые.
Чет не понял. А можно подробнее? VR:T не дает равномерное распределение или не привязан ко времени?

Так-то задача была в исключении возможности просчитать генератор (повторить последовательность).


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
25.01.2020 22:01
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #49

В принципе, даёт, каюсь. Но это не ГСЧ от слова совсем. Номер миллисекунды как база.
Невозможность предсказать и так есть априрори. Невозможность повторить при загрузке лечится через VR:R с автосинхронизацией на всех клиентах.


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

Posts: 325
Post: #50

Berserker! Команды для генерации рабочие? Если вдруг работает, то простой пример в две строчки, пожалуйста!


The dreams you kill will break your heart
(This post was last modified: 15.04.2020 09:50 by ElfbI.)
15.04.2020 09:48
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #51

ElfbI, а какая стоит задача?


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

Posts: 325
Post: #52

Berserker, Ну какая задача у гсч, та и стоит, - генерация случайных значений, например двоичного значения с равномерным распределением, выглядит довольно вкусно.


The dreams you kill will break your heart
16.04.2020 04:18
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #53

Смотри. ГСЧ в последних версиях Эры хороший в VR:T. Он с мультиплеером не дружит, но это Вихрь Мерсена, можешь почитать в вики.
Если же тебе нужно, чтобы, например, из 10 генераций значения 1-9 среднее было строго 5 (а сумма 50), то тогда по адресу.
Либо другой пример. Гарантированно 2 из 7 раз чтобы срабатывало какое-то свойство. Тогда тоже по адресу.
Но библиотека устарела и её нужно обновлять, если она хранит данные в сохранёнках.


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

Posts: 325
Post: #54

Berserker, ясно, спасибо. На новую эру когда еще перейду. .


The dreams you kill will break your heart
(This post was last modified: 16.04.2020 09:36 by ElfbI.)
16.04.2020 09:31
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #55

Так для размышлений, я в трансцендентных комбо артефактах просто сделал ЕРМ обертку над стандартным ГСЧ, которая позволяет параметрами передавать список исключений. В целом получается, что можно получить псевдослучайную последовательность в которой последние 13 чисел (почти)гарантировано не повторяются.
20.04.2020 12:36
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 325
Post: #56

Zur13, спасибо за информацию, гляну на досуге


The dreams you kill will break your heart
21.04.2020 00:43
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #57

Если используется VR:T, то генератор Вихрь Мерсенна, его в Эре 3 можно вручную синхронизировать, задав начальное значение генерации. А может стоит вообще ввести проверку на сетевую игру и в ней все использования T автоматически считать за R? Мы получим прекрасный рандом в скриптах в сингле и стабильность в мульте. Разве что состояние генератора не сохраняется в файлах сохранения. Можно, конечно, принудительно сохранять/загружать.


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

Posts: 462
Post: #58

Berserker, погуглил значение - крутяк! Всегда нравились такие вещи, жаль, что мало понимаю в глубокой терминологии, но основы ухватил. Ореол вечности в таких вещах интригует, язык вселенной.

Вопрос по сути игры - если я будут T использовать для генерации Боевых полей в сетевой, это скажется на синхронизации? С условием, что игр Человек Vs Человек не будут вестись? Или можно наплевать в данном конкретном случае применения?
02.09.2020 21:46
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #59

Night, генератор хороший, много где используется.
В сетевой состояние генератора игрой сотни раз пересылается туда-сюда, чтобы избежать рассинхронизации. Не дай бог на каком-то компьютере хоть один лишний вызов генератора без такого же вызова на другом — и всё. Потому видится мне, что как раз для сетевой игры нужно VR:T делать по действию аналогичным VR:R. Автоматически избавляемся от багов малой кровью. Я ещё поищу генератор на замену оригинальному.

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


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

Posts: 462
Post: #60

Ооох, и этот человек, спрашивает, почему он злюка... Ну место тролля у нас занято, остальные тоже заполняются или заняты уже, да и от тебя Berserker, слишком много полезного и незаменимого, но после таких ответов...Только злюка Sm

Мне пожалуйста простой логический оператор True/false - нет, не пользуй в сетевой для боевых полей убьёт. Или можно использовать, но ТОЛЬКО в этом случае, для боевых полей.
Я понял, что:
Quote:В сетевой состояние генератора игрой сотни раз пересылается туда-сюда
но на втором ПК не будет же таких же боевых полей, потому что Human VS Human не играю...

Поэтому:
Quote:Не дай бог на каком-то компьютере хоть один лишний вызов генератора без такого же вызова на другом — и всё

Мне не страшно или же...?? [Для рессивера !!BA:B]
(This post was last modified: 02.09.2020 23:32 by Night.)
02.09.2020 23:30
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