Правильный запрос для Socket

Тема в разделе "Программирование / Скриптинг", создана пользователем Vit_ amin, 2 авг 2016.

  1. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.060
    Симпатии:
    345
    Всем привет!
    Переписал плагин для определения статуса клиента (Steam/No Steam)
    И есть такой запрос на сайт Steamcommunity:
    Оффтоп
    Но проблема в том, что все игроки считаются No Steam.
    Я так понимаю запрос на получение страницы выглядит неверным ?
    Если это так помогите пожалуйста составить правильный.
    Исходный код:
    PHP:
    #include <socket>

    public Plugin myinfo =
    {
    name "Steam/No Steam Detected",
    author "wS (edit by Vitamin)",
    description "Check Steam/No Steam Client",
    version "1.3",
    url "http://steamcommunity.com/groups/zombie_project/"
    };

    #define PROFILE_ID_SIZE 18

    bool g_bHaveSteam[MAXPLAYERS];
    char g_strProfileID[MAXPLAYERS][PROFILE_ID_SIZE];

    public 
    void OnPluginStart()
    {
    HookEvent("player_activate"Event_PlayerActivate);
    }

    public 
    void Event_PlayerActivate(Event event, const char[] namebool silent)
    {
    int client GetClientOfUserId(event.GetInt("userid"));
    if (!
    IsFakeClient(client))
    {
    GetClientAuthId(clientAuthId_SteamID64g_strProfileID[client], 32);
    CreateTimer(5.0Testclient);
    Handle socket SocketCreate(_OnSocketError)
    SocketSetArg(socketevent.GetInt("userid"));
    SocketConnect(socketOnSocketConnectedOnSocketReceiveOnSocketDisconnected"steamcommunity.com"80);
    PrintToServer("%s"g_strProfileID[client], 32)
    }
    }

    public 
    Action Test(Handle timerint client)
    {
    PrintToServer("Client is : %s"g_bHaveSteam[client] ? "Steam" "No Steam");
    }

    public 
    OnSocketError(Handle socket, const int errorType, const int errorNumany id)
    {
    CloseHandle(socket);
    LogError("SocketError: Error Type: %d, Error Numbers: %d"errorTypeerrorNum);
    }

    public 
    OnSocketConnected(Handle socketany id)
    {
    int client GetClientOfUserId(id);
    if (
    client 1)
    {
    char info[200];
    Format(infosizeof(info), "GET /profiles/%s HTTP/1.0\r\nHost: steamcommunity.com\r\nConnection: close\r\n\r\n"g_strProfileID[client]);
    SocketSend(socketinfo);
    }
    else
    {
    CloseHandle(socket);
    return;
    }
    }

    public 
    OnSocketReceive(Handle socketchar [] receiveData, const int dataSizeany id)
    {
    PrintToServer("%s %s"receiveDatadataSize);
    if (
    dataSize && StrContains(receiveData"user has not yet set"false) != -1)
    {
    SocketHandler_ClientAuthorized(socketidfalse);
    }
    }

    public 
    OnSocketDisconnected(Handle socketany id)
    {
    SocketHandler_ClientAuthorized(socketidtrue);
    }

    void SocketHandler_ClientAuthorized(Handle socketint idbool steam_client)
    {
    CloseHandle(socket);

    int client GetClientOfUserId(id);
    if (
    client 1)
    {
    g_bHaveSteam[client] = steam_client;
    }
    else
    {
    return;
    }
    }
     
  2. gibs

    gibs Фитиль народного волненья

    Сообщения:
    540
    Симпатии:
    137
    Делай запрос на веб апи.
     
  3. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.060
    Симпатии:
    345
    Сделал ключ, возможно ли набросить хотя бы пару строк, чтобы дальше я понял какие именно функции из API использовать (с web скриптингом очень туго).