Advertisement
Guest User

Untitled

a guest
Jul 5th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.71 KB | None | 0 0
  1. Store_WalkConfig(&Handle:kv, parent=-1)
  2. {
  3.     decl String:m_szType[32];
  4.     decl String:m_szGame[64];
  5.     decl String:m_szFlags[64];
  6.     decl m_iHandler;
  7.     decl bool:m_bSuccess;
  8.     do
  9.     {
  10.         if(g_iItems == STORE_MAX_ITEMS)
  11.                 continue;
  12.         if (KvGetNum(kv, "enabled", 1) && KvGetNum(kv, "type", -1)==-1 && KvGotoFirstSubKey(kv))
  13.         {
  14.             KvGoBack(kv);
  15.             KvGetSectionName(kv, g_eItems[g_iItems][szName], 64);
  16.             KvGetSectionName(kv, g_eItems[g_iItems][szUniqueId], 64);
  17.             ReplaceString(g_eItems[g_iItems][szName], 64, "\\n", "\n");
  18.             KvGetString(kv, "shortcut", g_eItems[g_iItems][szShortcut], 64);
  19.             KvGetString(kv, "flag", STRING(m_szFlags));
  20.             KvGetString(kv, "games", STRING(m_szGame));
  21.             if(m_szGame[0] != 0 && StrContains(m_szGame, g_szGameDir)==-1)
  22.                 continue;
  23.             g_eItems[g_iItems][iFlagBits] = ReadFlagString(m_szFlags);
  24.             g_eItems[g_iItems][iPrice] = KvGetNum(kv, "price", -1);
  25.             g_eItems[g_iItems][bBuyable] = (KvGetNum(kv, "buyable", 1)?true:false);
  26.             g_eItems[g_iItems][bIgnoreVIP] = (KvGetNum(kv, "ignore_vip", 0)?true:false);
  27.             g_eItems[g_iItems][iHandler] = g_iPackageHandler;
  28.             KvGotoFirstSubKey(kv);
  29.            
  30.             g_eItems[g_iItems][iParent] = parent;
  31.            
  32.             Store_WalkConfig(kv, g_iItems++);
  33.             KvGoBack(kv);
  34.         }
  35.         else
  36.         {
  37.             if(!KvGetNum(kv, "enabled", 1))
  38.                 continue;
  39.  
  40.             KvGetString(kv, "games", STRING(m_szGame));
  41.             if(m_szGame[0] != 0 && StrContains(m_szGame, g_szGameDir)==-1)
  42.                 continue;
  43.                
  44.             g_eItems[g_iItems][iParent] = parent;
  45.             KvGetSectionName(kv, g_eItems[g_iItems][szName], ITEM_NAME_LENGTH);
  46.             g_eItems[g_iItems][iPrice] = KvGetNum(kv, "price");
  47.             g_eItems[g_iItems][bBuyable] = KvGetNum(kv, "buyable", 1)?true:false;
  48.             g_eItems[g_iItems][bIgnoreVIP] = (KvGetNum(kv, "ignore_vip", 0)?true:false);
  49.  
  50.            
  51.             KvGetString(kv, "type", STRING(m_szType));
  52.             m_iHandler = Store_GetTypeHandler(m_szType);
  53.             if(m_iHandler == -1)
  54.                 continue;
  55.  
  56.             KvGetString(kv, "flag", STRING(m_szFlags));
  57.             g_eItems[g_iItems][iFlagBits] = ReadFlagString(m_szFlags);
  58.             g_eItems[g_iItems][iHandler] = m_iHandler;
  59.            
  60.             if(KvGetNum(kv, "unique_id", -1)==-1)
  61.                 KvGetString(kv, g_eTypeHandlers[m_iHandler][szUniqueKey], g_eItems[g_iItems][szUniqueId], PLATFORM_MAX_PATH);
  62.             else
  63.                 KvGetString(kv, "unique_id", g_eItems[g_iItems][szUniqueId], PLATFORM_MAX_PATH);
  64.  
  65.             if(KvJumpToKey(kv, "Plans"))
  66.             {
  67.                 KvGotoFirstSubKey(kv);
  68.                 new index=0;
  69.                 do
  70.                 {
  71.                     KvGetSectionName(kv, g_ePlans[g_iItems][index][szName], ITEM_NAME_LENGTH);
  72.                     g_ePlans[g_iItems][index][iPrice] = KvGetNum(kv, "price");
  73.                     g_ePlans[g_iItems][index][iTime] = KvGetNum(kv, "time");
  74.                     ++index;
  75.                 } while (KvGotoNextKey(kv));
  76.  
  77.                 g_eItems[g_iItems][iPlans]=index;
  78.  
  79.                 KvGoBack(kv);
  80.                 KvGoBack(kv);
  81.             }
  82.  
  83.             if(g_eItems[g_iItems][hAttributes])
  84.                 CloseHandle(g_eItems[g_iItems][hAttributes]);
  85.             g_eItems[g_iItems][hAttributes] = INVALID_HANDLE;
  86.             if(KvJumpToKey(kv, "Attributes"))
  87.             {
  88.                 g_eItems[g_iItems][hAttributes] = CreateTrie();
  89.  
  90.                 KvGotoFirstSubKey(kv, false);
  91.  
  92.                 new String:m_szAttribute[64];
  93.                 new String:m_szValue[64];
  94.                 do
  95.                 {
  96.                     KvGetSectionName(kv, STRING(m_szAttribute));
  97.                     KvGetString(kv, NULL_STRING, STRING(m_szValue));
  98.                     SetTrieString(g_eItems[g_iItems][hAttributes], m_szAttribute, m_szValue);
  99.                 } while (KvGotoNextKey(kv, false));
  100.  
  101.                 KvGoBack(kv);
  102.                 KvGoBack(kv);
  103.             }
  104.            
  105.             m_bSuccess = true;
  106.             if(g_eTypeHandlers[m_iHandler][fnConfig]!=INVALID_FUNCTION)
  107.             {
  108.                 Call_StartFunction(g_eTypeHandlers[m_iHandler][hPlugin], g_eTypeHandlers[m_iHandler][fnConfig]);
  109.                 Call_PushCellRef(kv);
  110.                 Call_PushCell(g_iItems);
  111.                 Call_Finish(m_bSuccess);
  112.             }
  113.            
  114.             if(m_bSuccess)
  115.                 ++g_iItems;
  116.         }
  117.     } while (KvGotoNextKey(kv));
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement