Advertisement
Julian90

gVIP - v0.0.2

Sep 22nd, 2014
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.59 KB | None | 0 0
  1. /*
  2.         gVIP- By: [J]ulian.
  3.     v0.0.1 - 22/09/2014
  4.                - Lanzamiento inicial.
  5.     v0.0.2 - 23/09/2014
  6.                - Soporte a vehículos.
  7.                - Ahora se puede establecer VIP's infinitos en tiempo.
  8.  
  9.     Requerido:
  10.       - y_hooks: http://forum.sa-mp.com/showthread.php?t=166016
  11. */
  12.  
  13. #include <YSI\y_hooks>
  14. #define INVALID_VIP_ID  -1
  15.  
  16. enum
  17. {
  18.     VIP_LEVEL_BRONZE,
  19.     VIP_LEVEL_SILVER,
  20.     VIP_LEVEL_GOLD,
  21. }
  22.  
  23. enum VIP_INFO
  24. {
  25.     VIP_TIME,
  26.     VIP_LEVEL,
  27.     bool:VIP_INFINITE,
  28. }
  29. new VipInfo[MAX_PLAYERS][VIP_INFO];
  30.  
  31. enum vVIP_INFO
  32. {
  33.     VIP_TIME,
  34.     VIP_LEVEL,
  35.     bool:VIP_INFINITE,
  36. }
  37. new vVipInfo[MAX_VEHICLES][vVIP_INFO];
  38.  
  39. /*
  40.     native SetPlayerVip(playerid, levelid, time, bool:infinite = false);
  41.     native ResetPlayerVip(playerid);
  42.     native GetPlayerVipLevel(playerid);
  43.     native GetPlayerVipTime(playerid);
  44.     native GetPlayerVipInfo(playerid, &level, &time);
  45.     native IsPlayerInfiniteVip(playerid);
  46.    
  47.     native SetVehicleVip(vehicleid, levelid, time, bool:infinite = false);
  48.     native ResetVehicleVip(vehicleid);
  49.     native GetVehicleVipLevel(vehicleid);
  50.     native GetVehicleVipTime(vehicleid);
  51.     native GetVehicleVipInfo(vehicleid, &level, &time);
  52.     native IsVehicleInfiniteVip(vehicleid);
  53. */
  54. hook OnPlayerConnect(playerid)
  55. {
  56.     ResetPlayerVip(playerid);
  57.     return 1;
  58. }
  59.  
  60. stock SetVehicleVip(vehicleid, levelid, time, bool:infinite = false)
  61. {
  62.     if(IsValidVehicle(vehicleid))
  63.     {
  64.         vVipInfo[vehicleid][VIP_LEVEL] = levelid;
  65.         vVipInfo[vehicleid][VIP_TIME] = gettime()+time;
  66.         if(infinite)
  67.         {
  68.             vVipInfo[vehicleid][VIP_INFINITE] = true;
  69.         }
  70.     }
  71.     return INVALID_VEHICLE_ID;
  72. }
  73.  
  74. stock ResetVehicleVip(vehicleid)
  75. {
  76.     if(IsValidVehicle(vehicleid))
  77.     {
  78.         vVipInfo[vehicleid][VIP_LEVEL] = INVALID_VIP_ID;
  79.         vVipInfo[vehicleid][VIP_TIME] = INVALID_VIP_ID;
  80.         vVipInfo[vehicleid][VIP_INFINITE] = false;
  81.     }
  82.     return INVALID_VEHICLE_ID;
  83. }
  84.  
  85. stock GetVehicleVipTime(vehicleid)
  86. {
  87.     if(IsValidVehicle(vehicleid))
  88.     {
  89.         new time = 0;
  90.         if(!IsVehicleInfiniteVip(vehicleid))
  91.         {
  92.             time = vVipInfo[vehicleid][VIP_TIME]-gettime();
  93.             if(time < 0)
  94.             {
  95.                 ResetVehicleVip(vehicleid);
  96.                 time = INVALID_VIP_ID;
  97.             }
  98.         }
  99.         return time;
  100.     }
  101.     return INVALID_VEHICLE_ID;
  102. }
  103.  
  104. stock GetVehicleVipLevel(vehicleid)
  105. {
  106.     if(IsValidVehicle(vehicleid))
  107.     {
  108.         if(GetPlayerVipTime(vehicleid) < 0 && !IsVehicleInfiniteVip(vehicleid))
  109.         {
  110.             ResetVehicleVip(vehicleid);
  111.         }
  112.         return vVipInfo[vehicleid][VIP_LEVEL];
  113.     }
  114.     return INVALID_VEHICLE_ID;
  115. }
  116.  
  117. stock GetVehicleVipInfo(vehicleid, &level, &time)
  118. {
  119.     if(IsValidVehicle(vehicleid))
  120.     {
  121.         time = 0;
  122.         if(!IsVehicleInfiniteVip(vehicleid))
  123.         {
  124.             time = vVipInfo[vehicleid][VIP_TIME]-gettime();
  125.             if(time < 0)
  126.             {
  127.                 ResetVehicleVip(vehicleid);
  128.                 time = INVALID_VIP_ID;
  129.             }
  130.         }
  131.         level = vVipInfo[vehicleid][VIP_LEVEL];
  132.     }
  133.     return INVALID_PLAYER_ID;
  134. }
  135.  
  136. stock IsVehicleInfiniteVip(vehicleid)
  137. {
  138.     if(IsValidVehicle(vehicleid))
  139.     {
  140.         return vVipInfo[vehicleid][VIP_INFINITE];
  141.     }
  142.     return INVALID_VEHICLE_ID;
  143. }
  144.  
  145. stock SetPlayerVip(playerid, levelid, time, bool:infinite = false)
  146. {
  147.     if(IsPlayerConnected(playerid))
  148.     {
  149.         VipInfo[playerid][VIP_LEVEL] = levelid;
  150.         VipInfo[playerid][VIP_TIME] = gettime()+time;
  151.         if(infinite)
  152.         {
  153.             VipInfo[playerid][VIP_INFINITE] = true;
  154.         }
  155.     }
  156.     return INVALID_PLAYER_ID;
  157. }
  158.  
  159. stock ResetPlayerVip(playerid)
  160. {
  161.     if(IsPlayerConnected(playerid))
  162.     {
  163.         VipInfo[playerid][VIP_LEVEL] = INVALID_VIP_ID;
  164.         VipInfo[playerid][VIP_TIME] = INVALID_VIP_ID;
  165.         VipInfo[playerid][VIP_INFINITE] = false;
  166.     }
  167.     return INVALID_PLAYER_ID;
  168. }
  169.  
  170. stock GetPlayerVipTime(playerid)
  171. {
  172.     if(IsPlayerConnected(playerid))
  173.     {
  174.         new time = 0;
  175.         if(!IsPlayerInfiniteVip(playerid))
  176.         {
  177.             time = VipInfo[playerid][VIP_TIME]-gettime();
  178.             if(time < 0)
  179.             {
  180.                 ResetPlayerVip(playerid);
  181.                 time = INVALID_VIP_ID;
  182.             }
  183.         }
  184.         return time;
  185.     }
  186.     return INVALID_PLAYER_ID;
  187. }
  188.  
  189. stock GetPlayerVipLevel(playerid)
  190. {
  191.     if(IsPlayerConnected(playerid))
  192.     {
  193.         if(GetPlayerVipTime(playerid) < 0 && !IsPlayerInfiniteVip(playerid))
  194.         {
  195.             ResetPlayerVip(playerid);
  196.         }
  197.         return VipInfo[playerid][VIP_LEVEL];
  198.     }
  199.     return INVALID_PLAYER_ID;
  200. }
  201.  
  202. stock GetPlayerVipInfo(playerid, &level, &time)
  203. {
  204.     if(IsPlayerConnected(playerid))
  205.     {
  206.         time = 0;
  207.         if(!IsPlayerInfiniteVip(playerid))
  208.         {
  209.             time = VipInfo[playerid][VIP_TIME]-gettime();
  210.             if(time < 0)
  211.             {
  212.                 ResetPlayerVip(playerid);
  213.                 time = INVALID_VIP_ID;
  214.             }
  215.         }
  216.         level = VipInfo[playerid][VIP_LEVEL];
  217.     }
  218.     return INVALID_PLAYER_ID;
  219. }
  220.  
  221. stock IsPlayerInfiniteVip(playerid)
  222. {
  223.     if(IsPlayerConnected(playerid))
  224.     {
  225.         return VipInfo[playerid][VIP_INFINITE];
  226.     }
  227.     return INVALID_PLAYER_ID;
  228. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement