Advertisement
BM_R1KO

Untitled

Aug 6th, 2017
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. void Clients_LoadVIPFeatures(int iClient)
  3. {
  4.     DebugMessage("LoadVIPFeatures %N", iClient)
  5.  
  6.     DebugMessage("AreClientCookiesCached %b", AreClientCookiesCached(iClient))
  7.    
  8.     if (!AreClientCookiesCached(iClient))
  9.     {
  10.         CreateTimer(0.5, Timer_CheckCookies, UID(iClient), TIMER_FLAG_NO_MAPCHANGE);
  11.     }
  12.  
  13.     DebugMessage("AreClientCookiesCached %b", AreClientCookiesCached(iClient))
  14.  
  15.     int iFeatures = g_hFeaturesArray.Length;
  16.     DebugMessage("FeaturesArraySize: %d", iFeatures)
  17.     if (iFeatures > 0)
  18.     {
  19.         char sFeatureName[FEATURE_NAME_LENGTH];
  20.  
  21.         g_hFeatures[iClient].GetString(KEY_GROUP, SZF(sFeatureName));
  22.         if (UTIL_CheckValidVIPGroup(sFeatureName))
  23.         {
  24.             char                sBuffer[4];
  25.             Handle              hCookie;
  26.             VIP_ToggleState     Status;
  27.             ArrayList hArray;
  28.             for (int i = 0; i < iFeatures; ++i)
  29.             {
  30.                 g_hFeaturesArray.GetString(i, SZF(sFeatureName));
  31.                 if (GLOBAL_TRIE.GetValue(sFeatureName, hArray))
  32.                 {
  33.                     DebugMessage("LoadClientFeature: %d - %s", i, sFeatureName)
  34.  
  35.                     if (GetValue(iClient, view_as<VIP_ValueType>(hArray.Get(FEATURES_VALUE_TYPE)), sFeatureName))
  36.                     {
  37.                         DebugMessage("GetValue: == true")
  38.                         if (view_as<VIP_FeatureType>(hArray.Get(FEATURES_ITEM_TYPE)) == TOGGLABLE)
  39.                         {
  40.                             hCookie = view_as<Handle>(hArray.Get(FEATURES_COOKIE));
  41.                             GetClientCookie(iClient, hCookie, SZF(sBuffer));
  42.                             Status = view_as<VIP_ToggleState>(StringToInt(sBuffer));
  43.                             DebugMessage("GetFeatureCookie: '%s'", sBuffer)
  44.                             if (sBuffer[0] == '\0' || (view_as<int>(Status) > 2 || view_as<int>(Status) < 0))
  45.                             {
  46.                                 if(hArray.Length == 6)
  47.                                 {
  48.                                     Status = hArray.Get(FEATURES_DEF_STATUS) ? ENABLED:DISABLED;
  49.                                 }
  50.                                 else
  51.                                 {
  52.                                     Status = g_CVAR_bDefaultStatus ? ENABLED:DISABLED;
  53.                                 }
  54.                                 IntToString(view_as<int>(Status), SZF(sBuffer));
  55.                                 SetClientCookie(iClient, hCookie, sBuffer);
  56.                                 //  Features_SaveStatus(iClient, sFeatureName, hCookie, Status);
  57.                             }
  58.                         }
  59.                         else
  60.                         {
  61.                             Status = ENABLED;
  62.                         }
  63.  
  64.                         Features_SetStatus(iClient, sFeatureName, Status);
  65.                         //  Function_OnItemToggle(view_as<Handle>(hArray.Get(FEATURES_PLUGIN)), Function:hArray.Get(FEATURES_ITEM_SELECT), iClient, sFeatureName, NO_ACCESS, ENABLED);
  66.                     }
  67.                 }
  68.             }
  69.         }
  70.     }
  71.  
  72.     DebugMessage("Clients_OnVIPClientLoaded: %d %N", iClient, iClient)
  73.  
  74.     Clients_OnVIPClientLoaded(iClient);
  75. }
  76.  
  77. void Clients_LoadVIPFeature(int iClient, const char[] sFeatureName)
  78. {
  79.     DebugMessage("LoadVIPFeature %N", iClient)
  80.  
  81.     DebugMessage("AreClientCookiesCached %b", AreClientCookiesCached(iClient))
  82.    
  83.     if (!AreClientCookiesCached(iClient))
  84.     {
  85.         DataPack hDataPack = new DataPack();
  86.         hDataPack.WriteCell(UID(iClient));
  87.         hDataPack.WriteString(sFeatureName);
  88.         CreateTimer(0.5, Timer_CheckCookies2, hDataPack, TIMER_FLAG_NO_MAPCHANGE|TIMER_DATA_HNDL_CLOSE);
  89.     }
  90.  
  91.     DebugMessage("AreClientCookiesCached %b", AreClientCookiesCached(iClient))
  92.  
  93.     int iFeatures = g_hFeaturesArray.Length;
  94.     DebugMessage("FeaturesArraySize: %d", iFeatures)
  95.     if (iFeatures > 0)
  96.     {
  97.         char sGroup[FEATURE_NAME_LENGTH];
  98.  
  99.         g_hFeatures[iClient].GetString(KEY_GROUP, SZF(sGroup));
  100.         if (UTIL_CheckValidVIPGroup(sGroup))
  101.         {
  102.             char                sBuffer[4];
  103.             Handle              hCookie;
  104.             VIP_ToggleState     Status;
  105.             ArrayList hArray;
  106.             if (GLOBAL_TRIE.GetValue(sFeatureName, hArray))
  107.             {
  108.                 DebugMessage("LoadClientFeature: %d - %s", i, sFeatureName)
  109.  
  110.                 if (GetValue(iClient, view_as<VIP_ValueType>(hArray.Get(FEATURES_VALUE_TYPE)), sFeatureName))
  111.                 {
  112.                     DebugMessage("GetValue: == true")
  113.                     if (view_as<VIP_FeatureType>(hArray.Get(FEATURES_ITEM_TYPE)) == TOGGLABLE)
  114.                     {
  115.                         hCookie = view_as<Handle>(hArray.Get(FEATURES_COOKIE));
  116.                         GetClientCookie(iClient, hCookie, SZF(sBuffer));
  117.                         Status = view_as<VIP_ToggleState>(StringToInt(sBuffer));
  118.                         DebugMessage("GetFeatureCookie: '%s'", sBuffer)
  119.                         if (sBuffer[0] == '\0' || (view_as<int>(Status) > 2 || view_as<int>(Status) < 0))
  120.                         {
  121.                             if(hArray.Length == 6)
  122.                             {
  123.                                 Status = hArray.Get(FEATURES_DEF_STATUS) ? ENABLED:DISABLED;
  124.                             }
  125.                             else
  126.                             {
  127.                                 Status = g_CVAR_bDefaultStatus ? ENABLED:DISABLED;
  128.                             }
  129.                             IntToString(view_as<int>(Status), SZF(sBuffer));
  130.                             SetClientCookie(iClient, hCookie, sBuffer);
  131.                             //  Features_SaveStatus(iClient, sFeatureName, hCookie, Status);
  132.                         }
  133.                     }
  134.                     else
  135.                     {
  136.                         Status = ENABLED;
  137.                     }
  138.  
  139.                     Features_SetStatus(iClient, sFeatureName, Status);
  140.                     //  Function_OnItemToggle(view_as<Handle>(hArray.Get(FEATURES_PLUGIN)), Function:hArray.Get(FEATURES_ITEM_SELECT), iClient, sFeatureName, NO_ACCESS, ENABLED);
  141.                 }
  142.             }
  143.         }
  144.     }
  145.  
  146.     DebugMessage("Clients_OnVIPClientLoaded: %d %N", iClient, iClient)
  147.  
  148.     Clients_OnVIPClientLoaded(iClient);
  149. }
  150.  
  151. bool GetValue(int iClient, VIP_ValueType ValueType, const char[] sFeatureName)
  152. {
  153.     DebugMessage("GetValue: %d - %s", ValueType, sFeatureName)
  154.     switch (ValueType)
  155.     {
  156.         case VIP_NULL:
  157.         {
  158.             return false;
  159.         }
  160.         case BOOL:
  161.         {
  162.             if (g_hGroups.GetNum(sFeatureName))
  163.             {
  164.                 DebugMessage("value: 1")
  165.                 return g_hFeatures[iClient].SetValue(sFeatureName, true);
  166.             }
  167.             return false;
  168.         }
  169.         case INT:
  170.         {
  171.             int iValue;
  172.             iValue = g_hGroups.GetNum(sFeatureName);
  173.             if (iValue != 0)
  174.             {
  175.                 DebugMessage("value: %d", iValue)
  176.                 return g_hFeatures[iClient].SetValue(sFeatureName, iValue);
  177.             }
  178.             return false;
  179.         }
  180.         case FLOAT:
  181.         {
  182.             float fValue;
  183.             fValue = g_hGroups.GetFloat(sFeatureName);
  184.             if (fValue != 0.0)
  185.             {
  186.                 DebugMessage("value: %f", fValue)
  187.                 return g_hFeatures[iClient].SetValue(sFeatureName, fValue);
  188.             }
  189.            
  190.             return false;
  191.         }
  192.         case STRING:
  193.         {
  194.             char sBuffer[256];
  195.             g_hGroups.GetString(sFeatureName, SZF(sBuffer));
  196.             if (sBuffer[0])
  197.             {
  198.                 DebugMessage("value: %s", sBuffer)
  199.                 return g_hFeatures[iClient].SetString(sFeatureName, sBuffer);
  200.             }
  201.             return false;
  202.         }
  203.         default:
  204.         {
  205.             return false;
  206.         }
  207.     }
  208.    
  209.     return false;
  210. }
  211.  
  212. public Action Timer_CheckCookies(Handle hTimer, any UserID)
  213. {
  214.     int iClient = CID(UserID);
  215.     DebugMessage("Timer_CheckCookies -> UserID: %d, iClient: %d, IsClientVIP: %b,", UserID, iClient, view_as<bool>(g_iClientInfo[iClient] & IS_VIP))
  216.     if (iClient && g_iClientInfo[iClient] & IS_VIP)
  217.     {
  218.         Clients_LoadVIPFeatures(iClient);
  219.     }
  220.    
  221.     return Plugin_Stop;
  222. }
  223.  
  224. public Action Timer_CheckCookies2(Handle hTimer, Handle hDP)
  225. {
  226.     DataPack hDataPack = view_as<DataPack>(hDP);
  227.     int iClient = CID(hDataPack.ReadCell());
  228.    
  229.     DebugMessage("Timer_CheckCookies -> UserID: %d, iClient: %d, IsClientVIP: %b,", UserID, iClient, view_as<bool>(g_iClientInfo[iClient] & IS_VIP))
  230.     if (iClient && g_iClientInfo[iClient] & IS_VIP)
  231.     {
  232.         char sFeatureName[FEATURE_NAME_LENGTH];
  233.         hDataPack.ReadString(SZF(sFeatureName));
  234.         Clients_LoadVIPFeature(iClient, sFeatureName);
  235.     }
  236.    
  237.     return Plugin_Stop;
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement