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

Вопрос Hash автомобиля (DLC)

DeAAmoN

Мастер
BackEnd developer
18 Мар 2022
606
168
114
Искал инфу, долго.. Решил спросить у ГПТ + глянуть примеры

let getVehicleHash = (name) => {
let hash = 0;
for (let i = 0; i < name.length; i++) {
hash += name.charCodeAt(i);
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash >>> 0;
};

else if (command.toLowerCase().startsWith("hash")) {
if (!user.isAdmin(player, 5))
return;
let args = command.toLowerCase().split(' ');
let modelName = args[1];
if (!modelName) {
player.outputChatBoxNew("Использование: /hash [modelName]");
return;
}

let getVehicleHash = (name) => {
let hash = 0;
for (let i = 0; i < name.length; i++) {
hash += name.charCodeAt(i);
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash >>> 0;
};

let hash = getVehicleHash(modelName);
methods.saveFile('VehHash', Администратор "${user.getRpName(player)}" запросил хэш модели "${modelName}" -> ${hash})
player.outputChatBoxNew(Hash для модели "${modelName}" = ${hash});
}

Все работает отлично, только вот например хеш oracle2 не совпадает с тем результатом, что я получаю
+ по полученным хешам транспорт не спавнится (т.е. я явно получаю не тот результат)



Суть вопроса, может кто подскажет в чем ошибка? Или на рейдже в целом используется другой метод получения хеша?
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,373
237
100
Для получения правильного хеша модели в GTA V используется другой метод, который не совпадает с вашей функцией. Возможно, стоит обратиться к документации по работе с хешами моделей в игре для корректного получения нужного значения.
 

DeAAmoN

Мастер
BackEnd developer
18 Мар 2022
606
168
114
Ты молодец! Но все же хочется узнать, какой именно метод использовать)
 

DeAAmoN

Мастер
BackEnd developer
18 Мар 2022
606
168
114
Попробовал, получилось. НО



Полученный хеш отличается того, что в вики

Или я опять что то не то использую?)

JavaScript:
else if (command.toLowerCase().startsWith("hash")) {
            if (!user.isAdmin(player, 5)) {
                player.outputChatBoxNew("У вас недостаточно прав для использования этой команды.");
                return;
            }
       
            let args = command.split(' ');
            let modelName = args[1];
       
            if (!modelName || modelName.trim() === "") {
                player.outputChatBoxNew("Ошибка: Аргумент modelName отсутствует или пустой.");
                return;
            }
       
            if (!/^[a-zA-Z0-9_]+$/.test(modelName)) {
                player.outputChatBoxNew("Ошибка: Название модели содержит недопустимые символы.");
                return;
            }
       
            try {
       
                let hash = mp.joaat(modelName);
                methods.saveFile('VehHash', `Администратор "${user.getRpName(player)}" запросил хэш модели "${modelName}" -> ${hash}`);
                player.outputChatBoxNew(`Hash для модели "${modelName}" = ${hash}`);
            } catch (error) {
                let errorMessage = `Ошибка при получении хеша модели "${modelName}": ${error.message}`;
                methods.saveFile('HashError', errorMessage);
                player.outputChatBoxNew("Произошла ошибка при обработке команды. Подробности записаны в лог.");
            }
        }
 

Вложения

  • 1733690846091.png
    39.5 KB · Просмотры: 48

m0v1l3

Начинающий специалист
29 Сен 2020
498
64
95
https://docs.fivem.net/docs/game-references/vehicle-models/ - здесь точно такое же значение, mp.joaat() ошибаться не может
 
Реакции: DeAAmoN

Harland David Sanders

🍔 ChefBurger
Команда форума
High developer
10 Сен 2020
3,668
2,841
219


1348744438 (dec) == 0x506434f6 (hex)