dylan4021

CreateTeleporte

Jan 25th, 2012
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.79 KB | None | 0 0
  1. // FEITO POR [R] ousenber [K] //
  2. // FEITO POR [R] ousenber [K] //
  3. // FEITO POR [R] ousenber [K] //
  4. // FEITO POR [R] ousenber [K] //
  5. // FEITO POR [R] ousenber [K] //
  6.  
  7. #include < a_samp >
  8.  
  9. #define MAX_TELES       (20)// Se quiser mais Teles aumente o Numero, se já fez todos, conte e modifique com a quantidade.
  10. #define PRESSED(%0)     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  11.  
  12. enum tInfo
  13. {
  14.     Float: tPosX,
  15.     Float: tPosY,
  16.     Float: tPosZ,
  17.     Float: tAngF,
  18.     Float: tPozX,
  19.     Float: tPozY,
  20.     Float: tPozZ,
  21.     Float: tAngD,
  22.     tInt,
  23.     tVW,
  24.     tIconF,
  25.     tIconD,
  26.     Text3D: tText3DF,
  27.     Text3D: tText3DD
  28. }
  29. new TeleInfo[MAX_TELES][tInfo];
  30.  
  31. new teleZ = 0;
  32.  
  33. stock CreateTeleporte(Text[], TextS[], Float: PosX, Float: PosY, Float: PosZ, Float: AngF, Float: PozX, Float: PozY, Float: PozZ, Float: AngD, Int, Vw)
  34. {
  35.     if(teleZ >= MAX_TELES) return printf("[Tele] Maximo de Teleportes Criados. '%i'", MAX_TELES);
  36.     teleZ ++;
  37.     TeleInfo[teleZ][tPosX] = PosX;
  38.     TeleInfo[teleZ][tPosY] = PosY;
  39.     TeleInfo[teleZ][tPosZ] = PosZ;
  40.     TeleInfo[teleZ][tAngF] = AngF;
  41.     TeleInfo[teleZ][tPozX] = PozX;
  42.     TeleInfo[teleZ][tPozY] = PozY;
  43.     TeleInfo[teleZ][tPozZ] = PozZ;
  44.     TeleInfo[teleZ][tAngD] = AngD;
  45.     TeleInfo[teleZ][tInt] = Int;
  46.     TeleInfo[teleZ][tVW] = Vw;
  47.     TeleInfo[teleZ][tIconF] = CreatePickup(1318, 1, PosX, PosY, PosZ, 0);
  48.     TeleInfo[teleZ][tIconD] = CreatePickup(1318, 1, PozX, PozY, PozZ, Vw);
  49.     TeleInfo[teleZ][tText3DF] = Create3DTextLabel(Text, -1, PosX, PosY, PosZ, 20.0, Vw, 0);
  50.     TeleInfo[teleZ][tText3DD] = Create3DTextLabel(TextS, -1, PozX, PozY, PozZ, 20.0, Vw, 0);
  51.     return true;
  52. }
  53.  
  54. stock SetPlayerPosEx(playerid, Float: PosX, Float: PosY, Float: PosZ, Float: PosA = 0.0, InT = 0, vW = 0)
  55. {
  56.     SetPlayerPos(playerid, PosX, PosY, PosZ), SetPlayerFacingAngle(playerid, PosA), SetPlayerInterior(playerid, InT), SetPlayerVirtualWorld(playerid, vW), SetCameraBehindPlayer(playerid);
  57.     return true;
  58. }
  59.  
  60. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  61. {
  62.     if(PRESSED(16))
  63.     {
  64.         for(new x; x < sizeof(TeleInfo); x++)
  65.         {
  66.             if(IsPlayerInRangeOfPoint(playerid, 0.5, TeleInfo[x][tPosX], TeleInfo[x][tPosY], TeleInfo[x][tPosZ]))
  67.             {
  68.                 SetPlayerPosEx(playerid, TeleInfo[x][tPozX], TeleInfo[x][tPozY], TeleInfo[x][tPozZ], TeleInfo[x][tAngD], TeleInfo[x][tInt], TeleInfo[x][tVW]);
  69.                 return true;
  70.             }
  71.             if(IsPlayerInRangeOfPoint(playerid, 0.5, TeleInfo[x][tPozX], TeleInfo[x][tPozY], TeleInfo[x][tPozZ]))
  72.             {
  73.                 SetPlayerPosEx(playerid, TeleInfo[x][tPosX], TeleInfo[x][tPosY], TeleInfo[x][tPosZ], TeleInfo[x][tAngF], 0, 0);
  74.                 return true;
  75.             }
  76.         }
  77.     }
  78.     return true;
  79. }
  80.  
  81. // FEITO POR [R] ousenber [K] //
  82. // FEITO POR [R] ousenber [K] //
  83. // FEITO POR [R] ousenber [K] //
  84. // FEITO POR [R] ousenber [K] //
  85. // FEITO POR [R] ousenber [K] //
Advertisement
Add Comment
Please, Sign In to add comment