Zeiyan Posted November 17, 2019 Group: Members Topic Count: 49 Topics Per Day: 0.01 Content Count: 275 Reputation: 23 Joined: 01/06/13 Last Seen: April 26, 2020 Share Posted November 17, 2019 Good day, I'm customizing my achievement system and here are my codes: Achievement_db.yml - ID: 240001 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 1" - ID: 240002 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 2" Dependent: - Id: 240001 - ID: 240003 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 3" Dependent: - Id: 240002 - ID: 240004 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 4" Dependent: - Id: 240003 - ID: 240005 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 5" Dependent: - Id: 240004 - ID: 240006 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 6" Dependent: - Id: 240005 - ID: 240007 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 7" Dependent: - Id: 240006 - ID: 240008 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 8" Dependent: - Id: 240007 - ID: 240009 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 9" Dependent: - Id: 240008 - ID: 240010 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 10" Condition: " AchievementLevel >= 10 " Dependent: - Id: 240009 - ID: 240011 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 11" Dependent: - Id: 240010 - ID: 240012 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 12" Dependent: - Id: 240011 - ID: 240013 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 13" Dependent: - Id: 240012 - ID: 240014 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 14" Dependent: - Id: 240013 - ID: 240015 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 15" Dependent: - Id: 240014 - ID: 240016 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 16" Dependent: - Id: 240015 - ID: 240017 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 17" Dependent: - Id: 240016 - ID: 240018 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 18" Dependent: - Id: 240017 - ID: 240019 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 19" Dependent: - Id: 240018 - ID: 240020 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 20" Dependent: - Id: 240019 Problem is i am not getting any achievements when getting to the next achievement level. I looked around in source and it looks good to me. This one below should be the one awarding the achievement level correct? int *achievement_level(struct map_session_data *sd, bool flag) { nullpo_retr(nullptr, sd); sd->achievement_data.total_score = 0; for (int i = 0; i < sd->achievement_data.count; i++) { // Recount total score if (sd->achievement_data.achievements[i].completed > 0) sd->achievement_data.total_score += sd->achievement_data.achievements[i].score; } int left_score, right_score, old_level = sd->achievement_data.level; for( sd->achievement_data.level = 0; /* Break condition's inside the loop */; sd->achievement_data.level++ ){ std::shared_ptr<s_achievement_level> level = achievement_level_db.find( sd->achievement_data.level ); if( sd->achievement_data.total_score > level->points ){ std::shared_ptr<s_achievement_level> next_level = achievement_level_db.find( sd->achievement_data.level + 1 ); // Check if there is another level if( next_level == nullptr ){ std::shared_ptr<s_achievement_level> level = achievement_level_db.find( sd->achievement_data.level ); left_score = sd->achievement_data.total_score - level->points; right_score = 0; // Increase the level for client side display sd->achievement_data.level++; break; }else{ // Enough points for this level, check the next one continue; } } if( sd->achievement_data.level == 0 ){ left_score = sd->achievement_data.total_score; right_score = level->points; break; }else{ std::shared_ptr<s_achievement_level> previous_level = achievement_level_db.find( sd->achievement_data.level - 1 ); left_score = sd->achievement_data.total_score - previous_level->points; right_score = level->points - previous_level->points; break; } } static int info[2]; info[0] = left_score; // Left number info[1] = right_score; // Right number if (flag && old_level != sd->achievement_data.level) { // Give AG_GOAL_ACHIEVE achievement_update_objective( sd, AG_GOAL_ACHIEVE, 0 ); } return info; Is there a database / table or any way we can save achievement "experience/scores" and also current achievement level? Quote Link to comment Share on other sites More sharing options...
0 Zeiyan Posted November 23, 2019 Group: Members Topic Count: 49 Topics Per Day: 0.01 Content Count: 275 Reputation: 23 Joined: 01/06/13 Last Seen: April 26, 2020 Author Share Posted November 23, 2019 Is this a bug or working as intended? Quote Link to comment Share on other sites More sharing options...
Question
Zeiyan
Good day,
I'm customizing my achievement system and here are my codes:
Achievement_db.yml
- ID: 240001 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 1" - ID: 240002 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 2" Dependent: - Id: 240001 - ID: 240003 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 3" Dependent: - Id: 240002 - ID: 240004 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 4" Dependent: - Id: 240003 - ID: 240005 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 5" Dependent: - Id: 240004 - ID: 240006 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 6" Dependent: - Id: 240005 - ID: 240007 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 7" Dependent: - Id: 240006 - ID: 240008 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 8" Dependent: - Id: 240007 - ID: 240009 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 9" Dependent: - Id: 240008 - ID: 240010 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 10" Condition: " AchievementLevel >= 10 " Dependent: - Id: 240009 - ID: 240011 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 11" Dependent: - Id: 240010 - ID: 240012 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 12" Dependent: - Id: 240011 - ID: 240013 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 13" Dependent: - Id: 240012 - ID: 240014 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 14" Dependent: - Id: 240013 - ID: 240015 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 15" Dependent: - Id: 240014 - ID: 240016 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 16" Dependent: - Id: 240015 - ID: 240017 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 17" Dependent: - Id: 240016 - ID: 240018 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 18" Dependent: - Id: 240017 - ID: 240019 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 19" Dependent: - Id: 240018 - ID: 240020 Group: "AG_GOAL_ACHIEVE" Name: "Reaching Level 20" Dependent: - Id: 240019
Problem is i am not getting any achievements when getting to the next achievement level. I looked around in source and it looks good to me.
This one below should be the one awarding the achievement level correct?
Is there a database / table or any way we can save achievement "experience/scores" and also current achievement level?
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.