запрос в бд вначале раунда

Drop

Участник
Сообщения
41
Реакции
1
Публикация больших блоков текста/изображений
Не компилируются, с ошибкой function prototypes do not match
смысл кода, в начале раунда отправлять запрос в бд. Где ошибка?

Код
PHP:
public OnPluginStart()
{
  Database.Connect(ConnectCallBack, "wac"); // sp_lessons Имя секции в databases.cfg
   HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
}
public void ConnectCallBack(Database hDatabase, const char[] sError, any data) // Пришел результат соеденения
{
    if (hDatabase == null)    // Соединение  не удачное
    {
  SetFailState("Database failure: %s", sError); // Отключаем плагин
  return;
    }

    g_hDatabase2 = hDatabase; // Присваиваем глобальной переменной соеденения значение текущего соеденения
    g_hDatabase2.SetCharset("utf8"); // Устанавливаем кодировку
}
public Action:OnRoundStart(Handle:event, String:name[], bool:dontBroadcast, client)
{
    for (new i = 1; i<MaxClients; i++)
    {
    if (!IsFakeClient(client))
    {
        decl String:steamid[32],String:clientname[24];
        decl String:country[45];
        decl String:ip[64];
 
        GetClientName(client, clientname, sizeof(clientname));
        GetClientIP(client, ip, sizeof(ip));
        GeoipCountry(ip, country, sizeof(country));
        GetClientAuthString(client,steamid,sizeof(steamid));
  char szQuery[256], szAuth[32];
 
        GetClientAuthId(client, AuthId_Engine, szAuth, sizeof(szAuth), true);
FormatEx(szQuery, sizeof(szQuery), "SELECT `ip` FROM `bans` WHERE `ip` = '%s'", ip);    // Формируем запрос
        g_hDatabase2.Query(SQL_Callback_SelectClient, szQuery, GetClientUserId(client));
 
    }
    }
 
Последнее редактирование:

Someone

Участник
Сообщения
1,933
Реакции
1,653
У тебя строка указана перед ошибкой.
function prototypes do not match


И используй это для показа кода:
upload_2017-7-24_12-6-49.png

В разы читабельней становится.


Твоя ошибка скорей всего в этом:
PHP:
public Action:OnRoundStart(Handle:event, String:name[], bool:dontBroadcast, client)

Там нет никакого 4-го параметра.
Должно быть так:
PHP:
public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
 

Drop

Участник
Сообщения
41
Реакции
1
ошибка показывает в строке:
C-подобный:
  HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
а если делать так:
C-подобный:
public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
как мне тогда можно сделать для каждого игрока данное действие?
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
ошибка показывает в строке:
C-подобный:
  HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
а если делать так:
C-подобный:
public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
как мне тогда можно сделать для каждого игрока данное действие?

И используй в тэге "Код" язык PHP, так код подсвечивается.
PHP:
public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
    for(int client = 1; client <= MaxClients; client++)
    {
        if (!IsFakeClient(client))
        {
            decl String:steamid[32],String:clientname[24];
            decl String:country[45];
            decl String:ip[64];

            GetClientName(client, clientname, sizeof(clientname));
            GetClientIP(client, ip, sizeof(ip));
            GeoipCountry(ip, country, sizeof(country));
            GetClientAuthString(client,steamid,sizeof(steamid));
            char szQuery[256], szAuth[32];

            GetClientAuthId(client, AuthId_Engine, szAuth, sizeof(szAuth), true);
            FormatEx(szQuery, sizeof(szQuery), "SELECT `ip` FROM `bans` WHERE `ip` = '%s'", ip);    // Формируем запрос
            g_hDatabase2.Query(SQL_Callback_SelectClient, szQuery, GetClientUserId(client));
        }
    }
}
 
  • Мне нравится
Реакции: Drop

Drop

Участник
Сообщения
41
Реакции
1
И используй в тэге "Код" язык PHP, так код подсвечивается.
PHP:
public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
    for(int client = 1; client <= MaxClients; client++)
    {
        if (!IsFakeClient(client))
        {
            decl String:steamid[32],String:clientname[24];
            decl String:country[45];
            decl String:ip[64];

            GetClientName(client, clientname, sizeof(clientname));
            GetClientIP(client, ip, sizeof(ip));
            GeoipCountry(ip, country, sizeof(country));
            GetClientAuthString(client,steamid,sizeof(steamid));
            char szQuery[256], szAuth[32];

            GetClientAuthId(client, AuthId_Engine, szAuth, sizeof(szAuth), true);
            FormatEx(szQuery, sizeof(szQuery), "SELECT `ip` FROM `bans` WHERE `ip` = '%s'", ip);    // Формируем запрос
            g_hDatabase2.Query(SQL_Callback_SelectClient, szQuery, GetClientUserId(client));
        }
    }
}
Спасибо, так работает)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
Сверху Снизу