Question

kekkomomek1941
Освоившийся

Всем привет, пытался накопировать привязку мода по ip и вот такие вот ошибки

Спойлер

arizona.pwn(18858) : error 035: argument type mismatch (argument 1)

arizona.pwn(18851) : error 035: argument type mismatch (argument 1)

arizona.pwn(18803) : error 055: start of function body without function header

Вот сам код

Спойлер

#define MYSQL_INVALID_HANDLE MySQL:0
#define MYSQL_DEFAULT_HANDLE MySQL:1
#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
native mysql_fetch_row_format(string[],const delimiter[] = "|",connectionHandle = 1);
native mysql_error(destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

static stock RowIndex[20];
static stock bool:RetrieveRow[20];
stock mysql_store_result(connectionHandle = 1) {
    RowIndex[connectionHandle] = 0;
    RetrieveRow[connectionHandle] = false;

}
{ // строка с ошибкой 18803
stock mysql_free_result(connectionHandle = 1) {
    #pragma unused connectionHandle
}

// хранение ипа
new ServerIP[16];
new ServerPort;

stock LoadServerConfig1() {
    new File:configFile = fopen("server.cfg", io_read);
    if (configFile == 0) {
        printf("ошибка открытия сервер кфг");
        return 0;
    }
    
     new line[128];
    while (fread(configFile, line)) {
        if (sscanf(line, "bind %s", ServerIP)) {
            continue;
        }
        if (sscanf(line, "port %d", ServerPort)) {
            continue;
        }
    }
    fclose(configFile);
    return 1;
}

// Функция подкл к бд и пров наличия ип
stock CheckServerInDatabase() {
    new MySQL:connection;
    new query[256];

    // подкл к бд
    connection = mysql_connect("host", "user", "password", "database");
    if (connection == MYSQL_INVALID_HANDLE) {
        printf("Ошибка подключения к базе данных");
        return 0;
    }

    // Формирование запроса
    format(query, sizeof(query), "SELECT COUNT(*) FROM allowservs WHERE ip='%s' AND port=%d", ServerIP, ServerPort);

    new result[1];
    if (mysql_query(connection, query)) {
        printf("Ошибка выполнения запроса: %s", mysql_error(connection)); // строка с ошибкой 18851
        mysql_close(connection);
        return 0;
    }

    // обработка результата
    mysql_store_result(connection);
    if (mysql_fetch_row_format(connection, "%d", result)) { // строка с ошибкой 18858
        if (result[0] == 0) {
            printf("Сервер с IP %s и портом %d не найден в базе данных. Отключение...", ServerIP, ServerPort);
            mysql_close(connection);
            SendRconCommand("exit");
            return 0;
        }
    }

    mysql_free_result(connection);
    mysql_close(connection);
    return 1;
}

public OnGameModeInit()
{

// считывание конфига
    if (!LoadServerConfig1()) {
        printf("ошибка при загрузке конфигурации сервера");
        return 0;
    }

    // проверка сервера в бд
    if (!CheckServerInDatabase()) {
        return 0;
    }

    // продолжение загрузки мода
    return 1;

Буду благодарен, если поможете

Edited by kekkomomek1941

Share this post


Link to post
Share on other sites

5 answers to this question

  • 0
surenescore
Освоившийся

@kekkomomek1941 убедись, что ты используешь правильную версию плагина MySQL, совместимую с твоим скриптом. Возможно, нужно обновить плагин до последней версии.

Share this post


Link to post
Share on other sites
  • 0
surenescore
Освоившийся
#define MYSQL_INVALID_HANDLE MySQL:0
#define MYSQL_DEFAULT_HANDLE MySQL:1
#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
native mysql_fetch_row_format(string[], const delimiter[] = "|", connectionHandle = 1);
native mysql_error(destination[], max_len = sizeof(destination), MySQL:handle = MYSQL_DEFAULT_HANDLE);

static stock RowIndex[20];
static stock bool:RetrieveRow[20];

stock mysql_store_result(connectionHandle = 1) {
    RowIndex[connectionHandle] = 0;
    RetrieveRow[connectionHandle] = false;
}

stock mysql_free_result(connectionHandle = 1) {
    #pragma unused connectionHandle
}

// хранение ипа
new ServerIP[16];
new ServerPort;

stock LoadServerConfig1() {
    new File:configFile = fopen("server.cfg", io_read);
    if (configFile == 0) {
        printf("ошибка открытия сервер кфг");
        return 0;
    }
    
    new line[128];
    while (fread(configFile, line)) {
        if (sscanf(line, "bind %s", ServerIP)) {
            continue;
        }
        if (sscanf(line, "port %d", ServerPort)) {
            continue;
        }
    }
    fclose(configFile);
    return 1;
}

// Функция подкл к бд и пров наличия ип
stock CheckServerInDatabase() {
    new MySQL:connection;
    new query[256];

    // подкл к бд
    connection = mysql_connect("host""user""password""database");
    if (connection == MYSQL_INVALID_HANDLE) {
        printf("Ошибка подключения к базе данных");
        return 0;
    }

    // Формирование запроса
    format(query, sizeof(query), "SELECT COUNT(*) FROM allowservs WHERE ip='%s' AND port=%d", ServerIP, ServerPort);

    new result[1];
    if (mysql_query(connection, query)) {
        new error[128];
        mysql_error(error, sizeof(error), connection);
        printf("Ошибка выполнения запроса: %s", error);
        mysql_close(connection);
        return 0;
    }

    // обработка результата
    new row[128];
    mysql_store_result(connection);
    if (mysql_fetch_row_format(row, "|", connection)) {
        sscanf(row, "%d", result);
        if (result[0] == 0) {
            printf("Сервер с IP %s и портом %d не найден в базе данных. Отключение...", ServerIP, ServerPort);
            mysql_close(connection);
            SendRconCommand("exit");
            return 0;
        }
    }

    mysql_free_result(connection);
    mysql_close(connection);
    return 1;
}

public OnGameModeInit() {
    // считывание конфига
    if (!LoadServerConfig1()) {
        printf("ошибка при загрузке конфигурации сервера");
        return 0;
    }

    // проверка сервера в бд
    if (!CheckServerInDatabase()) {
        return 0;
    }

    // продолжение загрузки мода
    return 1;
}

 

Share this post


Link to post
Share on other sites
  • 0
kekkomomek1941
Освоившийся

@D2DChat Спасибо, ошибки исчезли, но при запуске мода вот это в логе

Не подскажешь, что делать?

[02:10:28] [debug] Run time error 19: "File or function is not found"
[02:10:28] [debug]  mysql_error
[02:10:28] [debug]  mysql_fetch_row_format
[02:10:28] [debug] Run time error 19: "File or function is not found"
[02:10:28] [debug]  mysql_error
[02:10:28] [debug]  mysql_fetch_row_format
[02:10:28] Script[gamemodes/arizona.amx]: Run time error 19: "File or function is not found"
[02:10:28] Number of vehicle models: 0

Share this post


Link to post
Share on other sites
  • 0
kekkomomek1941
Освоившийся

@D2DChat Поставил последнюю версию mysql , но появилось куча варнингов и ошибок, но все равно спасибо, постараюсь решить...

Share this post


Link to post
Share on other sites
  • 0
surenescore
Освоившийся

@kekkomomek1941 На опыте говорю что попробуй поперебирать версии MySQL, возможно какая то из них будет иметь эти значения и иметь значения твоего мода.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • vicegame
      By vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК
    • hatriyikko
      By hatriyikko
      Требуется мобильная сборка мод + клиент + лаунчер

      Копия Радмира, Блэк Раши или что-то другое с аналогичным функционалом. Основной упор на бизнесы, чтобы всё исправно работало
       
      Напишите сколько это будет стоить?

      В дальнейшем также могут понадобиться какие то доработки мода, если всё ок рассматриваю долгосрочное сотрудничество

      Связь тут или в тг @kovart7
    • whccompany
      By whccompany
      World Hosting Corporations 
                                                                GTA Game Host 
                                               CRMP PC& Mobile Project 
                                           Rostov Role Play | Rostov RP 
      Друзья, нашему проекту срочно требуется маппер для масштабного маппинга, нам требуется сделать:
      1) Городской маппинг (удалить города и создать новые города, сначало необходимо создать город Ростов-на-Дону ; посёлок Коксовый и село Ряженое, создать используя стоковые фотографии из Яндекса и Гугла)
      2) Фракционный маппинг ( Текстуры + Экстерьер + Интерьер )
      3) Маппинг работ ( Текстуры + Экстерьеры + Интерьеры )
      Бюджет до 60 000 рублей
      Возможно заключение трудового контракта 
      Пишите: ВКонтакте

    • gooding
      By gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.