Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SA-MP Include Easy Checkpoints
- *
- * (c) by Kaliber, 2016
- *
- */
- #if !defined _samp_included
- #include <a_samp>
- #endif
- #if defined _easy_checkpoints
- #endinput
- #endif
- #define _easy_checkpoints
- /******************************************************************************/
- #define struct%0~%1~ stock%0const%0Float:%1[][3]=
- #define NORMAL_CHECKPOINT (0)
- #define FINAL_CHECKPOINT (1)
- #define START_CHECKPOINT (0)
- #define NORMAL_TYPE (0)
- #define FINISH_TYPE (1)
- #define NOTHING_TYPE (2)
- #define AIR_TYPE (3)
- #define AIR_FINISH_TYPE (4)
- #define IsNextFinish(%0,%1) ((%0)+1==sizeof(%1)-1)
- /******************************************************************************/
- /*
- native StartCheckpoint<Route>(playerid, start_index, struct[], size);
- Route = Die Routenid...wird im unteren erklärt werden
- playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
- start_index = Der Index, wo die Route starten soll (Standard Fall=0)
- struct[] = Hier wurden alle Punkte der Route deklariert.
- size = Checkpoint größe :)
- */
- #define StartCheckpoint<%0>(%1,%2,%3,%4) SetPlayerCheckpoint(%1,%3[%2][0],%3[%2][1],%3[%2][2],%4),SetPVarInt(%1,!"check_"#%0,%2)
- /*
- native IsInCheckpoint(playerid, struct[]<Route>);
- playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
- struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
- Route = Routenid
- */
- #define IsInCheckpoint(%0,%1<%2>) (GetPVarType(%0,!"check_"#%2)==PLAYER_VARTYPE_NONE)?-1:(GetPVarInt(%0,!"check_"#%2)==sizeof(%1)-1)?1:0
- /*
- native NextCheckpoint(playerid, struct[]<Route>, size);
- playerid = Spielerid dem der Checkpoint angezeigt wird.
- struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
- Route = Routenid
- size = Die größe vom Nächsten Checkpoint :)
- */
- #define NextCheckpoint(%0,%1<%2>,%3) new _@t=GetPVarInt(%0,!"check_"#%2)+1;SetPlayerCheckpoint(%0,%1[_@t][0],%1[_@t][1],%1[_@t][2],%3),SetPVarInt(%0,!"check_"#%2,_@t)
- /*
- native GetRouteCounter<Route>(playerid);
- playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
- Route = Routenid
- */
- #define GetRouteCounter<%0>(%1) (GetPVarType(%1, !"check_"#%0) == PLAYER_VARTYPE_NONE)?-1:GetPVarInt(%1,!"check_"#%0)
- /*
- native ClearCheckpoint<Route>(playerid);
- playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
- Route = Routenid
- */
- #define ClearCheckpoint<%0>(%1) DeletePVar(%1,!"check_"#%0),DisablePlayerCheckpoint(%1)
- /******************************************************************************/
- /*
- native StartRaceCheckpoint<Route>(playerid, type, start_index, struct[], size);
- Route = Die Routenid...wird im unteren erklärt werden
- playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
- type = RaceCheckpoint Type
- start_index = Der Index, wo die Route starten soll (Standard Fall=0)
- struct[] = Hier wurden alle Punkte der Route deklariert.
- size = Checkpoint größe :)
- */
- #define StartRaceCheckpoint<%0>(%1,%2,%3,%4,%5) SetPlayerRaceCheckpoint(%1,%2,%4[%3][0],%4[%3][1],%4[%3][2],%4[%3+1][0],%4[%3+1][1],%4[%3+1][2],%5),SetPVarInt(%1,!"race_check_"#%0,%2)
- /*
- native IsInRaceCheckpoint(playerid, struct[]<Route>);
- playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
- struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
- Route = Routenid
- */
- #define IsInRaceCheckpoint(%0,%1<%2>) (GetPVarType(%0,!"race_check_"#%2)==PLAYER_VARTYPE_NONE)?-1:(GetPVarInt(%0,!"race_check_"#%2)==sizeof(%1)-1)?1:0
- /*
- native NextRaceCheckpoint(playerid, struct[]<Route>, size, type);
- playerid = Spielerid dem der Checkpoint angezeigt wird.
- struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
- Route = Routenid
- size = Die größe vom Nächsten Checkpoint :)
- type = RaceCheckpoint Typ für Nächsten Checkpoint :)
- */
- #define NextRaceCheckpoint(%0,%1<%2>,%3,%4) new _@t=GetPVarInt(%0,!"race_check_"#%2)+1;SetPlayerRaceCheckpoint(%0,%4,%1[_@t][0],%1[_@t][1],%1[_@t][2],(_@t+1 ==sizeof(%1))?0.0:%1[_@t+1][0],(_@t+1 ==sizeof(%1))?0.0:%1[_@t+1][1],(_@t+1 ==sizeof(%1))?0.0:%1[_@t+1][2],%3),SetPVarInt(%0,!"race_check_"#%2,_@t)
- /*
- native GetRaceRouteCounter<Route>(playerid);
- playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
- Route = Routenid
- */
- #define GetRaceRouteCounter<%0>(%1) (GetPVarType(%1, !"race_check_"#%0) == PLAYER_VARTYPE_NONE)?-1:GetPVarInt(%1,!"race_check_"#%0)
- /*
- native ClearRaceCheckpoint<Route>(playerid);
- playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
- Route = Routenid
- */
- #define ClearRaceCheckpoint<%0>(%1) DeletePVar(%1,!"race_check_"#%0),DisablePlayerRaceCheckpoint(%1)
- //EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement