Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************************
- * Key Teleport System v2.1 by _[Bupyc]_ *
- ********************************************/
- #if defined _PTS_included
- #error The resonance of inclusions "KTS" and "PTS"
- #endif
- #if defined _KTS_included
- #endinput
- #endif
- #define _KTS_included
- new kts_number = 0;
- #define ktsKey 1024 // ID Клавиши (1024 - ALT)
- #define ktsModel 1318 // Модель пикапа
- #define ktsType 1 // Тип пикапа
- #define MAX_TELEPORTS 30 // Максимальное кол-во телепортов
- enum ktsData
- {
- Float:kts_X,
- Float:kts_Y,
- Float:kts_Z,
- Float:kts_A,
- kts_Int,
- kts_Virt,
- Float:kts_ToX,
- Float:kts_ToY,
- Float:kts_ToZ,
- Float:kts_ToA,
- kts_ToInt,
- kts_ToVirt,
- }
- new ktsInfo[MAX_TELEPORTS][ktsData];
- forward OnPlayerTeleport(playerid, teleportid, Float:X, Float:Y, Float:Z, Int, Virt);
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys & ktsKey)
- {
- if(!kts_number)
- {
- if(funcidx("kts_OnPlayerKeyStateChange") != -1) return CallLocalFunction("kts_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys);
- return 1;
- }
- for(new num = 1; num < kts_number+1; num++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, ktsInfo[num][kts_X], ktsInfo[num][kts_Y], ktsInfo[num][kts_Z]) && GetPlayerVirtualWorld(playerid) == ktsInfo[num][kts_Virt])
- {
- SetPlayerInterior(playerid, ktsInfo[num][kts_ToInt]);
- SetPlayerPos(playerid, ktsInfo[num][kts_ToX], ktsInfo[num][kts_ToY], ktsInfo[num][kts_ToZ]);
- SetPlayerFacingAngle(playerid, ktsInfo[num][kts_ToA]);
- SetPlayerVirtualWorld(playerid, ktsInfo[num][kts_ToVirt]);
- if(funcidx("OnPlayerTeleport") != -1) CallLocalFunction("OnPlayerTeleport", "iifffii", playerid, num, ktsInfo[num][kts_ToX], ktsInfo[num][kts_ToY], ktsInfo[num][kts_ToZ], ktsInfo[num][kts_ToInt], ktsInfo[num][kts_ToVirt]);
- break;
- }
- else if(IsPlayerInRangeOfPoint(playerid, 2.0, ktsInfo[num][kts_ToX], ktsInfo[num][kts_ToY], ktsInfo[num][kts_ToZ]) && GetPlayerVirtualWorld(playerid) == ktsInfo[num][kts_ToVirt])
- {
- SetPlayerVirtualWorld(playerid, ktsInfo[num][kts_Virt]);
- SetPlayerPos(playerid, ktsInfo[num][kts_X], ktsInfo[num][kts_Y], ktsInfo[num][kts_Z]);
- SetPlayerFacingAngle(playerid, ktsInfo[num][kts_A]);
- SetPlayerInterior(playerid, ktsInfo[num][kts_Int]);
- if(funcidx("OnPlayerTeleport") != -1) CallLocalFunction("OnPlayerTeleport", "iifffii", playerid, num, ktsInfo[num][kts_X], ktsInfo[num][kts_Y], ktsInfo[num][kts_Z], ktsInfo[num][kts_Int], ktsInfo[num][kts_Virt]);
- break;
- }
- }
- }
- if(funcidx("kts_OnPlayerKeyStateChange") != -1) return CallLocalFunction("kts_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys);
- return 1;
- }
- stock CreateTeleport(Float:X, Float:Y, Float:Z, Float:A, Int, Virt, Float:ToX, Float:ToY, Float:ToZ, Float:ToA, ToInt, ToVirt)
- {
- kts_number++;
- CreatePickup(ktsModel, ktsType, X, Y, Z, Virt); CreatePickup(ktsModel, ktsType, ToX, ToY, ToZ, ToVirt);
- ktsInfo[kts_number][kts_X] = X, ktsInfo[kts_number][kts_Y] = Y, ktsInfo[kts_number][kts_Z] = Z, ktsInfo[kts_number][kts_A] = A;
- ktsInfo[kts_number][kts_Int] = Int, ktsInfo[kts_number][kts_Virt] = Virt;
- ktsInfo[kts_number][kts_ToX] = ToX, ktsInfo[kts_number][kts_ToY] = ToY, ktsInfo[kts_number][kts_ToZ] = ToZ, ktsInfo[kts_number][kts_ToA] = ToA;
- ktsInfo[kts_number][kts_ToInt] = ToInt, ktsInfo[kts_number][kts_ToVirt] = ToVirt;
- return kts_number;
- }
- #if defined _ALS_OnPlayerKeyStateChange
- #undef OnPlayerKeyStateChange
- #else
- #define _ALS_OnPlayerKeyStateChange
- #endif
- #define OnPlayerKeyStateChange kts_OnPlayerKeyStateChange
- forward kts_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement