Jump to content

Recommended Posts

Posted (edited)

Господа, не могу понять что не так. Есть функция, которая принимает строку "ИД цвета" и возвращает массив "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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...