Aydomir 1 #284440 Posted July 24, 2015 (edited) что значит расширенный? по танкам? Нет, кол-во боев и победы мне ясно, но хочется узнать нанесенный урон, полученный урон, захват/защита базы и т.п. Edited July 24, 2015 by Aydomir Quote Share this post Link to post Short link Share on other sites
Helkar 385 #284442 Posted July 24, 2015 Нет, кол-во боев и победы мне ясно, но хочется узнать нанесенный урон, полученный урон, захват/защита базы и т.п. посмотрите список доступных функций: for attr in dir(g_itemsCache.items.getAccountDossier().getRandomStats()): if attr.find('get') == 0: print attr их можно вызвать так: g_itemsCache.items.getAccountDossier().getRandomStats().функция() 1 Quote Share this post Link to post Short link Share on other sites
Aydomir 1 #284447 Posted July 24, 2015 посмотрите список доступных функций: for attr in dir(g_itemsCache.items.getAccountDossier().getRandomStats()): if attr.find('get') == 0: print attr их можно вызвать так: g_itemsCache.items.getAccountDossier().getRandomStats().функция() У меня не получается получить, можете показать список? Если нет, то не надо. Спасибо. Quote Share this post Link to post Short link Share on other sites
Helkar 385 #284448 Posted July 24, 2015 INFO: getAchievement INFO: getAchievements INFO: getArmorUsingEfficiency INFO: getAvgDamage INFO: getAvgDamageBlocked INFO: getAvgDamageDealt INFO: getAvgDamageReceived INFO: getAvgEnemiesSpotted INFO: getAvgFrags INFO: getAvgXP INFO: getBattlesCount INFO: getBattlesCountBefore8_8 INFO: getBattlesCountBefore9_0 INFO: getBattlesCountVer2 INFO: getBattlesCountVer3 INFO: getBattlesStats INFO: getCapturePoints INFO: getDamageAssistedEfficiency INFO: getDamageAssistedRadio INFO: getDamageAssistedTrack INFO: getDamageBlockedByArmor INFO: getDamageDealt INFO: getDamageEfficiency INFO: getDamageReceived INFO: getDeathsCount INFO: getDrawsCount INFO: getDroppedCapturePoints INFO: getFrags8p INFO: getFragsCount INFO: getFragsEfficiency INFO: getHeHits INFO: getHeHitsReceived INFO: getHitsCount INFO: getHitsEfficiency INFO: getLossesCount INFO: getLossesEfficiency INFO: getMarksOfMastery INFO: getMaxDamage INFO: getMaxDamageVehicle INFO: getMaxFrags INFO: getMaxFragsVehicle INFO: getMaxXp INFO: getMaxXpVehicle INFO: getNearestAchievements INFO: getNoDamageShotsReceived INFO: getOriginalXP INFO: getPierced INFO: getPiercedReceived INFO: getPotentialDamageReceived INFO: getRecord INFO: getShotsCount INFO: getShotsReceived INFO: getSignificantAchievements INFO: getSpottedEnemiesCount INFO: getSurvivalEfficiency INFO: getSurvivedBattlesCount INFO: getVehicles INFO: getWinAndSurvived INFO: getWinsCount INFO: getWinsEfficiency INFO: getXP INFO: getXpBefore8_8 2 Quote Share this post Link to post Short link Share on other sites
Aydomir 1 #284449 Posted July 24, 2015 (edited) INFO: getAchievement INFO: getAchievements INFO: getArmorUsingEfficiency INFO: getAvgDamage INFO: getAvgDamageBlocked INFO: getAvgDamageDealt INFO: getAvgDamageReceived INFO: getAvgEnemiesSpotted INFO: getAvgFrags INFO: getAvgXP INFO: getBattlesCount INFO: getBattlesCountBefore8_8 INFO: getBattlesCountBefore9_0 INFO: getBattlesCountVer2 INFO: getBattlesCountVer3 INFO: getBattlesStats INFO: getCapturePoints INFO: getDamageAssistedEfficiency INFO: getDamageAssistedRadio INFO: getDamageAssistedTrack INFO: getDamageBlockedByArmor INFO: getDamageDealt INFO: getDamageEfficiency INFO: getDamageReceived INFO: getDeathsCount INFO: getDrawsCount INFO: getDroppedCapturePoints INFO: getFrags8p INFO: getFragsCount INFO: getFragsEfficiency INFO: getHeHits INFO: getHeHitsReceived INFO: getHitsCount INFO: getHitsEfficiency INFO: getLossesCount INFO: getLossesEfficiency INFO: getMarksOfMastery INFO: getMaxDamage INFO: getMaxDamageVehicle INFO: getMaxFrags INFO: getMaxFragsVehicle INFO: getMaxXp INFO: getMaxXpVehicle INFO: getNearestAchievements INFO: getNoDamageShotsReceived INFO: getOriginalXP INFO: getPierced INFO: getPiercedReceived INFO: getPotentialDamageReceived INFO: getRecord INFO: getShotsCount INFO: getShotsReceived INFO: getSignificantAchievements INFO: getSpottedEnemiesCount INFO: getSurvivalEfficiency INFO: getSurvivedBattlesCount INFO: getVehicles INFO: getWinAndSurvived INFO: getWinsCount INFO: getWinsEfficiency INFO: getXP INFO: getXpBefore8_8 Спасибо! Я очень благодарен! Просто рад! Edited July 24, 2015 by Aydomir Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #284514 Posted July 24, 2015 (edited) а как установить себе 99999999 хотяб визуально, чтоб чики тащились от моих скринов from gui.Scaleform.locale.MENU import MENU from gui.Scaleform.locale.TOOLTIPS import TOOLTIPS from gui.Scaleform.daapi.view.lobby.header.LobbyHeader import LobbyHeader from gui.Scaleform.daapi.view.lobby.header.LobbyHeader import TOOLTIP_TYPES def New_onCredits(self, accCredits): Old_onCredits(self, accCredits) self.as_creditsResponseS('100 000 000', MENU.HEADERBUTTONS_BTNLABEL_EXCHANGE_GOLD, TOOLTIPS.HEADER_GOLD_EXCHANGE, TOOLTIP_TYPES.COMPLEX) Old_onCredits = LobbyHeader._LobbyHeader__setCredits LobbyHeader._LobbyHeader__setCredits = New_onCredits Edited September 27, 2015 by Dark_Knight_MiX 1 Quote Share this post Link to post Short link Share on other sites
bagbirs 1 #293565 Posted September 27, 2015 (edited) подскажите пожалуйста, как получить список танков, оставшихся для получения медали "эксперт"? from gui.shared import g_itemsCache isInDossier = False result = [] awards = g_itemsCache.items.getAccountDossier().getTotalStats().getAchievements(isInDossier) for x in awards[1]: if 'TankExpertAchievement' in str(x): result.append(x) print result результат: [TankExpertAchievement<name=tankExpert; value=0; levelUpValue=282 levelUpTotalValue=324 isDone=False>, TankExpertAchievement<name=tankExpert0; value=0; levelUpValue=50 levelUpTotalValue=63 isDone=False>, TankExpertAchievement<name=tankExpert1; value=0; levelUpValue=59 levelUpTotalValue=71 isDone=False>, TankExpertAchievement<name=tankExpert2; value=0; levelUpValue=49 levelUpTotalValue=55 isDone=False>, TankExpertAchievement<name=tankExpert4; value=0; levelUpValue=42 levelUpTotalValue=44 isDone=False>, TankExpertAchievement<name=tankExpert5; value=0; levelUpValue=45 levelUpTotalValue=52 isDone=False>, TankExpertAchievement<name=tankExpert3; value=0; levelUpValue=16 levelUpTotalValue=17 isDone=False>, TankExpertAchievement<name=tankExpert6; value=0; levelUpValue=21 levelUpTotalValue=22 isDone=False>] как получить список танков для каждой медали? Edited September 30, 2015 by bagbirs Quote Share this post Link to post Short link Share on other sites
bagbirs 1 #293797 Posted September 30, 2015 есть еще g_itemsCache.items.getAccountDossier().getTotalStats().getAchievement() и она что то принимает. может с помощью этого можно добраться? Quote Share this post Link to post Short link Share on other sites
Steeler 1 #395219 Posted June 14, 2017 Товарищи мододелы, подскажите пожалуйста, как в текущем патче получить информацию о любом игроке по ID? Количество боев, WG рейтинг и тому подобное, при этом, как в лобби, так и в бою. Пока что для себя реализовал через запрос в api.worldoftanks. Но хочу понять, как это сделать через получение accountDossier через Python, ведь g_itemsCache убрали. Нашел код: from helpers import dependency from skeletons.gui.shared import IItemsCache itemsCache = dependency.descriptor(IItemsCache) dossier = itemsCache.items.getAccountDossier(id) Но не могу понять, когда и как правильно вызывать. Вылезает ошибка из за отсутствия items в кэше... P.S. И какой из вариантов правильнее использовать (api.worldoftanks или accountDossier)? Что будет быстрее и лучше в плане оптимизации, например, при тех же 30 запросах в начале боя? Quote Share this post Link to post Short link Share on other sites
POLIROID 210 #395229 Posted June 14, 2017 какой из вариантов правильнее использовать (api.worldoftanks или accountDossier)? Что будет быстрее и лучше в плане оптимизации, например, при тех же 30 запросах в начале боя? Само собой используйте PAPI Правильно собранный запрос выдаст вам информацию обо всех 30 игроках в бою за время меньше секунды. Используя доссьер вам придется только на запросы 29 доссьров (ваш уже в кеше) потратить 29 * 0.5 - 15 секунд (0.5 это таймаут ибо запрашивая с меньшим интервалом сервер будет отвергать запрос) 1 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #395231 Posted June 14, 2017 (edited) Товарищи мододелы, подскажите пожалуйста, как в текущем патче получить информацию о любом игроке по ID? Количество боев, WG рейтинг и тому подобное, при этом, как в лобби, так и в бою. Пока что для себя реализовал через запрос в api.worldoftanks. Но хочу понять, как это сделать через получение accountDossier через Python, ведь g_itemsCache убрали. Нашел код: from helpers import dependency from skeletons.gui.shared import IItemsCache itemsCache = dependency.descriptor(IItemsCache) dossier = itemsCache.items.getAccountDossier(id) Но не могу понять, когда и как правильно вызывать. Вылезает ошибка из за отсутствия items в кэше... Если inline, то так: from helpers import dependency from skeletons.gui.shared import IItemsCache itemsCache = dependency.instance(IItemsCache) dossier = itemsCache.items.getAccountDossier(id) Если в классе, то так: from helpers import dependency from skeletons.gui.shared import IItemsCache class Foo: itemsCache = dependency.descriptor(IItemsCache) def bar(self, id): dossier = self.itemsCache.items.getAccountDossier(id) Если по 30 игрокам, то @POLIROID ответил как лучше. Edited June 14, 2017 by sirmax 3 Quote Share this post Link to post Short link Share on other sites
Steeler 1 #395313 Posted June 15, 2017 POLIROID, sirmax, спасибо вам большое, буду разбираться. Правда, еще уточню... Правильно собранный запрос выдаст вам информацию обо всех 30 игроках в бою за время меньше секунды. Имеете ввиду, что бы в запросе были указаны только необходимые поля ответа, или есть еще какие то хитрости? Ранее просто никогда не работал с API, потому интересуют все нюансы. ваш уже в кеше А как правильнее его считать? Сейчас делаю по коду ниже, не указывая id. from helpers import dependency from skeletons.gui.shared import IItemsCache itemsCache = dependency.instance(IItemsCache) accountDossier = itemsCache.items.getAccountDossier() Или так и нужно, и возможно в таком случае запрос на сервер уже не отправляется, а считывается с уже сформированного кэша? Quote Share this post Link to post Short link Share on other sites
ShuraBB 1,151 #395337 Posted June 15, 2017 (edited) >что бы в запросе были указаны только необходимые поля ответа, или есть еще какие то хитрости? Отправляешь список аккаунтов по которым нужны данные и список полей которые тебе нужны К примеру так: http://api.worldoftanks.ru/wot/ratings/accounts/?application_id=Demo&fields=battles_count.value,wins_ratio.value,global_rating.value,xp_avg.value,damage_avg.value&type=all&account_id=111,222,333,444,555,666,777 И не забудь про разные кластеры (если это тебе важно) Ну а вообще вот тут: https://developers.wargaming.net/все написано с пояснениями и возможностью протестировать Edited June 15, 2017 by ShuraBB 1 Quote Share this post Link to post Short link Share on other sites
Steeler 1 #396285 Posted June 27, 2017 (edited) Отправляешь список аккаунтов по которым нужны данные и список полей которые тебе нужны Спасибо, значит я все правильно делал. Edited June 28, 2017 by Steeler Quote Share this post Link to post Short link Share on other sites