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

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

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,565
955
181
35
Приветствую, после обновления 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
2,638
260
100
Здравствуйте! Возможно, проблема связана с обновлением RAGE, которое повлияло на прорисовку текстур веревок. Рекомендую обратиться к разработчикам RAGE или на форуме сообщества для получения подробной информации о том, как исправить данную проблему.
 
Реакции: fivepkost

Dmitry_V

Высший разум
BackEnd developer
23 Июн 2023
2,800
508
161
28
Хз, попробуй так, мб с прямой подгрузкой словаря заработает.
Код:
public attachRopeEntityToEntity(player: PlayerMp, vehicle: VehicleMp) {
    mp.game.streaming.requestStreamedTextureDict("ROPE", true);
    
    let interval = setInterval(() => {
        if (mp.game.graphics.hasStreamedTextureDictLoaded("ROPE")) {
            clearInterval(interval);
 

Swayze

Начинающий специалист
BackEnd developer
6 Окт 2022
78
64
75
Таймаут в 200 милисекунд к аттачу поставь, должно работать
 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,565
955
181
35

Swayze

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

 

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,565
955
181
35
Этот вариант тоже пробовал. Нативка возвращает true, как будто текстуры загружены, но их не видно

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

Swayze

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

Vermilion

Высший разум
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,565
955
181
35

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

Покинул форум.
BackEnd developer
24 Янв 2023
1,209
472
191
0xE832D760399EB220 возвращает int, вероятнее всего мы можем инициализировать переменную result, как -1, после выполнения метода проверять изменяется ли переменная result. Если не изменяется, то выполняем метод сначала. Вероятнее всего с 2-3 раза отработает при цикле.