Скриптовая система глобальных достижений для CoP Автор: @Pavel2000
Интеграция в игру:
1) Создаём файл achievements_global.script в gamedata\scripts
2) Берём оригинальный bind_stalker.script и ищем функцию actor_binder:net_spawn(data)
после строчки benchmark.main() вставляем achievements_global.init()
Должно получиться вот так
benchmark.main()
achievements_global.init()
return true
end
Всё интеграция завершена.
Принцип работы:
1)Создаём свои достижения как в оригинале: Как создавать достижения объяснять не будут уроки в интернете есть.
Мы видим что появилась дополнительная строчка achievements_global.unlock("test_achievement_1")
Данная функция после того как достижение выдалось стандартным методом автоматически создаёт файл achievements_global.dat в папке с игрой и заносит туда строчку test_achievement_1=1
Далее после того как игрок откатился на раннее сохранение или начал игру заново у него всё равно останется это достижение.
2) Добавляем свои достижения в таблицу в скрипте achievements_global.script
local achievement_info = {
test_achievement_1 = "test_achievement_1_gained",
test_achievement_2 = "test_achievement_2_gained",
}
Ну а дальше выдаём игроку достижение стандартным способом и всё должно работать.
Коротко: что за что отвечает
Выдать достижение(данный способ выдаёт достижение без уведомления):
achievements_global.unlock("test_achievement_1")
Проверить достижение:
achievements_global.has("test_achievement_1")
Снять достижение:
achievements_global.lock("test_achievement_1")
Полностью сбросить всё:
achievements_global.reset()
Надеюсь кому нибудь пригодиться)