Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ysi\y_hooks>
- #include foreach
- static bool: TeleportEnabled[MAX_PLAYERS];
- static bool: CanTeleportToVehicle[MAX_PLAYERS];
- stock TogglePlayerTeleport(playerid, bool: status, bool: vehicle=true)
- {
- TeleportEnabled[playerid] = status;
- CanTeleportToVehicle[playerid] = vehicle;
- return 1;
- }
- stock GetPlayerTeleportStatus(playerid)
- {
- if(TeleportEnabled[playerid] == false) return 0;
- else return 1;
- }
- stock GetPlayerVehicleTeleportStatus(playerid)
- {
- if(CanTeleportToVehicle[playerid] == false) return 0;
- return 1;
- }
- stock IsVehicleOccupied(vehicleid, seat)
- {
- foreach(Player,i)
- {
- if(IsPlayerInAnyVehicle(i))
- {
- if(GetPlayerVehicleID(i)==vehicleid && GetPlayerVehicleSeat(i) == seat)
- {
- return 1;
- }
- else
- {
- return 0;
- }
- }
- }
- return -1;
- }
- hook OnPlayerConnect(playerid)
- {
- TeleportEnabled[playerid] = false;
- CanTeleportToVehicle[playerid] = false;
- return true;
- }
- hook OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- if(IsPlayerConnected(playerid) && TeleportEnabled[playerid] == true)
- {
- if(hittype == BULLET_HIT_TYPE_NONE)
- {
- #if defined DISABLE_Z_SETPOS
- SetPlayerPos(playerid, fX, fY, fZ);
- #else
- SetPlayerPosFindZ(playerid, fX, fY, fZ);
- #endif
- CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
- }
- else if(hittype == BULLET_HIT_TYPE_VEHICLE)
- {
- if(IsVehicleOccupied(hitid, 0)) return 1;
- if(CanTeleportToVehicle[playerid] == false) return 1;
- PutPlayerInVehicle(playerid, hitid, 0);
- CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
- }
- else if(hittype == BULLET_HIT_TYPE_OBJECT) return 1;
- else if(hittype == BULLET_HIT_TYPE_PLAYER)
- {
- static Float: pos[3];
- GetPlayerPos(hitid, pos[0], pos[1], pos[2]);
- SetPlayerPos(hitid, pos[0], pos[1]-2.0, pos[2]);
- CallLocalFunction("OnPlayerTeleport", "idfff", playerid, weaponid, fX, fY, fZ, hittype);
- }
- }
- return 1;
- }
- forward OnPlayerTeleport(playerid, weaponid, fX, fY, fZ, hittype);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement