MaxRaimer

Кастомные цвета машины через RGB

Recommended Posts

Господа, не могу понять что не так. Есть функция, которая принимает строку "ИД цвета" и возвращает массив "RGB" с значением от 0 до 255 в каждом из элементов массива (через свитч реализовано).

function colorIDtoRGB(ColorID){
    let red;
    let green;
    let blue;
    switch (ColorID) {
        case "0":
            red = 0;
            green = 0;
            blue = 0;
            break;
        case "1":
            red = 255;
            green = 255;
            blue = 255;
            break;
        case "2":
            red = 255;
            green = 0;
            blue = 0;
            break;
        case "3":
            red = 0;
            green = 255;
            blue = 0;
            break;
        case "4":
            red = 0;
            green = 0;
            blue = 255;
            break;
        case "5":
            red = 255;
            green = 255;
            blue = 0;
            break;
        case "6":
            red = 155;
            green = 0;
            blue = 200;
            break;
        case "7":
            red = 0;
            green = 155;
            blue = 200;
            break;
        case "8":
            red = 255;
            green = 155;
            blue = 0;
            break;
        case "9":
            red = 200;
            green = 200;
            blue = 200;
            break;
        case "10":
            red = 155;
            green = 155;
            blue = 155;
            break;
        case "11":
            red = 55;
            green = 55;
            blue = 55;
            break;
    }
    var RGB = new Array(red, green, blue);
    return RGB;
    //0 - черный 1 - белый 2 - красный 3 - зеленый 4 - синий 5 - желтый 6 - фиолетовый 7 - голубой 8 - оранжевый 9 - светло-серый 10 - серый 11 - темно-серый
}

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

 
function spawnVeh(player, vehID, pColorID, sColorID) {
    
    if (parseInt(vehID) > -1) {
        var warncolor = "#727272";
        let pos = player.position;
        pos.x += 3;
        let vehName = String(vehIDToName(vehID));
        
        var primaryColor = colorIDtoRGB(pColorID);
        var pColorR = primaryColor[0];
        var pColorG = primaryColor[1];
        var pColorB = primaryColor[2];
        log.debug("first " + primaryColor);
        
        var secondaryColor = colorIDtoRGB(sColorID);
        var sColorR = secondaryColor[0];
        var sColorG = secondaryColor[1];
        var sColorB = secondaryColor[2];
        log.debug("second " + secondaryColor);
        
//        mp.vehicles.new(vehName, pos,
//        {
//            color: [[pColorR, pColorG, pColorB], [sColorR, sColorB, sColorG]],
//        });
        
        mp.vehicles.new(vehName, pos);
        mp.vehicles.setPrimaryColour(pColorR, pColorG, pColorB);
        mp.vehicles.setSecondaryColour(sColorR, sColorB, sColorG);
    } else {
        player.outputChatBox(`!{${warncolor}}/veh id color1 color2`);
    }
}

 

p.s. Закомментированый код - это одна из моих попыток пофиксить проблему, которую опишу ниже.

 

Вроде как все хорошо, однако проблема в том, что когда я спавню машины, например с ид цвета 0 - машина спавнится черная (как и задумано), ид цвета 1 - белая (так и надо), ид цвета 2 - красная (все верно), ид цвета 3 - голубая (не правильно, должна быть зеленая), а дальше цвета повторяются циклично, то есть ид 4 - черная, вместо синей, ид 5 - белая, вместо желтой и т.д.

В ДК посоветовали функцию setvehiclecolorRGB, но на вики найти информацию по этой функции не удалось, соответственно как с ней работать - не знаю. 

 

Буду очень благодарен за помощь:3

Что то я накосячил с спойлерами, прошу меня простить.

Edited by MaxRaimer

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.