SetColor4 Export

TheZipa

Участник
Сообщения
45
Реакции
7
Привет. Пытался сохранить значения цвета в KeyValues через SetColor4, но почему-то когда срабатывает эта часть кода, то ключ, который я передаю в SetColor4 просто удаляется из файла, после ExportToFile. Однако в самой структуре значение цвета установилось корректно. Выходит, что ExportToFile криво сохраняет цвет? Может это я где-то не углядел или просто нужно другими костылями записывать цвет в структуру через String и т.п. Заранее благодарю за помощь.


C++:
    char szClientID[32];
    GetClientAuthId(iClient, AuthId_Steam2, szClientID, sizeof(szClientID));
   
    g_hKeyValues.Rewind();
    if(g_hKeyValues.JumpToKey(szClientID, false))
    {
        g_hKeyValues.SetNum("enable", view_as<int>(g_bEnable[iClient]));
        g_hKeyValues.SetNum("isLighting", view_as<int>(g_bIsLighting[iClient]));
        g_hKeyValues.SetColor4("color", g_iColor[iClient]); // int g_iColor[MAXPLAYERS+1][4]
    }
   
    g_hKeyValues.Rewind();
    g_hKeyValues.ExportToFile(g_szPath); // ключ "color" исчезает из файла
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
C-подобный:
    // Sets a set of color values of a KeyValues key.
    //
    // @param key           Name of the key, or NULL_STRING.
    // @param color         Red, green, blue and alpha channels.
    public void SetColor4(const char[] key, const int color[4]) {
        this.SetColor(key, color[0], color[1], color[2], color[3]);
    }
попробуй вот так:g_hKeyValues.SetColor("color", g_iColor[iClient][0], g_iColor[iClient][1], g_iColor[iClient][2], g_iColor[iClient][3]);
 

TheZipa

Участник
Сообщения
45
Реакции
7
C-подобный:
    // Sets a set of color values of a KeyValues key.
    //
    // @param key           Name of the key, or NULL_STRING.
    // @param color         Red, green, blue and alpha channels.
    public void SetColor4(const char[] key, const int color[4]) {
        this.SetColor(key, color[0], color[1], color[2], color[3]);
    }
попробуй вот так:g_hKeyValues.SetColor("color", g_iColor[iClient][0], g_iColor[iClient][1], g_iColor[iClient][2], g_iColor[iClient][3]);
Я уже пробовал. Тоже самое получается.
 

TheZipa

Участник
Сообщения
45
Реакции
7
kv colors уже давно с багами. Спасает запись/чтение в виде строки.
Понятно. Ну в общем я через строку начал записывать цвет в структуру и теперь оно сохраняется корректно.

C++:
char szColor[16];
FormatEx(szColor, sizeof(szColor), "%i %i %i %i", g_iColor[iClient][0], g_iColor[iClient][1], g_iColor[iClient][2], g_iColor[iClient][3]);
g_hKeyValues.SetString("color", szColor);
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Kailo, а переадресация через тентакль нафейхуа?
 
Сверху Снизу