Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define MAX_CHECKS 50
- enum E_CHECK
- {
- Float: PosX,
- Float: PosY,
- Float: PosZ,
- Float: Size,
- ID
- };
- new
- CHECK_INFO[MAX_CHECKS][E_CHECK];
- forward OnPlayerEnterMitosCheckpoint(playerid, checkid);
- public OnPlayerEnterCheckpoint(playerid)
- {
- new
- checkid = GetPlayerCheckpoint(playerid);
- return CallLocalFunction("OnPlayerEnterMitosCheckpoint", "ii", playerid, checkid);
- }
- stock sSetPlayerCheckpoint(playerid, Float: PosCX, Float: PosCY, Float: PosCZ, Float: SizeC)
- {
- for(new c = 0; c < MAX_CHECKS; c++)
- {
- if(CHECK_INFO[c][ID] != -1) continue;
- SetPlayerCheckpoint(playerid, PosCX, PosCY, PosCZ, SizeC);
- CHECK_INFO[c][PosX] = PosCX;
- CHECK_INFO[c][PosY] = PosCY;
- CHECK_INFO[c][PosZ] = PosCZ;
- CHECK_INFO[c][Size] = SizeC;
- CHECK_INFO[c][ID] = c;
- return CHECK_INFO[c][ID];
- }
- return -1;
- }
- stock GetPlayerCheckpoint(playerid)
- {
- for(new c = 0; c < MAX_CHECKS; c++)
- {
- if(CHECK_INFO[c][ID] == -1) continue;
- if(iIsPlayerInCheckpoint(playerid, c)) return c;
- }
- return -1;
- }
- stock iIsPlayerInCheckpoint(playerid, checkid)
- {
- if(IsPlayerInRangeOfPoint(playerid, CHECK_INFO[checkid][Size], CHECK_INFO[checkid][PosX], CHECK_INFO[checkid][PosY], CHECK_INFO[checkid][PosZ])) return 1;
- return 0;
- }
- stock MitosCheck()
- {
- for(new c = 0; c < MAX_CHECKS; c++)
- {
- CHECK_INFO[c][ID] = -1;
- }
- return 1;
- }
- #define SetPlayerCheckpoint sSetPlayerCheckpoint
- #define IsPlayerInCheckpoint iIsPlayerInCheckpoint
Add Comment
Please, Sign In to add comment