Как сделать?
…
Возможно стоит реорганизавать всё и создать нормальный FAQ на главной страничке
Последний из Гаяр,
да нет, почистить от оффтопа можно бы. А так тема актуальная всегда. Присутствие в ней вопросов из других тем не помешает.
А я думал что-то поломалось, Нексу написал))
Здравствуйте, друзья! Я пытаюсь создать нелинейное РПГ с немалым миром и интересными квестами, которые чаще всего будут оборачиваться против самого игрока. Например, какой-нибудь простой квест на убийство скелета ВНЕЗАПНО закончится тем, что вы поймаете гангрену, а (развитие в игре на уровне средневековья) вылечить ее - дело, ох, не простое. Это пример, немного примитивный.
Дело в том, что я не очень-то программист, более писатель. И у меня проблема, которую, надеюсь, вы мне поможете разрешить - я не знаю, как сделать адекватную боевую систему, чтобы мне и самому было понятно. Я смотрел, что делали другие, но целиком и полностью мне это не подходило, либо я не понимал, что к чему. У меня уже есть наработки по этому поводу, которые вам выкладываю:
Во-первых, у персонажа есть 2 тратящиеся характеристики - здоровье и концентрация. Со здоровьем все понятно, а концентрация - это такой зверь, который нужен, чтобы произносить заклинания. Эти характеристики восстанавливаются во сне или со временем. Пример реализации заклинания:
Spoiler
! ammo - это и есть концентрация
$magica = input('Введите заклинание')
if $magica = 'киин' and intel > 1 and ammo > 1:
hhealth = hhealth + 4
ammo = ammo - 2
*PL 'Вы ощутили прилив сил. Восстановленно 4 пункта здоровья. Ваше здоровье <<hhealth>>.'
elseif $magica = 'ортос киин ровул' and intel > 7 and ammo > 14:
ammo = ammo - 15
hort = 25
'Между вами и врагом расстилается зримая желтая преграда, которая задерживает удар врага'
!... и много-много заклинаний
else
msg 'Заклинание не удалось'
end
Во-вторых, есть характеристики сила, ловкость, скорость, интеллект и другие (это можно поменять). Сила и ловкость, и скорость определяют урон врагу, кроме урона от оружия, а интеллект нужен для того, чтобы использовать заклинание, ну, ограничить игрока. К примеру, если игрок узнает заклинание замедления времени, он не сможет его применить, пока интеллект не достигнет нужного уровня развития. В моем маленьком демонстрационном коде переменная intel - это и есть интеллект.
А теперь мой к вам вопрос - как реализовать боевую систему, чтобы все это было адекватно? То есть, чтобы враги были не слабаками, но и игрок мог победить?
valera_anafema:
А теперь мой к вам вопрос - как реализовать боевую систему, чтобы все это было адекватно? То есть, чтобы враги были не слабаками, но и игрок мог победить?
Ну, рандомный разброс урона, вероятность попадания, вероятность пробоя брони.
valera_anafema,
не совсем ясно, что нужно. Дизайн боевой системы? Как организовать баланс? Какие формулы использовать для вычисления урона? Или что-то ещё?
Если боевая система с кликовым дизайном (т.е., допустим, игрок может выбрать из списка ударов и тыкнуть в один из них), то мне нравится вот такая формула для вычисления наносимого ущерба:
ИТОГОВЫЙ_УЩЕРБ = ЗАЯВЛЕННЫЙ_УЩЕРБ - (ЗАЯВЛЕННЫЙ_УЩЕРБ * ЗАЯВЛЕННАЯ_ЗАЩИТА)/(ЗАЯВЛЕННЫЙ_УЩЕРБ + ЗАЯВЛЕННАЯ_ЗАЩИТА)
, где ЗАЯВЛЕННЫЙ_УЩЕРБ - это суммарно: ущерб от оружия + бонусы от силы, ловкости и проч.; ЗАЯВЛЕННАЯ_ЗАЩИТА - суммарно: защита, которую дают доспехи, + бонусы от физических характеристик противника; ИТОГОВЫЙ_УЩЕРБ - непосредственно сколько отнимается из здоровья противника.
Реализовать это довольно просто, и особо можно не заморачиваться за баланс, корректируя характеристики NPC по ходу написания игры. Эта формула позволяет существам наносить ущерб, даже если защита существенно превышает заявленный ущерб, и наоборот, если заявленный ущерб будет в значительной степени превосходить защиту, защита всё равно будет немного снижать ущерб.
Для примера вот табличка, где подсчитаны, какой силы повреждения будут в тех или иных сочетаниях защиты/ущерба:
Spoiler
| заявленный ущерб | заявленная защита | итоговый ущерб |
|---|---|---|
| 100 | 3900 | 3 |
| 200 | 3800 | 10 |
| 300 | 3700 | 23 |
| 400 | 3600 | 40 |
| 500 | 3500 | 63 |
| 600 | 3400 | 90 |
| 700 | 3300 | 123 |
| 800 | 3200 | 160 |
| 900 | 3100 | 203 |
| 1000 | 3000 | 250 |
| 1100 | 2900 | 303 |
| 1200 | 2800 | 360 |
| 1300 | 2700 | 423 |
| 1400 | 2600 | 490 |
| 1500 | 2500 | 563 |
| 1600 | 2400 | 640 |
| 1700 | 2300 | 723 |
| 1800 | 2200 | 810 |
| 1900 | 2100 | 903 |
| 2000 | 2000 | 1000 |
| 2100 | 1900 | 1103 |
| 2200 | 1800 | 1210 |
| 2300 | 1700 | 1323 |
| 2400 | 1600 | 1440 |
| 2500 | 1500 | 1563 |
| 2600 | 1400 | 1690 |
| 2700 | 1300 | 1823 |
| 2800 | 1200 | 1960 |
| 2900 | 1100 | 2103 |
| 3000 | 1000 | 2250 |
| 3100 | 900 | 2403 |
| 3200 | 800 | 2560 |
| 3300 | 700 | 2723 |
| 3400 | 600 | 2890 |
| 3500 | 500 | 3063 |
| 3600 | 400 | 3240 |
| 3700 | 300 | 3423 |
| 3800 | 200 | 3610 |
| 3900 | 100 | 3803 |
Aleks Versus, ну ты объяснил :) Я вот ничего не поняла. А таблица только ещё больше всё запутала.
Хотя из первого поста действительно не совсем понятно, что нужно конукретно в боевой системе.
Ajenta,
а мы вроде бы уже обсуждали дизайны боёвок. В теме “Текстовые РПГ”, если не ошибаюсь. Надо хотя бы время от времени туда чего постить. Интересная тема, полезная.
Есть несколько прекрасных ролевых боевых систем, которые можно использовать при создании РПГ, чтобы не изобретать велосипед. Навскидку я могу назвать D&D, Мир тьмы, Седьмое море, ужас Аркхема… По всему этому в сети есть чудесные книги, которые подробно расписывают каждую боевую систему. Рекомендую ознакомиться.
Большое спасибо Вам за такой быстрый ответ, друзья! У меня есть 3 вида атак, уворот и 1 заклинание. После каждого моего хода ходят противники. Каждый вид атаки заточен брать большее от какой-то из характеристик. Соответственно, сильная атака будет сильнее, если игрок сильный, а быстрая, если быстрый. Если игрок ни точный, ни сильный, то тут есть стандартная атака, которая исходит от среднего урона, не имея бонусов. Сейчас поковырял разные игры, где был хоть какой-то бой и собрал нечто. Простой файл, показывающий бой, без каких-либо дизайнов Конечно, я и добавил сразу много очков для прокачки и более сильных противников (кроме крысы и элементаля - они слабые).
День добрый. Нужно выключить возможность сохраняться где угодно и сделать возможность сохраняться там где мне это нужно. По нажатию на кнопку или автоматически (лучше бы рассмотреть оба варианта).
Ну и сделать загрузку игры по нажатию на кнопку из “меню” тоже было бы крайне не плохо. Встречал такую возможность в паре игр раньше. Подскажите пожалуйста какие команды мне использовать для реализации подобного?
NOSAVE - если её значение отлично от 0, то сохранение состояния игры пользователем невозможно.
http://wiki.qsp.su/help:modules
Фактически следует выключить возможность сохранения в начале игры и включать только там, где нужно.
Выключаем:
nosave = 1
включаем:
nosave = 0
При nosave = 1 команды savegame и opengame продолжают работать.
Aleks Versus, спасибо большое)
Народ, а как сделать загрузку старого сохр, т.к. у меня длинная экономическая игра и за один прием ее не пройдешь.
SneakBug8,
если тебе нужно автоматическое сохранение, см. чекпойнты.
По ошибке первой локацией создал не меню а саму игру, а надо чтоб было меню иначе как я уже писал в другой теме действие получить стартовый бонус не действует. Подскажите пожалуйста!