Vit_ amin
Добрая душа
- Сообщения
- 1,504
- Реакции
- 660
Всем привет!
Переписал плагин для определения статуса клиента (Steam/No Steam)
И есть такой запрос на сайт Steamcommunity:
Оффтоп
Но проблема в том, что все игроки считаются No Steam.
Я так понимаю запрос на получение страницы выглядит неверным ?
Если это так помогите пожалуйста составить правильный.
Исходный код:
Переписал плагин для определения статуса клиента (Steam/No Steam)
И есть такой запрос на сайт Steamcommunity:
Оффтоп
Format(info, sizeof(info), "GET /profiles/76561197995131602 HTTP/1.0\r\nHost: steamcommunity.com\r\nConnection: close\r\n\r\n", g_strProfileID[client]);
Но проблема в том, что все игроки считаются 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[] name, bool silent)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if (!IsFakeClient(client))
{
GetClientAuthId(client, AuthId_SteamID64, g_strProfileID[client], 32);
CreateTimer(5.0, Test, client);
Handle socket = SocketCreate(_, OnSocketError)
SocketSetArg(socket, event.GetInt("userid"));
SocketConnect(socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, "steamcommunity.com", 80);
PrintToServer("%s", g_strProfileID[client], 32)
}
}
public Action Test(Handle timer, int client)
{
PrintToServer("Client is : %s", g_bHaveSteam[client] ? "Steam" : "No Steam");
}
public OnSocketError(Handle socket, const int errorType, const int errorNum, any id)
{
CloseHandle(socket);
LogError("SocketError: Error Type: %d, Error Numbers: %d", errorType, errorNum);
}
public OnSocketConnected(Handle socket, any id)
{
int client = GetClientOfUserId(id);
if (client > 1)
{
char info[200];
Format(info, sizeof(info), "GET /profiles/%s HTTP/1.0\r\nHost: steamcommunity.com\r\nConnection: close\r\n\r\n", g_strProfileID[client]);
SocketSend(socket, info);
}
else
{
CloseHandle(socket);
return;
}
}
public OnSocketReceive(Handle socket, char [] receiveData, const int dataSize, any id)
{
PrintToServer("%s %s", receiveData, dataSize);
if (dataSize > 0 && StrContains(receiveData, "user has not yet set", false) != -1)
{
SocketHandler_ClientAuthorized(socket, id, false);
}
}
public OnSocketDisconnected(Handle socket, any id)
{
SocketHandler_ClientAuthorized(socket, id, true);
}
void SocketHandler_ClientAuthorized(Handle socket, int id, bool steam_client)
{
CloseHandle(socket);
int client = GetClientOfUserId(id);
if (client > 1)
{
g_bHaveSteam[client] = steam_client;
}
else
{
return;
}
}