Jump to content
Korean Random

Скрипт для браузера - статистика игроков на форумах WoT, WoWS и wotreplays


seriych

Recommended Posts

тут такой нежданчик случился. Оказывается метод в API, который бои на танках выдает (я раньше думал бесполезный, ибо есть другой, который кроме боев еще много всего выдает), умеет сразу много игроков в одном запросе обрабатывать. Соответственно можно сделать нормальные рейтинги :-)

post-8781-0-50018000-1444811902_thumb.png

на форуме соответственно тоже 

Link to comment
Short link
Share on other sites

Замечательно конечно, но я нифига не понял. По-подробней можно?

http://ru.wargaming.net/developers/api_explorer/wot/account/tanks/?application_id=demo&fields=tank_id%2Cstatistics.battles&account_id=40%2C468765&http_method=GET&run=1

Edited by seriych
Link to comment
Short link
Share on other sites

тут такой нежданчик случился. Оказывается метод в API, который бои на танках выдает (я раньше думал бесполезный, ибо есть другой, который кроме боев еще много всего выдает), умеет сразу много игроков в одном запросе обрабатывать. Соответственно можно сделать нормальные рейтинги :-)

attachicon.gifwr2.png

на форуме соответственно тоже

Ну в другом скрипте статистик батлс юзается, если ты об этом

// processing information from player API
function apiInfoHnd(resp) {
	var data = JSON.parse(resp).data;
	for (var a in data) {
		if (data.hasOwnProperty(a)) {
			// store stats
			s[data[a].account_id].u = {
				name: data[a].nickname,
				id: data[a].account_id,
				cid: data[a].clan_id,
				bat: data[a].statistics.all.battles,
				win: (data[a].statistics.all.wins/data[a].statistics.all.battles)*100,
				dmg: data[a].statistics.all.damage_dealt/data[a].statistics.all.battles,
				frag: data[a].statistics.all.frags/data[a].statistics.all.battles,
				spot: data[a].statistics.all.spotted/data[a].statistics.all.battles,
				def: data[a].statistics.all.dropped_capture_points/data[a].statistics.all.battles,
				wgr: data[a].global_rating,
				lng: data[a].client_language
			};
		}
	}
	reqHnd(sc.api.v, apiVehHnd);
}

// processing information from vehicle API and calculate WN8
function apiVehHnd(resp) {
	var data = JSON.parse(resp).data;
	for (var p in data) {
		if (data.hasOwnProperty(p)) {
			var rWin, rDmg, rFrag, rSpot, rDef;
			if (s[p].u.bat > 0) {
				for (var v in data[p]) {
					if (data[p].hasOwnProperty(v)) {
						for (var _so=0; _so<statObj.length; _so++) {
							if (statObj[_so].IDNum == data[p][v].tank_id) {
								var vehStat = statObj[_so];
								s[p].v.frag += vehStat.expFrag    *data[p][v].statistics.battles;
								s[p].v.dmg  += vehStat.expDamage  *data[p][v].statistics.battles;
								s[p].v.spot += vehStat.expSpot    *data[p][v].statistics.battles;
								s[p].v.def  += vehStat.expDef     *data[p][v].statistics.battles;
								s[p].v.win  += vehStat.expWinRate *data[p][v].statistics.battles;
								break;
							}
						}
					}
				}
				rWin  = Math.max(((s[p].u.win /(s[p].v.win /s[p].u.bat)-0.71)/(1-0.71)),0);
				rDmg  = Math.max(((s[p].u.dmg /(s[p].v.dmg /s[p].u.bat)-0.22)/(1-0.22)),0);
				rFrag = Math.max(Math.min(rDmg+0.2,((s[p].u.frag/(s[p].v.frag/s[p].u.bat)-0.12)/(1-0.12))),0);
				rSpot = Math.max(Math.min(rDmg+0.1,((s[p].u.spot/(s[p].v.spot/s[p].u.bat)-0.38)/(1-0.38))),0);
				rDef  = Math.max(Math.min(rDmg+0.1,((s[p].u.def /(s[p].v.def /s[p].u.bat)-0.10)/(1-0.10))),0);
				s[p].wn8 = colStat(980*rDmg + 210*rDmg*rFrag + 155*rFrag*rSpot + 75*rDef*rFrag + 145*Math.min(1.8,rWin),"wn8",0);
			}
			else {
				s[p].wn8 = colStat(0,"wn8",0);
			}
		}
	}
	statInsert();
}

