Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Боевая система

Боевая система

Поделиться
joniksterПостоялецwww7 мая 201615:52#0
Приветствую всех.
Интересуют 2 вопроса.
1. Что нужно знать в PHP/JS, что бы разработать тот бой, о котором будет написано ниже;
2. Помогите еще пожалуйста с алгоритмом.
Вот есть игра "Лаборатория" labwar.ru. Там бой. О системе боя, вот копирую из справки:
Бой представлен двумерной системой, в которой вы можете передвигаться (по оси Y от 0 до 20), стрелять из огнестрельного оружия и арбалетов, сходиться в рукопашном бою, проставляя блоки и применяя различные навыки, кидать во врагов гранаты и применять стимпакеты для лечения, звать в бой животных (только фракция доггеры) и клановых боевых дроидов.

img
Окно боя. Два выпадающих списка - враги и перемещение. Нанести удар в рукопашном бою можно только находясь в одной позиции с противником. см. ниже

img
Cхема боя. Противник-бот начинает бой всегда с позиции 0, вы находитесь на позиции 20. за ход вы можете сделать ход вверх по оси Y или вниз. Т.е. нажав на Бег -2 вы переместитесь из позиции 20 в позицию 18. В это же время противник переместится из позиции 0 на позицию 2. Дабы ускорить процесс боя введена кнопка "Ход", нажав на которую противник не будет ожидать 27 секунд пока вы сделаете свой ход, а сразу будет к вам приближаться.


Стрельба ведется на дистанции, указанные в описании к конкретному оружию, т.е. при стрельбе на заведомо дальнее расстояние вы не попадете.
Стрелять и бить можно в голову, корпус и ноги.

Корпус - наилучший шанс попасть, самое низкое повреждение
Ноги - меньший шанс попасть, повреждение выше, шанс 10% сделать противнику перелом на 2 часа (скорость в бою снижается вдвое)
Голова - самый маленький шанс попасть, очень серьезные повреждения

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

Блоки гасят как физический урон, так и позволяют уходом погасить большую часть огнестрельного урона.

Броня также делится на 3 части, т.е. при попадании в голову будет учитываться только броня, даваемая шлемом, в корпус - одеждой и броней, в ноги - штанами и обувью, соответственно. За исключением того, что имплантанты, увеличивающие броню, увеличивают общий показатель брони для всех частей тела.

Стрелки разом теряют до 50% шанса попасть если противник подступает на дистанцию рукопашного боя, т.е. в ту же позицию, где находится и стрелок.

Гранаты действуют на две позиции, на ту в которую кидается и предыдущую. Урон от гранаты получают все персонажи, находящиеся в этих позициях, как союзники, так и противники.

