Implementing: Achievements
Moderator: Team Members
- Ememjr
- Team Member
- Posts: 975
- Joined: Wed Mar 15, 2017 9:41 am
- EQ2Emu Server: Perseverance
Re: Implementing: Achievements
unless i can find the code xinus wrote 5 years ago to support the smaller list size, i am going to rewrite it
although i would prefer to only use AOM or higher client and not dov or coe i will let the world create achieveement packets for both client types, and the let the client version determine which packet is sent out for the for the achievement list
i know there are alway complaints that the world takes to long to start up, when the server is live emu, whould it hurt if it tok 15 minutes to start up, Live eq2 is always down an hour for an update or reboot
although i would prefer to only use AOM or higher client and not dov or coe i will let the world create achieveement packets for both client types, and the let the client version determine which packet is sent out for the for the achievement list
i know there are alway complaints that the world takes to long to start up, when the server is live emu, whould it hurt if it tok 15 minutes to start up, Live eq2 is always down an hour for an update or reboot
- Ememjr
- Team Member
- Posts: 975
- Joined: Wed Mar 15, 2017 9:41 am
- EQ2Emu Server: Perseverance
Re: Implementing: Achievements
ok so now that my issue is resolved and i got this working in DOV just fine, i will concentrate on DOV to get some of the actual tracking in place
first of all we need to have counters that kep track of this type ofthe XX Gnoll Slain, we cannot just use the achievement ID since there are
8 achiements that use this counter
we have the `character_achievements_items` that tracks the
char_id character
achiement_id
and number of items
add item id
i propose to add a table for a list of ids for thes type of info
such as
1 gnoll killed
2 collection completed
3 item crafted
4 rare harvested
etc for each type and use this id as the item id above
then in the server when a player kills a gnoll or coletes a collection we just update the the single item and it will update the gnoll killed etc
the other thing we have to account for is triggers that unlock another achievement like once you kill 25 gnolls it unlocks and make visable the 50 gnol achievemnt
i will but something to gether and submit
first of all we need to have counters that kep track of this type ofthe XX Gnoll Slain, we cannot just use the achievement ID since there are
8 achiements that use this counter
we have the `character_achievements_items` that tracks the
char_id character
achiement_id
and number of items
add item id
i propose to add a table for a list of ids for thes type of info
such as
1 gnoll killed
2 collection completed
3 item crafted
4 rare harvested
etc for each type and use this id as the item id above
then in the server when a player kills a gnoll or coletes a collection we just update the the single item and it will update the gnoll killed etc
the other thing we have to account for is triggers that unlock another achievement like once you kill 25 gnolls it unlocks and make visable the 50 gnol achievemnt
i will but something to gether and submit
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Implementing: Achievements
There is already a `character_history` table in place that is meant for stuff like this, basically tracking whatever needs to be tracked per character. It has not been used a lot so it may still need some work.
- Ememjr
- Team Member
- Posts: 975
- Joined: Wed Mar 15, 2017 9:41 am
- EQ2Emu Server: Perseverance
Re: Implementing: Achievements
does not look like the history working to well, the id is up do 915146 (auto increment) but there are only 51 entries total in it
if it can track a hundred character life time counters then ill be glad to give it a try
for instance
just about every race needs count
number of recipes combined
number of rares harvested
just to name a few
and not place in a table 1 at a time, here we whould have to go and count all the time something was killed
just ideas and thoughts
if it can track a hundred character life time counters then ill be glad to give it a try
for instance
just about every race needs count
number of recipes combined
number of rares harvested
just to name a few
and not place in a table 1 at a time, here we whould have to go and count all the time something was killed
just ideas and thoughts
-
Jabantiz
- Lead Developer
- Posts: 2912
- Joined: Wed Jul 25, 2007 2:52 pm
- Location: California
Re: Implementing: Achievements
That table has been messed with a lot so I wouldn't worry too much about the auto increment value.
In theory all you have to do is set the type/subtype and the values. Values can be whatever you want so you could use the race id for value1 and the kill count for value2 and just update that record every time you kill that race.
That said looking at the types/subtypes i think more need to be added, mainly a killed in the type.
In theory all you have to do is set the type/subtype and the values. Values can be whatever you want so you could use the race id for value1 and the kill count for value2 and just update that record every time you kill that race.
That said looking at the types/subtypes i think more need to be added, mainly a killed in the type.
- Ememjr
- Team Member
- Posts: 975
- Joined: Wed Mar 15, 2017 9:41 am
- EQ2Emu Server: Perseverance
Re: Implementing: Achievements
the ninja, lolEmemjr wrote: Thu Mar 28, 2019 1:36 pm ok i found the issue it was an extra SendAchievementsList();that was in send charinfo i commented it back out and the achiements show up
guess not arrapently even the very next toon logging in does not get the proper packet from here
master_achievement_list.masterPacket
seems to work once per reboot, not sure if its one of those mutex we dont like, or masterPacket is just going away, when a user disconnects, or camps
i was able to resolve this by adding ->copy() tothe end of these lines
Code: Select all
EQ2Packet* app = master_achievement_list[0].GetAchievementPacket()->Copy();- John Adams
- Retired
- Posts: 9684
- Joined: Thu Jul 26, 2007 6:27 am
- EQ2Emu Server: EQ2Emulator Test Center
- Characters: John
- Location: Arizona
- Contact:
Re: Implementing: Achievements
Nice work Ememjr. Did you guys find a new repo to push code to? Mine hasn't had a commit since May 2020... I'm assuming it's abandoned, or not working and no one told me. 
-
devn00b
- Team: Zombie
- Posts: 6
- Joined: Thu Oct 14, 2010 7:31 pm
Re: Implementing: Achievements
Everything is going to git (your fav I know). But SVN really is a thing of the past and git is the way. You can find it HERE should you want to look at the issues/commits (1119 as of this posting!).John Adams wrote: Sat Feb 20, 2021 10:10 pm Nice work Ememjr. Did you guys find a new repo to push code to? Mine hasn't had a commit since May 2020... I'm assuming it's abandoned, or not working and no one told me.![]()
Who is online
Users browsing this forum: No registered users and 1 guest