5.5 KiB
Achievement Database Structure
Table of contents
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
. See
examples below:
Player must kill 5 Scorpions and 10 Porings
Targets:
- Id: 0
Mob: SCORPION
Count: 5
- Id: 1
Mob: PORING
Count: 10
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. See examples below:
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);
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. See examples below:
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.
Example
- Id: 99
Group: Baby
Name: Example Achieve
Targets:
- Id: 0
Mob: XM_CELINE_KIMI
Count: 1
Condition: " BaseLevel >= 99 "
Map: prontera
Dependents:
- Id: 100
Rewards:
Item: Shabby_Purse
Amount: 10
Script: " specialeffect2 EF_BLESSING; sc_start SC_BLESSING,30000,10; "
TitleId: 1000
Score: 10