Вопросы

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;

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

Отредактировано пользователем kekkomomek1941

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 ответов на этот вопрос

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
kekkomomek1941
Освоившийся

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
surenescore
Освоившийся

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Helados
      От Helados
      Короче, мы протестировали наш GTA на другом хостинге — голосовой чат там работает, всё включается нормально. Также проверили на другом хостинге с нашим игровым модом — voice chat тоже работает.
      Но на нашем личном хостинге, который мы купили на OVH и установили панель, не получается запустить голосовой чат. Похоже, проблема связана с портами. После перезапуска сервер почему-то случайным образом выбирает порты сам и мы не можем это исправить.
      Если кто-то знает человека, который может помочь разобраться с этой проблемой, буду благодарен.
    • тимормо
      От тимормо
      Копия Diamond RP (основа State 99)
      Скачать файл Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода
       
       
      Добавил тимормо Добавлено 07/15/26 Категория Моды Автор #TomSnow  
    • тимормо
      От тимормо
      Мод DIAMOND RP (ver. 1.0)
      Основа: State 99
      Автор мода: #TomSnow
      Вопросы/Баги: https://vk.com/etalon_dev
       
      Приветствую всех! На связи #TomSnow
       
      Я принял решение начать поэтапную разработку и восстановление легендарного мода Diamond RolePlay образца 2015–2017 годов, взяв за основу мод State 99 (оригинальная основа DRP).
       
      Каждая новая версия разрабатываемого мода будет публиковаться в открытом доступе для всех участников и подписчиков сообщества (https://vk.com/etalon_dev). Это позволит вам не только следить за процессом разработки, но и принимать непосредственное участие в развитии проекта: тестировать обновления, находить баги, сообщать о недоработках и помогать делать мод максимально качественным и стабильным.
       
      Если вам интересна данная тематика и вы хотите наблюдать за ходом разработки, подписывайтесь на нашу группу ВКонтакте (https://vk.com/etalon_dev) и ожидайте публикацию версий проекта.
       
      Спасибо всем за поддержку! Впереди нас ждёт много интересной работы и возвращение атмосферы классического Diamond RolePlay. 
       
      Информация о моде:
       
      Версия MySQL R 39-6
      Античит Nex-AC (Доработанный)
      Стример Streamer Plugin v2.9.4
      Командный процессор Pawn CMD
       
      Список обновлений мода