Advertisement
GArtem

Pickup Teleport System 1.1

Nov 2nd, 2013
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.44 KB | None | 0 0
  1. /*********************************************
  2.  *  Pickup Teleport System v1.1 by _[Bupyc]_ *
  3.  *********************************************/
  4.  
  5.  #if defined _KTS_included
  6.     #error The resonance of inclusions "KTS" and "PTS"
  7. #endif
  8.  
  9.  #if defined _PTS_included
  10.     #endinput
  11. #endif
  12. #define _PTS_included
  13.  
  14. #define ptsModel        1318    // Модель пикапа
  15. #define ptsType         1       // Тип пикапа
  16. #define ptsDeact        1700    // Время деактивации после прохода через телепорт (мс) (Оптимальное время 1500-3000)
  17.  
  18. #define MAX_TELEPORTS   50      // Максимальное кол-во телепортов
  19.  
  20. static pts_number = 0;
  21.  
  22. enum ptsData
  23. {
  24.     pts_id,
  25.     Float:pts_X,
  26.     Float:pts_Y,
  27.     Float:pts_Z,
  28.     Float:pts_A,
  29.     pts_Int,
  30.     pts_Virt,
  31.     pts_Toid,
  32.     Float:pts_ToX,
  33.     Float:pts_ToY,
  34.     Float:pts_ToZ,
  35.     Float:pts_ToA,
  36.     pts_ToInt,
  37.     pts_ToVirt,
  38. }
  39. new ptsInfo[MAX_TELEPORTS][ptsData];
  40. new bool:ptsDeactTimePlayer[MAX_PLAYERS];
  41.  
  42. forward pts_DeactTime(playerid);
  43.  
  44. public OnPlayerPickUpPickup(playerid, pickupid)
  45. {
  46.     if(!pts_number)
  47.     {
  48.         if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
  49.         return 1;
  50.     }
  51.     for(new num = 1; num < pts_number+1; num++)
  52.     {
  53.         if(pickupid == ptsInfo[num][pts_id] && ptsDeactTimePlayer[playerid] == false)
  54.         {
  55.             SetPlayerVirtualWorld(playerid, ptsInfo[num][pts_ToVirt]);
  56.             SetPlayerPos(playerid, ptsInfo[num][pts_ToX], ptsInfo[num][pts_ToY], ptsInfo[num][pts_ToZ]);
  57.             SetPlayerFacingAngle(playerid, ptsInfo[num][pts_ToA]);
  58.             SetPlayerInterior(playerid, ptsInfo[num][pts_ToInt]);
  59.             ptsDeactTimePlayer[playerid] = true, SetTimerEx("pts_DeactTime", ptsDeact, false, "i", playerid);
  60.             break;
  61.         }
  62.         else if(pickupid == ptsInfo[num][pts_Toid] && ptsDeactTimePlayer[playerid] == false)
  63.         {
  64.             SetPlayerVirtualWorld(playerid, ptsInfo[num][pts_Virt]);
  65.             SetPlayerPos(playerid, ptsInfo[num][pts_X], ptsInfo[num][pts_Y], ptsInfo[num][pts_Z]);
  66.             SetPlayerFacingAngle(playerid, ptsInfo[num][pts_A]);
  67.             SetPlayerInterior(playerid, ptsInfo[num][pts_Int]);
  68.             ptsDeactTimePlayer[playerid] = true, SetTimerEx("pts_DeactTime", ptsDeact, false, "i", playerid);
  69.             break;
  70.         }
  71.     }
  72.     if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
  73.     return 1;
  74. }
  75.  
  76. public pts_DeactTime(playerid) { ptsDeactTimePlayer[playerid] = false; return; }
  77.  
  78. stock CreateTeleport(Float:X, Float:Y, Float:Z, Float:A, Int, Virt, Float:ToX, Float:ToY, Float:ToZ, Float:ToA, ToInt, ToVirt)
  79. {
  80.     pts_number++;
  81.     ptsInfo[pts_number][pts_id] = CreatePickup(ptsModel, ptsType, X, Y, Z, Virt);
  82.     ptsInfo[pts_number][pts_Toid] = CreatePickup(ptsModel, ptsType, ToX, ToY, ToZ, ToVirt);
  83.    
  84.     ptsInfo[pts_number][pts_X] = X, ptsInfo[pts_number][pts_Y] = Y, ptsInfo[pts_number][pts_Z] = Z, ptsInfo[pts_number][pts_A] = A;
  85.     ptsInfo[pts_number][pts_Int] = Int, ptsInfo[pts_number][pts_Virt] = Virt;
  86.    
  87.     ptsInfo[pts_number][pts_ToX] = ToX, ptsInfo[pts_number][pts_ToY] = ToY, ptsInfo[pts_number][pts_ToZ] = ToZ, ptsInfo[pts_number][pts_ToA] = ToA;
  88.     ptsInfo[pts_number][pts_ToInt] = ToInt, ptsInfo[pts_number][pts_ToVirt] = ToVirt;
  89.     return pts_number;
  90. }
  91.  
  92. #if defined _ALS_OnPlayerPickUpPickup
  93.   #undef OnPlayerPickUpPickup
  94. #else
  95.   #define _ALS_OnPlayerPickUpPickup
  96. #endif
  97. #define OnPlayerPickUpPickup pts_OnPlayerPickUpPickup
  98. forward pts_OnPlayerPickUpPickup(playerid, newkeys, oldkeys);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement