Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Не правильный steamID

Статус пользователя Fantastik12
сообщение 12.11.2016, 15:33
Сообщение #1
Стаж: 9 лет 6 месяцев

Сообщений: 3
Благодарностей: 1
Полезность: 0

Ребята, почему не правильно определяет steamID? Логи ниже
L 11/12/2016 - 13:25:22: [getBan.smx] Client tetetete (STEAM_ID_PENDING) connected, retrieving balance...
L 11/12/2016 - 13:25:22: [getBan.smx] cher STEAM_0D_PENDING
L 11/12/2016 - 13:25:22: [getBan.smx] Sending query: SELECT `authid` FROM sb_bans WHERE `authid`='STEAM_0D_PENDING'
Код:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>

Database g_DB;
bool g_bClientVerified[MAXPLAYERS+1];

new String:logFile[256];

public OnMapStart(){
//ServerCommand("tv_record \"%u_%s\"", GetTime(), map);
}

public OnPluginStart()
{
BuildPath(Path_SM, logFile, sizeof(logFile), "logs/getBan.log");

LogToFile(logFile, "Plugin start.");

char error[256];
g_DB = SQL_Connect("qqqq", true, error, sizeof(error));
if (g_DB == INVALID_HANDLE)
{
LogToFile(logFile, "Failed to connect to database.");
SetFailState("Failed to connect to database: %s", error);
}

LogToFile(logFile, "Successfully connected to database.");
}


public bool OnClientConnect(int client, char[] rejectmsg, int maxlen)
{
g_bClientVerified[client] = false;

if (!IsFakeClient(client))
{
char steamId[32];
GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId), false);

LogToFile(logFile, "Client %N (%s) connected, retrieving balance...", client, steamId);

int serial = GetClientSerial(client);

char query[1024];
steamId[6] = '0';

LogToFile(logFile, "chech %s",steamId);

Format(query, sizeof(query), "SELECT `authid` FROM sb_bans WHERE `authid`='%s'", steamId);

LogToFile(logFile, "Sending query: %s", query);
g_DB.Query(getClientBan, query, serial, DBPrio_High);
}

return true;
}

public void getClientBan(Database db, DBResultSet results, const char[] error, any serial)
{
new client = GetClientFromSerial(serial);
if (client == 0)
return;

char steamId[32];
GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId), false);

if (results.FetchRow())
{
LogToFile(logFile, "You are BANNED. for details. (%s). Banning for 1m.", steamId);
BanClient(client, 1, BANFLAG_AUTO, "Must wait before reconnecting", "You are BANNED. for details.");
}
}


Отредактировал: Bloo, - 13.11.2016, 21:58
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Mistrick
сообщение 12.11.2016, 18:51
Сообщение #2


Стаж: 13 лет

Сообщений: 543
Благодарностей: 426
Полезность: 1034

Потому что клиент еще не авторизовался. Используйте более поздний форвард чем Connect.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Fantastik12
сообщение 12.11.2016, 18:53
Сообщение #3
Стаж: 9 лет 6 месяцев

Сообщений: 3
Благодарностей: 1
Полезность: 0

Цитата(Mistrick @ 12.11.2016, 19:51) *
Потому что клиент еще не авторизовался. Используйте более поздний форвард чем Connect.

Проблема была в версии соурмода) поменял заработало)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NichtWolf
сообщение 13.11.2016, 0:42
Сообщение #4
Стаж: 17 лет

Сообщений: 573
Благодарности: выкл.

Что делает со стим-айди даный плагин? Проверка бана в базе?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fantastik12
сообщение 13.11.2016, 13:35
Сообщение #5
Стаж: 9 лет 6 месяцев

Сообщений: 3
Благодарностей: 1
Полезность: 0

Цитата(NichtWolf @ 13.11.2016, 1:42) *
Что делает со стим-айди даный плагин? Проверка бана в базе?

Да, если есть бан, игрока при заходе, банит на сервере на минуту
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 14.11.2016, 18:26
Сообщение #6
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

Fantastik12, в сорс бане уже есть такая функция, зачем изобретать велосипед?
Так же я не представляю как вы получаете authid игрока на этапе OnClientConnect, игрок еще не прошел авторизацию на сервере.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: