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

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается 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/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

Оптимизация мода дабы не начинать с нуля

Wair

Активный участник
26 Ноя 2020
272
42
95
Это, по большей части, будет рассуждение, или даже просьба о помощи...
Я не то чтобы являюсь хорошим кодером, прошёл пару лет назад курсы Java ( для новичков ), понял в целом как писать код чтобы работало и пошёл ковырять редагу 2.0, потом опять перестал... Потом уже брал Shadow/Alyx и тд...
По итогу остановился на Alyx, чем-то он мне больше заходил нежели Freedom или тот же Shadow ( 3ка всегда казалась для меня перегруженной, я слишком ленивый чтобы изучать её архитектуру ), писал что-то, даже верстали с типАми, и в итоге доросло до того, что есть свои системы, и я нормально так ( для своих навыков ) начал разбираться как и что люди пишут и как не нужно делать ( как, в целом ,написана вся нептунка 2.0 ), писал-писал я, делал свои системы/фиксы и понял что сервер, подвисает ( видео приложу ниже ), сколько не бился не могу понять из-за чего это дело происходит, спрашивал у Inoi, решили что дело на сервер стороне ( причём как я тогда ещё понял - сам по себе Alyx баганный, тут больше дело не в моём коде, я его вычищал и без него чекал ), вспомнил что из-за этого как раз я выгорел и не трогал сервер ближайшие 3 месяца, благодаря девушке теперь появилось желание дальше пилить свой говномод, делал я это для себя чисто чтобы сделать что-то и подучиться в кодинге...
Я уже давно потерял нить повествования, ближе к сути - были мысли перенестись на Freedom ( в намного стабильнее в целом, но багов дохера ), понял что это займёт слишком много времени и ресурсов ( ибо я давно не помню что конкретно менял и переписывал, а что добавлял, учитывая что я человек работающий, времени на переписывания фридома тупо нет ).
Так вот, хочу больше мнений услышать и предположений в чём дело и почему же этот проклятый мод виснет, ломая всю малину, услышать все мнения, так сказать)
За любую помощь буду благодарен, хоть не вгонит в тоску ( надеюсь ) :roflanebalo:
Как и обещал, ссылка:
 
Последнее редактирование:
Реакции: derrsak и FireFeed

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,239
230
5
Привет! Понимаю, что оптимизация модов может быть сложным. Если сервер зависает, возможно, проблема в неэффективном коде или ресурсоемких операциях. Рекомендую провести профилирование кода для выявления узких мест и оптимизировать их. Также стоит проверить обращения к базе данных и работу с памятью. Удачи в поиске решения проблемы!
 

Wair

Активный участник
26 Ноя 2020
272
42
95
Забыл бота вырубить для этой темы ( вроде раньше можно было, я реально тупо пропал с форума на пару месяцев )
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
а в смысле дело на сервер стороне если клиент виснет, почему к такому выводу пришли? Выкинь какой то лог отправляемых ивентов, возможно он статистику игрока отправляет и во время парса подвисает
 
Реакции: XDeveluxe

Wair

Активный участник
26 Ноя 2020
272
42
95
а в смысле дело на сервер стороне если клиент виснет, почему к такому выводу пришли? Выкинь какой то лог отправляемых ивентов, возможно он статистику игрока отправляет и во время парса подвисает
тупой вопрос сейчас будет, но мне интересно как мне вытащить лог?
 
Последнее редактирование:

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
тупой вопрос, но интересно как я вытащу лог?
бля, та не, вопрос не тупой :) тебе нужно переопределить функции для вызова ивентов


C#:
global using Blip = HardLife.Repositories.ExtensionsRepository.Extensions.Blip;
global using Checkpoint = HardLife.Extensions.Checkpoint;
global using ColShape = HardLife.Extensions.ColShape;
global using DummyEntity = HardLife.Extensions.DummyEntity;
global using Marker = HardLife.Extensions.Marker;
global using Object = HardLife.Extensions.Object;
global using Ped = HardLife.Extensions.Ped;
global using Pickup = HardLife.Extensions.Pickup;
global using Player = HardLife.Extensions.Player;
global using Script = HardLife.Extensions.Script;
global using TextLabel = HardLife.Extensions.TextLabel;
global using Vehicle = HardLife.Extensions.Vehicle;
global using GTANetworkAPI;

namespace HardLife.Repositories.ExtensionsRepository
{
    public class ExtensionsManager : Script
    {
        public ExtensionsManager()
        {
            RAGE.Entities.Players.CreateEntity = (netHandle) => new Player(netHandle);
            RAGE.Entities.Vehicles.CreateEntity = (netHandle) => new Vehicle(netHandle);
            RAGE.Entities.Peds.CreateEntity = (netHandle) => new Ped(netHandle);
            RAGE.Entities.Objects.CreateEntity = (netHandle) => new Object(netHandle);
            RAGE.Entities.Colshapes.CreateEntity = (netHandle) => new ColShape(netHandle);
            RAGE.Entities.Blips.CreateEntity = (netHandle) => new Blip(netHandle);
            RAGE.Entities.Checkpoints.CreateEntity = (netHandle) => new Checkpoint(netHandle);
            RAGE.Entities.DummyEntities.CreateEntity = (netHandle) => new DummyEntity(netHandle);
            RAGE.Entities.Markers.CreateEntity = (netHandle) => new Marker(netHandle);
            RAGE.Entities.Pickups.CreateEntity = (netHandle) => new Pickup(netHandle);
            RAGE.Entities.TextLabels.CreateEntity = (netHandle) => new TextLabel(netHandle);
        }
    }
}
я используя в целом переопределения дефолтных ентити и могу менять что хочу в них, тригеры через напи просто заменяешь на свои прееопределения
 
Реакции: derrsak и Wair

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
можно extensions прост офункции сделать через статический класс, но я хз заведется ли он по всей сборке
 

Wair

Активный участник
26 Ноя 2020
272
42
95
бля, та не, вопрос не тупой :) тебе нужно переопределить функции для вызова ивентов


C#:
global using Blip = HardLife.Repositories.ExtensionsRepository.Extensions.Blip;
global using Checkpoint = HardLife.Extensions.Checkpoint;
global using ColShape = HardLife.Extensions.ColShape;
global using DummyEntity = HardLife.Extensions.DummyEntity;
global using Marker = HardLife.Extensions.Marker;
global using Object = HardLife.Extensions.Object;
global using Ped = HardLife.Extensions.Ped;
global using Pickup = HardLife.Extensions.Pickup;
global using Player = HardLife.Extensions.Player;
global using Script = HardLife.Extensions.Script;
global using TextLabel = HardLife.Extensions.TextLabel;
global using Vehicle = HardLife.Extensions.Vehicle;
global using GTANetworkAPI;

namespace HardLife.Repositories.ExtensionsRepository
{
    public class ExtensionsManager : Script
    {
        public ExtensionsManager()
        {
            RAGE.Entities.Players.CreateEntity = (netHandle) => new Player(netHandle);
            RAGE.Entities.Vehicles.CreateEntity = (netHandle) => new Vehicle(netHandle);
            RAGE.Entities.Peds.CreateEntity = (netHandle) => new Ped(netHandle);
            RAGE.Entities.Objects.CreateEntity = (netHandle) => new Object(netHandle);
            RAGE.Entities.Colshapes.CreateEntity = (netHandle) => new ColShape(netHandle);
            RAGE.Entities.Blips.CreateEntity = (netHandle) => new Blip(netHandle);
            RAGE.Entities.Checkpoints.CreateEntity = (netHandle) => new Checkpoint(netHandle);
            RAGE.Entities.DummyEntities.CreateEntity = (netHandle) => new DummyEntity(netHandle);
            RAGE.Entities.Markers.CreateEntity = (netHandle) => new Marker(netHandle);
            RAGE.Entities.Pickups.CreateEntity = (netHandle) => new Pickup(netHandle);
            RAGE.Entities.TextLabels.CreateEntity = (netHandle) => new TextLabel(netHandle);
        }
    }
}
я используя в целом переопределения дефолтных ентити и могу менять что хочу в них, тригеры через напи просто заменяешь на свои прееопределения
я запутался.... логгируем клиент, а пишем в сервер часть, так же откуда взяты эти экстеншены... Просто написать свой код ( те указать там логгирование и выполнение самого метода, дпоустим если это триггер, клиент ивент, то вписать его туда?) , который будет логгировать что он сделал?
Так же интересно что после такого переопределения мне не придётся каждый триггер переписать на мой новый?
 

Wair

