• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Время последней авторизации в бд

unsubdreada

Участник портала
Автор темы
20 Сен 2023
14
1
5
Пытаюсь сделать добавление даты и времени последней авторизации на сервере. Написал код в случае успешной авторизации, в консоль всё выводит правильно, а в бд в столбец lastTimeAuth не добавляет.
Не правильный запрос или что?
C#:
 DateTime dateTime = DateTime.Now;   // Получение текущей даты и времени
 string lastTimeAuth = dateTime.ToString();  // ^ в строку
 NAPI.Util.ConsoleOutput("Игрок: " + username + " зашёл на сервер: " + lastTimeAuth);    // Вывод в консоль
 string insertTimeLastAuth = "UPDATE users UPDATE lastTimeAuth = @lastTimeAuth WHERE username = @username"; // Строка запроса обновления таблицы БД
 MySqlCommand commandTimeLastAuth = new MySqlCommand(insertTimeLastAuth);
 commandTimeLastAuth.Parameters.AddWithValue("@lastTimeAuth", lastTimeAuth);
 

lmklde

Специалист
1 Мар 2021
73
48
80
SQL:
UPDATE имя_таблицы
SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
[WHERE условие_обновления]
 

unsubdreada

Участник портала
Автор темы
20 Сен 2023
14
1
5
SQL:
UPDATE имя_таблицы
SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
[WHERE условие_обновления]
Так вроде у меня так написано?
 

kwert887

Специалист
26 Фев 2021
233
34
85
Все равно не добавляет запись
Попробуй этот код
C#:
DateTime dateTime = DateTime.Now;
string lastTimeAuth = dateTime.ToString("yyyy-MM-dd HH:mm:ss");  
NAPI.Util.ConsoleOutput("Игрок: " + username + ", зашёл на сервер: " + lastTimeAuth);
string updateTimeLastAuth = "UPDATE users SET lastTimeAuth = @lastTimeAuth WHERE username = @username";
MySqlCommand commandTimeLastAuth = new MySqlCommand(updateTimeLastAuth);
commandTimeLastAuth.Parameters.AddWithValue("@lastTimeAuth", lastTimeAuth);
commandTimeLastAuth.Parameters.AddWithValue("@username", username);
commandTimeLastAuth.Connection = connection;
commandTimeLastAuth.ExecuteNonQuery();
 

Bloodlust

Гуру
25 Апр 2021
308
103
112
Примерно: UPDATE users SET lastTimeAuth = @lastTimeAuth WHERE username = @username
 

Bloodlust

Гуру
25 Апр 2021
308
103
112
Меня опередили ну ладно
 

unsubdreada

