Как сделать?
…
И даже хтмл не поможет?.. :(
Как сделать выбор случайного числа с уменьшением вероятности выбора последующего числа.
Например в rand(1,4) 1 выпадало с вероятностью 40%, 2 - 30%, 3 - 20%, 4 - 10%.
Мне конкретно это надо в случайном количестве детей у человека. Согласитесь, что людей с 1-м ребенком больше чем с 4-мя.
Я конечно знаю что это можно сделать с помощью разных условий (хотя не проверял), но есть ли какая нибудь хитрая команда?
хитрых команд нет
проще всего сделать небольшую локу
#custom_rand
r_num = rand(0,100)
if r_num < 40:
result = 1
elseif r_num < 70:
result = 2
elseif r_num < 90:
result = 3
else
result = 4
end
-
ну и использовать ее через func
Не стал заниматься извращениями и просто написал:
r = rand(0,10)
children = 4
if r < 9: children = 3
if r < 7: children = 2
if r < 4: children = 1
За идею всеравно спасибо
AKA,
это ж то же самое. :D
Я не создавал локу, не использовал result и func (потому что не умею :D)
Привет всем! Есть вопрос: какие форматы картинок и звуков поддерживает AeroQSP?
Prophet,
из звуков точно поддерживается MP3(с дискретизацией 11, 22, 44). Из картинок точно поддерживается PNG и GIF. Насчёт остального точно не помню, вроде бы ещё BMP и JPG.
Кстати для вопросов по AeroQSP у нас специальная тема есть: Вопросы по AeroQSP.
В разработке игры дошел до этапа создания битв, мне хотелось бы сделать их в реальном времени. Суть в том, что на экран выводиться сообщение по типу: противник атакует или противник открылся. Необходимо в течении, например 2 секунд, выбрать действие атаковать или блокировать удар. Пробовал писать код используя wait, но в таком случае все действия неактивны. Подскажите как реализовать данную систему боя, буду признателен за пример кода.
P.S. Выложил отдельный кусочек с кодом битвы, который написал, может быть надо дописать что-нибудь здесь?
Я должен сказать - битвы в реальном времени плохая идея. очень. очень.
Но сделать это ты можешь с помощью counter. Поставь ему срабатывание, скажем, раз в две секунды, и используй переменную как флаг, чтобы понять какое именно событие произошло. Читай в справке COUNTER.
Малефицист:
В разработке игры дошел до этапа создания битв, мне хотелось бы сделать их в реальном времени. Суть в том, что на экран выводиться сообщение по типу: противник атакует или противник открылся. Необходимо в течении, например 2 секунд, выбрать действие атаковать или блокировать удар.
Прямая дорога к использованию модуля “QSP: Таймер”: https://qsp.org/forum/467-qsp-tajmer-modul-dla-raboty-s-sobytiami-po-tajmeru
Малефицист,
Мини-игра “Взорви зомби” - пример использования локации-счётчика, также см. Действие по таймеру.
Я придерживаюсь мнения, что нет ничего хуже, чем использование реалтаймовых заданий в текстовой игре.
Присоединяюсь к предыдущим ораторам. Плохая идея в текстовой игре реализовать бой в реальном времени. Яркий пример игра Хранители Старграда. Отличнейшая игра, просто замечательная, но ее убивает реализация боя в реальном времени. Те кто любит экшен, не выбирают текстовые игры, они выбирают богомерзкий Крузис или другую стрелялку.
Как сделать, чтобы при повышении уровня персонажа (текстовое RPG) на экран выводилось окно с выбором характеристик которые игрок хочет улучшить? При выборе характеристики значение переменной отвечающей за нее должно увеличиваться, но при этом, игра должна помнить на какой локации она находилась до этого. Если с выводом окна ничего не получится, то какие есть альтернативные варианты осушествления данной идеи?
Пробовал делать с помощью msg, но так не работает. Самый простой способ написать локацию-подпрограмму с таким кодом:
$text['maintxt']=$maintxt & ! сохраняем текст из окна основного описания
$text['stattxt']=$stattxt & ! сохраняем текст из окна дополнительного описания
$text['curacts']=$curacts & ! сохраняем действия
clr & ! очищаем окно дополнительного описания
*clr & ! очищаем окно основного описания
cla & ! очищаем список действий
!!! ... выводим нужный список например ввиде ссылок... !!!
*pl '<a href="exec:здоровье+=10">Увеличить здоровье на 10</a>'
!!! ... или в виде действий ... !!!
act 'Увеличить здоровье на 10': здоровье+=10
!!! ... ну и конечно, нужно действие, возвращающее всё обратно ... !!!
act '...Закрыть...':
clr
*clr
cla
dynamic $text['curacts']
pl $text['stattxt']
*pl $text['maintxt']
end
Вызывать эту локацию нужно в месте повышения уровня.