Всем привет, вот я пишу сейчас некоторую игру. И я задался вопросом, как можно организовать отслеживание и выполнение задание пользователем.
Приведу пример, у меня есть ведро и ручей. Человеку нужно набрать для выполнения задание 5 ведер, но набор воды происходит в отдельном кусочке кода, и вот как отслеживать выполнения задания идей нету.
Можно просто привести логику в виде текста, ну или какой то схемы.
Буду рад, спасибо заранее.
Извини, но по-моему твой вопрос не имеет никакого смысла.
Не бывает такой задачи в программировании "создание задания в игре"
Есть задача "записать значение в БД"
Если ты не знаешь как добавить запис в БД, то иимено это и надо спрашивать
Если ты сам не знаешь, что хочешь спросить, и можешь только поблеять невнятное "у меня есть какой-то код, как мне его написать по-другому" то не надо задавать вопрос вообще
Задание (квест) - это слушатель действий игрока. Как только игрок совершает определенное действие, меняются текущие условия задания. В Вашем движке должен быть некий middleware, который будет слушать все действия и все активные задания и когда условия задания будут выполнены, он его отметит как завершенное и больше слушать его не будет. Когда игрок будет набирать воду, у вас в коде должно изменяться состояние задания.
Через этот middleware должны будут проходить все действия пользователя, а ядро уже, по их типу, будет определять "тип" действия (набор воды) и изменять состояние задания.
Да, я вас понял. У меня тоже была идея сделать, что то на подобии слушателя. Который будет после находится после всех основных действий и проверять. Буду думать, спасибо за идейку.
Я бы сделал событийно-ориентированную реализацию данной задачи.
То бишь каждое событие (ну, не прям каждое, а только то, которое в теории может быть заданием) отправляло оповещение о своём совершении во внешний код, а там уже решать, прибавлять прогресс к чему-то или нет.