Skip to content
RenPy achievements module
Branch: master
Clone or download
OlegWock Merge pull request #2 from QWxleA/master
Streamlined (english) README text
Latest commit 5d8cc0f Sep 17, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md Streamlined (english) README text Sep 16, 2017
achievement.rpy Small perfomance fix Jul 30, 2016
screenshot.png Uploaded screenshot Aug 15, 2016

README.md

Roselia-achievements

screenshot

This is small module for RenPy, implenting custom achievements. It is being developed as a part of Project Roselia, that [will] contain other small scripts with different features for RenPy.

It has:

  • One-time achievements
  • Achievements with progress
  • Steam compatibility (in future)
  • The ability to change the achievement -screen and -animation
  • A simple architecture, that allows you to add new features
  • Works over standard achievement

How to use

Attention!!! This module uses persistent data, so after any change you must clear persistent data.

To integrate in your project:

  • Copy the achievement.rpy file in your project folder
  • In the achievement.rpy file (line 90; after 'Define your achievements here' comment) add your achievements. There are two examples. Achievements use the below structure:
# Define your achievements here
persistent.achievements_dict = {"name": {"type": 0, 
                                         "title": "",
                                         "text": "",
                                         "icon": "images/icons/ach.png"
                                        },
                                "name": {"type": 1,
                                         "title": "",
                                         "text": "",
                                         "icon": "images/icons/ach.png",
                                         "cur_prog": 0,
                                         "max_prog": 33
                                        }
                                }

Explanation:

name — identifier, the user will not see this

type — 0 or 1, 0 — one-time achievement, 1 — achievement with progress

title — notification title

text — notification description

icon — icon path, recommended: 96х96 pixels

cur_prog — only used if type=1, current progress

max_prog — only used if type=1, maximal progress

Usage

To implement, use one of these functions:

Get_achievement:

$ get_achievement(name, trans=achievement_transform) — to award a one-time achievement

trans — animation for the achievement

Update_achievemnt:

$ update_achievement(name, step=1, trans=achievement_transform) — to update an achievement with progress

step — how much should be added, by default =1

trans — animation for the achievement

After that you can use basic functionality.


In russian / на русском

Модуль для RenPy для интеграции достижений. Разрабатывается в рамках проекта Roselia, в котором я пишу небольшие и удобные расширения для RenPy.

  • Одноразовые достижения
  • Достижения с прогрессом
  • Совместимость с Steam (который, для RenPy пока недоступен)
  • Возможность задавать свои достижения, свою анимацию
  • Архитектура построена таким образом, что легко расширяется для дополнительных функций. Например, комната с достижениями, категории достижений
  • Работает на основе встроеного механизма achievement

Как пользоваться

ВНИМАНИЕ! УВАГА! АХТУНГ! ВОРНИНГ! Достижения используют постоянные данные (persistent), поэтому после каждого изменения не забывайте очищать постоянные данные.

Интегрировать систему можно в три простых шага.

  • Для начала вам нужно положить файл achievemnt.rpy в свой проект, RenPy подключит его автоматически.
  • В самом файле achievemnt.rpy в 90ой строке, после комментария "Define your achievements here" стоит добавить нужные вам достижения. Там есть два примера. Достижение должно иметь такую струтуру:
# Define your achievements here
persistent.achievements_dict = {"name": {"type": 0, 
                                         "title": "",
                                         "text": "",
                                         "icon": "images/icons/ach.png"
                                        },
                                "name": {"type": 1,
                                         "title": "",
                                         "text": "",
                                         "icon": "images/icons/ach.png",
                                         "cur_prog": 0,
                                         "max_prog": 33
                                        }
                                }

А теперь разложим по полочкам.

name — индентификатор. Я рекомендую использовать короткие имена на английском. Оно используется для индентификации, пользователь его не видит

type — 0 или 1, 0 — одноразовое достижение, 1 — с прогрессом

title — Заголовок (показывается пользователю в уведомлении)

text — Описание (показывается пользователю в уведомлении)

icon — путь к иконке. Я рекомендую размер 96х96 пикселей

cur_prog — только если type=1. Текущий прогресс

max_prog — только если type=1. Сколько нужно что бы получить достижение

  • В нужном месте сценария вызвать функцию:

$ get_achievement(name, trans=achievement_transform) — для достижения одноразовой ачивки

$ update_achievement(name, step=1, trans=achievement_transform) — для обновления достижения с прогрессом. step — сколько нужно прибавить, по умолчанию =1, trans — анимация для ачивки

После этого вы сможете использовать базовый функционал. Для расширения же понадобится знание Python.

You can’t perform that action at this time.