Advertisement
Guest User

Teleportation Include(.inc)

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