RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2435247 views

И даже хтмл не поможет?.. :(

Как сделать выбор случайного числа с уменьшением вероятности выбора последующего числа.
Например в 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

За идею всеравно спасибо

Aleks Versus Moderator 09.01.2013 18:32 (13 years ago)

AKA,
это ж то же самое. :D

Я не создавал локу, не использовал result и func (потому что не умею :D)

Привет всем! Есть вопрос: какие форматы картинок и звуков поддерживает AeroQSP?

Prophet,
из звуков точно поддерживается MP3(с дискретизацией 11, 22, 44). Из картинок точно поддерживается PNG и GIF. Насчёт остального точно не помню, вроде бы ещё BMP и JPG.

Кстати для вопросов по AeroQSP у нас специальная тема есть: Вопросы по AeroQSP.

Малефицист #684 15.01.2013 17:41 (13 years ago)

В разработке игры дошел до этапа создания битв, мне хотелось бы сделать их в реальном времени. Суть в том, что на экран выводиться сообщение по типу: противник атакует или противник открылся. Необходимо в течении, например 2 секунд, выбрать действие атаковать или блокировать удар. Пробовал писать код используя wait, но в таком случае все действия неактивны. Подскажите как реализовать данную систему боя, буду признателен за пример кода.

P.S. Выложил отдельный кусочек с кодом битвы, который написал, может быть надо дописать что-нибудь здесь?

Битва

Я должен сказать - битвы в реальном времени плохая идея. очень. очень.
Но сделать это ты можешь с помощью counter. Поставь ему срабатывание, скажем, раз в две секунды, и используй переменную как флаг, чтобы понять какое именно событие произошло. Читай в справке COUNTER.

Малефицист:

В разработке игры дошел до этапа создания битв, мне хотелось бы сделать их в реальном времени. Суть в том, что на экран выводиться сообщение по типу: противник атакует или противник открылся. Необходимо в течении, например 2 секунд, выбрать действие атаковать или блокировать удар.

Прямая дорога к использованию модуля “QSP: Таймер”: https://qsp.org/forum/467-qsp-tajmer-modul-dla-raboty-s-sobytiami-po-tajmeru

Малефицист,
Мини-игра “Взорви зомби” - пример использования локации-счётчика, также см. Действие по таймеру.

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

Дядюшка Ау #721 16.01.2013 08:39 (13 years ago)

Присоединяюсь к предыдущим ораторам. Плохая идея в текстовой игре реализовать бой в реальном времени. Яркий пример игра Хранители Старграда. Отличнейшая игра, просто замечательная, но ее убивает реализация боя в реальном времени. Те кто любит экшен, не выбирают текстовые игры, они выбирают богомерзкий Крузис или другую стрелялку.

Малефицист #684 27.01.2013 11:54 (13 years ago)

Как сделать, чтобы при повышении уровня персонажа (текстовое RPG) на экран выводилось окно с выбором характеристик которые игрок хочет улучшить? При выборе характеристики значение переменной отвечающей за нее должно увеличиваться, но при этом, игра должна помнить на какой локации она находилась до этого. Если с выводом окна ничего не получится, то какие есть альтернативные варианты осушествления данной идеи?

Aleks Versus Moderator 27.01.2013 14:09 (13 years ago)

Пробовал делать с помощью 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

Вызывать эту локацию нужно в месте повышения уровня.

Log in or Register to post comments.