Berserker, да я понял, спасибо.
Я изначально и имел ввиду не ГСЧ самой игры, а возможность обеспечить некий гарантированный результат выпадания "плюшек" в скриптах.

//
вопросы/решения, связанные с ГСЧ, теперь будут в отдельной теме для удобства
Можно ли из данного примера узнать какое было выбранное случайное число и исключить его дальше из случайной генерации??
Чтобы каждое заклинание точно сработало
!!VRv600:C0/3/5/15/27/31/32/35/37/41/42/43/46/53/54;
- таблица номеров заклинания первого уровня
!!VRy1:S600 R14; - случайное число в интервале 600..614
!!VRv1:Svy1; - теперь v1 хранит случайное заклинание первого уровня
Demon_dante, тогда лучше использовать массив с последующим удалением элемента из списка
либо пройтись по текущему списку, как по массиву
Как вариант - запоминать номер элемента (индекс v-переменной), который уже выпадал. Это можно сделать через массив флагов, массив других переменных или с помощью !!SN:W.
просто создать массив через SN:M или уже готовую ф-цию NewIntArray
или:
брать последнее заклинание из этого списка
ставить его на место выпавшего
уменьшить диапазон рандома на 1
данный алгоритм выглядит самым оптимальным здесь, мне кажется
Demon_dante, в этой теме есть готовый код
здесь
SergOz, на самом деле массив уже есть
работать здесь надо с v600-v614, уменьшая лишь !!VRy1 S600 R[этоЗначение];
daemon_n, вся проблема в переменных v: нужен контроль использования.
С массивом SN:M такой опасности нет.
Можно массив y-переменных.
Отдельная переменная — размер списка/длина массива. В цикле генерируем число 0..размер списка - 1. Запоминаем результат из соответствующей y-переменной массива. После чего устанавливаем массив[выпавший_индекс] = массив[размера списка - 1] и уменьшаем на один размер списка.
Или проще говоря. Стоят 14 человек в очереди. Выходит врач, бросает кубик 1-14. Выпало 3. Третий идёт на приём, 14-й занимает его место, а новый размер очереди — 13.
SergOz, где проблема-то? у нас уже зарезервирован массив
в v615 можно записать то самое число с текущим размером массива
Вот,
Berserker, понял, что я имел в виду

daemon_n, понял, но если макс. размер небольшой (до 70, скажем), то можно и с y-переменными на ЕРМ 2.
Berserker, я понял задачу так, что данные надо сохранить после выхода из ф-ции:
Либо создаётся нелокальный массив SN:M, либо используются sn:W / v-переменные
Если я ошибся в цели, то конечно подойдут y-переменные.
Если сохранять, то глобальный динамический массив лучше, согласен.
Всем спасибо, сделал по коду с прошлой странице. Работает как часы !!!
