123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- //===== rAthena Documentation ================================
- //= Achievement Database Structure
- //===== By: ==================================================
- //= rAthena Dev Team
- //===== Last Updated: ========================================
- //= 20200220
- //===== Description: =========================================
- //= Explanation of the achievements_db.yml file and structure.
- //============================================================
- ---------------------------------------
- Id: Unique achievement ID.
- ---------------------------------------
- Group: Achievement group type. Each achievement type calls a specific objective check.
- Valid groups:
- None - Can be used for custom achievements that are given through a script with no trigger events.
- Add_Friend - Triggered when a player adds a friend.
- Adventure - Does not trigger automatically. These are triggered by the achievementcomplete script command.
- Baby - Triggered when a player becomes a baby job.
- Battle - Triggered when a player kills a monster.
- Chatting - Aegis uses this when talking to a NPC. These are triggered by the achievementupdate script command.
- Chatting_Count - Triggered when a player has a chatroom open and others join.
- Chatting_Create - Triggered when a player creates a chatroom.
- Chatting_Dying - Triggered when a player creates a chatroom and dies with it open.
- Eat - Unknown.
- Get_Item - Triggered when a player gets an item that has a specific sell value.
- Get_Zeny - Triggered when a player gets a specific amount of zeny at once.
- Goal_Achieve - Triggered when a player's achievement rank levels up.
- Goal_Level - Triggered when a player's base level or job level changes.
- Goal_Status - Triggered when a player's base stats changes.
- Job_Change - Triggered when a player's job changes.
- Marry - Triggered when two players get married.
- Party - Triggered when a player creates a party.
- Enchant_Fail - Triggered when a player fails to refine an equipment.
- Enchant_Success - Triggered when a player successfully refines an equipment.
- Spend_Zeny - Triggered when a player spends any amount of zeny on vendors.
- Taming - Triggered when a player tames a monster.
- ---------------------------------------
- Name: Achievement name. Used when sending rewards through RODEX.
- ---------------------------------------
- Targets: A list of monster names and count values that the achievement requires.
- The target count can also be used for achievements that keep a counter while not being related to monster kills.
- Capped at MAX_ACHIEVEMENT_OBJECTIVES.
- Example:
- // Player must kill 5 Scorpions and 10 Poring.
- Targets:
- - Id: 0
- Mob: SCORPION
- Count: 5
- - Id: 1
- Mob: PORING
- Count: 10
- Example 2:
- // Player must have 100 or more of ARG0 value. Using the count target value is useful for achievements that are increased in increments
- // and not checked for a total (UI_Type = 1).
- // IE: In the achievement_list.lub file, UI_Type 0 is displayed as non-incremental while 1 shows a progress bar of completion for the achievement.
- Condition: " ARG0 >= 100 "
- Targets:
- - Id: 0 // Array index value
- Count: 100
- ---------------------------------------
- Condition: A conditional statement that must be met for the achievement to be considered complete. Accepts script constants, player variables, and
- ARGX (where X is the argument vector value). The ARGX values are sent from the server to the achievement script engine on special events.
- Below are two examples of how the ARGX feature works.
- Example:
- // This function will send 1 argument (ARG0) with a value of i + 1 when a friend is added.
- achievement_update_objective(f_sd, AG_ADD_FRIEND, 1, i + 1);
- Example 2:
- // This function will send 2 arguments (ARG0 and ARG1) with values of weapon level and refine level, respectively, when an equipment is
- // successfully refined.
- achievement_update_objective(sd, AG_REFINE_SUCCESS, 2, sd->inventory_data[i]->wlv, sd->inventory.u.items_inventory[i].refine);
- ---------------------------------------
- Map: A map name that is used for the Chatting group which increments the counter based on the player's map.
- NOTICE: This option is currently disabled until the official behavior is confirmed.
- ---------------------------------------
- Dependents: A list of achievement IDs that need to be completed before this achievement is considered complete.
- Example:
- // Player must complete achievements 10001 and 10002 first.
- Dependents:
- 10001: true
- 10002: true
- // Used with the import, dependent achievements can be disabled. The player now only requires completion of achievement 10001.
- Dependents:
- 10002: false
- ---------------------------------------
- Rewards: A list of rewards that are given on completion. All fields are optional.
- Item: Item Name
- Amount: Amount of Item (Default: 1)
- Script: Bonus Script
- TitleId: Title ID
- ---------------------------------------
- Score: Achievement points that are given on completion.
|