S-Li wrote:Correct me if I'm wrong but it seems you've made it so it no longer stores a complete record of everything over the course of playing time (as the original did)
Or does it still record everything, but only the last 45 entries are visible in-game?
If the first one is correct, then whats the point?
Neither assumption is correct. WoW V2 eliminated (among others) the function TargetByName.
Previous versions of PvPLog used names from the combat log to build a list of people you had recent contact with (list was limited to 40 names), and TargetByName to gather information such as race, class, level, and guild if you or one of those people on your recent list died.
This version of PvPLog uses names from the combat log and people you manually target to build a list of people you had recent contact with (list is limited to 45 names and information). At the time you manually target them, it gathers information such as race, class, level, and guild. When you or one of those people on your recent list dies, PvPLog hopefully has the additional information in needs.
Both versions of PvPLog use this information to build a database of people (and guilds) so you have a (long term) record of wins and losses. This database is used to generate on screen (and audible) indications of your past encounters with a person. This code has not been changed.
The previous version of PvPLog searched its list of recent names linearly and thus limited that list to 40 people for performance reasons.
This version of PvPLog uses Lua's built in table access to "search" its list of 45 recent names with information. For performance reasons, it only adds the additional information to this list when needed. If the list were dramatically increased in size (i.e. why not keep information about every enemy player you ever encountered), then the problem of staleness enters into the equation. At some point, the computational load of maintaining this data will effect game play. I picked 45 as large enough to hold the information of every enemy player in AV plus a couple of "spares" but hopefully small enough to not effect game play.
In version 2.0.2, I am now retaining this recent list across player deaths, zone changes, and sessions. I am hoping that I will not have a staleness issue to deal with. I am also hoping that 45 is small enough as to not effect game play. By retaining the list longer, I will hopefully have the data necessary to record wins and losses more often. There's a lot of "hope" in this paragraph because I decided to publish this code before all of these questions are completely answered by my own testing.
The weakness of this new scheme is that if you get "one-shoted", you are unlikely to have targeted the person that killed you. I am debating whether to add "sparse" entries to the long term database, and if so, will have to verify (and modify) all the code that deals with that database to handle the existance of "sparse" entries.
It might surprise you to know that I'm not a hard core PvPer. The private version of PvPLog I was using did not capture duel information nor did it capture any information in the battlegrounds. My database was confined to only people from world PvP encounters, and was primarily a list of those people who had "ganked" me in the past. I added features to my version that allowed me to query across characters on a realm so that when my "less experienced" character was ganked and my "more experienced" character came to their defense, I could make sure I was seeking revenge on the right person(s).
My future plans for PvPLog are first to get this version stable restoring as many existing features as possible given the new Blizzard restrictions. Next, I will add some of the features of my private version (which had a small user base other than myself). Last, I will use input from this hopefully larger user community to determine what needs to be done to make PvPLog the premier addon in its class.
I will need help from this community to be successful. Testing on a larger scale than one person can accomplish. Good bug reports when things go wrong. Bugs and feature requests will all be taken seriously, but I can't guarantee they all will be fixed or implemented! I'll do my best.
Regards,
Brad