[CS:GO] Не работает Join Info

-=Batista=-

Просвященный
Сообщения
304
Реакции
88
После обновления SM до версии 1.7, перестал работать Join Info. Ошибок в логах нет. При компиляции выдает ошибку о устаревшей переменной "GetClientAuthString и просит заменить на GetClientAuthId. Поможет кто-нибудь отдебажить? Заранее спасибо!:beer:
 

Вложения

  • join_info.sp
    2 КБ · Просмотры: 17
  • csgo_colors.7z
    954 байт · Просмотры: 3

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
[CS:GO] Join Info v1.1

"GetClientAuthString и просит заменить на GetClientAuthId
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <socket>
#include <csgo_colors>

public Plugin:myinfo = 
{
	name	= "Join Info",
	author	= "wS",
	version	= "1.1-CSGO",
};

new String:g_IP[MAXPLAYERS+1][16];

public OnClientPutInServer(client)
{
	if (IsFakeClient(client) || !GetClientIP(client, g_IP[client], 16)) return;

	new Handle:socket = SocketCreate(SOCKET_TCP, OnSocketError);
	SocketSetArg(socket, GetClientUserId(client));
	SocketConnect(socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, "www.ipaddresslocation.org", 80);
}

public OnSocketConnected(Handle:socket, any:id)
{
	new client = GetClientOfUserId(id);
	if (client)
	{
		decl String:info[150];
		FormatEx(info, 150, "GET /ip-address-locator.php?lookup=%s HTTP/1.0\r\nHost: www.ipaddresslocation.org\r\nConnection: close\r\n\r\n", g_IP[client]);
		SocketSend(socket, info);
	}
}

public OnSocketReceive(Handle:socket, String:receiveData[], const dataSize, any:id)
{
	new position = StrContains(receiveData, "IP Location: ", false);
	if (position <1) return;

	decl String:info[2][65];
	if (ExplodeString(receiveData[position + 13], " ", info, 2, 65) > 1)
	{
		CloseHandle(socket);

		decl client;
		if ((client = GetClientOfUserId(id)))
		{
			decl String:steamid[30];
			if (!GetClientAuthId(client, AuthId_Steam2, steamid, 30)) steamid = "steamid: -";
			TrimString(info[1]); TrimString(info[0]);
			if (info[0]) CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N {OLIVE}из города {RED}%s", client, info[0]);
			else CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N ", client);
		}
	}
}

public OnSocketDisconnected(Handle:socket, any:id) CloseHandle(socket);

public OnSocketError(Handle:socket, const errorType, const errorNum, any:id)
{
	CloseHandle(socket);
	LogError("socket error %d (errno %d)", errorType, errorNum);
}
Чуток намутил иначе - не знаю, будет ли работать)
 
  • Мне нравится
Реакции: TWRP

-=Batista=-

Просвященный
Сообщения
304
Реакции
88
Re: [CS:GO] Join Info v1.1

PHP:
#pragma semicolon 1

#include <sourcemod>
#include <socket>
#include <csgo_colors>

public Plugin:myinfo = 
{
	name	= "Join Info",
	author	= "wS",
	version	= "1.1-CSGO",
};

new String:g_IP[MAXPLAYERS+1][16];

public OnClientPutInServer(client)
{
	if (IsFakeClient(client) || !GetClientIP(client, g_IP[client], 16)) return;

	new Handle:socket = SocketCreate(SOCKET_TCP, OnSocketError);
	SocketSetArg(socket, GetClientUserId(client));
	SocketConnect(socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, "www.ipaddresslocation.org", 80);
}

public OnSocketConnected(Handle:socket, any:id)
{
	new client = GetClientOfUserId(id);
	if (client)
	{
		decl String:info[150];
		FormatEx(info, 150, "GET /ip-address-locator.php?lookup=%s HTTP/1.0\r\nHost: www.ipaddresslocation.org\r\nConnection: close\r\n\r\n", g_IP[client]);
		SocketSend(socket, info);
	}
}

public OnSocketReceive(Handle:socket, String:receiveData[], const dataSize, any:id)
{
	new position = StrContains(receiveData, "IP Location: ", false);
	if (position <1) return;

	decl String:info[2][65];
	if (ExplodeString(receiveData[position + 13], " ", info, 2, 65) > 1)
	{
		CloseHandle(socket);

		decl client;
		if ((client = GetClientOfUserId(id)))
		{
			decl String:steamid[30];
			if (!GetClientAuthId(client, AuthId_Steam2, steamid, 30)) steamid = "steamid: -";
			TrimString(info[1]); TrimString(info[0]);
			if (info[0]) CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N {OLIVE}из города {RED}%s", client, info[0]);
			else CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N ", client);
		}
	}
}

public OnSocketDisconnected(Handle:socket, any:id) CloseHandle(socket);

public OnSocketError(Handle:socket, const errorType, const errorNum, any:id)
{
	CloseHandle(socket);
	LogError("socket error %d (errno %d)", errorType, errorNum);
}
Чуток намутил иначе - не знаю, будет ли работать)

Ошибка 033 в 52 строке при компиляции: array must be indexed (variable "info")
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
-=Batista=-,

PHP:
if (info[0]) CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N {OLIVE}из города {RED}%s", client, info[0]);
->
PHP:
if (info[0][0]) CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N {OLIVE}из города {RED}%s", client, info[0]);
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #5
AlmazON,
PHP:
 decl String:steamid[30];
            if (!GetClientAuthId(client, AuthId_Steam2, steamid, 30)) steamid = "steamid: -";
Зачем получали стим если его не юзали?

PHP:
else CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N ", client);
Может лучше так?
PHP:
if (ExplodeString(receiveData[position + 13], " ", info, 2, 65) > 1)
    {
...
}
else CGOPrintToChatAll("{OLIVE}Подключается игрок: {RED}%N ", client);
 
  • Мне нравится
Реакции: TWRP

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
R1KO, перестань, не я это писал. Чуть подкорректировал и всё. Оффтоп
 
  • Мне нравится
Реакции: TWRP

-=Batista=-

Просвященный
Сообщения
304
Реакции
88
Могу сказать две вещи абсолютно точно. 1)компилится 2)не работает. Он вроде-как и отображается в списке работающих, но в чат ни шиша не выводит
 
Сверху Снизу