Здравствуйте! Я уже создавал подобную тему, где спрашивал мнение игроков о расширении [публичного API](< base_url >/index.php?/topic/50457-%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D1%87%D0%BD%D0%BE%D0%B5-api/) нашей игры, и тема получила достаточно неплохие отзывы, много людей было “За”. Пообщавшись с не меньшим количеством игроков, мне удалось составить конкретные значения, которые игровое сообщество хочет видеть и использовать в своих сервисах. Кроме того, нам дали понять, что функция может получить расширение, осталось только показать, что оно действительно нам нужно. Но для начала введу в курс дела.
API - открытая функция просмотра статистики игрока в виде строки, которую используют ВСЕ без исключения сервисы по её отслеживанию,просмотру и тд. Имеет она на данный момент такой вид (взято с официальной темы публичного API):
{"result":"ok",//тип ответа ("ok" - успешный запрос, "error" - ошибка)"code":0,//код ошибки (0 - нет ошибки)"data":{"effRating":5773.6811523438,//рейтинг пилота (целая часть числа)"karma":7964,//карма"nickName":"Rockfor",//ник пилота (как в запросе, регистрозависимо)"prestigeBonus":1.61,//мощь флота (значение параметра \* 100)"uid":375781,//внутриигровой идентификатор пилота (не отображается в игре, уникален,не меняется при смене ника, можно увидеть в логах игры)"pvp":{"gamePlayed":6120,//всего боев"gameWin":3188,//всего побед (ничьи = поражению)"totalAssists":43352,//всего ассистов"totalBattleTime":2829892561,//времени в бою (в миллисекундах)"totalDeath":8571,//всего смертей в бою (отсутствует во внутриигровой статистике)"totalDmgDone":852732506.90374,//всего нанесено урона (целая часть числа)"totalHealingDone":92096901.883942,//всего причинено ремонта"totalKill":22501,//всего убийств"totalVpDmgDone":40120.587310135//всего очков захвата в режиме "захват маяков" (целая часть числа)},"clan":{"name":"TEAM BUILD",//полное имя корпорации"tag":"TEAM"//тег корпорации}}}
Вся Ваша статистика хранится на серверах игры, и вся она видна в игре. Так? Так. Для того, чтобы можно было создавать всякие прикольные вещи по типу schistory.space, одним словом инструменты, позволяющие наблюдать за Вашим прогрессом, за Вашей историей как игрока и в целом просто иметь представление о том, сколько боёв Вы наиграли, допустим, за неделю сделали публичное API нашей игры. Оно просто выводит в программном JSON(можете загуглить про этот метод, если интересно) коде всю доступную на этот момент статистику, но ограничена она только пвп режимом и небольшой информацией о пилоте по типу его эффективности и корпорации.
На данный момент мы можем посмотреть общие данные пользователя(корпорация, карма, ник) и данные с PvP боёв. Но, как показала практика ведения сервисов, например schitory.space, с автором которого я прекрасно общаюсь и который всячески помогает мне с моим ботом - [Лучиком и Вжухом](< base_url >/index.php?/topic/63017-vkbot-luchik-i-vzhukh-luchshie-pomoshchniki-kazhdogo-pilota/) этих данных очень мало для текущего комьюнити игры, ведь PvP-игроков на самом деле меньше PvE-игроков, или тех, кто заходит играть турниры или БЗС, а введу будущего обновления открытого космоса, данные API будут просто скудны.
Поэтому я представляю вашему вниманию данные, которые мы хотим видеть в публичном API и с помощью которых игроки по нажатию одной кнопки не находясь в игре могут отслеживать свой игровой прогресс, прогресс друзей, врагов и своей корпорации. Ничего “скрытого” мы не хотим вытащить из базы данных игры, это всё можно увидеть в игровом интерфейсе. Я предлагаю добавить для этого данные PvE, CO-OP, завоевания, противостояния корпораций и открытого мира, т.к. это всё есть в игре и это всё ежедневно используется игроками, записывается в статистику, но в ту самую строку, позволяющую внешне просматривать данные пилота, не попадает.
//значение "number" подразумевает внутри значения число.{"result":"ok","code":0," data":{“Lvl”:number,//уровень допуска пилота "effRating":number,//эффективность пилота "nickName":"Nick",//уровень допуска пилота "prestigeBonus"number,//мощь флота пилота "uid":number,//уникальный идентификатор пилота "pvp":{"pvpPlayed":number,//всего игр в pvp"pvpWin":number,//всего побед в pvp (ничьи = поражение)"pvpTotalAssists":number,//всего помощи в pvp"pvpBattleTime":number,//время игры в pvp"pvpTotalDeath":number,//cмертей в pvp"pvpTotalDmgDone":number,//нанесено урона в pvp"pvpTotalHealingDone":number,//всего оказано ремонта в pvp"pvpTotalKill":number,//всего убийств в pvp"pvpTotalVpDmgDone":number,//всего очков захвата маяков в pvp“pvpEffRating”:number,//текущее значение эффективности в pvp из рейтинговой таблицы внутри игры},"сonquest":{“сonquestPlayed”:number,//всего игр в завоевании "сonquestWin":number,//всего побед в завоевании“сonquestPoints”:number,//всего набрано очков влияния в завоевании"сonquestTotalAssists":number,//всего помощи в завоевании "сonquestBattleTime":number,//время игры в завоевании"сonquestTotalDeath":number,//всего смертей в завоевании"сonquestTotalDmgDone":number,// всего нанесено урона в завоевании"сonquestTotalHealingDone":number,// всего оказано ремонта в завоевании"сonquestTotalKill":number,//всего убийств в завоевании "сonquestTotalVpDmgDone":number,//всего очков захвата в завоевании}“pve”:{“attackLvl”:number,//уровень атаки в PvE“defenceLvl”: number,//уровень защиты в PvE“mission-1-progress”: number,//достигнутый уровень в миссии 1“mission-2-progress”: number,//достигнутый уровень в миссии 2........//тут идёт перечисление достигнутых уровней в PvE миссиях“mission-x-progress”: number,//достигнутый уровень в миссии x(условно)“pvePlayed”:number,//всего игр в PvE“pveEffRating”:number,// текущее значение эффективности в PvE из рейтинговой таблицы}“specops ”:{“specopsPlayed”:number,// всего игр в спецоперациях“specopsWin”:number,//всего побед в спецоперациях“specopsDefilerTime”:Time,//личный рекорд в спецоперации “Осквернитель”“specopsDestroyerTime”:Time,//личный рекорд в спецоперации “Разрушитель”“specopsDevourerTime”:Time,//личный рекорд в спецоперации “Поглотитель”}"coop":{"coopPlayed":number,//всего игр в CO-OP"coopWin":number,//всего побед в CO-OP"coopTotalAssists":number,//всего помощи в CO-OP"coopBattleTime":number,//время игры в CO-OP"coopTotalDeath":number,//всего смертей в CO-OP"coopTotalDmgDone":number,//всего урона в CO-OP"coppTotalHealingDone":number,//всего оказано ремонта в CO-OP"coopTotalKill":number,//всего убийств в CO-OP"coopTotalVpDmgDone":number,//всего очков завхвата маяков в CO-OP},"Fights":{"FightsPlayed":number,//всего игр в потасовках"FightsWin":number,//всего побед в потасовках"FightsTotalAssists":number,//всего помощи в потасовках"FightsBattleTime":number,//время игры в потасовках"FightsTotalDeath":number,//всего смертей в потасовках "FightsTotalDmgDone":number,//всего урона в потасовках"FightsTotalHealingDone":number,//всего оказано ремонта в потасовках"FightsTotalKill":number,//всего убийств в потасовках"FightsTotalVpDmgDone":number,//всего очков захвата маяков в потасовках},“OpenWorld”:{“OpenWorldKarma”:number,//текущее значение кармы в открытом мире “OpenWorldWay”:number,//количество километров, которые всего пилот пролетел в открытом мире“OpenWorldKillMobsBlue”:number,//количество убитых “добрых” ботов “OpenWorldKillMobsRed”:number,//количество убитых “злых” ботов“OpenWorldKillPlayers ”:number,//количество убитых игроков в открытом мире“OpenWorldBattleTime”:number,//время игры в открытом мире“OpenWorldTotalDeath”:number,//смертей в открытом мире"clan":{"name":"Name",//название корпорации"tag":"Tag"//тег корпорации“clanPvpRating”:number,//текущий PvP рейтинг корпорации“clanPveRating”:number,//текущий PvE рейтинг корпорации“clanWarRating”:number,//рейтинг корпорации в противостоянии корпораций“clanBelongs”://очков влияния в удерживаемом секторе в “Завоевании”. Не выводится, если корпорация не оказывала вниялие на конкретный сектор, т.е. не воевала там.{Name1://имя сектора{ point:number,//очков контроля на этом секторе retention:yes/no;//удерживает или не удерживает данная корпорация этот сектор}Name2://имя сектора{ point:number,//очков контроля на этом секторе retention:yes/no;//удерживает или не удерживает данная корпорация этот сектор}};}}}
Ждём Ваших отзывов и несомненно участие в голосовании!