• Из-за обновления 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) последний раз были обновлены:

Вопрос Автоматическое сохранение перед выключением сервера

MaksimSemko

Начинающий специалист
Автор темы
26 Окт 2020
43
5
65
Здравствуйте, как можно реализовать автоматическое сохранение данных, в момент закрытия консоли. Встречал такую систему давно на какой-то из сборок редаги. Когда принудительно закрывал консоль, автоматически запускалось сохранение сервера. Буду очень благодарен кто намекнёт или покажет как это возможно реализовать. Сервер на C#
 
Последнее редактирование:

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
877
1,159
5
Привет! Для автоматического сохранения данных перед закрытием консоли, ты можешь использовать функцию, которая будет вызываться при получении сигнала о завершении работы программы.

Вот пример кода на Java, который демонстрирует эту реализацию:

Java:
import java.io.IOException;

public class Main {
    public static void main(String[] args) {
        Runtime.getRuntime().addShutdownHook(new Thread() {
            public void run() {
                // Здесь ты можешь выполнить нужные операции по сохранению данных
                System.out.println("Выполняется автоматическое сохранение данных...");
                saveData();
            }
        });

        // Твой код сервера
        runServer();
    }

    public static void saveData() {
        // Твой код сохранения данных
    }

    public static void runServer() {
        // Твой код запуска сервера
    }
}

Таким образом, при закрытии консоли будет вызываться функция saveData(), где ты можешь добавить логику по сохранению данных.
 
  • Like
Реакции: MaksimSemko

Deja-vu

Специалист
29 Сен 2020
409
54
95
На чём основан твой сервер? c#? js? Пишите хоть чего-нибудь, если c# то попробуй использовать ServerEvent.ResourceStop
 

amhad321

Участник портала
5 Фев 2024
13
1
5
Кстати да ребят, тоже интересно. Как сейв в серваке запускать перед закрытием? Или я консольку закрою и оно само сохранит? Или сейв у RedAge только по таймеру реализован?
 

MaksimSemko

Начинающий специалист
Автор темы
26 Окт 2020
43
5
65
Кстати да ребят, тоже интересно. Как сейв в серваке запускать перед закрытием? Или я консольку закрою и оно само сохранит? Или сейв у RedAge только по таймеру реализован?
Да, там таймер раз в 6 минут сейв.
 

MaksimSemko

Начинающий специалист
Автор темы
26 Окт 2020
43
5
65
Если уж закрывать сервер, то не крестиком, а как минимум по консоли CTRL + C
Прекрасно, но есть же ситуации где сервер крашиться? Я же уточнил что мне нужно для принудительной остановки, как закрывать консоль я то понимаю.
 

MaksimSemko

Начинающий специалист
Автор темы
26 Окт 2020
43
5
65
C#:
using System;
using GTANetworkAPI;

public class Main : Script
{
    public Main()
    {
        API.onResourceStop += OnResourceStop;
    }

    private void OnResourceStop()
    {
        // В этом методе можно добавить логику для сохранения данных перед закрытием сервера
        Console.WriteLine("Сервер закрывается. Выполняется автосохранение данных...");

        // Здесь добавьте код для сохранения данных, например, в базу данных или файлы

        Console.WriteLine("Данные успешно сохранены.");
    }
}
 

MaksimSemko

Начинающий специалист
Автор темы
26 Окт 2020
43
5
65
C#:
using System;
using GTANetworkAPI;

public class Main : Script
{
    public Main()
    {
        API.onResourceStop += OnResourceStop;
    }

    private void OnResourceStop()
    {
        // В этом методе можно добавить логику для сохранения данных перед закрытием сервера
        Console.WriteLine("Сервер закрывается. Выполняется автосохранение данных...");

        // Здесь добавьте код для сохранения данных, например, в базу данных или файлы

        Console.WriteLine("Данные успешно сохранены.");
    }
}
вот код для реализации, посидел получилось. Спасибо всем кто пытался помочь <3