Также вам доступен боевой инвентарь, который ограничен 4-мя вещами на выбор, будь то 4 магазина патронов, или, к примеру, 3 гранаты и стимпакет.
Вот примеры логов двух боёв.
PVE бой:
00:42:31 На Zhuk_v_muraveynike [23] (15/50) нападает Лидер сектантов [n/a] (70/70). Бой начался
00:42:33 Сектант [n/a] (50/50) идет на п.2
00:42:33 Сектант [n/a] (50/50) идет на п.2
00:42:33 Лидер сектантов [n/a] (70/70) идет на п.2
00:42:34 Сектант [n/a] (50/50) идет на п.4
00:42:34 Сектант [n/a] (50/50) идет на п.4
00:42:34 Лидер сектантов [n/a] (70/70) идет на п.4
00:42:35 Сектант [n/a] (50/50) идет на п.6
00:42:35 Сектант [n/a] (50/50) идет на п.6
00:42:35 Лидер сектантов [n/a] (70/70) идет на п.6
00:42:35 Zhuk_v_muraveynike [23] (15/50) идет на п.19
00:42:37 Сектант [n/a] (50/50) идет на п.8
00:42:37 Сектант [n/a] (50/50) идет на п.8
00:42:37 Лидер сектантов [n/a] (70/70) идет на п.8
00:42:41 Сектант [n/a] (50/50) идет на п.10
00:42:41 Сектант [n/a] (50/50) идет на п.10
00:42:41 Лидер сектантов [n/a] (70/70) идет на п.10
00:42:42 Сектант [n/a] (50/50) идет на п.12
00:42:42 Сектант [n/a] (50/50) идет на п.12
00:42:42 Лидер сектантов [n/a] (70/70) идет на п.12
00:42:44 Сектант [n/a] (50/50) идет на п.14
00:42:44 Сектант [n/a] (50/50) идет на п.14
00:42:44 Лидер сектантов [n/a] (70/70) идет на п.14
00:42:48 Сектант [n/a] (50/50) идет на п.16
00:42:48 Сектант [n/a] (50/50) идет на п.16
00:42:48 Лидер сектантов [n/a] (70/70) идет на п.16
00:42:51 Zhuk_v_muraveynike [23] (15/50) идет на п.17
00:42:52 Сектант [n/a] (50/50) идет на п.17
00:42:52 Сектант [n/a] (50/50) идет на п.17
00:42:52 Лидер сектантов [n/a] (70/70) идет на п.17
00:43:00 Zhuk_v_muraveynike [23] (15/50) призывает в бой Леопард Kotik (70/70)
00:43:01 Леопард Kotik [n/a] (70/70) наносит урон по ногам на 18 Лидер сектантов [n/a] (52/70)
00:43:14 Zhuk_v_muraveynike [23] (15/50) промахивается в голову Лидер сектантов [n/a] (52/70). П: 17
00:43:21 Сектант [n/a] (50/50) промахивается в голову Zhuk_v_muraveynike [23] (15/50)
00:43:21 Сектант [n/a] (50/50) промахивается в корпус Zhuk_v_muraveynike [23] (15/50)
00:43:21 Лидер сектантов [n/a] (52/70) промахивается в корпус Zhuk_v_muraveynike [23] (15/50)
00:43:21 Леопард Kotik [n/a] (70/70) промахивается в голову Лидер сектантов [n/a] (52/70)
00:43:31 Zhuk_v_muraveynike [23] (15/50) промахивается по ногам Лидер сектантов [n/a] (52/70). П: 17
00:43:39 Сектант [n/a] (50/50) промахивается в корпус Zhuk_v_muraveynike [23] (15/50)
00:43:39 Сектант [n/a] (50/50) промахивается в корпус Zhuk_v_muraveynike [23] (15/50)
00:43:39 Лидер сектантов [n/a] (52/70) наносит урон в корпус на 2 Zhuk_v_muraveynike [23] (13/50)
00:43:39 Леопард Kotik [n/a] (70/70) промахивается в корпус Лидер сектантов [n/a] (52/70)
00:43:51 Zhuk_v_muraveynike [23] (13/50) наносит удар в голову на 67 Лидер сектантов [n/a] (-15/70) Лидер сектантов выбывает из строя. Zhuk_v_muraveynike: Неееееебо коптят поездааааааа. П: 17
00:43:58 Сектант [n/a] (50/50) промахивается по ногам Zhuk_v_muraveynike [23] (13/50)
00:43:58 Сектант [n/a] (50/50) промахивается в корпус Zhuk_v_muraveynike [23] (13/50)
00:43:58 Леопард Kotik [n/a] (70/70) наносит урон в корпус на 13 Сектант [n/a] (37/50)
00:44:06 Zhuk_v_muraveynike [23] (13/50) наносит удар в голову на 53 Сектант [n/a] (-3/50) Сектант выбывает из строя. Zhuk_v_muraveynike: Неееееебо коптят поездааааааа. П: 17
00:44:14 Сектант [n/a] (37/50) промахивается в голову Zhuk_v_muraveynike [23] (13/50)
00:44:14 Леопард Kotik [n/a] (70/70) промахивается в корпус Сектант [n/a] (37/50)
00:44:21 Zhuk_v_muraveynike [23] (13/50) промахивается в корпус Сектант [n/a] (37/50). П: 17
00:44:26 Сектант [n/a] (37/50) промахивается по ногам Леопард Kotik [n/a] (70/70)
00:44:26 Леопард Kotik [n/a] (70/70) промахивается в голову Сектант [n/a] (37/50)
00:44:33 Zhuk_v_muraveynike [23] (13/50) наносит удар в голову на 60 Сектант [n/a] (-23/50) Сектант выбывает из строя. Zhuk_v_muraveynike: Неееееебо коптят поездааааааа. П: 17
00:44:41 Лидер сектантов [n/a] (-15/70:2) Сектант [n/a] (-23/50:0) Сектант [n/a] (-3/50:0) vs Zhuk_v_muraveynike [23] (13/50:180) Леопард Kotik [n/a] (70/70:33)
Zhuk_v_muraveynike - 0 опыта
PVP бой:
13:41:36 Drug_89 [15] (50/50) идет на п.2
13:41:38 Drug_89 [15] (50/50) идет на п.5
13:41:50 6LATHAYA_6 [17] (50/50) идет на п.17
13:42:53 6LATHAYA_6 [17] (50/50) идет на п.14
13:43:24 6LATHAYA_6 [17] (50/50) идет на п.11
13:44:00 6LATHAYA_6 [17] (50/50) идет на п.8
13:45:42 6LATHAYA_6 [17] (50/50) идет на п.7
13:45:51 Drug_89 [15] (50/50) идет на п.4
13:46:21 6LATHAYA_6 [17] (50/50) идет на п.5, танк
13:46:32 Drug_89 [15] (50/50) идет на п.2
13:46:53 6LATHAYA_6 [17] (50/50) отдыхает. П. 5
13:47:00 Drug_89 [15] (50/50) отдыхает. П. 2
13:47:24 6LATHAYA_6 [17] (50/50) отдыхает. П. 5
13:47:29 Drug_89 [15] (50/50) отдыхает. П. 2
13:47:54 6LATHAYA_6 [17] (50/50) отдыхает. П. 5
13:48:01 Drug_89 [15] (50/50) отдыхает. П. 2
13:48:24 6LATHAYA_6 [17] (50/50) идет на п.4, танк
13:49:13 6LATHAYA_6 атакует в прыжке!
13:49:13 6LATHAYA_6 [17] (50/50) наносит удар в корпус на 41 Drug_89 [15] (9/50). П: 2
13:49:22 Drug_89 [15] (9/50) наносит удар в корпус на 28 6LATHAYA_6 [17] (22/50). П: 2
13:49:29 Drug_89 [15] (9/50) промахивается в корпус 6LATHAYA_6 [17] (22/50). П: 2
13:49:35 6LATHAYA_6 [17] (22/50) наносит удар в голову на 54 Drug_89 [15] (-45/50) Drug_89 выбывает из строя.. П: 2
13:49:35 Drug_89 [15] (-45/50:28) vs 6LATHAYA_6 [17] (22/50:95)
6LATHAYA_6 - 1230 опыта
Ещё я сохранил 3 страницы из боя, основное поле, окно при нажатии на бота, и нанесение урона. В PVE бою, как и в PVP, после того, как человек совершит действие, до следующего хода у него 27 секунд. При нажатии на кнопку ход, если бой PVE, таймер пропадёт, а бот походит. Если не нажимать, он соответственно, будет ходить каждые 27 секунд.
Помогите плиз решить задачку!
Заранее благодарен!
labwar.zip

/ Форум / Программирование игр / Веб

2001—2017 © GameDev.ru — Разработка игр