Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********************************************
- * Pickup Teleport System v1.3 by _[Bupyc]_ *
- *********************************************/
- #if defined _KTS_included
- #error The resonance of inclusions "KTS" and "PTS"
- #endif
- #if defined _PTS_included
- #endinput
- #endif
- #define _PTS_included
- #define ptsModel 1318 // Модель пикапа
- #define ptsType 1 // Тип пикапа
- #define ptsDeact 1700 // Время деактивации после прохода через телепорт (мс)
- #define MAX_TELEPORTS 30 // Максимальное кол-во телепортов
- static pts_number = 0;
- enum ptsData
- {
- pts_id,
- Float:pts_X,
- Float:pts_Y,
- Float:pts_Z,
- Float:pts_A,
- pts_Int,
- pts_Virt,
- pts_Toid,
- Float:pts_ToX,
- Float:pts_ToY,
- Float:pts_ToZ,
- Float:pts_ToA,
- pts_ToInt,
- pts_ToVirt,
- }
- new ptsInfo[MAX_TELEPORTS][ptsData];
- forward OnPlayerTeleport(playerid, teleportid, Float:X, Float:Y, Float:Z, Int, Virt);
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(!pts_number)
- {
- if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
- return 1;
- }
- if(GetPVarInt(playerid, "pts_DeactTime") <= GetTickCount())
- {
- for(new num = 1; num < pts_number+1; num++)
- {
- if(pickupid == ptsInfo[num][pts_id])
- {
- SetPVarInt(playerid, "pts_DeactTime", GetTickCount()+ptsDeact);
- SetPlayerVirtualWorld(playerid, ptsInfo[num][pts_ToVirt]);
- SetPlayerPos(playerid, ptsInfo[num][pts_ToX], ptsInfo[num][pts_ToY], ptsInfo[num][pts_ToZ]);
- SetPlayerFacingAngle(playerid, ptsInfo[num][pts_ToA]);
- SetPlayerInterior(playerid, ptsInfo[num][pts_ToInt]);
- if(funcidx("OnPlayerTeleport") != -1) CallLocalFunction("OnPlayerTeleport", "iifffii", playerid, num, ptsInfo[num][pts_ToX], ptsInfo[num][pts_ToY], ptsInfo[num][pts_ToZ], ptsInfo[num][pts_ToInt], ptsInfo[num][pts_ToVirt]);
- break;
- }
- else if(pickupid == ptsInfo[num][pts_Toid])
- {
- SetPVarInt(playerid, "pts_DeactTime", GetTickCount()+ptsDeact);
- SetPlayerVirtualWorld(playerid, ptsInfo[num][pts_Virt]);
- SetPlayerPos(playerid, ptsInfo[num][pts_X], ptsInfo[num][pts_Y], ptsInfo[num][pts_Z]);
- SetPlayerFacingAngle(playerid, ptsInfo[num][pts_A]);
- SetPlayerInterior(playerid, ptsInfo[num][pts_Int]);
- if(funcidx("OnPlayerTeleport") != -1) CallLocalFunction("OnPlayerTeleport", "iifffii", playerid, num, ptsInfo[num][pts_X], ptsInfo[num][pts_Y], ptsInfo[num][pts_Z], ptsInfo[num][pts_Int], ptsInfo[num][pts_Virt]);
- break;
- }
- }
- }
- if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
- return 1;
- }
- stock CreateTeleport(Float:X, Float:Y, Float:Z, Float:A, Int, Virt, Float:ToX, Float:ToY, Float:ToZ, Float:ToA, ToInt, ToVirt)
- {
- pts_number++;
- ptsInfo[pts_number][pts_id] = CreatePickup(ptsModel, ptsType, X, Y, Z, Virt);
- ptsInfo[pts_number][pts_Toid] = CreatePickup(ptsModel, ptsType, ToX, ToY, ToZ, ToVirt);
- ptsInfo[pts_number][pts_X] = X, ptsInfo[pts_number][pts_Y] = Y, ptsInfo[pts_number][pts_Z] = Z, ptsInfo[pts_number][pts_A] = A;
- ptsInfo[pts_number][pts_Int] = Int, ptsInfo[pts_number][pts_Virt] = Virt;
- ptsInfo[pts_number][pts_ToX] = ToX, ptsInfo[pts_number][pts_ToY] = ToY, ptsInfo[pts_number][pts_ToZ] = ToZ, ptsInfo[pts_number][pts_ToA] = ToA;
- ptsInfo[pts_number][pts_ToInt] = ToInt, ptsInfo[pts_number][pts_ToVirt] = ToVirt;
- return pts_number;
- }
- #if defined _ALS_OnPlayerPickUpPickup
- #undef OnPlayerPickUpPickup
- #else
- #define _ALS_OnPlayerPickUpPickup
- #endif
- #define OnPlayerPickUpPickup pts_OnPlayerPickUpPickup
- forward pts_OnPlayerPickUpPickup(playerid, newkeys, oldkeys);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement