Создавая эту наработку, я поставил перед собой 2 вопроса:
1) Как организовать проверку на присутствие всех необходимых элементов
сборки? Ведь для сборки коллекций используются настоящие предметы, а для
подбора и покупки - удаляемые пустышки.
Я решил проблему так:
- Сопоставляю пустышку с предметом, который она заменяет.
- Проверяю, в какой сборке он может участвовать.
- Для тех сборок, в которых предмет участвует - проверяю кол-во
недостающих предметов, если кол-во = 1, то сравниваю, равен ли тип недостающего
предмета типу предмета, который заменяет пустышка, если да - собираем предмет,
если нет - идем дальше.
- Если везде пролетаем, то пересоздаем предмет, если он не влезает в
инвентарь, то он падает на землю.
2) Как организовать учёт выпавших, выложенных и потерянных предметов? Тут я
предпочел такой вариант:
- Каждые 0.04 сек.
триггер сканирует карту и если находит предмет не пустышку, то заменяет его на
пустышку.
Вот как то так :)
Не шедевр и утечки есть, но это не последняя версия и сделана для общего
доступа.
|