Global variable
PHP Code:
new Handle:g_hColors; // global variable for color list
New function for colors - call this function before loading the config (OnPluginStart ?)
PHP Code:
CreateColors() // create and fill color list
{
if (g_hColors == INVALID_HANDLE)
{
g_hColors = CreateTrie();
SetTrieString(g_hColors, "color name 1", "\x01");
SetTrieString(g_hColors, "color name 2", "\x02");
SetTrieString(g_hColors, "color name 3", "\x03");
SetTrieString(g_hColors, "color name 4", "\x04");
// .
// .
// .
}
}
And edit the config loading
PHP Code:
if (KvGotoFirstSubKey(kv))
{
decl String:Num[12], String:ItemName[256], String:ItemModel[256], String:ItemNumber[12], String:ItemPrice[256], String:ItemColorName[256], String:ItemColor[8], String:itemtradeCheck[8];
do
{
KvGetSectionName(kv, Num, sizeof(Num));
KvGetString(kv, "name", ItemName, sizeof(ItemName));
KvGetString(kv, "model", ItemModel, sizeof(ItemModel));
KvGetString(kv, "type", ItemNumber, sizeof(ItemNumber));
KvGetString(kv, "price", ItemPrice, sizeof(ItemPrice));
KvGetString(kv, "color", ItemColorName, sizeof(ItemColorName));
KvGetString(kv, "trade", itemtradeCheck, sizeof(itemtradeCheck));
strcopy(ItemColor, sizeof(ItemColor), ItemColorName); // default value (if color name is not found)
if (g_hColors != INVALID_HANDLE)
{
GetTrieString(g_hColors, ItemColorName, ItemColor, sizeof(ItemColor)); // get color code from hashmap ("color name" -> "color code")
}
CreateItem(StringToInt(Num), ItemName, ItemModel, KvGetNum(kv, "type"), KvGetNum(kv, "price"), ItemColor, StrEqual(itemtradeCheck, "true")); // not sure about this ItemColor though...
}
while(KvGotoNextKey(kv));
}
CloseHandle(kv);
edited
__________________