Участник портала
Автор темы
20 Сен 2023
14
1
5
Попробуй этот код
C#:
DateTime dateTime = DateTime.Now;
string lastTimeAuth = dateTime.ToString("yyyy-MM-dd HH:mm:ss"); 
NAPI.Util.ConsoleOutput("Игрок: " + username + ", зашёл на сервер: " + lastTimeAuth);
string updateTimeLastAuth = "UPDATE users SET lastTimeAuth = @lastTimeAuth WHERE username = @username";
MySqlCommand commandTimeLastAuth = new MySqlCommand(updateTimeLastAuth);
commandTimeLastAuth.Parameters.AddWithValue("@lastTimeAuth", lastTimeAuth);
commandTimeLastAuth.Parameters.AddWithValue("@username", username);
commandTimeLastAuth.Connection = connection;
commandTimeLastAuth.ExecuteNonQuery();
Можно поподробнее про последние 2 строки? Если без них - все равно результата ноль:(
 

kwert887

Специалист
26 Фев 2021
233
34
85
Можно поподробнее про последние 2 строки? Если без них - все равно результата ноль:(
C#:
// Связывание команды SQL с твоим соединением
commandTimeLastAuth.Connection = connection;

// Выполняем команды SQL
commandTimeLastAuth.ExecuteNonQuery();
 

unsubdreada

Участник портала
Автор темы
20 Сен 2023
14
1
5
C#:
// Связывание команды SQL с твоим соединением
commandTimeLastAuth.Connection = connection;

// Выполняем команды SQL
commandTimeLastAuth.ExecuteNonQuery();
А как связать эту команду, если соединение в другом файле?
В этом эвенте команды выполняются норм без таких строк же

C#:
 [RemoteEvent("CLIENT:SERVER::LOGIN_BUTTON_CLICKED")]
 public async void OnCefLoginButtonClicked(Player player, string username, string password)
 {
     string selectQuery = "SELECT * FROM users WHERE username = @name";
     MySqlCommand selectCommand = new MySqlCommand(selectQuery);
     selectCommand.Parameters.AddWithValue("@name", username);
     DataTable tb = await MySQL.QueryReadAsync(selectCommand);
     if (tb.Rows.Count == 0)
     {
         NAPI.Task.Run(() =>
         {
             NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:CLIENT::LOGIN_USER", true);
         }, 1000);
     }
     else
     {
         string hashedPassword = Crypto.HashPassword(password);
         string outUsername = tb.Rows[0].ItemArray[1].ToString();
         string outHashedPassword = tb.Rows[0].ItemArray[2].ToString();
         string outEmail = tb.Rows[0].ItemArray[3].ToString();
         string outPersonName = tb.Rows[0].ItemArray[4].ToString();
         string outPersonSName = tb.Rows[0].ItemArray[5].ToString();
         string outPersonAge = tb.Rows[0].ItemArray[6].ToString();
         string outPersonGender = tb.Rows[0].ItemArray[7].ToString();

         if (outHashedPassword != hashedPassword)
         {
             NAPI.Task.Run(() =>
             {
                 NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:CLIENT::LOGIN_USER", true);     // Если пароли не совпадают ошибка
             }, 1000);
         }
         else
         {
             if (outPersonName == null || outPersonName.Length == 0)
             {
                 NAPI.Task.Run(() =>
                 {
                     NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:CLIENT::REGISTER_USER", false);
                     player.Position = new Vector3(2239.4763, -1210.3835, 149.53323);
                     player.Rotation = new Vector3(0, 0, 127.00000);
                     player.Dimension = player.Id;
                     player.SetData("player_username", username);

                 }, 1000);
             }
            else
             {
                 DateTime dateTime = DateTime.Now;   // Получение текущей даты и времени
                 string lastTimeAuth = dateTime.ToString("yyyy-MM-dd HH:mm:ss");  // ^ в строку
                 string insertTimeLastAuth = "UPDATE users SET lastTimeAuth = @lastTimeAuth WHERE username = @username"; // Строка запроса обновления таблицы БД
                 MySqlCommand commandTimeLastAuth = new MySqlCommand(insertTimeLastAuth);
                 commandTimeLastAuth.Parameters.AddWithValue("@lastTimeAuth", lastTimeAuth);
                 commandTimeLastAuth.Parameters.AddWithValue("@username", username);
                 // тут как-то связать команду sql с моим соединением 
                 commandTimeLastAuth.ExecuteNonQuery();  // Выполнение команды
                 NAPI.Util.ConsoleOutput("Игрок: " + username + " зашёл на сервер: " + lastTimeAuth);    // Вывод в консоль

                 NAPI.Task.Run(() =>
                 {
                     NAPI.ClientEvent.TriggerClientEvent(player, "SERVER:CLIENT::LOGIN_USER", false);
                     OnCefPersonCreateGenderSwitchButtonClicked(player, outPersonGender);
                     player.SetData("player_username", outUsername);
                     player.Position = new Vector3(-209.24597, -788.7034, 30.454039);
                     player.Rotation = new Vector3(0, 0, -109.61787);
                     //player.Dimension = player.Id;
                 }, 1000);
             }
         }
     }
 }