Wow Tech Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 30 May 2013

What could CCP do with the launcher failure?

Posted on 22:00 by Unknown
In EVE Online there was a patch to the launcher that caused large amount of players to be unable to log in. The CSM jumped on doing its job, protecting CCP from players, claiming that everything is absolutely correct and there is nothing wrong in what CCP did, mistakes happen with everyone.

Let me clarify, mistakes do happen and there is nothing in the World that could prevent a stupid bug from making a system being totally nonfunctional until fixed. I don't blame CCP for not being perfect.

I do blame them though for not being error-resistant and I do blame CSM for not suggesting them to be. Having a car accident is a disastrous bad luck. Not being able to give first aid, not having first aid kid and not knowing the phone number of the ambulance and firefighters on the other hand is being a horrible idiot.

On the evening of the launcher fail, I just clicked the EVE icon, a short bar ran trough my screen and then nothing. Restarted the machine, clicked the icon, nothing. No pop-up, no error message, I could only see in the task manager that the eve launcher is indeed running (not even "not responding"), but it used no CPU, read and wrote no disk, it was just there. Having some basic knowledge about IT I knew that it is waiting for some other process or resource, probably on the net. I started digging the forums and after various pages of "launcher doesn't start CCP is ruining my life" and countless copies of the same error messages I found some suggestions from players.

The first one was to run repair.exe which failed with an error message I couldn't understand. Went back to the forums, searching for the error message, I found nothing but players whining and copying the error message again and again.

After some more forum digging, I found the Chribba link for the updater, some info how to apply it and I could do it. What does it mean: the error wasn't fatal like a server power outage, could be circumvented, but the way of doing it was provided by players and not developers. This is unacceptable and equal to the car accident victims helped only by bystanders and no response from 911.

So these are the things I expect from CCP:
  1. A verbose field of "what I do now" of the launcher. If anything fails, the launcher should be clearly be able to tell where did it fail.
  2. A wiki page explaining what each step means and what are likely causes and what countermeasures the player can do if any.
  3. A dedicated forum topic on the top level of the forum called "most recent error" where only developers can start topics. This forum should be the source of information for players.
  4. As soon as either a dev finds an error that affects players or the GMs are getting mass player reports of an error, an employee is assigned to forum duty. His job is not to code a solution but to communicate, help players with the problem and devs by getting informed. He keeps the topic aggressively moderated from whining, demanding and same-error-reporting, leaving only posts which offer either a new error message or some workaround. He keeps the opening post updated constantly for fast info.
Such actions would make players much less stranded and helpless with a bug.


I used to watch zkillboard.com for horrible loss reports and make a moron of the day post but I got bored of it. After all, you can see the same things if you filter for 5B losses. Still, today a moron is provided, sent in mail by the killer. The point isn't that Sherman Potter lost an 1.4B pod in a 45M horrifit retriever. The point is that the killer managed to convince him to pay 50M for his frozen corpse, since you can regain implants from your frozen corpse. Or maybe not.
Read More
Posted in Random | No comments

Wednesday, 29 May 2013

A newbie and also hardcore friendly WoW raid mechanic

Posted on 22:00 by Unknown
The recent results that shown that most players belong to the same spectrum while a smaller leech group intrudes them made me wonder how could Blizzard design raid content that support learning but doesn't support leeching.

The key feature of the raid encounters is "void zone", something that you shouldn't stand in. They can be fire, falling rock, belly of a Garalon, a hole below Elegon or anything. The main problem with the current design is that these void zones are either binary (you don't stand in them or die) or not your problem.

If the void zone is binary, it is extremely unwelcoming to new players and casuals since their worth in the raid is zero, as they are dead. Someone could be 80% as good as the best player on Patchwerk, but you can only be 100% or 0 now. So better players can do nothing than wipe and wipe until the new one learns the "dance". Or they can just disband the raid apply to a guild where people "can play".

If the void zone is not binary, it's "heal ffs". The damage dealers typically ignore it and whine if the healers fail to keep them alive. Content which is designed to weaker skilled players therefore become faceroll. LFR Megaera is Patchwerk. There is no middle ground. Until players are not oneshotted, they have little reason to care about void zones, so lower content has little learning value.

Let me propose a new design that allows the same content being newbie and hardcore friendly. All we need is to change void zones from damaging to stunning, CC-ing, taking away or placing DPS/HPS debuffs. The whirlwinds of Wind Lord Mel'jarak are a good example. There should only be unavoidable and tank damage to heal, void zones are not damaging anyone. If you stand in them, you are stopped from doing your job. If you ignore void zones, your DPS/HPS will suffer from it.

The difficulty of the raid can be adjusted by changing the necessary DPS to kill the boss before enrage and HPS to keep the raid up from unavoidable damage. The very same raid could serve as LFR and heroic, there is just higher DPS/HPS need in the latter. While the LFR version is doable if the average raid member is spending 1/3 of his time stunned, being stunned is not fun, so it motivates players to don't ignore the void zone. With this design you could not only learn the moves in LFR/normal, but your log is equal to HC logs. I mean if you did X DPS in LFR, it means you can do X DPS in heroic, and if X is enough, you are good for heroic raiding.

Currently playing "well" in LFR decreases your DPS as it forces you to move. The one who stands in the fire can beat you on the meters. The new design would change the damage done field of the meter into a universal "goodness" meter, as your damage depends on not standing in the voidzones. Adding an official damage meter would increase the learning value of LFR and dungeons and this could be completed by changing ilvl demands to DPS/HPS demands. The progression would be:
  1. Top level normal dungeon: anyone who has max level character can enter and the bosses don't enrage at all. But there is an achievement for doing X DPS on the endbosses who have voidzones. For healers it is to keep everyone over 50% all time, for tanks it is to avoid aggro loss (which happens if you are thrown away by some void zones).
  2. Heroic dungeons are available for those who have this achievement. The bosses are still lenient. However if you reach Y DPS, you earn an achievement to be earned.
  3. LFR is available for those who have this achievement from HC dungeons. As there are multiple healers, they are also ranked by healing done. The bosses have lenient enrages, but if your DPS/HPS on all bosses of the raids reaches 90% of what's needed on a normal raid, you get an achievement.
  4. This achievement would be a certificate that you can show to recruiting normal mode guilds. While you still need both gear and experience, you can prove that you learned the bosses and provide reasonable DPS for your gear. In normal modes you could earn the final level of the achievement if for all bosses your DPS/HPS reaches 90% of the heroic raid demands.
  5. With this achievement the HC guild can safely recruit you. While you won't top their meters, they can be sure that you need improvement mostly in gear as you have mastered the movement.
Read More
Posted in Random | No comments

Tuesday, 28 May 2013

The "carebear", the "PvP-er" and the blue doughnut

Posted on 22:00 by Unknown
I've been repeatedly called a "carebear". When I earned billions a day without mining or shooting a single red cross, gaining all the money from other players, I was a carebear. When I took part in capturing regions with TEST alliance, I was a carebear. When I killed ships with ISK/month in a magnitude of small-gang alliances, outperforming the members of even the most "elite" alliances hundred times, I was a carebear.

For long, I believed that the word "carebear" means nothing else than "pubbie", used by Goons: someone who is not us, therefore we hate him. But it was always odd. The word "carebear" was used descriptively instead of pejoratively. I mean when you call a fat man "pig", you are fully aware that he is not a household animal. You mean that he is similar to the household animal, therefore use this unfavorable comparison. However when you just call him "ugly, fat man" you mean your words literally. It always felt they mean "carebear" literally, despite I'm obviously not someone who cares about the feelings of others or scared of losses.

Mabrick calls himself a carebear, maybe the only man doing so openly, since "carebear" isn't a badge of honor in EVE. His post about being one helped a lot to understand what "carebear" and it's opposite, the "PvP-er" means.

The other thing that helped is my time in TEST, which is indeed a PvP-er alliance, therefore a place where I never belonged, no matter how hard I try to contribute to their stated goals. Neither supporting their budget or TEST_free, nor flying in their fleets did not bring me any closer to them. I was always a "carebear". Similarly I was constantly puzzled about their frigate/cruiser roams and their obvious happiness flying them and telling stories about their adventures. To me these were rather meaningless and stupid waste of time with kills that could be replaced by a single AFK miner.

The "carebear" is someone who fights other people for a goal. I want your loot so I kill you. I want your region so I fight you. I want to pad my killboard so I kill you. I want your ISK so I steal your corp hangar. While such "carebear" does PvP, he only does when there is a point, and usually there is not. In most cases it's easier to farm than kill another guy for the same loot.

The "PvP-er" is someone who fights for the experience of fighting or for domination over other person (tears). He can't care less about ISK and objectives and when forced to care by game mechanics, he whines about the game being horrible and tries to avoid it as far as he can: he flies cheap ships so he doesn't have to care about ISK loss and grinds Sov only when he is absolutely forced to. In wormholes there is an often recited moral guidline: "do not evict PvP corps".

If we understand this, the myth of the Blue Doughnut becomes understandable. It's a belief held by "carebears" that nullsec alliances are all friendly with each other. This is because they do not evict each other and miss on obvious opportunities to gain the upper hand. The source is the "carebear" thinking: I want their moons or ratting space, so I take it the most effective way. If they don't do it, but clash in Talwars, they don't really want to go to war. Which is true: they want to have fun fighting with each other and complain when their leaders blue someone, decreasing the number of players to shoot. The NCdot line members indeed didn't want the moons of TEST (their leaders might) and just went to fight TEST for the fight itself.

The problem is the difference of objectives: a "carebear" thinking says "if you want the same objective as me, we are enemies". The "PvP-er" thinking says: "if you don't respect me, don't afraid of me, we are enemies". When "carebears" see "PvP-ers" fighting, he sees a thunderdome, while the participants are doing their best to gain respect and to humiliate their opponent. When "PvP-ers" see "carebears" fighting, he sees cowardice, bargaining and blobbing, while the participants are doing their best to get as good ISK ratio as possible.
Read More
Posted in Random | No comments

Monday, 27 May 2013

Who are the second group of players?

Posted on 22:00 by Unknown
You could see yesterday that the players who go to the Looking for Raid feature do not belong to one kind of group, therefore the performance distribution on the players is not a Gaussian, but the combination of two Gaussians. It's like the height distribution of "pets" where some of the pets are dogs and others are cats.

Let's find them! I dug into the WoW armory and gathered the item level (the power of the gear) of all 496 players belonging to my dataset and plotted the DPS vs their ilvl:

Got a terribly noisy dataset with very weak, 0.316 fitting goodness. But it's not a problem at all, as we aren't here to find the connection between ilvl and DPS but to identify the two distinct groups of players. So I started to identify and successively remove data points that are the farthest from the fitting line.

If a dataset is random, then there are nearly equal amount of points both below and above the line. The graph below shows this balance. Here every removed point was given +1 if it was above the line and -1 if below. If it's random, the resulting line should be a noisy one around zero:

Oops! The 80 most unfitting points are almost all above the line. Among the next 40 worst fitting points, 28 are above the line and 12 below. Let's see where these 120 points are and how the remaining dataset looks like?

You can see that the cleansed data is not only fitting much better, 0.714, but it's direction is changed too, from 0.30X to 0.42X. This is because the removed, one-sided data were not random extremes, but from a distinct group. Now let's see the removed points: 20 of them are below the line, they are simply random extremes of the main group. There is 20 similar above the line. The other 80 above the line points are the ones who don't belong. So let's calculate the mean and stdev of the 80 most unfitting and do the same for the 416 remaining points. Let's compare these results with what we've found yesterday with the fitting of two Gaussians:
Majority average Majority STD Minority average Minority STD Minority ratio
Gaussian fit method 69 20 47 10 21%
Unfitting data method 67 20 53 15 16%

Very good similarity, we seem to have found our two distinct group of players. Below you can see their DPS, Ilvl and number of gearing errors (missing gems, enchants...):
Average DPS Average Ilvl Average gear errors
Majority 67 498 2.9
Minority 53 510 2.2

"Newbies" and "Casuals" are the terms used on bad players, who just "need help". Now look at this: the minority group, who has significantly worse performance have much better gear and less gearing mistakes. They clearly have time to farm gear. They seem to have enough game knowledge to gem and enchant. Yet they perform worse than the majority. Who else they can be than leeching slackers? Like in all socialist system where the "weak" gets help, in MMOs the player groups are intruded by leeches who don't make any effort but get their rewards abusing the other players and the socialist systems. When the Looking for Raid feature was first introduced, below-the-tank leeches were kicked routinely. But Blizzard decided that the "newbies and casuals" deserve help and made kicking very hard. This is the result: AFK-ers, autoattackers and bots.

So we found the biggest factor of success: effort. There are people who try to succeed and others who just whine, blame "luck" and leech on those who pull their weight. And Blizzard forces us to tolerate them! Well, they can't force me, I unsubscribed again and go back to EVE!


PS: the 0.415X in the cleansed dataset means that 1K DPS increase usually means 0.415 ilvl better gear. It does not mean that 0.415 ilvl increase cause 1K DPS increase on average. The DPS is function of more things than Ilvl therefore you can't just form an inverse function this way.

Below the click you can find the whole dataset: "distance from average in sigma","ilvl","fails","Link"
3.98,525,0,"http://eu.battle.net/wow/en/character/dragonblight/Archan%C3%A2/advanced"
1.81,510,0,"http://eu.battle.net/wow/en/character/draenor/Alcasthorn/advanced"
1.33,511,0,"http://eu.battle.net/wow/en/character/arathor/Avaneesh/advanced"
1.01,512,0,"http://eu.battle.net/wow/en/character/argent-dawn/Amberl%C3%A9/advanced"
0.80,522,0,"http://eu.battle.net/wow/en/character/burning-blade/Vladushoodru/advanced"
0.54,501,0,"http://eu.battle.net/wow/en/character/draenor/Devens/advanced"
0.25,512,0,"http://eu.battle.net/wow/en/character/argent-dawn/Seonia/advanced"
-0.21,513,0,"http://eu.battle.net/wow/en/character/burning-legion/Nimfawodna/advanced"
-0.25,485,6,"http://eu.battle.net/wow/en/character/burning-blade/Noobla/advanced"
-0.34,497,6,"http://eu.battle.net/wow/en/character/burning-blade/Siv%C3%BDvlas/advanced"
-0.51,489,4,"http://eu.battle.net/wow/en/character/burning-legion/Ysmay/advanced"
-0.62,490,1,"http://eu.battle.net/wow/en/character/draenor/Stumpz/advanced"
-0.67,512,0,"http://eu.battle.net/wow/en/character/azjolnerub/Tsil/advanced"
-1.01,488,6,"http://eu.battle.net/wow/en/character/burning-blade/Triestilawl/advanced"
-1.34,483,9,"http://eu.battle.net/wow/en/character/argent-dawn/Lol%C3%B1/advanced"
-1.34,487,11,"http://eu.battle.net/wow/en/character/aggramar/Doomline/advanced"
2.72,517,0,"http://eu.battle.net/wow/en/character/argent-dawn/Ellvie/advanced"
2.24,513,0,"http://eu.battle.net/wow/en/character/aszune/Greenax/advanced"
2.15,514,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Ghalandriel/advanced"
1.80,498,0,"http://eu.battle.net/wow/en/character/draenor/Dreflock/advanced"
1.64,516,0,"http://eu.battle.net/wow/en/character/aszune/Shootemdwarf/advanced"
1.32,518,0,"http://eu.battle.net/wow/en/character/draenor/Tiddly/advanced"
1.08,514,1,"http://eu.battle.net/wow/en/character/daggerspine/Achronos/advanced"
0.95,504,0,"http://eu.battle.net/wow/en/character/bloodhoof/Anye/advanced"
0.77,505,0,"http://eu.battle.net/wow/en/character/argent-dawn/Onna/advanced"
-0.25,495,5,"http://eu.battle.net/wow/en/character/draenor/Darukill/advanced"
-0.25,481,1,"http://eu.battle.net/wow/en/character/dragonblight/Washa/advanced"
-0.42,486,2,"http://eu.battle.net/wow/en/character/arathor/Shurty/advanced"
-0.49,485,8,"http://eu.battle.net/wow/en/character/aggramar/Digitaldeath/advanced"
-1.33,498,11,"http://eu.battle.net/wow/en/character/aggramar/Thisismee/advanced"
-1.35,484,12,"http://eu.battle.net/wow/en/character/bloodhoof/Allera/advanced"
-1.60,515,0,"http://eu.battle.net/wow/en/character/burning-blade/Sinedra/advanced"
1.48,501,0,"http://eu.battle.net/wow/en/character/aszune/Harv%C3%A9y/advanced"
1.43,510,0,"http://eu.battle.net/wow/en/character/arathor/Theneo/advanced"
1.28,502,0,"http://eu.battle.net/wow/en/character/burning-legion/Tnsofdmg/advanced"
0.63,503,0,"http://eu.battle.net/wow/en/character/aszune/Elementi/advanced"
0.59,507,0,"http://eu.battle.net/wow/en/character/aggramar/Loopydoo/advanced"
0.08,493,9,"http://eu.battle.net/wow/en/character/bloodscalp/Saqula/advanced"
0.07,489,0,"http://eu.battle.net/wow/en/character/aggramar/Keire/advanced"
0.05,495,0,"http://eu.battle.net/wow/en/character/burning-blade/Ceiro/advanced"
-0.03,514,0,"http://eu.battle.net/wow/en/character/argent-dawn/Cindervein/advanced"
-0.04,498,4,"http://eu.battle.net/wow/en/character/draenor/Valashi/advanced"
-0.36,501,4,"http://eu.battle.net/wow/en/character/arathor/R%C3%A9p%C3%A1s/advanced"
-0.40,494,0,"http://eu.battle.net/wow/en/character/emerald-dream/Wulfrune/advanced"
-0.43,494,10,"http://eu.battle.net/wow/en/character/burning-legion/Songokuh/advanced"
-0.74,511,4,"http://eu.battle.net/wow/en/character/doomhammer/Firefart/advanced"
-0.89,504,1,"http://eu.battle.net/wow/en/character/bloodscalp/Diplon/advanced"
-1.14,511,0,"http://eu.battle.net/wow/en/character/draenor/Isthirria/advanced"
2.19,504,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Darkchosmos/advanced"
2.12,507,0,"http://eu.battle.net/wow/en/character/burning-legion/Arcturuss/advanced"
1.80,511,0,"http://eu.battle.net/wow/en/character/bladefist/Verruckt/advanced"
1.04,508,0,"http://eu.battle.net/wow/en/character/azjolnerub/Diamanda/advanced"
1.03,503,0,"http://eu.battle.net/wow/en/character/burning-blade/B%C3%A8rz%C3%A8rk/advanced"
0.86,511,0,"http://eu.battle.net/wow/en/character/bloodhoof/Oggzilla/advanced"
0.85,499,1,"http://eu.battle.net/wow/en/character/azjolnerub/Grolschlager/advanced"
0.47,500,0,"http://eu.battle.net/wow/en/character/burning-legion/Tedry/advanced"
0.10,514,4,"http://eu.battle.net/wow/en/character/twilights-hammer/Erymanthos/advanced"
0.02,503,0,"http://eu.battle.net/wow/en/character/azjolnerub/Kamilgd/advanced"
-0.16,514,19,"http://eu.battle.net/wow/en/character/burning-legion/Hussarx/advanced"
-0.16,510,0,"http://eu.battle.net/wow/en/character/emerald-dream/Deadlyhands/advanced"
-0.72,502,0,"http://eu.battle.net/wow/en/character/burning-blade/Zelenoocka/advanced"
-0.80,481,5,"http://eu.battle.net/wow/en/character/doomhammer/%C3%9Cdby/advanced"
-0.92,494,4,"http://eu.battle.net/wow/en/character/bloodhoof/Sturridge/advanced"
-1.29,497,11,"http://eu.battle.net/wow/en/character/aggra-portugues/Hevlaska/advanced"
1.23,507,0,"http://eu.battle.net/wow/en/character/dragonblight/Infinitie/advanced"
1.07,500,0,"http://eu.battle.net/wow/en/character/bloodscalp/Sanqo/advanced"
1.05,509,4,"http://eu.battle.net/wow/en/character/burning-blade/Jenca/advanced"
0.98,508,0,"http://eu.battle.net/wow/en/character/dragonblight/Teone/advanced"
0.92,507,0,"http://eu.battle.net/wow/en/character/emerald-dream/Togglebus/advanced"
0.81,503,0,"http://eu.battle.net/wow/en/character/dragonblight/Sacrament/advanced"
0.65,494,2,"http://eu.battle.net/wow/en/character/aggramar/Shazzr%C3%A1h/advanced"
0.54,496,1,"http://eu.battle.net/wow/en/character/dragonblight/Shadowblazer/advanced"
0.49,499,1,"http://eu.battle.net/wow/en/character/dragonblight/Shadowblazer/advanced"
0.37,492,3,"http://eu.battle.net/wow/en/character/burning-legion/Ejbik/advanced"
0.12,507,0,"http://eu.battle.net/wow/en/character/aggramar/Rexthebest/advanced"
-0.91,486,2,"http://eu.battle.net/wow/en/character/argent-dawn/Astanashar/advanced"
-0.97,500,0,"http://eu.battle.net/wow/en/character/burning-legion/Ap%C3%B8ll%C3%B8n/advanced"
-1.35,488,12,"http://eu.battle.net/wow/en/character/doomhammer/Brokkoli/advanced"
-1.56,487,0,"http://eu.battle.net/wow/en/character/azjolnerub/Cadz/advanced"
-1.79,498,14,"http://eu.battle.net/wow/en/character/bloodhoof/Mentini/advanced"
1.58,501,1,"http://eu.battle.net/wow/en/character/arathor/Tomdarkness/advanced"
1.41,513,0,"http://eu.battle.net/wow/en/character/azjolnerub/Necrohammer/advanced"
1.11,497,1,"http://eu.battle.net/wow/en/character/dragonmaw/Calau/advanced"
1.10,511,0,"http://eu.battle.net/wow/en/character/argent-dawn/Mattatui/advanced"
0.79,507,1,"http://eu.battle.net/wow/en/character/aggramar/F%C3%A9ardotcom/advanced"
0.55,496,1,"http://eu.battle.net/wow/en/character/argent-dawn/Costoboci/advanced"
0.37,504,9,"http://eu.battle.net/wow/en/character/emerald-dream/Tvixy/advanced"
0.25,509,0,"http://eu.battle.net/wow/en/character/daggerspine/Zian/advanced"
0.15,510,1,"http://eu.battle.net/wow/en/character/arathor/Iordain/advanced"
0.07,506,0,"http://eu.battle.net/wow/en/character/burning-legion/Losmisiakos/advanced"
-0.01,494,2,"http://eu.battle.net/wow/en/character/argent-dawn/Vercin/advanced"
-0.57,484,1,"http://eu.battle.net/wow/en/character/azjolnerub/Celticblitz/advanced"
-0.62,504,7,"http://eu.battle.net/wow/en/character/emerald-dream/Gearframe/advanced"
-0.81,505,1,"http://eu.battle.net/wow/en/character/aggramar/Dog/advanced"
-1.13,485,0,"http://eu.battle.net/wow/en/character/azjolnerub/Estatic/advanced"
-1.47,490,5,"http://eu.battle.net/wow/en/character/azjolnerub/Kuljo/advanced"
1.82,511,0,"http://eu.battle.net/wow/en/character/argent-dawn/Jauffre/advanced"
0.50,508,0,"http://eu.battle.net/wow/en/character/draenor/Ulfee/advanced"
0.34,493,0,"http://eu.battle.net/wow/en/character/burning-legion/Kornel/advanced"
0.27,504,0,"http://eu.battle.net/wow/en/character/arathor/Screaming/advanced"
0.27,498,1,"http://eu.battle.net/wow/en/character/burning-blade/Diamage/advanced"
-0.06,496,0,"http://eu.battle.net/wow/en/character/burning-blade/Mongwan/advanced"
-0.07,510,1,"http://eu.battle.net/wow/en/character/burning-legion/Akosia/advanced"
-0.15,520,0,"http://eu.battle.net/wow/en/character/burning-legion/Szwarzzeine/advanced"
-0.37,499,7,"http://eu.battle.net/wow/en/character/aszune/Xperlharbour/advanced"
-0.47,491,8,"http://eu.battle.net/wow/en/character/bloodscalp/Dylan/advanced"
-0.58,491,1,"http://eu.battle.net/wow/en/character/arathor/Dambledoor/advanced"
-0.66,501,0,"http://eu.battle.net/wow/en/character/aszune/Walhalla/advanced"
-0.84,505,7,"http://eu.battle.net/wow/en/character/arathor/Kaffekop/advanced"
-0.89,507,0,"http://eu.battle.net/wow/en/character/burning-blade/Ciribrik/advanced"
-1.14,483,10,"http://eu.battle.net/wow/en/character/emerald-dream/Grutte/advanced"
-1.16,504,1,"http://eu.battle.net/wow/en/character/argent-dawn/Kefster/advanced"
2.19,507,0,"http://eu.battle.net/wow/en/character/burning-blade/Iladaar/advanced"
1.90,510,0,"http://eu.battle.net/wow/en/character/doomhammer/Mikepower/advanced"
1.88,510,0,"http://eu.battle.net/wow/en/character/argent-dawn/Vazlaq/advanced"
1.62,512,0,"http://eu.battle.net/wow/en/character/arathor/Xeert/advanced"
0.87,510,1,"http://eu.battle.net/wow/en/character/bladefist/Karmagedonas/advanced"
0.52,508,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Stonefists/advanced"
0.44,505,1,"http://eu.battle.net/wow/en/character/bloodhoof/Nutann/advanced"
0.32,495,2,"http://eu.battle.net/wow/en/character/bloodscalp/Nylena/advanced"
0.21,494,2,"http://eu.battle.net/wow/en/character/aggramar/Kags/advanced"
-0.43,485,2,"http://eu.battle.net/wow/en/character/doomhammer/Diakana/advanced"
-0.62,491,0,"http://eu.battle.net/wow/en/character/burning-legion/R%C3%B3bson/advanced"
-0.67,508,3,"http://eu.battle.net/wow/en/character/argent-dawn/Dark%C3%B3n/advanced"
-0.83,484,3,"http://eu.battle.net/wow/en/character/dragonblight/Shathor/advanced"
-0.94,496,9,"http://eu.battle.net/wow/en/character/argent-dawn/Temri/advanced"
-1.04,483,6,"http://eu.battle.net/wow/en/character/aggramar/Haugtussa/advanced"
-1.26,492,18,"http://eu.battle.net/wow/en/character/emerald-dream/Kungp%C3%B3w/advanced"
2.20,522,0,"http://eu.battle.net/wow/en/character/burning-legion/Czykitaa/advanced"
0.84,510,1,"http://eu.battle.net/wow/en/character/emerald-dream/Velrial/advanced"
0.38,500,0,"http://eu.battle.net/wow/en/character/argent-dawn/Apherus/advanced"
0.37,496,1,"http://eu.battle.net/wow/en/character/azjolnerub/Wilow/advanced"
0.27,497,3,"http://eu.battle.net/wow/en/character/draenor/Kylarstern/advanced"
0.09,505,0,"http://eu.battle.net/wow/en/character/azjolnerub/Raacoon/advanced"
0.03,496,8,"http://eu.battle.net/wow/en/character/arathor/Zodk/advanced"
-0.03,493,0,"http://eu.battle.net/wow/en/character/dragonblight/Appraiser/advanced"
-0.10,507,0,"http://eu.battle.net/wow/en/character/doomhammer/Alubel/advanced"
-0.36,496,5,"http://eu.battle.net/wow/en/character/argent-dawn/Humanpride/advanced"
-0.39,491,5,"http://eu.battle.net/wow/en/character/doomhammer/Lazar%C3%BAs/advanced"
-0.54,485,1,"http://eu.battle.net/wow/en/character/emerald-dream/Canofwoopass/advanced"
-0.65,499,1,"http://eu.battle.net/wow/en/character/doomhammer/Peyral/advanced"
-1.02,498,1,"http://eu.battle.net/wow/en/character/aggramar/Skylake/advanced"
-1.15,487,19,"http://eu.battle.net/wow/en/character/burning-legion/S%C3%A9ledian/advanced"
-1.38,488,6,"http://eu.battle.net/wow/en/character/burning-blade/Tygricekzc/advanced"
1.87,520,0,"http://eu.battle.net/wow/en/character/arathor/Pallthunti/advanced"
1.55,517,0,"http://eu.battle.net/wow/en/character/argent-dawn/Wolfuss/advanced"
1.27,507,0,"http://eu.battle.net/wow/en/character/arathor/Jaggal/advanced"
0.77,509,1,"http://eu.battle.net/wow/en/character/doomhammer/Vergangenes/advanced"
0.67,492,0,"http://eu.battle.net/wow/en/character/argent-dawn/Simfony/advanced"
0.57,507,2,"http://eu.battle.net/wow/en/character/arathor/Adames/advanced"
0.53,501,0,"http://eu.battle.net/wow/en/character/Arathor/Jakin/advanced"
0.45,506,1,"http://eu.battle.net/wow/en/character/Azjolnerub/Mamou/advanced"
0.23,506,4,"http://eu.battle.net/wow/en/character/Doomhammer/Snowya/advanced"
0.09,485,2,"http://eu.battle.net/wow/en/character/burning-legion/Gargorak/advanced"
0.03,503,1,"http://eu.battle.net/wow/en/character/dragonblight/Chavun/advanced"
-0.48,488,1,"http://eu.battle.net/wow/en/character/Bloodhoof/Lexxy/advanced"
-0.55,486,1,"http://eu.battle.net/wow/en/character/arathor/Glorien/advanced"
-1.02,488,19,"http://eu.battle.net/wow/en/character/draenor/Zamzooma/advanced"
-1.12,491,4,"http://eu.battle.net/wow/en/character/burning-legion/Contest/advanced"
1.21,509,0,"http://eu.battle.net/wow/en/character/alakir/Kalevkill/advanced"
1.20,510,0,"http://eu.battle.net/wow/en/character/burning-blade/Tituss/advanced"
0.84,507,0,"http://eu.battle.net/wow/en/character/draenor/Bitmap/advanced"
0.61,502,0,"http://eu.battle.net/wow/en/character/burning-legion/Rogulski/advanced"
0.61,499,0,"http://eu.battle.net/wow/en/character/dragonblight/Nitrous/advanced"
0.15,511,0,"http://eu.battle.net/wow/en/character/aggramar/Zeddcus/advanced"
-0.19,499,0,"http://eu.battle.net/wow/en/character/aggramar/Morg%C3%A0nna/advanced"
-0.20,511,0,"http://eu.battle.net/wow/en/character/burning-legion/Holyfighter/advanced"
-0.29,497,9,"http://eu.battle.net/wow/en/character/dragonblight/Thalinaar/advanced"
-0.53,494,0,"http://eu.battle.net/wow/en/character/bladefist/Ironcaster/advanced"
-0.64,488,4,"http://eu.battle.net/wow/en/character/emerald-dream/Psykix/advanced"
-0.81,503,6,"http://eu.battle.net/wow/en/character/arathor/dandia/advanced"
-1.10,488,6,"http://eu.battle.net/wow/en/character/burning-blade/Panamah/advanced"
-1.29,510,1,"http://eu.battle.net/wow/en/character/aszune/Kruimel/advanced"
-1.38,488,7,"http://eu.battle.net/wow/en/character/draenor/Erekka/advanced"
-1.62,486,19,"http://eu.battle.net/wow/en/character/deathwing/Epicwarior/advanced"
0.97,503,0,"http://eu.battle.net/wow/en/character/burning-blade/Johnnyhun/advanced"
0.82,506,0,"http://eu.battle.net/wow/en/character/arathor/Laelitha/advanced"
0.59,498,2,"http://eu.battle.net/wow/en/character/burning-legion/Mandinga/advanced"
0.58,501,0,"http://eu.battle.net/wow/en/character/doomhammer/Zadoc/advanced"
0.40,509,1,"http://eu.battle.net/wow/en/character/doomhammer/natasia/advanced"
0.16,489,1,"http://eu.battle.net/wow/en/character/aggra-portugues/Angilizer/advanced"
0.11,513,0,"http://eu.battle.net/wow/en/character/arathor/Vorosh/advanced"
-0.33,511,0,"http://eu.battle.net/wow/en/character/draenor/stormbringer/advanced"
-0.34,487,5,"http://eu.battle.net/wow/en/character/dragonblight/Seiryoku/advanced"
-0.37,488,3,"http://eu.battle.net/wow/en/character/dragonblight/thilds/advanced"
-0.87,508,0,"http://eu.battle.net/wow/en/character/aggramar/maeglcarwen/advanced"
-1.03,508,0,"http://eu.battle.net/wow/en/character/argent-dawn/Dal/advanced"
-1.24,506,0,"http://eu.battle.net/wow/en/character/argent-dawn/shamarra/advanced"
-1.54,485,9,"http://eu.battle.net/wow/en/character/aggramar/krispie/advanced"
-1.98,502,10,"http://eu.battle.net/wow/en/character/deathwing/Everhate/advanced"
1.75,508,1,"http://eu.battle.net/wow/en/character/burning-legion/Ghostvirus/advanced"
1.62,512,0,"http://eu.battle.net/wow/en/character/burning-legion/Monarchgnome/advanced"
1.32,499,0,"http://eu.battle.net/wow/en/character/doomhammer/nihalist/advanced"
1.09,510,0,"http://eu.battle.net/wow/en/character/arathor/pacemaker/advanced"
1.03,499,6,"http://eu.battle.net/wow/en/character/argent-dawn/Muenne/advanced"
0.90,510,0,"http://eu.battle.net/wow/en/character/aszune/lerigord/advanced"
0.68,504,1,"http://eu.battle.net/wow/en/character/doomhammer/Baz%C3%AEnga/advanced"
0.59,494,2,"http://eu.battle.net/wow/en/character/azjolnerub/Riddicw/advanced"
0.52,512,1,"http://eu.battle.net/wow/en/character/argent-dawn/Mirieney/advanced"
0.45,510,0,"http://eu.battle.net/wow/en/character/draenor/empula/advanced"
0.30,503,1,"http://eu.battle.net/wow/en/character/twilights-hammer/Frostblade/advanced"
-0.26,505,8,"http://eu.battle.net/wow/en/character/Aggramar/morrie/advanced"
-0.27,486,1,"http://eu.battle.net/wow/en/character/aszune/M%C3%BAru/advanced"
-0.39,486,2,"http://eu.battle.net/wow/en/character/agamaggan/Spidercl%C3%A1w/advanced"
-1.02,509,0,"http://eu.battle.net/wow/en/character/aszune/afterlife/advanced"
-1.41,498,3,"http://eu.battle.net/wow/en/character/aggramar/thadelia/advanced"
0.89,521,1,"http://eu.battle.net/wow/en/character/aszune/melphas/advanced"
0.84,499,2,"http://eu.battle.net/wow/en/character/zenedar/centaurus/advanced"
0.59,501,0,"http://eu.battle.net/wow/en/character/emerald-dream/Kevalina/advanced"
0.33,498,2,"http://eu.battle.net/wow/en/character/emerald-dream/raikken/advanced"
0.26,514,0,"http://eu.battle.net/wow/en/character/argent-dawn/Goranth/advanced"
-0.34,484,9,"http://eu.battle.net/wow/en/character/burning-legion/Rawdeal/advanced"
-0.67,490,8,"http://eu.battle.net/wow/en/character/burning-blade/Ep%C3%A1k/advanced"
-0.68,490,2,"http://eu.battle.net/wow/en/character/draenor/farsite/advanced"
-0.75,486,1,"http://eu.battle.net/wow/en/character/doomhammer/nurdo/advanced"
-0.82,506,1,"http://eu.battle.net/wow/en/character/bloodhoof/elmilagro/advanced"
-0.87,510,0,"http://eu.battle.net/wow/en/character/burning-legion/Allusia/advanced"
-0.89,483,0,"http://eu.battle.net/wow/en/character/arathor/thillia/advanced"
-0.90,487,2,"http://eu.battle.net/wow/en/character/burning-legion/Drapuszek/advanced"
-0.93,497,0,"http://eu.battle.net/wow/en/character/burning-blade/Tuborgg/advanced"
-1.05,491,0,"http://eu.battle.net/wow/en/character/doomhammer/furong/advanced"
-1.37,487,5,"http://eu.battle.net/wow/en/character/draenor/crankcase/advanced"
1.44,518,0,"http://eu.battle.net/wow/en/character/doomhammer/R%C3%A9lay/advanced"
1.29,508,0,"http://eu.battle.net/wow/en/character/zenedar/Imani/advanced"
0.84,500,4,"http://eu.battle.net/wow/en/character/bloodscalp/Valdius/advanced"
0.64,508,0,"http://eu.battle.net/wow/en/character/aggramar/vampi/advanced"
0.38,510,0,"http://eu.battle.net/wow/en/character/dragonblight/Mariug/advanced"
0.36,502,0,"http://eu.battle.net/wow/en/character/dragonblight/ekaterinska/advanced"
0.30,510,1,"http://eu.battle.net/wow/en/character/azjolnerub/Notjet/advanced"
-0.06,498,1,"http://eu.battle.net/wow/en/character/twilights-hammer/Edsan/advanced"
-0.37,487,2,"http://eu.battle.net/wow/en/character/doomhammer/zantar/advanced"
-0.41,498,2,"http://eu.battle.net/wow/en/character/sunstrider/zazul/advanced"
-0.49,498,5,"http://eu.battle.net/wow/en/character/emerald-dream/Ruhan/advanced"
-0.57,484,1,"http://eu.battle.net/wow/en/character/arathor/shankbone/advanced"
-1.00,496,12,"http://eu.battle.net/wow/en/character/arathor/nikibaby/advanced"
-1.04,498,2,"http://eu.battle.net/wow/en/character/argent-dawn/Vandos/advanced"
-1.73,488,9,"http://eu.battle.net/wow/en/character/burning-legion/Pandoras/advanced"
-1.81,491,22,"http://eu.battle.net/wow/en/character/doomhammer/Tirill/advanced"
2.73,522,0,"http://eu.battle.net/wow/en/character/argent-dawn/Seelenjaeger/advanced"
2.13,519,0,"http://eu.battle.net/wow/en/character/bloodscalp/Elyminator/advanced"
2.11,515,0,"http://eu.battle.net/wow/en/character/burning-blade/Erzamen/advanced"
1.52,515,0,"http://eu.battle.net/wow/en/character/azjolnerub/Kshira/advanced"
1.43,505,0,"http://eu.battle.net/wow/en/character/burning-legion/Brutalen/advanced"
1.22,512,0,"http://eu.battle.net/wow/en/character/bloodhoof/Piktou/advanced"
1.00,504,0,"http://eu.battle.net/wow/en/character/burning-legion/Pinioslaw/advanced"
0.65,504,1,"http://eu.battle.net/wow/en/character/doomhammer/Worldbinder/advanced"
0.35,505,0,"http://eu.battle.net/wow/en/character/bloodhoof/zelmiane/advanced"
0.27,501,0,"http://eu.battle.net/wow/en/character/emerald-dream/Zalibart/advanced"
-0.60,484,2,"http://eu.battle.net/wow/en/character/argent-dawn/El%C3%ACza/advanced"
-0.87,492,8,"http://eu.battle.net/wow/en/character/burning-legion/Srindya/advanced"
-1.01,485,5,"http://eu.battle.net/wow/en/character/sunstrider/Saidar/advanced"
-1.17,482,9,"http://eu.battle.net/wow/en/character/emerald-dream/Pickeloo/advanced"
-1.41,498,8,"http://eu.battle.net/wow/en/character/dragonblight/Sluttyvixen/advanced"
-1.44,500,1,"http://eu.battle.net/wow/en/character/burning-blade/Annirette/advanced"
2.61,512,0,"http://eu.battle.net/wow/en/character/arathor/taimo/advanced"
1.00,503,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Oforfamar/advanced"
0.98,505,2,"http://eu.battle.net/wow/en/character/aggra-portugues/minorcas/advanced"
0.80,503,4,"http://eu.battle.net/wow/en/character/dragonblight/Ebhoth/advanced"
0.54,495,0,"http://eu.battle.net/wow/en/character/arathor/Regulos/advanced"
0.53,509,0,"http://eu.battle.net/wow/en/character/bloodhoof/moobei/advanced"
0.45,511,0,"http://eu.battle.net/wow/en/character/arathor/frostika/advanced"
0.24,506,5,"http://eu.battle.net/wow/en/character/bladefist/nobinhood/advanced"
0.18,503,7,"http://eu.battle.net/wow/en/character/bloodscalp/Varangyh/advanced"
0.11,514,0,"http://eu.battle.net/wow/en/character/burning-legion/Mistilly/advanced"
0.06,511,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Showleader/advanced"
-0.36,506,6,"http://eu.battle.net/wow/en/character/arathor/anniska/advanced"
-0.53,506,5,"http://eu.battle.net/wow/en/character/argent-dawn/Volkh/advanced"
-0.63,505,4,"http://eu.battle.net/wow/en/character/bladefist/trojax/advanced"
-0.75,499,1,"http://eu.battle.net/wow/en/character/arathor/furiad/advanced"
-1.39,488,19,"http://eu.battle.net/wow/en/character/arathor/cigiman/advanced"
1.91,502,0,"http://eu.battle.net/wow/en/character/argent-dawn/Tyrel/advanced"
1.33,503,0,"http://eu.battle.net/wow/en/character/argent-dawn/goltan/advanced"
1.31,510,2,"http://eu.battle.net/wow/en/character/aggramar/frostone/advanced"
0.77,500,0,"http://eu.battle.net/wow/en/character/emerald-dream/Kreun/advanced"
0.71,494,0,"http://eu.battle.net/wow/en/character/argent-dawn/Keirgar/advanced"
0.68,516,0,"http://eu.battle.net/wow/en/character/argent-dawn/Warfare/advanced"
0.41,497,0,"http://eu.battle.net/wow/en/character/agamaggan/Yrene/advanced"
0.08,515,2,"http://eu.battle.net/wow/en/character/arathor/tintos/advanced"
-0.05,512,2,"http://eu.battle.net/wow/en/character/doomhammer/ricdam/advanced"
-0.17,497,0,"http://eu.battle.net/wow/en/character/draenor/rython/advanced"
-0.25,495,2,"http://eu.battle.net/wow/en/character/azjolnerub/S%C3%A9nsei/advanced"
-0.35,502,6,"http://eu.battle.net/wow/en/character/azjolnerub/spize/advanced"
-0.38,490,13,"http://eu.battle.net/wow/en/character/emerald-dream/Thorim/advanced"
-0.85,507,1,"http://eu.battle.net/wow/en/character/bloodhoof/leeuw/advanced"
-2.36,514,0,"http://eu.battle.net/wow/en/character/argent-dawn/Trystan/advanced"
-2.45,509,0,"http://eu.battle.net/wow/en/character/dragonblight/Moleesung/advanced"
1.60,505,0,"http://eu.battle.net/wow/en/character/azjolnerub/Lefey/advanced"
1.48,510,0,"http://eu.battle.net/wow/en/character/arathor/Zsgy%C3%ADk/advanced"
0.46,515,0,"http://eu.battle.net/wow/en/character/doomhammer/posefemale/advanced"
0.40,490,0,"http://eu.battle.net/wow/en/character/emerald-dream/Moosheep/advanced"
0.27,498,10,"http://eu.battle.net/wow/en/character/dragonmaw/simpade/advanced"
0.18,500,0,"http://eu.battle.net/wow/en/character/draenor/b%C3%ADtty/advanced"
-0.07,501,12,"http://eu.battle.net/wow/en/character/bloodscalp/depes/advanced"
-0.18,483,0,"http://eu.battle.net/wow/en/character/emerald-dream/Voltio/advanced"
-0.33,484,5,"http://eu.battle.net/wow/en/character/aszune/luvie/advanced"
-0.81,484,9,"http://eu.battle.net/wow/en/character/twilights-hammer/Downer/advanced"
-0.98,490,2,"http://eu.battle.net/wow/en/character/argent-dawn/Selinthia/advanced"
-1.08,492,14,"http://eu.battle.net/wow/en/character/zenedar/dreamweaver/advanced"
-1.32,495,1,"http://eu.battle.net/wow/en/character/burning-blade/Darkprofet/advanced"
-1.40,488,9,"eu.battle.net/wow/en/character/argent-dawn/Vinarus/advanced"
-1.93,487,4,"http://eu.battle.net/wow/en/character/argent-dawn/Malisity/advanced"
-2.23,484,10,"http://eu.battle.net/wow/en/character/argent-dawn/qorth/advanced"
1.92,512,0,"http://eu.battle.net/wow/en/character/burning-legion/Stobila/advanced"
1.49,500,1,"http://eu.battle.net/wow/en/character/aszune/Antlion/advanced"
1.22,506,0,"http://eu.battle.net/wow/en/character/bloodscalp/yong/advanced"
0.90,488,1,"http://eu.battle.net/wow/en/character/burning-legion/Fireblastrer/advanced"
0.56,504,0,"http://eu.battle.net/wow/en/character/dunemaul/aimstar/advanced"
0.28,500,2,"http://eu.battle.net/wow/en/character/bloodscalp/littleevil/advanced"
0.12,497,2,"http://eu.battle.net/wow/en/character/bladefist/aqire/advanced"
-0.15,497,9,"http://eu.battle.net/wow/en/character/aggramar/mcbreath/advanced"
-0.25,507,0,"http://eu.battle.net/wow/en/character/argent-dawn/Asameth/advanced"
-0.30,486,7,"http://eu.battle.net/wow/en/character/burning-blade/Silachim/advanced"
-0.38,505,2,"http://eu.battle.net/wow/en/character/emerald-dream/Patrickje/advanced"
-0.52,487,5,"http://eu.battle.net/wow/en/character/dunemaul/kuijana/advanced"
-0.98,490,3,"http://eu.battle.net/wow/en/character/azjolnerub/Yellea/advanced"
-1.00,486,1,"http://eu.battle.net/wow/en/character/burning-legion/Wavelet/advanced"
-1.63,503,13,"http://eu.battle.net/wow/en/character/arathor/fasa/advanced"
-2.09,517,0,"http://eu.battle.net/wow/en/character/burning-legion/Jadee/advanced"
2.11,512,3,"http://eu.battle.net/wow/en/character/burning-blade/Samasikutra/advanced"
1.00,521,0,"http://eu.battle.net/wow/en/character/aszune/sipmark/advanced"
0.79,501,0,"http://eu.battle.net/wow/en/character/arathor/lilonka/advanced"
0.51,512,0,"http://eu.battle.net/wow/en/character/arathor/amondei/advanced"
0.45,506,0,"http://eu.battle.net/wow/en/character/burning-legion/Fau/advanced"
0.26,494,2,"http://eu.battle.net/wow/en/character/argent-dawn/Frudo/advanced"
0.22,497,0,"http://eu.battle.net/wow/en/character/agamaggan/L%C3%ADvia/advanced"
0.14,493,3,"http://eu.battle.net/wow/en/character/arathor/voncloud/advanced"
-0.14,497,0,"http://eu.battle.net/wow/en/character/dragonblight/fizle/advanced"
-0.20,506,0,"http://eu.battle.net/wow/en/character/arathor/gheolun/advanced"
-0.24,496,2,"http://eu.battle.net/wow/en/character/azjolnerub/Senturus/advanced"
-0.26,494,6,"http://eu.battle.net/wow/en/character/aggramar/mevi/advanced"
-0.32,489,5,"http://eu.battle.net/wow/en/character/aggra-portugues/Furballs/advanced"
-0.46,504,1,"http://eu.battle.net/wow/en/character/emerald-dream/Superhealzz/advanced"
-0.88,480,9,"http://eu.battle.net/wow/en/character/doomhammer/Yalmar/advanced"
-1.20,484,8,"http://eu.battle.net/wow/en/character/dragonblight/swens/advanced"
1.77,507,0,"http://eu.battle.net/wow/en/character/doomhammer/arantis/advanced"
0.87,513,1,"http://eu.battle.net/wow/en/character/aggramar/talla/advanced"
0.86,503,1,"http://eu.battle.net/wow/en/character/zenedar/C%C3%ACbo/advanced"
0.46,491,0,"http://eu.battle.net/wow/en/character/burning-legion/Szprej/advanced"
0.41,492,0,"http://eu.battle.net/wow/en/character/aszune/stardotstar/advanced"
0.40,509,0,"http://eu.battle.net/wow/en/character/bloodhoof/shenestha/advanced"
0.39,509,0,"http://eu.battle.net/wow/en/character/arathor/chamberlain/advanced"
0.39,494,0,"http://eu.battle.net/wow/en/character/arathor/jonome/advanced"
0.00,492,2,"http://eu.battle.net/wow/en/character/dragonblight/ulycees/advanced"
-0.04,495,1,"http://eu.battle.net/wow/en/character/aggramar/cuppateaa/advanced"
-0.13,505,0,"http://eu.battle.net/wow/en/character/emerald-dream/Wizbod/advanced"
-0.13,493,0,"http://eu.battle.net/wow/en/character/arathor/miqqi/advanced"
-0.35,504,5,"http://eu.battle.net/wow/en/character/arathor/krixi/advanced"
-0.42,488,0,"http://eu.battle.net/wow/en/character/bloodscalp/ara/advanced"
-0.84,480,5,"http://eu.battle.net/wow/en/character/argent-dawn/Illunia/advanced"
-1.04,496,7,"http://eu.battle.net/wow/en/character/bladefist/tjock/advanced"
1.89,516,0,"http://eu.battle.net/wow/en/character/aggramar/wilfy/advanced"
0.71,501,2,"http://eu.battle.net/wow/en/character/burning-legion/Kormad/advanced"
0.63,514,0,"http://eu.battle.net/wow/en/character/argent-dawn/Nessa/advanced"
0.50,494,1,"http://eu.battle.net/wow/en/character/aszune/thysthere/advanced"
0.12,498,2,"http://eu.battle.net/wow/en/character/emerald-dream/Brewtalit%C3%BD/advanced"
-0.07,488,5,"http://eu.battle.net/wow/en/character/emerald-dream/Kyou/advanced"
-0.12,503,0,"http://eu.battle.net/wow/en/character/twilights-hammer/Azreell/advanced"
-0.25,513,2,"http://eu.battle.net/wow/en/character/doomhammer/E%C3%B4wyn/advanced"
-0.84,480,4,"http://eu.battle.net/wow/en/character/azjolnerub/Ishnelador/advanced"
-0.89,487,3,"http://eu.battle.net/wow/en/character/argent-dawn/Myterio/advanced"
-1.07,501,1,"http://eu.battle.net/wow/en/character/aszune/englishpride/advanced"
-1.14,489,2,"http://eu.battle.net/wow/en/character/emerald-dream/Malteaser/advanced"
-1.42,488,12,"http://eu.battle.net/wow/en/character/argent-dawn/Worgian/advanced"
-1.42,514,0,"http://eu.battle.net/wow/en/character/burning-legion/Alokadius/advanced"
-1.53,483,9,"http://eu.battle.net/wow/en/character/bloodscalp/Pinela/advanced"
-1.98,509,0,"http://eu.battle.net/wow/en/character/burning-legion/Banehallowgr/advanced"
1.92,519,0,"http://eu.battle.net/wow/en/character/aggramar/aqillius/advanced"
1.91,522,0,"http://eu.battle.net/wow/en/character/argent-dawn/Wutuff/advanced"
1.00,502,0,"http://eu.battle.net/wow/en/character/sunstrider/sindal/advanced"
0.50,493,0,"http://eu.battle.net/wow/en/character/arathor/shadowdemons/advanced"
0.34,500,1,"http://eu.battle.net/wow/en/character/aggramar/Sm%C3%A1llfr%C3%ADe/advanced"
0.29,504,0,"http://eu.battle.net/wow/en/character/aggramar/terrordworf/advanced"
0.14,501,0,"http://eu.battle.net/wow/en/character/aggramar/fatusbloke/advanced"
0.08,490,3,"http://eu.battle.net/wow/en/character/burning-legion/Nukis/advanced"
0.06,504,12,"http://eu.battle.net/wow/en/character/burning-blade/Doroftey/advanced"
0.05,515,1,"http://eu.battle.net/wow/en/character/argent-dawn/Moxy/advanced"
-0.30,509,0,"http://eu.battle.net/wow/en/character/azjolnerub/Guinness/advanced"
-0.54,507,4,"http://eu.battle.net/wow/en/character/alakir/Predat%C3%B4r/advanced"
-0.67,484,13,"http://eu.battle.net/wow/en/character/arathor/mizu/advanced"
-0.75,496,20,"http://eu.battle.net/wow/en/character/argent-dawn/Fhae/advanced"
-1.50,488,11,"http://eu.battle.net/wow/en/character/aggramar/Kuninghunt/advanced"
-1.52,485,20,"http://eu.battle.net/wow/en/character/dragonmaw/basileios/advanced"
1.08,508,0,"http://eu.battle.net/wow/en/character/argent-dawn/Ni%C3%A1a/advanced"
0.54,503,0,"http://eu.battle.net/wow/en/character/bloodhoof/abramelin/advanced"
0.34,506,0,"http://eu.battle.net/wow/en/character/aggramar/Gomoie/advanced"
0.34,508,0,"http://eu.battle.net/wow/en/character/doomhammer/chelseaa/advanced"
-0.02,487,5,"http://eu.battle.net/wow/en/character/burning-legion/Sudimet/advanced"
-0.27,486,2,"http://eu.battle.net/wow/en/character/aggramar/cidia/advanced"
-0.32,484,2,"http://eu.battle.net/wow/en/character/aszune/grulzaz/advanced"
-0.38,483,11,"http://eu.battle.net/wow/en/character/bloodhoof/loafpincher/advanced"
-0.42,500,2,"http://eu.battle.net/wow/en/character/dragonblight/Pinrgen/advanced"
-0.46,503,0,"http://eu.battle.net/wow/en/character/doomhammer/neytirie/advanced"
-0.58,505,0,"http://eu.battle.net/wow/en/character/bloodscalp/L%C3%ADriel/advanced"
-0.73,490,8,"http://eu.battle.net/wow/en/character/bloodhoof/Kittikat/advanced"
-0.90,483,10,"http://eu.battle.net/wow/en/character/draenor/shiroyasha/advanced"
-0.95,486,3,"http://eu.battle.net/wow/en/character/draenor/allsaint/advanced"
-1.02,480,8,"http://eu.battle.net/wow/en/character/argent-dawn/Readhunter/advanced"
-1.13,489,1,"http://eu.battle.net/wow/en/character/aszune/oljadblixt/advanced"
1.81,513,0,"http://eu.battle.net/wow/en/character/burning-blade/Landserr/advanced"
1.67,511,0,"http://eu.battle.net/wow/en/character/doomhammer/barryscott/advanced"
1.52,510,0,"http://eu.battle.net/wow/en/character/dragonblight/sam/advanced"
1.02,502,0,"http://eu.battle.net/wow/en/character/draenor/vareck/advanced"
0.92,509,0,"http://eu.battle.net/wow/en/character/azjolnerub/Ekzim/advanced"
0.40,497,2,"http://eu.battle.net/wow/en/character/aggramar/exploud/advanced"
0.20,505,0,"http://eu.battle.net/wow/en/character/azjolnerub/Trollepain/advanced"
-0.22,492,0,"http://eu.battle.net/wow/en/character/burning-legion/Superstarr/advanced"
-0.31,489,2,"http://eu.battle.net/wow/en/character/argent-dawn/One/advanced"
-0.69,497,0,"http://eu.battle.net/wow/en/character/aszune/lohna/advanced"
-0.72,488,0,"http://eu.battle.net/wow/en/character/emerald-dream/Beefs/advanced"
-0.82,483,6,"http://eu.battle.net/wow/en/character/azjolnerub/Gremel/advanced"
-0.90,483,5,"http://eu.battle.net/wow/en/character/burning-blade/Samanilawls/advanced"
-1.11,481,2,"http://eu.battle.net/wow/en/character/arathor/platinumah/advanced"
-1.23,514,0,"http://eu.battle.net/wow/en/character/argent-dawn/Clueso/advanced"
-1.42,487,2,"http://eu.battle.net/wow/en/character/aggramar/stance/advanced"
1.13,517,0,"http://eu.battle.net/wow/en/character/doomhammer/katam/advanced"
1.07,525,1,"http://eu.battle.net/wow/en/character/azjolnerub/Quellan/advanced"
1.07,517,0,"http://eu.battle.net/wow/en/character/argent-dawn/Jakisuaki/advanced"
0.25,509,0,"http://eu.battle.net/wow/en/character/argent-dawn/eriphyle/advanced"
0.22,504,1,"http://eu.battle.net/wow/en/character/doomhammer/halgarth/advanced"
0.10,510,6,"http://eu.battle.net/wow/en/character/argent-dawn/dull/advanced"
-0.06,502,0,"http://eu.battle.net/wow/en/character/arathor/xav%C3%A9r/advanced"
-0.26,500,7,"http://eu.battle.net/wow/en/character/arathor/chubo/advanced"
-0.60,485,1,"http://eu.battle.net/wow/en/character/draenor/B%C3%B8bble/advanced"
-0.85,494,1,"http://eu.battle.net/wow/en/character/emerald-dream/Imortisha/advanced"
-1.05,501,4,"http://eu.battle.net/wow/en/character/emerald-dream/hugeboss/advanced"
-1.16,487,0,"http://eu.battle.net/wow/en/character/bloodhoof/maimedangel/advanced"
-1.25,485,4,"http://eu.battle.net/wow/en/character/dragonblight/ulfwar/advanced"
-1.46,485,10,"http://eu.battle.net/wow/en/character/bloodscalp/lockoska/advanced"
-1.50,486,10,"http://eu.battle.net/wow/en/character/burning-blade/Stoupik/advanced"
-1.73,486,5,"http://eu.battle.net/wow/en/character/aszune/fartacus/advanced"
0.85,509,0,"http://eu.battle.net/wow/en/character/draenor/luzifer/advanced"
0.79,508,10,"http://eu.battle.net/wow/en/character/burning-legion/Krzykus/advanced"
0.36,492,1,"http://eu.battle.net/wow/en/character/aggra-portugues/Insaah/advanced"
0.10,509,0,"http://eu.battle.net/wow/en/character/emerald-dream/Opherro/advanced"
0.02,516,1,"http://eu.battle.net/wow/en/character/burning-blade/Daemonie/advanced"
0.00,508,12,"http://eu.battle.net/wow/en/character/burning-legion/asustua/advanced"
-0.09,505,1,"http://eu.battle.net/wow/en/character/emerald-dream/Remul/advanced"
-0.37,515,0,"http://eu.battle.net/wow/en/character/arathor/kelodeth/advanced"
-0.43,496,9,"http://eu.battle.net/wow/en/character/azjolnerub/Falmear/advanced"
-0.45,509,0,"http://eu.battle.net/wow/en/character/draenor/sindoraia/advanced"
-0.64,492,6,"http://eu.battle.net/wow/en/character/bladefist/kukulkanas/advanced"
-0.75,510,0,"http://eu.battle.net/wow/en/character/aggramar/stickypaws/advanced"
-0.97,497,0,"http://eu.battle.net/wow/en/character/burning-blade/Deathbreach/advanced"
-0.99,485,11,"http://eu.battle.net/wow/en/character/draenor/zeleene/advanced"
-1.30,512,0,"http://eu.battle.net/wow/en/character/draenor/qwicky/advanced"
-1.64,487,8,"http://eu.battle.net/wow/en/character/argent-dawn/Cuyler/advanced"
1.89,519,0,"http://eu.battle.net/wow/en/character/aggramar/geldorff/advanced"
1.56,514,0,"http://eu.battle.net/wow/en/character/twilights-hammer/Dellerium/advanced"
0.96,511,4,"http://eu.battle.net/wow/en/character/dragonmaw/mindstab/advanced"
0.40,509,0,"http://eu.battle.net/wow/en/character/aggra-portugues/Demix/advanced"
0.36,495,0,"http://eu.battle.net/wow/en/character/dragonmaw/magicmack/advanced"
0.25,510,0,"http://eu.battle.net/wow/en/character/argent-dawn/Hadewig/advanced"
0.22,491,1,"http://eu.battle.net/wow/en/character/aszune/elithuzad/advanced"
0.05,498,0,"http://eu.battle.net/wow/en/character/aszune/knoklen/advanced"
0.05,512,1,"http://eu.battle.net/wow/en/character/aggramar/cobrastrike/advanced"
0.00,506,0,"http://eu.battle.net/wow/en/character/burning-legion/Ninci/advanced"
-0.26,496,15,"http://eu.battle.net/wow/en/character/dragonblight/horohorro/advanced"
-0.80,482,7,"http://eu.battle.net/wow/en/character/bloodscalp/nyul%C3%A1nyka/advanced"
-0.80,492,1,"http://eu.battle.net/wow/en/character/burning-legion/Shyila/advanced"
-0.85,488,0,"http://eu.battle.net/wow/en/character/aggramar/facebeated/advanced"
-1.06,486,1,"http://eu.battle.net/wow/en/character/alakir/Meepa/advanced"
-1.65,500,20,"http://eu.battle.net/wow/en/character/azjolnerub/Munkii/advanced"
1.52,521,1,"http://eu.battle.net/wow/en/character/burning-blade/Afrak/advanced"
1.21,504,0,"http://eu.battle.net/wow/en/character/doomhammer/Methacus/advanced"
0.60,510,7,"http://eu.battle.net/wow/en/character/burning-blade/Marabu/advanced"
0.20,510,0,"http://eu.battle.net/wow/en/character/aszune/Stumbrs/advanced"
0.06,507,4,"http://eu.battle.net/wow/en/character/aggramar/Ryuruxpin/advanced"
-0.10,499,5,"http://eu.battle.net/wow/en/character/dragonblight/b%C3%A9rnard/advanced"
-0.30,500,3,"http://eu.battle.net/wow/en/character/burning-legion/Xorgis/advanced"
-0.34,497,1,"http://eu.battle.net/wow/en/character/aggra-portugues/%C3%96racl%C3%AB/advanced"
-0.38,493,8,"http://eu.battle.net/wow/en/character/burning-legion/Materam/advanced"
-0.53,510,0,"http://eu.battle.net/wow/en/character/emerald-dream/Silverhaar/advanced"
-0.65,517,0,"http://eu.battle.net/wow/en/character/aggramar/Litilia/advanced"
-0.66,508,0,"http://eu.battle.net/wow/en/character/arathor/vadudi/advanced"
-0.79,484,7,"http://eu.battle.net/wow/en/character/aggramar/War%C3%A9lic/advanced"
-0.81,482,8,"http://eu.battle.net/wow/en/character/emerald-dream/Amethyste/advanced"
-1.36,488,2,"http://eu.battle.net/wow/en/character/aggramar/invidia/advanced"
-1.48,482,1,"http://eu.battle.net/wow/en/character/bloodhoof/puffranett/advanced"
0.91,507,0,"http://eu.battle.net/wow/en/character/emerald-dream/Malei/advanced"
0.81,502,1,"http://eu.battle.net/wow/en/character/burning-legion/Akhylss/advanced"
0.69,518,0,"http://eu.battle.net/wow/en/character/argent-dawn/F%C3%A9l%C3%AD%C3%ADx/advanced"
0.33,499,1,"http://eu.battle.net/wow/en/character/argent-dawn/lathern/advanced"
0.26,505,0,"http://eu.battle.net/wow/en/character/bloodhoof/dross/advanced"
0.24,511,3,"http://eu.battle.net/wow/en/character/Aggramar/gnoddy/advanced"
0.23,510,0,"http://eu.battle.net/wow/en/character/Bloodhoof/Onil/advanced"
0.16,518,3,"http://eu.battle.net/wow/en/character/emerald-dream/Serenni/advanced"
-0.05,492,0,"http://eu.battle.net/wow/en/character/bloodscalp/%C3%96rdie/advanced"
-0.53,482,7,"http://eu.battle.net/wow/en/character/aszune/zadani/advanced"
-0.58,500,2,"http://eu.battle.net/wow/en/character/argent-dawn/Mosum/advanced"
-0.82,506,0,"http://eu.battle.net/wow/en/character/bloodhoof/Xaya/advanced"
-1.04,485,19,"http://eu.battle.net/wow/en/character/twilights-hammer/Pando/advanced"
-1.15,492,14,"http://eu.battle.net/wow/en/character/aggramar/Ikuko/advanced"
-1.30,485,1,"http://eu.battle.net/wow/en/character/bloodhoof/Jeremu/advanced"
-1.90,485,15,"http://eu.battle.net/wow/en/character/bloodhoof/leviara/advanced"
Read More
Posted in Ideas | No comments

