Im_YouViolateMe

[BO2] SetClientDvar and GetClientDvar Functionality

May 9th, 2016
737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.83 KB | None | 0 0
  1. //SetClientDvar and GetClientDvar functionality for saving strings and integers for clients even after game has ended.
  2. //Also includes StringContains (such as string.Contains() method from C#), and getIndexOf (for getting the index of a char in a string)
  3. //YouViolateMe
  4.  
  5.  
  6. //SetClientDvar parameters = player, dvar name, dvar value (set to undefined if you want to remove the client value)
  7. //GetClientDvar parameters = player, dvar name, dvar value type to return back ("int" or "string" for now)
  8. //resetDvar should be pretty easy to understand....
  9. //make sure you are NOT saving to a host-only (predefined) dvar! must be a custom dvar!
  10.  
  11. //StringContains parameters = string, substring you want to search for
  12. //getIndexOf parameters = string, char or string you want the index of, starting index to search at (0 if you don't know)
  13.  
  14. resetDvar(dvar)
  15. {
  16.     setDvar(dvar, "");
  17. }
  18.  
  19. SetClientDvar(player, dvar, dvar_value)
  20. {
  21.     dvarstring = "";
  22.    
  23.     if (isDefined(getDvar(dvar)))
  24.         dvarstring = getDvar(dvar);
  25.    
  26.     valuearray = strTok(dvarstring, ";");
  27.     dvarstring = "";
  28.    
  29.     foreach(value in valuearray)
  30.     {
  31.         if (!StringContains(value, getName(player)))
  32.             dvarstring += value + ";";
  33.     }
  34.    
  35.     if (isDefined(dvar_value))
  36.         dvarstring += getName(player) + "=" + dvar_value + ";";
  37.    
  38.     valuearray = undefined;
  39.     setDvar(dvar, dvarstring);
  40. }
  41.  
  42. GetClientDvar(player, dvar, type)
  43. {
  44.     if (!isDefined(getDvar(dvar)))
  45.         return undefined;
  46.    
  47.     dvarvalue = getDvar(dvar);
  48.     values = strTok(dvarvalue, ";");
  49.    
  50.     foreach(value in values)
  51.     {
  52.         name = getName(player);
  53.        
  54.         if (StringContains(value, name))
  55.         {
  56.             string_value = getSubStr(value, getIndexof(value, "=", 0) + 1, value.size);
  57.            
  58.             if (type == "int")
  59.             {
  60.                 return int(string_value);
  61.             }
  62.             else if (type == "string")
  63.             {
  64.                 return string_value;
  65.             }
  66.             //still working on float
  67.         }
  68.     }
  69.    
  70.     values = undefined;
  71.     return undefined;
  72. }
  73.  
  74. StringContains(string, value)
  75. {
  76.     index = 0;
  77.     while( index <= string.size - value.size - 1)
  78.     {
  79.         if (!isDefined(string[index + value.size - 1]))
  80.             return false;
  81.        
  82.         if (getSubStr(string, index, index + value.size) == value)
  83.         {
  84.             return true;
  85.             break;
  86.         }
  87.         else
  88.             index++;
  89.     }
  90.    
  91.     return false;
  92. }
  93.  
  94. getIndexOf(string, value, startingIndex)
  95. {
  96.     index = startingIndex;
  97.     while( index <= string.size - value.size - 1)
  98.     {
  99.         if (!isDefined(string[index + value.size - 1]))
  100.             return -1;
  101.        
  102.         if (getSubStr(string, index, index + value.size) == value)
  103.             return index;
  104.         else
  105.             index++;
  106.     }
  107.    
  108.     return -1;
  109. }
  110.  
  111. getName(player)
  112. {
  113.         name = getSubStr(player.name, 0, player.name.size);
  114.         for(i = 0; i < name.size; i++)
  115.         {
  116.                 if(name[i]=="]")
  117.                         break;
  118.         }
  119.         if(name.size != i)
  120.                 name = getSubStr(name, i + 1, name.size);
  121.        
  122.         return name;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment