Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*********************************************
- * Pickup Teleport System v1.1 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 // Время деактивации после прохода через телепорт (мс) (Оптимальное время 1500-3000)
- #define MAX_TELEPORTS 50 // Максимальное кол-во телепортов
- 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];
- new bool:ptsDeactTimePlayer[MAX_PLAYERS];
- forward pts_DeactTime(playerid);
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(!pts_number)
- {
- if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
- return 1;
- }
- for(new num = 1; num < pts_number+1; num++)
- {
- if(pickupid == ptsInfo[num][pts_id] && ptsDeactTimePlayer[playerid] == false)
- {
- 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]);
- ptsDeactTimePlayer[playerid] = true, SetTimerEx("pts_DeactTime", ptsDeact, false, "i", playerid);
- break;
- }
- else if(pickupid == ptsInfo[num][pts_Toid] && ptsDeactTimePlayer[playerid] == false)
- {
- 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]);
- ptsDeactTimePlayer[playerid] = true, SetTimerEx("pts_DeactTime", ptsDeact, false, "i", playerid);
- break;
- }
- }
- if(funcidx("pts_OnPlayerPickUpPickup") != -1) return CallLocalFunction("pts_OnPlayerPickUpPickup", "ii", playerid, pickupid);
- return 1;
- }
- public pts_DeactTime(playerid) { ptsDeactTimePlayer[playerid] = false; return; }
- 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