Edited by HellQwer
Link to comment
Short link
Share on other sites

...Соответственно можно сделать нормальные рейтинги :-)

Если в окне результатов боя (как на скрине) будет отображаться статистика (да ещё и настраиваемая средствами хвм) это ж какое подспорье для офицеров кланов! Да и так сразу будет видно: результат случайный или закономерный))) и не надо лезть в "достижения" игрока...

Link to comment
Short link
Share on other sites

Если в окне результатов боя (как на скрине) будет отображаться статистика (да ещё и настраиваемая средствами хвм) это ж какое подспорье для офицеров кланов! Да и так сразу будет видно: результат случайный или закономерный))) и не надо лезть в "достижения" игрока...

это же на сайте реплеев, к сожалению

Link to comment
Short link
Share on other sites

 

 

Оказывается метод в API, который бои на танках выдает (я раньше думал бесполезный, ибо есть другой, который кроме боев еще много всего выдает), умеет сразу много игроков в одном запросе обрабатывать.

 

Я может не совсем понял, но вроде давно уже так. Моды же альтернативные XVM, показывающие стату они его юзает.

 

Вот например: 

        players = []
        for pl in arena.vehicles.values():
            players.append(str(pl['accountDBID']))

        res = ','.join(players)
        request = 'http://api.worldoftanks.ru/wot/account/info/?application_id=demo&fields=statistics.all&account_id=' + res
        import urllib2
        import json
        players = json.loads(urllib2.urlopen(request).read())['data']
Link to comment
Short link
Share on other sites

Лучше скажите, как вежливо обратиться к серваку, чтобы он мне файлик отдал:

xmlhttp.open("GET", 'http://www.wnefficiency.net/exp/expected_tank_values_latest.json', true);

нифига не хочет работать. А кидаю тот же файл в дропбокс - работает:

xmlhttp.open("GET", 'https://dl.dropboxusercontent.com/u/16986523/expected_tank_values_latest.json', true);
Edited by seriych
Link to comment
Short link
Share on other sites

  • 4 weeks later...

 

 

Лучше б ввели дополнительные две колонки: "урон, нанесённый с вашей помощью"
с начкока не получилось - сортировка вырубается.

Закончу с рейтингами, попробую получше поковыряться

  • Upvote 1
Link to comment
Short link
Share on other sites

fetch разве не в моде уже?

я вообще не в курсе что в моде, а что нет.

Там вроде от настроек сервера зависит и fetch, наверное, не поможет, плюс надо как-то в опере 12-й еще чтобы работало. Короче, я закинул на битбакет- оттуда качает норм.

 

сейчас другая проблема всплыла - по идее надо поддержку @run-at document_idle, а оно не везде есть. В violentmonkey не пашет, в greasemonkey 4 дня назад добавили и в релизе еще нет.

Придется пока возвращать кусок кода в старое место, а то уже в текущем релизе косяк- не выделяет автора реплея на второй вкладке.

lol, посмотрел код violentmonkey - там document-idle и все подобные через тире написаны вместо подчеркивания :-)

Edited by seriych
Link to comment
Short link
Share on other sites

 

 

Firefox
печалька. Вот только в нем и не работает пока :-)

 

 

в greasemonkey 4 дня назад добавили и в релизе еще нет.

 

 

всё нормально работало.

 

не выделяет автора реплея на второй вкладке.

это в принципе фигня. Но с добавлением ассита уже хуже

Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...