Активный участник
26 Ноя 2020
272
42
95
нельзя ли как-то "парехватывать" вообще все получаемые на клиент триггеры и выводить их?
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
JavaScript:
(() => {
    // Сохраняем оригинальную функцию mp.events.add
    const originalAdd = mp.events.add;

    // Переопределяем mp.events.add
    mp.events.add = (eventNameOrObject, callback) => {
        
        // Если передан объект с событиями { event1: fn, event2: fn, ... }
        if (typeof eventNameOrObject === 'object') {
            for (const [name, fn] of Object.entries(eventNameOrObject)) {
                // Вызовем оригинальный mp.events.add для каждого события
                originalAdd(name, (...args) => {
                    // Логируем информацию
                    mp.console.logInfo(`Событие вызвано: ${name}, аргументы: ${JSON.stringify(args)}`, false);
                    
                    // Выполняем оригинальный колбэк
                    fn(...args);
                });
            }
        } else {
            // Если передано одно событие (строка)
            originalAdd(eventNameOrObject, (...args) => {
                // Логируем информацию
                mp.console.logInfo(`Событие вызвано: ${eventNameOrObject}, аргументы: ${JSON.stringify(args)}`, false);
                
                // Выполняем оригинальный колбэк
                callback(...args);
            });
        }
    };
})();

вот такой код мне выдал чат жпт, можеш попробовать
 
  • Wow
Реакции: derrsak и Wair

Dmitry_V

Гений
23 Июн 2023
2,057
341
131
27
Это, по большей части, будет рассуждение, или даже просьба о помощи...
Я не то чтобы являюсь хорошим кодером, прошёл пару лет назад курсы Java ( для новичков ), понял в целом как писать код чтобы работало и пошёл ковырять редагу 2.0, потом опять перестал... Потом уже брал Shadow/Alyx и тд...
По итогу остановился на Alyx, чем-то он мне больше заходил нежели Freedom или тот же Shadow ( 3ка всегда казалась для меня перегруженной, я слишком ленивый чтобы изучать её архитектуру ), писал что-то, даже верстали с типАми, и в итоге доросло до того, что есть свои системы, и я нормально так ( для своих навыков ) начал разбираться как и что люди пишут и как не нужно делать ( как, в целом ,написана вся нептунка 2.0 ), писал-писал я, делал свои системы/фиксы и понял что сервер, подвисает ( видео приложу ниже ), сколько не бился не могу понять из-за чего это дело происходит, спрашивал у Inoi, решили что дело на сервер стороне ( причём как я тогда ещё понял - сам по себе Alyx баганный, тут больше дело не в моём коде, я его вычищал и без него чекал ), вспомнил что из-за этого как раз я выгорел и не трогал сервер ближайшие 3 месяца, благодаря девушке теперь появилось желание дальше пилить свой говномод, делал я это для себя чисто чтобы сделать что-то и подучиться в кодинге...
Я уже давно потерял нить повествования, ближе к сути - были мысли перенестись на Freedom ( в намного стабильнее в целом, но багов дохера ), понял что это займёт слишком много времени и ресурсов ( ибо я давно не помню что конкретно менял и переписывал, а что добавлял, учитывая что я человек работающий, времени на переписывания фридома тупо нет ).
Так вот, хочу больше мнений услышать и предположений в чём дело и почему же этот проклятый мод виснет, ломая всю малину, услышать все мнения, так сказать)
За любую помощь буду благодарен, хоть не вгонит в тоску ( надеюсь ) :roflanebalo:
Как и обещал, ссылка:
Это у всех игроков?
 

Wair

Активный участник
26 Ноя 2020
272
42
95

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Реакции: derrsak

Wair

Активный участник
26 Ноя 2020
272
42
95
дак а как вы поняли что это изза сервера
хз, перебирали варианты с длс, СЕФом, по итогу решили что проблема на стороне сервера ( кто-то же парсит на клиент данные ))
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
хз, перебирали варианты с длс, СЕФом, по итогу решили что проблема на стороне сервера ( кто-то же парсит на клиент данные ))
но оно по странному лагает, не последовательно, мне что то кажетс ячто это где то рендер выебуется. Я смотрю тут уже есть переопределение add.event, щас я гляну че там происходит
 
Реакции: youngBeaver

Wair

Активный участник
26 Ноя 2020
272
42
95
но оно по странному лагает, не последовательно, мне что то кажетс ячто это где то рендер выебуется. Я смотрю тут уже есть переопределение add.event, щас я гляну че там происходит
рендер...иначе никак, хотя я раньше вырезал его напрочь, игра всё равно нестабильно вела себя, видимо тут реально не мой код...ибо оставлял то, что было
код поставил с GPT, выводит такое, во время подлага только рендер какает, больше ничего
1738867221751.png
 
  • Love
Реакции: FireFeed

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
рендер...иначе никак, хотя я раньше вырезал его напрочь, игра всё равно нестабильно вела себя, видимо тут реально не мой код...ибо оставлял то, что было
код поставил с GPT, выводит такое, во время подлага только рендер какает, больше ничегоПосмотреть вложение 18391
слови место где у тебя залагало, и проебдь по нему обратно, мне кажется оно лагает в конкретных моментах