This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Проблема при прорисовке текстур веревок

Vermilion

Мастер
29 Сен 2021
973
750
151
34
Приветствую, после обновления RAGE возникла проблема с прорисовкой текстур веревок, кто то сталкивался?
Код, который до обновления был рабочий:
JavaScript:
public attachRopeEntityToEntity(player: PlayerMp, vehicle: VehicleMp) {
        // Загружаем текстуры веревок
        mp.game.invoke('0x9B9039DBF2D258C1')
       
        // Создаем веревку
        const rope = mp.game.invoke(
            '0xE832D760399EB220',
            player.position.x,
            player.position.y,
            player.position.z,
            0,
            0,
            0,
            15,
            4,
            5,
            0.1,
            0.5,
            false,
            false,
            true,
            1.0,
            false,
            0,
        )
       
        // Аттачим веревку между игроком и транспортом
        mp.game.rope.attachEntitiesToRope(
            rope,
            vehicle.handle,
            player.handle,
            vehicle.position.x,
            vehicle.position.y,
            vehicle.position.z,
            player.position.x,
            player.position.y,
            player.position.z,
            15,
            false,
            false,
        )
   
        // Физика веревок
        mp.game.invoke('0x710311ADF0E20730', rope)
}

Сама веревка создается и аттачится, физика работает, то есть игрок не может отойти от транспорта дальше чем длинна веревки, но текстуры не видно. В чем может быть проблема?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,763
1,305
5
Здравствуйте! Возможно, проблема связана с обновлением RAGE, которое повлияло на прорисовку текстур веревок. Рекомендую обратиться к разработчикам RAGE или на форуме сообщества для получения подробной информации о том, как исправить данную проблему.
 
Реакции: fivepkost

Dmitry_V

Гуру
23 Июн 2023
1,305
395
128
27
Хз, попробуй так, мб с прямой подгрузкой словаря заработает.
Код:
public attachRopeEntityToEntity(player: PlayerMp, vehicle: VehicleMp) {
    mp.game.streaming.requestStreamedTextureDict("ROPE", true);
    
    let interval = setInterval(() => {
        if (mp.game.graphics.hasStreamedTextureDictLoaded("ROPE")) {
            clearInterval(interval);
 

Swayze

Начинающий специалист
6 Окт 2022
66
16
45
Таймаут в 200 милисекунд к аттачу поставь, должно работать
 

Vermilion

Мастер
29 Сен 2021
973
750
151
34

Swayze

Начинающий специалист
6 Окт 2022
66
16
45
Я не уверен что нативка сработает так как нужно тебе, но попробуй мб загрузит текстуры.
"0x9B9039DBF2D258C1"

 

Vermilion

Мастер
29 Сен 2021
973
750
151
34
Этот вариант тоже пробовал. Нативка возвращает true, как будто текстуры загружены, но их не видно

UPD: речь идет про эту нативку
Код:
0xF2D0E6A75CC05597
BOOL ROPE_ARE_TEXTURES_LOADED()
 

Swayze

Начинающий специалист
6 Окт 2022
66
16
45
Идея конечно так себе у меня, но не пробовал подгрузку текстуры в рендер впихнуть для теста?
 

Vermilion

Мастер
29 Сен 2021
973
750
151
34

Robert_Easter

Активный участник
17 Июл 2024
103
13
28
Проверил, не работает
Код:
public attachRopeEntityToEntity(player: PlayerMp, vehicle: VehicleMp) {
    mp.game.invoke('0x9B9039DBF2D258C1');
    setTimeout(() => {
        mp.game.invoke('0x6CE36C35C1AC8163');
        setTimeout(() => {
            mp.game.invoke('0x9B9039DBF2D258C1');
            setTimeout(() => {
                mp.game.invoke('0x6CE36C35C1AC8163');
                setTimeout(() => {
                    mp.game.invoke('0x9B9039DBF2D258C1');
                    const rope = mp.game.invoke(
                        '0xE832D760399EB220',
                        player.position.x,
                        player.position.y,
                        player.position.z,
                        0,
                        0,
                        0,
                        15,
                        4,
                        5,
                        0.1,
                        0.5,
                        false,
                        false,
                        true,
                        1.0,
                        false,
                        0
                    );


                    mp.game.rope.attachEntitiesToRope(
                        rope,
                        vehicle.handle,
                        player.handle,
                        vehicle.position.x,
                        vehicle.position.y,
                        vehicle.position.z,
                        player.position.x,
                        player.position.y,
                        player.position.z,
                        15,
                        false,
                        false
                    );


                    mp.game.invoke('0x710311ADF0E20730', rope);
                }, 2000);
            }, 2000);
        }, 2000);
    }, 2000);
}
Я не знаю но иногда такие вещи могут выручать. Если не сработает скажи что нибудь другое найдём
 

youngBeaver

Мастер
high coder
24 Янв 2023
1,146
692
171
24
0xE832D760399EB220 возвращает int, вероятнее всего мы можем инициализировать переменную result, как -1, после выполнения метода проверять изменяется ли переменная result. Если не изменяется, то выполняем метод сначала. Вероятнее всего с 2-3 раза отработает при цикле.