Sunday, 26 May 2013

I told you it's not normal distribution!

Posted on 22:00 by Unknown
Few things annoys me as much as claiming that the results of people show a Gaussian distribution: most people have average results and as you move to the extremes, you get less and less people. There is no doubt that the abilities of people follow a Gaussian distribution: our IQ, our strength follow it. In games the amount of time real life allows us to play also. The "results are Gaussian" claim is merely saying "your results depend on your resources". If you play better, you surely played more. If you have better job, you were lucky to have high IQ and a high-earner family to get you to college. Saying "results are Gaussian too" is saying "your results are out of your control".

To disprove it, I started to collect results. It wasn't easy to get unbiased, straightforward dataset. The idea came from my girlfriend: Megaera. This is a very simple raidboss in World of Warcraft for damage dealers: stand where everyone else, shoot what everyone else, minimal "dancing" and even that is ignored in LFR. The Patchwerk of Pandaria. So I resubscribed WoW (just for this project, don't dream EVE players!) and went to kill Megs. 25 times in the same lockout (the week before the patch):
My girlfriend donated another 6 dead Megs so I had 31 screenshots of damage meters. Since I found that in most raids one damage dealer was AFK/DC/offline, I ignored the 17th, so got 16 data from each kills, 496 data points all together. Since the "DPS" field of the damage meter is weird, often providing higher number for a player who did less damage, I simply divided damage done with fight length (and 1.05 if there was a wipe before).
This is probably not an accurate DPS as there is time spent running between heads, but I don't care about that, I wanted to compare performances. So for accuracy: the below data is exact for "damage done on Megaera on LFR" and approximated for DPS.

