Advertisement
Guest User

Teleportation v2(teleport.inc)

a guest
Oct 28th, 2014
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.18 KB | None | 0 0
  1. #include <ysi\y_hooks>
  2. #include foreach
  3. static bool: TeleportEnabled[MAX_PLAYERS];
  4. static bool: CanTeleportToVehicle[MAX_PLAYERS];
  5.  
  6. stock TogglePlayerTeleport(playerid, bool: status, bool: vehicle=true)
  7. {
  8.     TeleportEnabled[playerid] = status;
  9.     CanTeleportToVehicle[playerid] = vehicle;
  10.     return 1;
  11. }
  12.  
  13. stock GetPlayerTeleportStatus(playerid)
  14. {
  15.     if(TeleportEnabled[playerid] == false) return 0;
  16.     else return 1;
  17. }
  18. stock GetPlayerVehicleTeleportStatus(playerid)
  19. {
  20.     if(CanTeleportToVehicle[playerid] == false) return 0;
  21.     return 1;
  22. }
  23. stock IsVehicleOccupied(vehicleid, seat)
  24. {
  25.     foreach(Player,i)
  26.     {
  27.         if(IsPlayerInAnyVehicle(i))
  28.         {
  29.             if(GetPlayerVehicleID(i)==vehicleid && GetPlayerVehicleSeat(i) == seat)
  30.             {
  31.                 return 1;
  32.             }
  33.             else
  34.             {
  35.                 return 0;
  36.             }
  37.         }
  38.     }
  39.     return -1;
  40. }
  41.  
  42. hook OnPlayerConnect(playerid)
  43. {
  44.     TeleportEnabled[playerid] = false;
  45.     CanTeleportToVehicle[playerid] = false;
  46.     return true;
  47. }
  48.  
  49. hook OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  50. {
  51.     if(IsPlayerConnected(playerid) && TeleportEnabled[playerid] == true)
  52.     {
  53.         if(hittype == BULLET_HIT_TYPE_NONE)
  54.         {
  55.             #if defined DISABLE_Z_SETPOS
  56.             SetPlayerPos(playerid, fX, fY, fZ);
  57.             #else
  58.             SetPlayerPosFindZ(playerid, fX, fY, fZ);
  59.             #endif
  60.             CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
  61.         }
  62.         else if(hittype == BULLET_HIT_TYPE_VEHICLE)
  63.         {
  64.             if(IsVehicleOccupied(hitid, 0)) return 1;
  65.             if(CanTeleportToVehicle[playerid] == false) return 1;
  66.             PutPlayerInVehicle(playerid, hitid, 0);
  67.             CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
  68.         }
  69.         else if(hittype == BULLET_HIT_TYPE_OBJECT) return 1;
  70.         else if(hittype == BULLET_HIT_TYPE_PLAYER)
  71.         {
  72.             static Float: pos[3];
  73.             GetPlayerPos(hitid, pos[0], pos[1], pos[2]);
  74.             SetPlayerPos(hitid, pos[0], pos[1]-2.0, pos[2]);
  75.             CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
  76.         }
  77.     }
  78.     return 1;
  79. }
  80.  
  81. forward OnPlayerTeleport(playerid, weaponid, fX, fY, fZ, hittype);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement