Rift Reputation is a fully functional dynamic player reputation system designed using the new messaging API released in 1.8. (Will NOT work until 1.8 is released) I'll explain how it works: Step 1) you encounter a player that is a jerk, maybe they ninja'd an item in a raid you were in with them or maybe they're an AWESOME team player. Either way you want other players to know what you think about this person. Step 2) you rate them UP, NEUTRAL, or DOWN, down being reserved for the worst offenders that you would not want to group with again, up is for is people that go out of there way to be good/nice/skilled players who you would definitely like to group with again. NEUTRAL is for everyone else. Step 3) Rift Reputation will silently broadcast your votes of players in the background to other people nearby (within /yell distance) who also have this addon. Your scores will get weighted by the person you are broadcasting to based on your voting history and your reputation that you have with the receiver. Step 4) At a later date you want to start a PUG group, before sending out invites you can look up a players reputation and make a judgment on if you want this person in your group or not! Overview: Current Features: - Voting other players UP, DOWN, or NEUTRAL (not yourself). - Broadcasting your votes to others around you (not all votes you have, just votes that you've made). - Drag-able UI elements that show your target's reputation. - Any votes that you receive or make will be weighted carefully, not all votes are equal (see notes below on weighting system). - You are only allowed to vote for players that you are targeting to prevent fake entries. - You are only allowed to vote for lvl 50 players, and only if you are level 50 to prevent people from making alts just for spam voting. - You are only allowed to vote for players on your shard, and of your same faction. - Reputations and votes will not be shared between alts and mains this is a limitation of the current API system. Alts will not broadcast the same votes as your main does. - You can search through any reputations you have with a simple UI interface or with a slash command. Slash Commands: - General Functions [/rr on] [/rr off] [/rr show player] to view a specific player's reputation [/rr vote up/neutral/down] to give your target a positive/neutral/negative vote. [/rr lock/unlock] to either lock or unlock the UI frames - Blacklist/Whitelist Functions NOTE: If any players are in your whitelist then you won't receive votes from ANY players who are NOT in your whitelist. This will greatly diminish the use of this addon. [/rr list] to view your black and white lists [/rr blacklist player] to blacklist that player. Use it again to remove a player from your blacklist. [/rr whitelist player] to whitelist that player. Use it again to remove a player from your whitelist. - Saved Data Management Functions NOTE: These functions only erase your local data, it will not alter your reputation with other players. Do not use these unless you are absolutely sure that you want to permanently erase reputations you have given or received for other people. It's best just to leave these alone unless you believe that you have received corrupt/exploited votes (highly unlikely) and want to start over from scratch. [/rr eraseall] use this twice to erase ALL of your saved data and restore the addon to defaults. (note: this does not erase your voting history from other players, however you will not broadcast those votes to anyone else in the future) [/rr eraseUIsettings] use this to set your UI back to defaults. [/rr erasevotes] use this to erase all the votes you have made. (note: this does not erase your voting history from other players, however you will not broadcast those votes to anyone else in the future) [/rr erasereputations] use this to erase all the votes you have received from other players. A few notes on the vote weighting system: 1) When you vote for someone and then send that vote out to other people the receiver of your votes decides how much they think your vote is worth based on 2 factors; this is to prevent exploitation by manipulating the LUA code of my addon: 1. How many similar votes the sender has sent out in the past. 2. The receivers opinion of the sender (your reputation) 2) The more UP votes you send out, the less your UP vote is worth, same with DOWN votes. 3) NEUTRAL votes will always have a standard weight. 4) UP and DOWN votes will have a "maximum" weight that they cannot go beyond to prevent one person from swinging the vote too much. The reason that up/down votes don't have a minimum is so that if people that send too many up/down votes, their up or down vote will be worth nothing. This is to prevent vote spam so if you want your up/down votes to have any power ONLY GIVE UP OR DOWN WHEN THEY DESERVE IT. 5) Neither the voter or receiver gets to see how much the vote was worth . 6) No one can see what their total scores are or the total votes from each category, you're only allowed to see a weighted average "trustworthiness" score and the total number of people who have voted for someone. This makes it easy to get a feel for someones reputation without giving away too much information on the exact numbers. Examples of scaling voting power: - 1 is the baseline weight for any vote, if your up/down voting weight is at 1 its going to be quite effective. - Neutral votes are always weighted at 1 so feel free to give this out freely. - The MOST weight any vote can have is 3 which means that 3 "average" voters can cancel out a max weight voter. - To reach a weight of 3 with an UP or DOWN you'll need 37 times as many votes of another type (EX: a 3x weighted DOWN vote would take 37 UP or NEUTRAL votes). - If, on average, you vote no more than 3 out of 20 people DOWN (a typical raid) your DOWN voting weight will stay around 1. - If, on average, you vote no more than 6 or 7 out of 20 people UP (a typical raid) your UP rating will stay around 1 - Don't worry about sticking to the "recommended" numbers of UP or DOWN votes too much, if you exceed the "recommended" amount of votes one raid but didn't use all of them another it would average out so don't worry about it. Just know that if you ALWAYS vote UP or ALWAYS vote DOWN your UP/DOWN votes will be worth less than a typical user. - I balanced this so that a brand new alt made for trolling peoples reputation would have a lot of trouble getting there voting power increased but a normal player won't be punished or rewarded TOO much for deviating from normal amounts of up/down votes. - Your reputation factors into it also, the higher your reputation is (according to the person who is receiving your votes) the more power your vote has to them (it doesn't scale linearly though) Example: Someone who is brand new to the game probably doesn't have any ratings for you or anyone else and if you send your votes out to them then your votes worth won't be worth more than if you were new also. If, at a later time, that person meets other people and from those people's votes "realizes" that you have a higher reputation then your votes worth will increase (by your rating increasing) and all the votes you gave them when you first met them will be updated to weigh more in retrospect. (always capped at 3x) After all is said and done, I want this addon to represent a network of trust, so when you want to group with players you've never met before, you can trust that they aren't going to ninja and walk away with your items! I've done my best to try and ensure that players won't be able to muck up the votes too much but if anyone has any ideas to help make it a more fair and balanced system I'd love to hear them. As a final note i want everyone to keep in mind that exploitations of the system will always be possible with the current API limitations but I have done my best to make sure that its not worth it to exploit. Both by making it as hard as I possibly can and by limiting the influence any one voter can have on the reputation of another. Just to be safe though, take any reputations given by my addon with a grain of salt.
- Optimized the UI update function, for less CPU usage