With that said, the average, rounded DPS of the dataset is 65K with the sigma of 20K. I divided the players into half-sigma (10K) wide groups, so the middle group with the name "65" means those who had between 60 and 70K DPS. The left column is to be read "between 0 and 30" instead of "between 20 and 30" while the rightmost is "100 and above". The results are these:
As you can see, the Gaussian doesn't fit the results well, while "DoubleGauss" do. For easier comparison, here are the error bars (difference between real and fits). As you can see the "DoubleGauss" has much smaller errors.
The mean square difference is 0.0183 for Gaussian and 0.0078 for this "DoubleGauss", with most of the error coming in the two rightmost bars. I think it is because of the set bonuses, if someone gets good gear, he gets disproportionally better stats via set bonuses, so there are less "almost very good" players than "very good" ones. Both fits fail similarly for these bars, if we ignore them, the mean square differences change to 0.0168 and 0.0035 respectively, making this "DoubleGauss" almost perfect fit, within the granularity range (you can't get smoother results than 1/496 if you have 496 exact datapoints).

What is this "DoubleGauss"?
It's the sum of two Gaussians, the blue has the mean of 69K with 20K sigma, the brown has 47K mean with 10K sigma. These are two different, overlapping Gaussians, products of two yes-or-no different groups. It's like trying to measure size of dogs and figuring out that some of our subjects are actually cats. While there are genuine small-sized dogs (blue is non-zero in the sub-40K DPS), most of the low size results came from the invading cats.

This is the point when - instead of being satisfied that I was right - I double-checked everything because I did not want to believe it: the brown "scrub-player" Gaussian has 21% weight only. I - along with most good players - expected to see a small "elite" next to the large group of "n00bs". Instead I found that the good and average players belong to the same dataset, and the scrubs are the small minority that doesn't belong.

This is probably while Blizzard is losing customers: everyone - including myself - believed that the majority of the players is bad and catering to them is a good idea to make the game popular. But no, they are a small, but vocal minority. When Blizzard dumbed everything down to their level, they served this minority against the majority. While there are bad players who belong to the majority, they are indeed newbies and very low playtime players, who are like us, therefore don't need freebies, just shorter timespan content and more materials to learn.

The above graphs don't tell who are the "scrubs" besides two facts: they are unlike the majority and they suck at WoW. Tomorrow we'll see who they are.
Read More
Posted in Ideas | No comments

Thursday, 23 May 2013

World of Tanks cheat: the exploit

Posted on 22:00 by Unknown
This is the final part of a series, see part 4, 3, 2 and 1 first.

Every cheat is an inbalance in the game. Every inbalance can be exploited. The exploit is the ultimate proof, everything else can be disproved. I can write essays about a hidden door in the wall, I can use lot of evidence, I can be as careful as I am and I can still be wrong. There is one unquestionable way to prove the existence of the door: open it and walk trough it. I did walk trough the back-door built into World of Tanks and after reading this, you can too. People who abandon the game over being cheated can be replaced by new victims. But those who walk the back door cannot be ignored as they ruin the game for others. Also, it's pretty easy to, so I expect it to become the standard way of farming credits/XP.

What does the cheat want? To equalize the income people earn in a battle. It doesn't matter how good or bad you are, you gain generally the same amount of credits over hundreds of battles. The cheat is very well-written. When I wrote the old articles a year ago, we tried countless ways to break it, some worked for a while but the algorithm adopted or got improved and we were back where we started. There can be ways we couldn't figure out, but it doesn't matter. After you earned well for a couple dozen matches, the game will place enough handicap on you to push you back to the average. There is nothing you can do to increase your credits/battle, the cheat cannot be defeated.

But why would you care about your credits/battle? Your resource is time, not battle count. You want to increase your credits/hour. Credits/hour = credits/battle * battles/hour. The first is constant. The second can be exploited. All you need is to participate in lot of battles in an hour:

I started a new account to test the exploit independently. My purpose was to die as fast as I could. I tried to shoot and cause as much damage as I could before dying but ignored strategy and just rushed head-first into the enemy. My winrate started to drop, as I played as a horrible idiot. But soon, the algorithm recognized that I'm a "for fun" player and started to help me, bringing my winrate up to 50%:

By horrible zerging I could get the length of my participation in battle down to two and a half minutes, including the countdown and the waiting for the game to form. The same length with normal playing was around 10 minutes with the tank destroyers. What were the results?
In Tier3 and 5 I had top 1% winrate with the TD and below average as zerg. I had 3x more damage and kills with TD than I had with mindless zerging, but my XP/battle was only 1.5x higher! With Tier 4 I had above average winrate with both, due to AMX 40 can't really zerg and Alecto is a horrible TD. There I had "just" 2x more kills and damage and the same XP/battle. It is a proof for the cheat itself: in all cases I got twice as much XP/damage when I was playing intentionally bad. But the point is that by zerging mindlessly, I could participate in 3-4x more battles, so my XP/hour was 2-2.5x higher!

Unfortunately I did not write down the credit income with the British TDs because I did not know back then that it will be important. However I remember clearly to be credit-limited. The tank was already elite, with all items and the upcoming tank researched but I couldn't buy the next tank due to lack of credits, I had to farm some matches. In case of zerging, I was clearly XP-limited, I had the credits already when the tank missed 20-25% of the XP. It means that my credits/XP ratio increased significantly by zerging. Since my XP/hour is already 2-2.5x higher, it translates to 3-4x more credits/hour while playing horribly.

So to gain awful lot of credits and XP, all you need is fast death. If you have no subscription, use T5 scouts and fast mediums. Have 4 tanks of different nations ready, die fast, join the next battle with the next tank. With subscription, use high-speed Tier 7-8 gold tanks for even more credits! If you start zerging, especially if you had good winrate before, it will take some time for the algorithm to re-align, expect horrible winrate and little income for the first dozen or even hundred of matches. But finally the algorithm will catch up, elevates your winrate to 50% and from there you can just harvest.

You might ask how can one earn credits by playing horribly. If you make no damage, you can't earn anything. Well, I did not say you shouldn't shoot at all, that's stupid. You should shoot at every enemy you can. You'll be lucky! I mean "ammoracking a heavy from front from 300m while running full speed" lucky. Remember the unkillable T-50-2! You'll be that tank! Also, you'll almost always be the highest tier tank in the battle further helping you farm.

For example you rush into the middle of the map, all alone, finding yourself head-on with 5 enemies. Bad luck, right? I mean you can fire once or twice before you die under that fire. Except if you are "lucky":


Or, you rush forward left side, only to notice that by some weird luck, the enemy has lemming train on the other side, so you can reach their flag after meeting only 2 enemies. Then you can cap and kill the returning enemies, including tanks you shouldn't even penetrate, while not getting a scratch:

Of course these are extremes. Usually, you'll die fast after scoring a few hits while on the run, so take every shot you can, "luck" can't help you if you don't help yourself! Go now and break this disgusting cheat! Let's make EVE Incarna riots look like low-profile forum drama. Turn every battle into a zergfest and spread the word! Tell those who naively call you a noob that you are earning 2x more XP and 3x more credits than them by "being a noob". Make them zerg too! Imagine Malinovkas where everyone just run into the middle at the start!

The reason why no one found this result is that they believe that the opposite of good player is the AFK-er. You can't earn credits and XP via being AFK as you don't have hits and also because you'll live long, so your XP/hour will be bad. The weird, multiplication-based subscription is probably created exactly to don't reward AFK-ing. An AFK-er is obvious to his team, so annoys people. A bot is obvious to his team too. But a suicider is simply a dime-a-dozen bad player. The only difference exist in your head, you could play better if you wanted to, while a genuine moron really things that crossing Malinovka field is a good move.

Unlike exploiting a fair game, here you don't have to perform any special moves that could be banned. An AFK-leech can be banned. A gold duper in Diablo III could be banned. An evade-bug or Saronite Bomb raider can be banned. But they can't ban you for playing bad as they'd have to ban half their players. In a fair game the punishment for playing bad is defeat and resource loss. If you'd suicide-rush in League of Legends, you'd lose games in a row and get your rating devastated. If you'd suicide-rush in a WoW battleground, you'd lose games and get much less honor and especially conquest points than normal players. LoL and WoW don't cheat. WoT does, making sure that you get the same rewards for being bad as you'd get being good. So go and be bad!
Read More
Posted in Random | No comments

Wednesday, 22 May 2013

World of Tanks cheat: it's the economy stupid!

Posted on 22:00 by Unknown
This is part 4 of a series, see part 3, 2 and 1 first.

World of tanks is a free to play game, with some pay-to-win elements. While gold ammo is indeed overpowered, it's expensive enough to keep most players from using it. Cosmetic nonsense is sold but no one cares and there are gold-only tanks but they aren't overpowered. The feature that brings the money to the developers is subscription. What does it do? Increases XP gain by 50%, which isn't really interesting if you are not rushing anywhere just play the game. Its other effect is increasing credit gains. Credits are important part of the game. You not only spend them on buying more tanks but on maintenance of your current tank. If you don't make enough credits, you can't continue playing with your favorite tank and must go to farm credits with lower tanks. Maintenance costs increase with tank tier. The wiki says that you get a few credits for joining the battle but most of your credits must be earned by damaging enemies, spotting them for others to damage and capturing objectives. These credits are multiplied by 1.5 if you have subscription. Tank maintenance means repairing the damaged tank, credit cost depends on HP lost in the battle and tank tier. You also have to replace used ammunition and consumables, top level ammo is pretty expensive. The maintenance cost can be higher than credits earned, ending the match with a net loss for you.

The subscription gives you no income at all, it multiplies the income you make by playing. If you did zero damage and zero spotting, it will multiply only the near-zero base reward. It means that there are two hard skill limits for every tank tier: the higher line is the free-play line. If you are better than this, you earn enough credits to maintain that tank without paying subscription. Divide this "skill number" by 1.5 and you get the scrub-line. If you are worse than that, you can't maintain your tank even if you pay subscription.

You see the catch? Subscription can only be sold to "average" players, the ones between the two lines. Those who are better than the free-play limit don't need subscription. They may buy one for convenience, especially if they want to get tier 10 tanks for clan matches but most of them won't pay a dime to the developer. Those who are below the scrub line have absolutely no reason to pay as it won't do them any good. They are practically paying for multiplying zero by 1.5. Gold tanks have higher multiplier but that still doesn't help if you have nothing to multiply, so bad players won't spend on gold tanks either.

The 1.5 multiplier places the two lines very close to each other. If we assume that the average (or median) player is halfway between the two lines, then the scrub-line is at 80% of the average and the free-line is at 120% (80*1.5 = 120). Let's approximate skill with kills. It's far from perfect but follow me please. The average player has 0.74 kills/battle. So if you have less than 0.6, you can't play in a tier that meant to be playable for an average player, even if you pay subscription. If you have more than 0.9 kills/battle, you can play that tier for free.

The most iconic gold tanks, the Type59 and the Löwe are at tier 8. Tier 8 is where people farm their credits, so an average player meant to have income in T8 assuming he pays subscription. I have 1.23 kill/battle with my Tier 8, way over the free-limit. It is 67% higher than the average, so I should earn more credits without subscription than an average player earns with subscription. I didn't earn anything. I continuously lost credits, about 100K over 40 games. The debriefing screens clearly shown that I could earn lot of credits if I'd have a subscription. But I should be earning now!

This is the purpose of the cheat. In order to make World of Tanks profitable, every player must be held between the scrub and the free limits. Someone outside the limits is a lost customer. The goal of the cheat is not to give you losses, it's not to deny you kills, it is to deny you income over the limit. Similarly it's not about to boost a horrible player to wins or kills, it is to give him credits to have something to multiply. You can have significantly higher winrate than 50%. You can increase your XP gain. You can get medals. But you can't earn significantly more or less credits than the average player. Since credits come from dealing damage, the game needs to mess with your damage. Since winners survive and losers don't, in order to give you maintenance cost, the game needs to mess with your winrate. Also to give others damage, you need to get damaged. What you experience during battles is a by-product of the cheat that aims to set your "proper" income. This is why gold ammo is now available for credits: since it cannot earn its price, even with ideal hit, the algorithm can't care less if you increase your winrate with it, you are losing credits.

Please look at these two income sections. They were made when 300 gold was given for changing your password, so we had a 1-day subscription. There was also an event, giving 15000 credits for a medal. Without event and subscription my girlfriend earned -5587 credits while I earned -2361. Maybe we just weren't good enough on this battle. I mean our performance could easily be worse than 1.2x the average, therefore did not deserve income. Maybe this is average play:
On this battle each of us damaged more than the rest of the team combined. With subscription it earned lot of credits. Without it, negative. I'm of course not saying we always played like this. It would be OK to gain credits on this and still lose on average. But we lost credits even when we had the above performance. You can literally do miracles and still lose credits on the same battle where drooling morons gain credits - with subscription.

We know what the cheat wants. We know how does it work. And we know for sure that every cheat can be exploited. Tomorrow you will see how can you double your XP gain, triple your credit gain, and pull awesome stunts (like that unkillable T-50-2) at the cost of making the battle a pain to everyone else involved.


PS: I'm obviously not saying that the developer shouldn't earn money or should allow anyone to use its service for free. The problem is that WoT officially allows you to play the game fully for free, but makes it impossible via a cheat. Officially you can earn credits with a T10 if you play good enough. Practically, you can't even do that with a Tier 8 when you are just becoming Ace Tanker.
Read More
Posted in Random | No comments

Tuesday, 21 May 2013

World of Tanks cheat: the lemming train

Posted on 22:00 by Unknown
This is part 3 of a series, see part 2 and 1 first.

"Great, I got a fail team again!" - this is something that many good players say when they look at the map, seeing a mindless zerg going somewhere. It has the infamous name "lemming train", as they are like the little rodents whose population suffer heavy losses during migrations. The lemming train can - and usually do - lose the match, totally out of your control. "Fail team" indeed.

But "I got a fail team" is also infamous for being a bad excuse. After all, in a random match the enemy has equal chance to get a bunch of scrubs whose mental capacity equals a furry vermin. It's not like the matchmaking giving you bad players to lose. I mean it could but why? The bad players are customers too, any cheated machmaking would want to give them wins, not losses, so they can't be used as a tool to make you lose. We have to accept that your average teammate isn't dumber than your average opponent. Then why do you often get mindless lemmings? One thing is for sure, the game systems can't control other players, right? Right?

This is the map of a Karelia Assault game, before it started. You can see 5 tanks on the left, 2 of them are scouts. 10 tanks on the right, only one scout. Would you be surprised if I tell that the game was lost with a lemming train going on the right while the left side was washed up?

Same map, but 7+6 tanks (scouts and arty are not combat tanks) on both sides instead of 3+9. We won, I wonder why?

Himmelsdorf, encounter. Capturing the hill is crucial in this game. The 3 tanks in our team that are best for that job are the only Tier 8 ones, the IS3 and the two AT15s. You can see that the AT15s are very far from the hill, facing away. We lost. Wouldn't this game be different if the AT15s were in the places of the Hummel and the VK 30.01 H?

In encounter and assault battles there is little time to relocate before contact with the enemy. The placement zones are often divided, like you can see on the Karelia maps. Initial placements have large effect on the outcome even if the players recognize the problem and react. I mean the proper action in case of the first Karelia match was to wait until 2 heavies move from right to left. During this time the enemy could advance and take positions. However this is theoretical as most players are equal with a lemming in terms of strategical planning. They go where they expect contact with the enemy sooner. They will not relocate, they will not think if their action makes sense, they go to "have some fun". Place them to left and they go left. Place them right and they go right. Your team isn't inherently worse than the enemy, but they are both controlled by initial placement. If the enemy is placed properly and your team is misplaced, you get a "fail lemming horde". If your team is well placed and the enemy is misplaced, you get a "GJ team we owned lol"!

After I recognized this, I wrote into the data if the map was a normal battle or an Encounter/Assault. The result shows that it's much harder to compensate for the initial placement in the latter case. In a normal map, you have much more time to yell to the lemmings and to reposition your own tank:

Thinking that switching off Assault and Encounter maps would increase your winrate is wrong. We did that with the Tortoise and it did little good to us. The game can give you losses on a normal map, it has just easier job on a fast-paced one. Below you can see some examples of obviously bad or good initial placements and their effect on the game:

Ensk, normal battle. Above you can see the initial placement and it doesn't take a genius to guess that a lemming train will go to the city. Below you can see it in action, 30 seconds into the battle. We lost with the enemy capturing the base while 7 lemmings still alive in the city.

Erlenberg normal, perfect placement. 4 tank destroyers defending the north bridge, all tanks placed for a South assault. 7 enemies marched to the north bridge where they were easily stopped losing only 2 TDs. Crossing the bridge under fire is hard.

Malinovka, near-perfect placement: tank destroyers on the left, heavy tanks as close to the hill as possible. On the right you can see it after 30 seconds. This game was won before it started.

Tomorrow we'll see the logic and purpose behind the cheat with further proof. We must understand "why" to be able to design the counter: the exploit that will crush it.
Read More
Posted in Random | No comments

Monday, 20 May 2013

World of Tanks cheat: lucky and unucky shots

Posted on 22:00 by Unknown
This is part 2 of a series, see part 1 first.

When you fire a shot, you can hit or miss. A hit can penetrate or not. A penetrating hit can damage or not. Damage can vary according to the random generator. Lot of variables, but all can only depend on tank stats, player skill and random generator.

I gathered data from 374 matches. All from the same tank, same gun: AT15, B-barrel. During these matches I faced practically every tank randomly, the large number (15*374 = 5610 enemies) guarantee that I had an "average target tank". My skill couldn't change much as I've had more than a thousand matches with British TDs and more than a hundred with AT15 itself. The only factor remaining is random luck. Let's see how random it is.

The average damage/hit is 141.3 (gun nominal value: 230). The standard deviation is 39.6. Now, according to the distance from the average I classified matches as "unlucky" (below average damage/hit), "normal" (around average) and "lucky" (above average). The boundaries were symmetric of course and were chosen as wide to make 1/3 of the matches "normal". With random distribution it would mean 1/3 lucky and 1/3 unlucky matches. It wasn't true, I had 29% unlucky and 38% lucky matches but let's ignore it now. It's important to know that the above classification ignored if I won or lost.

Let's see the average damage/hit for the three categories, separating wins from losses:
The lucky wins aren't luckier than the lucky losses, so far, so good. But the extreme differences are troubling at best. I mean in the luckiest 1/3 of the matches I damaged almost twice as much as in the unluckiest. While random generator should be part of the damage/hit calculation this is a bit large, don't you think? Our skill should have larger effect on the outcome than RNG. But this is no cheat.

Let's see how being lucky affected the outcome of the matches?
Oops! Why is it asymmetrical? I mean if my damage/hit increases from 100 to 140, it increases winrate by 6%. If it increases by an equal amount, it has no effect on the winrate. Luck is strange in World of Tanks. It has a binary "yes or no" form. Like it would be universal, deciding only one thing: are you meant to win or lose.

As a tank destroyer, especially a 20km/h slow one, I can shoot only when the enemy can kill the rushing faster tanks and break through. If they are lucky, I don't get shots. So my number of shots is a good measure of their luck and obviously should be uncorrelated to my luck.
Uncorrelated heh? The team spirit is strong with this game: we are lucky together or unlucky together. You can see it yourself all the time: winning on one side of the map should be uncorrelated to winning on other side. Yet you rarely see games where your team reaches their flag on the left and they reach your flag on the right. What you see is your team being obliterated on both sides or winning on both sides.

Enough of stats, let's see how far "luck" can go to support a player! The infamous scout tank, T-50-2 can only trust in its speed as its 37mm armor on all sides can't stop anything that Tier 9 tanks throw at it. If it is hit, it's probably oneshotted due to its 500HP. Seriously how many shots and potential damage can this thing take before exploding?
OK, there is one way to survive penetrating hits: component damage. The tank loses some part or crew but no HP. But even that wouldn't help a scout much: lose track or engine and it can't dodge more hits. Get a hit to the fuel or ammo and it burns or blows up. A hit in the radio or the periscope would stop it from spotting and relaying the location to the others. Where can you hit the damn thing without disabling it?


Want to be as lucky as him? Wait until the exploit post on Friday and I tell you how! Tomorrow we'll see that the legendary "I lost because I got into a fail team" has a strange meaning in World of Tanks.
Read More
Posted in Random | No comments

Sunday, 19 May 2013

World of Tanks cheat: introduction and trends

Posted on 22:00 by Unknown
More than a year ago I wrote a pair of posts that World of Tanks, one of the most popular online games cheats its customers. The posts themselves aren't really good, they contain anecdotal and circumstantial evidence. Yet, these posts are my most visited ones even a year later. I mean they get on top of the direct page hits (when someone look for a specific page instead of the blog top page) every new month. I think they resonate with something my readers found themselves.

Since my main focus is EVE, I learned how the Incarna riots changed CCP for the better. I abandoned World of Tanks back then with no hope for it. Now I believe that players can force the developer to fix its messed up game. If EVE could be fixed after it tried to exploit its customers via pay-to-win, WoT can be too. So I thought it's time to revisit that game, this time properly collecting data. So with my girlfirend we started a pair of accounts and started playing. We picked the newly introduced British TDs, because the newly introduced tanks are usually overpowered, so the results will be more obvious. The results indeed came, and they came in such numbers that they way exceeded my original plans. Instead of a revisit post, it will get a 5-pieces series, each focusing on one-one aspect of the cheat, with lot of data and experiments.

Before I start, let me clarify what I consider "cheat": something that affects the outcome of the game except player skill and unbiased random number generator. If you play a dice game and the dice has 1/5 chance to give 6 instead of 1/6, someone is cheating. If someone can read the back of your cards to see your hand in poker, he is cheating. In team games you get teammates from the game provider whose actions you can't control. They act as random elements and can cost you or give you wins you don't deserve. However on the long run, you are the only stable element in your battles, the effect of your teammates mold into a big "average player" effect, providing a result that represents only your personal performance. If you gain rating in League of Legends, it is because of your skill, even if sometimes your teammates do carry you. If you have 40% winrate in World of Warcraft random battlegrounds, it's because you are bad, despite you will often lose because even worse teammates.

Matchmaking must be totally random if there is no official rating and your winrate must only be affected by your performance (after enough matches). Matchmaking should be according to the rules of a tested rating system if there is an official rating ladder to guarantee that your rating represents your performance. An individual shot by your tank must only be determined by stats of your tank, the enemy tank, the terrain and an unbiased RNG. Important note: having a rating system without official rating ladder (hidden rating) is a severe case of cheating, as one player must play much better to win the next battle, but it is considered equal by participants and spectators. Winning at 2300 rating is much bigger task - therefore bigger feat - than winning at 800 rating. Hiding the rating will equalize the two - very unequal - performances.

While it should be obvious, I write it down: cheating in a game is bad, as it takes away the chance to experience flow by destroying one of its necessary elements: "a sense of personal control or agency over the situation or activity". A game against a cheater is frustrating and no one wants to do that. Cheating is grounds to be banned from the game in practically any games. Cheating in a game where the reward is real world money (like poker in a casino) is considered a crime in several countries. Finally, while the game provider is free to set any rules in its own game, they must be made publicly so the players can choose to not play that game. If the rules are hidden, especially if they are against commonly accepted norms of gaming, they are cheats and must be treated accordingly. One can create a roulette machine that never gives black. But one can't place it to a casino without explicitly informing the players as they would play under the commonly accepted custom of black having 50% chance.

I believe no one would give money to play World of Tanks if the game provider was upfront with matchmaking and individual shot rules. The game provider gets its huge amount of income by making the players believe that they participate in fair games where the teammates and opponents are randomly chosen and in case of two identical tanks battling, the outcome only depends on player skill.

What is my aim? Not simply to incite an Incarna riot in World of Tanks. CCP did not cheat, they changed their game openly, giving the players only two choices: take it or leave it. Incarna riots were players choosing "leave it". World of Tanks is cheated, giving a third option: exploit the hell out of it. After identifying how the cheats work and more importantly "why", I designed how can they be exploited to provide players extreme influx of credits and XP at the cost of making the game unplayable to everyone else, without breaking any written rules. This is the beauty of cheating: they can't say "we didn't mean this back-door to be used by you, we placed it for someone else". After reading this series, you'll either uninstall the game, massacre newbies in pimped lowbie tanks for fun or use the exploit to get credits for gold ammo and tier 10 tanks for your clan matches. This will force the developer to change the game to the only unexploitable way: fair.


Today I start with the weakest proof: trends. If the matches are unbiased and you have X winrate, the chance of the next match being won is exactly X. On the other hand every player experiences suspicious winning or losing streaks. This is a weak argument because the chance of 10 heads on 10 coinflips in a row - while very low, 1/1024 - is not at all impossible. If you throw group of 10 coins 1000 times, the chance of not having a group with all on heads is (1023/1024)^1000 = 37%. So I initially wanted to ignore trends, but found a strange pattern repeating itself again and again, so later I started collecting such data and discuss them.

These data are win rate snapshots with the Tier 6 tank AT8. From the account page you can add the recent: 484 battles, 300 wins. Using this data, let's calculate the winrates of the various periods:
  1. First 29 battles: 24%
  2. Next 71 battles: 65%
  3. Next 86 battles:57%
  4. 198 most recent battles: 66%
While you could blame on the first data on "stock tank" effect, the drop in the third period cannot be explained this way. Also the tank won't get enough XP to turn elite after 29 matches (it had 6245 total XP on the first screenshot), so the same stock tank that lost 76% of the matches turned into a 65% winning monster. After finally reaching elite status, crew getting skills and the player behind getting more experience, win chance dropped.

Now let's consider the alternative, that the game tries to make every player "average", in order to make no one quit over "too hard" or "too easy". In this case the game estimates your skill and gives help to the bad players and handicap to the good ones. An ordinary player plays with various tanks, giving large sample to the game to calculate with. We only played with a few tanks. Before we started playing AT8, we played 116 matches with only one tank, its predecessor, the AT2. AT2 is a shamelessly overpowered tank. Whoever designed and OK-ed a tier 5 tank with 200mm front armor (as strong as the tier 10 heavies) have no place in gaming design. We made a killing with that tank, making the algorithm believe that we're some kind of super-gamers. So it gave us serious handicaps. Combine that handicap with a new stock tank and you get horrible winrate. When our poor results with AT8 got into the dataset, the algorithm overcompensated, providing 66% winrate which is World top 1000. With these data added to the set, it finally got our "proper" value and we got our place with 57%. Then we left AT8 for the next tanks. Tier 8 enemies are harder than Tier 6, our results with AT15 were worse than with AT8, it's normal. But when we returned to AT8 to farm credits to buy the Tier 9, the algorithm used our AT15 results to calculate handicap, giving once again 66% winrate. The effect was further doubled by two players in the platoon having the same unbalance.

The most recent data from the site is 260/471, let's calculate the winrates of the consecutive periods for the tier 8 AT15:
  1. First 20 battles: 25%
  2. Next 28 battles: 57%
  3. Next 18 battles: 48%
  4. Next 84 battles: 58%
  5. 320 most recent battles: 57%
The same oscillation, despite the AT15 starter gun is almost as good as the final gun. Bad start, overcompensation, recompensation and finally with maxed tank and crew, a good but not spectacular results.

Preparing this to happen again, I wrote down every individual result with the tier 9 Tortoise tank. Remember that I wrote we returned to AT8 to farm credits for Tortoise? So the last data the algorithm got was our 66% winrate when we started playing Tortoise:
The graph shows the average winrate up to that match, so the "30" point is the average of the first 30 matches, the "50" is the average of the first 50 matches. Same pattern: terrible start, overcompensation, recompensation. Of course 40% can't be the final result and it would have been interesting to see how the Tortoise runs up to a couple hundred matches, but we ran out of credits and didn't want to pay a cent to the company to get more credits. Farming with other tank would have broken the results, so this is it.

What does the above tell: that the match outcome is pretty surely manipulated, there is an algorithm calculating your strength and then rig the matches to level you to the average. Tomorrow we'll discuss one way of messing with the match: messing with your shots.

PS: If you'd think we purposefully lost to fabricate these results, please wait until Friday before commenting. You'll see that it's impossible to fabricate such data.
Read More
Posted in Random | No comments
Newer Posts Older Posts Home
Subscribe to: Comments (Atom)

Popular Posts

  • Suffer mortals, as your pathetic password betrays you!
    One of the things we often don't put much thought into is password selection. Usually it is a loved-one's name or an easily remembe...
  • (I'm not) defining lowsec
    This is a rather short post, will be one more today, about my very first PvP action. Sugar reminded me of a problem that I read about a l...
  • The big EVE trick
    What is an easy game: where everyone can achieve what he wants easily. What is a hard game: where you can only advance by becoming better an...
  • You must station trade what you haul
    Well, actually you don't if you are fine with hauling for buy orders. This case you lose serious profit. If you are the station trader o...
  • The (total lack of) balance of trade of highsec
    The fact that you can be much more rich in highsec than in the competitive areas of EVE (low, null, WH) is one of my main messages. It can b...
  • Thinking about highsec POCOs
    In the next EVE patch, Rubicon, highsec customs offices will be capturable by players (actually you destroy and build your own, but it's...
  • What would happen if people could trade?
    The question of mirror-ability of strategies often comes up when I post my trading strategy. The 0.01 strategy is clearly mirror-able. If th...
  • October ganking report
    October was a great month for my corporation , We Gank Because We Care. You can see the results on the killboard but since October was 31 d...
  • The proper profit metric
    Live moron of the weekend post . Did they spent the last month under a rock? People having trouble making ISK with trading. Some rather go m...
  • ur a kid!
    The title is a troll comment I get often. It doesn't make much sense. It's clearly not an argument. While we know that socials don...

Categories

  • account
  • account theft
  • adobe
  • alpha
  • arena tournament
  • authenticator
  • authenticators
  • battle.net
  • beta
  • blizzard
  • brute force
  • cataclysm
  • diablo 3 phishing scam
  • dictionary attack
  • drive-by
  • email
  • fake
  • flash
  • game
  • Gold
  • guild
  • gumblar
  • hacked
  • hacking
  • hacks
  • Ideas
  • ISK
  • keylogger
  • march
  • mmo-champion
  • New
  • password
  • password stealing
  • patching
  • phishing
  • raiding
  • Random
  • ranks
  • remote auction house
  • scam
  • scams
  • security
  • security checklist
  • soccer
  • strong password
  • trojan
  • vulnerability
  • warcraft
  • wow
  • wowarmory
  • wowmatrix

Blog Archive

  • ▼  2013 (242)
    • ►  November (15)
    • ►  October (25)
    • ►  September (24)
    • ►  August (21)
    • ►  July (24)
    • ►  June (22)
    • ▼  May (22)
      • What could CCP do with the launcher failure?
      • A newbie and also hardcore friendly WoW raid mechanic
      • The "carebear", the "PvP-er" and the blue doughnut
      • Who are the second group of players?
      • I told you it's not normal distribution!
      • World of Tanks cheat: the exploit
      • World of Tanks cheat: it's the economy stupid!
      • World of Tanks cheat: the lemming train
      • World of Tanks cheat: lucky and unucky shots
      • World of Tanks cheat: introduction and trends
      • Crashing Neocoms
      • Cap boosters, T2 ammo and time
      • The perfect limited-gate highsec mission boat
      • Dual character training
      • Keep it simple stupid! (or the CSM election fail)
      • A good example for traders
      • The rise of the non-aligned voter (and fail of the...
      • Living in interesting times
      • Ownership vs leadership (aka the Sort Dragon fail)
      • Blues and morality
      • Farms and fields will never happen
      • Business Thursday: mission mining at large
    • ►  April (22)
    • ►  March (20)
    • ►  February (21)
    • ►  January (26)
  • ►  2012 (261)
    • ►  December (24)
    • ►  November (21)
    • ►  October (24)
    • ►  September (21)
    • ►  August (26)
    • ►  July (25)
    • ►  June (20)
    • ►  May (25)
    • ►  April (23)
    • ►  March (23)
    • ►  February (23)
    • ►  January (6)
  • ►  2011 (4)
    • ►  September (1)
    • ►  April (1)
    • ►  March (1)
    • ►  January (1)
  • ►  2010 (17)
    • ►  November (1)
    • ►  September (2)
    • ►  August (1)
    • ►  July (1)
    • ►  June (2)
    • ►  May (2)
    • ►  April (1)
    • ►  March (2)
    • ►  February (2)
    • ►  January (3)
  • ►  2009 (4)
    • ►  December (1)
    • ►  October (1)
    • ►  September (1)
    • ►  July (1)
Powered by Blogger.

About Me

Unknown
View my complete profile