Иконка ресурса

[VIP] Вывод VIP игроков на сайт 0.2

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #1
Пользователь _Dimk_O_ разместил новый ресурс:

[VIP] Вывод VIP игроков на сайт - Список действующих ViP игроков ваших серверов

За основу и пример был взят скрипт отсюда
Был переведен на PDO и мальца допилен
Скрипт фактически не имеет оформления ибо был задуман как встраиваемый во всплывающее окно

Изменения по сравнению с оригиналом:
  1. Скрипт отображает время ДО окончания випки
  2. Скрипт не выводит игроков у которых закончилась випка
  3. Скрипт выводит общее количество только активных випов

В планах:
  1. Выводить реальный ник полученный по...

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #5
@September, @_Dimk_O_, по дефолту стоить обновлять.
@_Dimk_O_, Как вариант чтобы ник был ссылкой на профиль стим (можно было вкл/выкл внутри скрипта), вывод вип-группы, стима
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #6
@September, @_Dimk_O_, по дефолту стоить обновлять.
@_Dimk_O_, Как вариант чтобы ник был ссылкой на профиль стим (можно было вкл/выкл внутри скрипта), вывод вип-группы, стима

Я для себя свой скрипт накидал, и хотел предложить добавить в бд таблицу когда последний раз заходил на сервер вип игрок.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
@September, я про это думал когда делал структуру, но посчитал это не нужной инфой. Можно написать плагин, чтобы вип уже не трогать
 

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #9
@R1KO можно выводить не только ссылку на профиль стим
Там получаемой инфы более чем только ссылка
Но нужно будет делать кешироаание хотяб на 30 сек
Инфа о профилях долго грузится

Приеду домой, покажу что можно вывести
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #10
@_Dimk_O_, если игроки стим, то если имеешь steamid, с помощью steam web api, можно что угодно выводить.
 

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #11
@_Dimk_O_, если игроки стим, то если имеешь steamid, с помощью steam web api, можно что угодно выводить.
C-подобный:
"steamid": "76561198038368035",
"communityvisibilitystate": 3,
"profilestate": 1,
"personaname": "_Dimk_O_",
"lastlogoff": 1468457313,
"commentpermission": 1,
"profileurl": "http://steamcommunity.com/id/_Dimk_O_/",
"avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8.jpg",
"avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_medium.jpg",
"avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_full.jpg",
"personastate": 1,
"realname": "Димка",
"primaryclanid": "103582791434049975",
"timecreated": 1298132073,
"personastateflags": 0
Это как минимум
Но повторюсь что инфа грузится долго
Без кеширования полученной инфы лучше не делать
 

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #13
@White Wolf записывать полученную от серверов стима инфу в файлик и последующие N минут или секунд читать эту инфу из файла, дабы скрипт работал быстрее
 

Lord FEAR

Участник
Сообщения
429
Реакции
250
@White Wolf записывать полученную от серверов стима инфу в файлик и последующие N минут или секунд читать эту инфу из файла, дабы скрипт работал быстрее
Если не запрашивать аватарку, грузит довольно быстро.
Данный скрипт не смотрел, но сам пользуюсь такими функциями
getFriendId($steamId) - передаем STEAM_X:Y:ZZZZZZZZ и получаем нужный для работы steamId
getSteamAvatar($id) - передаем steamId и получаем аватарку
getSteamName($id) - передаем steamId и получаем текущий ник игрока
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx в место x-ов вставить свой api key
C-подобный:
function getFriendId($steamId)
{
    //Test input steamId for invalid format

    //Example SteamID: "STEAM_X:Y:ZZZZZZZZ"
    $gameType = 0; //This is X.  It's either 0 or 1 depending on which game you are playing (CSS, L4D, TF2, etc)
    $authServer = 0; //This is Y.  Some people have a 0, some people have a 1
    $clientId = ''; //This is ZZZZZZZZ.

    //Remove the "STEAM_"
    $steamId = str_replace('STEAM_', '' ,$steamId);

    //Split steamId into parts
    $parts = explode(':', $steamId);
    $gameType = $parts[0];
    $authServer = $parts[1];
    $clientId = $parts[2];

    //Calculate friendId
    $result = bcadd((bcadd('76561197960265728', $authServer)), (bcmul($clientId, '2')));
    return $result;
}

function getSteamAvatar($id){
    $shit = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&steamids=$id");
    $json = json_decode($shit);
    return "<img src=\"{$json->response->players[0]->avatarmedium}\">";
}

function getSteamName($id){
    $shit = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&steamids=$id");
    $json = json_decode($shit);
    $data = (array) $json->response->players[0];
    $result = $data['personaname'];
    return $result;
}
Ссылки дабы показать быстродействие
с авой
без
 
Последнее редактирование:

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #16
@Lord FEAR А у тебя админы добавляются через плагин випов как отдельные группы?
Я просто ковыряю сей скрипт не для себя и мне объяснили что там есть не все возможности...к примеру имунитет между админами и т.п. (точно уже не помню)

Кстати, дабы не плодить функции, можно всю инфу получать одной функцией, а потом выводить её
PHP:
function get_user_info ($token, $steam_id){
    $urljson = file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='.$token.'&steamids='.$steam_id.'&format=json');
    $data = (array) json_decode($urljson)->response->players[0];
    return $data;
}

////вывод
$info        =    get_user_info($token, $steam_id);
echo ("<img src=".$info['avatar'].">"); //вывод аватарки
echo ($info['personaname']); //вывод логина

вообще думаю что правильнее было бы этой функции передавать сразу все айди игроков дабы был только 1 запрос, а не куча запросов
там можно в запрос писать несколько айди через запятую
в ответ будем получать вот такое

C-подобный:
{
    "response": {
        "players": [
            {
                "steamid": "76561198038368035",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "_Dimk_O_",
                "lastlogoff": 1468562194,
                "commentpermission": 1,
                "profileurl": "http://steamcommunity.com/id/_Dimk_O_/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_full.jpg",
                "personastate": 1,
                "realname": "Димка",
                "primaryclanid": "103582791434049975",
                "timecreated": 1298132073,
                "personastateflags": 0
            },
            {
                "steamid": "76561198059525183",
                "communityvisibilitystate": 1,
                "profilestate": 1,
                "personaname": "Deluks",
                "lastlogoff": 1468683574,
                "profileurl": "http://steamcommunity.com/id/1deluks/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755_full.jpg",
                "personastate": 0
            },
            {
                "steamid": "76561198128914191",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "bagiz",
                "lastlogoff": 1468686020,
                "profileurl": "http://steamcommunity.com/profiles/76561198128914191/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc_full.jpg",
                "personastate": 3,
                "primaryclanid": "103582791429521408",
                "timecreated": 1394197242,
                "personastateflags": 0,
                "loccountrycode": "US",
                "locstatecode": "NY",
                "loccityid": 2786
            }
        ]
      
    }
}
 
Последнее редактирование:

Lord FEAR

Участник
Сообщения
429
Реакции
250
@_Dimk_O_, у меня 2 вида админки. Одни давно проверенные люди, вписанные в sourcebans, а другие покупные. Покупным через VIP присваивает через группу, которую создал в sourcebans. Там их можно и по иммунитету разделить.
Сейчас проверил скрипты которые тут выложил xD Ну и кривые они, я их готовые брал хз где. Задержка там не из-за аватарок, косяк в самом скрипте. Сейчас сел сам переписывать всё это дело.

Это я о своих скриптах речь вёл.
 
Последнее редактирование:

iSe7en

Участник
Сообщения
209
Реакции
111
@Lord FEAR А у тебя админы добавляются через плагин випов как отдельные группы?
Я просто ковыряю сей скрипт не для себя и мне объяснили что там есть не все возможности...к примеру имунитет между админами и т.п. (точно уже не помню)

Кстати, дабы не плодить функции, можно всю инфу получать одной функцией, а потом выводить её
PHP:
function get_user_info ($token, $steam_id){
    $urljson = file_get_contents('http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='.$token.'&steamids='.$steam_id.'&format=json');
    $data = (array) json_decode($urljson)->response->players[0];
    return $data;
}

////вывод
$info        =    get_user_info($token, $steam_id);
echo ("<img src=".$info['avatar'].">"); //вывод аватарки
echo ($info['personaname']); //вывод логина

вообще думаю что правильнее было бы этой функции передавать сразу все айди игроков дабы был только 1 запрос, а не куча запросов
там можно в запрос писать несколько айди через запятую
в ответ будем получать вот такое

C-подобный:
{
    "response": {
        "players": [
            {
                "steamid": "76561198038368035",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "_Dimk_O_",
                "lastlogoff": 1468562194,
                "commentpermission": 1,
                "profileurl": "http://steamcommunity.com/id/_Dimk_O_/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/4d/4d5db7855422c009be76a88255ef8dde99a767e8_full.jpg",
                "personastate": 1,
                "realname": "Димка",
                "primaryclanid": "103582791434049975",
                "timecreated": 1298132073,
                "personastateflags": 0
            },
            {
                "steamid": "76561198059525183",
                "communityvisibilitystate": 1,
                "profilestate": 1,
                "personaname": "Deluks",
                "lastlogoff": 1468683574,
                "profileurl": "http://steamcommunity.com/id/1deluks/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/0f/0f40022807285ce4e8d92d87a55ce4e1ec84a755_full.jpg",
                "personastate": 0
            },
            {
                "steamid": "76561198128914191",
                "communityvisibilitystate": 3,
                "profilestate": 1,
                "personaname": "bagiz",
                "lastlogoff": 1468686020,
                "profileurl": "http://steamcommunity.com/profiles/76561198128914191/",
                "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc.jpg",
                "avatarmedium": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc_medium.jpg",
                "avatarfull": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/61/61631acccf13012e22eefbdb2bab244a102424fc_full.jpg",
                "personastate": 3,
                "primaryclanid": "103582791429521408",
                "timecreated": 1394197242,
                "personastateflags": 0,
                "loccountrycode": "US",
                "locstatecode": "NY",
                "loccityid": 2786
            }
        ]
     
    }
}
Проблема в том, что api отдает в рандомном порядке информацию
 

_Dimk_O_

Участник
Сообщения
16
Реакции
9
  • Автор ресурса
  • #20
@Se7en_RUS это я уже заметил.....
Попробую придумать как это распарсить...
 
Сверху Снизу