Advertisement
Guest User

pvararray

a guest
Jul 25th, 2012
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.80 KB | None | 0 0
  1. //==========================================================
  2. //                  PVar Arrays include
  3. //==========================================================
  4. // Version: 1.0
  5. // Date: 25/07/2012
  6. // Author: MadeMan
  7. //==========================================================
  8.  
  9. stock PVA_g_VarName[64];
  10. stock PVA_g_UpperIndex;
  11.  
  12. stock SetPVarArrayUpperIndex(playerid, varname[], index)
  13. {
  14.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_u_%s", varname);
  15.     return SetPVarInt(playerid, PVA_g_VarName, index);
  16. }
  17.  
  18. stock GetPVarArrayUpperIndex(playerid, varname[])
  19. {
  20.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_u_%s", varname);
  21.     return GetPVarInt(playerid, PVA_g_VarName);
  22. }
  23.  
  24. stock SetPVarArrayFreeIndex(playerid, varname[], index)
  25. {
  26.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_f_%s", varname);
  27.     return SetPVarInt(playerid, PVA_g_VarName, index);
  28. }
  29.  
  30. stock GetPVarArrayFreeIndex(playerid, varname[])
  31. {
  32.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_f_%s", varname);
  33.     return GetPVarInt(playerid, PVA_g_VarName);
  34. }
  35.  
  36. stock UpdatePVarArray(playerid, varname[], index)
  37. {
  38.     new uidx = GetPVarArrayUpperIndex(playerid, varname);
  39.     if(index >= uidx)
  40.     {
  41.         uidx = index + 1;
  42.         SetPVarArrayUpperIndex(playerid, varname, uidx);
  43.     }
  44.     new freeidx = GetPVarArrayFreeIndex(playerid, varname);
  45.     if(index == freeidx)
  46.     {
  47.         for(freeidx = index + 1; ; freeidx++)
  48.         {
  49.             format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", freeidx, varname);
  50.             if(GetPVarType(playerid, PVA_g_VarName) == PLAYER_VARTYPE_NONE)
  51.             {
  52.                 break;
  53.             }
  54.         }
  55.         SetPVarArrayFreeIndex(playerid, varname, freeidx);
  56.     }
  57. }
  58.  
  59. stock SetPVarArrayInt(playerid, varname[], index, int_value)
  60. {
  61.     UpdatePVarArray(playerid, varname, index);
  62.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  63.     return SetPVarInt(playerid, PVA_g_VarName, int_value);
  64. }
  65.  
  66. stock GetPVarArrayInt(playerid, varname[], index)
  67. {
  68.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  69.     return GetPVarInt(playerid, PVA_g_VarName);
  70. }
  71.  
  72. stock SetPVarArrayString(playerid, varname[], index, string_value[])
  73. {
  74.     UpdatePVarArray(playerid, varname, index);
  75.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  76.     return SetPVarString(playerid, PVA_g_VarName, string_value);
  77. }
  78.  
  79. stock GetPVarArrayString(playerid, varname[], index, string_return[], len)
  80. {
  81.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  82.     return GetPVarString(playerid, PVA_g_VarName, string_return, len);
  83. }
  84.  
  85. stock SetPVarArrayFloat(playerid, varname[], index, Float:float_value)
  86. {
  87.     UpdatePVarArray(playerid, varname, index);
  88.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  89.     return SetPVarFloat(playerid, PVA_g_VarName, float_value);
  90. }
  91.  
  92. stock Float:GetPVarArrayFloat(playerid, varname[], index)
  93. {
  94.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  95.     return GetPVarFloat(playerid, PVA_g_VarName);
  96. }
  97.  
  98. stock IsPVarArraySlotUsed(playerid, varname[], index)
  99. {
  100.     format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  101.     return (GetPVarType(playerid, PVA_g_VarName) != PLAYER_VARTYPE_NONE);
  102. }
  103.  
  104. stock GetPVarArraySize(playerid, varname[])
  105. {
  106.     new count;
  107.     new uidx = GetPVarArrayUpperIndex(playerid, varname);
  108.     for(new i=0; i < uidx; i++)
  109.     {
  110.         format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", i, varname);
  111.         if(GetPVarType(playerid, PVA_g_VarName))
  112.         {
  113.             count++;
  114.         }
  115.     }
  116.     return count;
  117. }
  118.  
  119. stock GetPVarArrayNextIndex(playerid, varname[], i)
  120. {
  121.     for( ; i < PVA_g_UpperIndex; i++)
  122.     {
  123.         format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", i, varname);
  124.         if(GetPVarType(playerid, PVA_g_VarName))
  125.         {
  126.             return i;
  127.         }
  128.     }
  129.     return -1;
  130. }
  131.  
  132. stock GetPVarArrayFirstIndex(playerid, varname[])
  133. {
  134.     PVA_g_UpperIndex = GetPVarArrayUpperIndex(playerid, varname);
  135.     return GetPVarArrayNextIndex(playerid, varname, 0);
  136. }
  137.  
  138. #define PVA_Loop(%1,%2,%3) for(new %3 = GetPVarArrayFirstIndex(%1,%2); %3 != -1; %3 = GetPVarArrayNextIndex(%1,%2,%3+1))
  139.  
  140. stock AddToPVarArrayInt(playerid, varname[], int_value)
  141. {
  142.     new index = GetPVarArrayFreeIndex(playerid, varname);
  143.     SetPVarArrayInt(playerid, varname, index, int_value);
  144.     return index;
  145. }
  146.  
  147. stock AddToPVarArrayString(playerid, varname[], string_value[])
  148. {
  149.     new index = GetPVarArrayFreeIndex(playerid, varname);
  150.     SetPVarArrayString(playerid, varname, index, string_value);
  151.     return index;
  152. }
  153.  
  154. stock AddToPVarArrayFloat(playerid, varname[], Float:float_value)
  155. {
  156.     new index = GetPVarArrayFreeIndex(playerid, varname);
  157.     SetPVarArrayFloat(playerid, varname, index, float_value);
  158.     return index;
  159. }
  160.  
  161. stock DeletePVarArray(playerid, varname[], index = -1)
  162. {
  163.     if(index == -1)
  164.     {
  165.         new uidx = GetPVarArrayUpperIndex(playerid, varname);
  166.         for(new i=0; i < uidx; i++)
  167.         {
  168.             format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", i, varname);
  169.             if(GetPVarType(playerid, PVA_g_VarName))
  170.             {
  171.                 DeletePVar(playerid, PVA_g_VarName);
  172.             }
  173.         }
  174.         format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_u_%s", varname);
  175.         DeletePVar(playerid, PVA_g_VarName);
  176.         format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_f_%s", varname);
  177.         DeletePVar(playerid, PVA_g_VarName);
  178.     }
  179.     else
  180.     {
  181.         format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", index, varname);
  182.         DeletePVar(playerid, PVA_g_VarName);
  183.         new uidx = GetPVarArrayUpperIndex(playerid, varname);
  184.         if((index + 1) == uidx)
  185.         {
  186.             for(uidx -= 2; uidx >= 0; uidx--)
  187.             {
  188.                 format(PVA_g_VarName, sizeof(PVA_g_VarName), "PVA_%d_%s", uidx, varname);
  189.                 if(GetPVarType(playerid, PVA_g_VarName))
  190.                 {
  191.                     break;
  192.                 }
  193.             }
  194.             uidx++;
  195.             SetPVarArrayUpperIndex(playerid, varname, uidx);
  196.         }
  197.         new freeidx = GetPVarArrayFreeIndex(playerid, varname);
  198.         if(index < freeidx)
  199.         {
  200.             SetPVarArrayFreeIndex(playerid, varname, index);
  201.         }
  202.     }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement