Среда, 27 Ноября 2024, 08:25

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Боевая система типа БК на CodeIgniter
HerrPotapovДата: Понедельник, 30 Июля 2012, 18:34 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Судя по всему людям особо нечего сказать по поводу использования MVC-фреймворка для разработки игры.
Ладно.
Пойдем сложным путем =)

В этой теме попытаюсь написать простенькую боевую систему похожую на ganjawars.ru.

Первый пост теоретический, распишу что и как буду делать.

Итак, поехали.
Бой 1х1, пошаговый. Возможности игроков:
1. Уклонение (влево/на месте/вправо)
2. Выстрел (влево/по центру/вправо)

Два игрока имеют одинаковые характеристики:
1. Оружие - урон 2-10, очередь 3 пули
2. Броня - голова (-2 урона), туловище (-5 урона)
3. Здоровье - 20

Если направление вражеского выстрела и уклонения игрока совпали, шанс на попадание пули - 90%, если не совпали - 20%.
Если пуля попала, шанс 40% на попадание в туловище, 25% - в ноги или руки и 10% - в голову.

Получаем одно или несколько попаданий с рандомным уроном от 2-10 (см. оружие игроков). От этого значения вычитаем защиту броней.

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

Теперь непосредственно к технической реализации.
Таблицы БД:
1. player (player_id, battle_id, team, login, hp, dmg_min, dmg_max, shots, helmet, vest) - таблица для участников боя
2. battle (battle_id, time_start, time_end, is_over, turn, turn_ends) - основные параметры боя
3. shot (battle_id, player_id, target_id, turn, direction) - выстрелы игроков
4. evasion (battle_id, player_id, turn, direction) - уклонения игроков
5. hits (battle_id, player_id, target_id, turn, damage) - попадания и нанесенный ими урон

Для работы с базой данной потребуются модели:
1. player (отвечает за игроков):
- создание нового игрока
- изменение параметра здоровья
2. battle (отвечает за бой, выстрелы, уклонения и попадания):
- создание нового боя
- редактирование боя
- создание нового "выстрела"
- создание нового "уклонения"
- создание нового "ранения"

Код, относящийся к боевой системе, думаю оформить в виде библиотеки.
Функционал библиотеки:
1. Начало нового боя (добавление в него участников)
2. Завершение боя (если здоровье одного или нескольких игроков равно 0)
3. Проверка оставшегося до конца хода времени
4. Подсчет результатов хода

Апдейт первый
Модель battle


Модель player


Discord: alpotapov#1741

Интервью с разработчиком WarCastle - Читаем и вникаем!


Сообщение отредактировал HerrPotapov - Понедельник, 30 Июля 2012, 19:10
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг