Advertisement
Guest User

SA-MP Include Easy Checkpoints

a guest
Dec 3rd, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.69 KB | None | 0 0
  1. /* SA-MP Include Easy Checkpoints
  2.  *
  3.  * (c) by Kaliber, 2016
  4.  *
  5.  */
  6. #if !defined _samp_included
  7.     #include <a_samp>
  8. #endif
  9. #if defined _easy_checkpoints
  10.     #endinput
  11. #endif
  12. #define _easy_checkpoints
  13. /******************************************************************************/
  14. #define struct%0~%1~ stock%0const%0Float:%1[][3]=
  15. #define NORMAL_CHECKPOINT (0)
  16. #define FINAL_CHECKPOINT (1)
  17. #define START_CHECKPOINT (0)
  18. #define NORMAL_TYPE (0)
  19. #define FINISH_TYPE (1)
  20. #define NOTHING_TYPE (2)
  21. #define AIR_TYPE (3)
  22. #define AIR_FINISH_TYPE (4)
  23. #define IsNextFinish(%0,%1) ((%0)+1==sizeof(%1)-1)
  24. /******************************************************************************/
  25. /*
  26. native StartCheckpoint<Route>(playerid, start_index, struct[], size);
  27.     Route = Die Routenid...wird im unteren erklärt werden
  28.     playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
  29.     start_index = Der Index, wo die Route starten soll (Standard Fall=0)
  30.     struct[] = Hier wurden alle Punkte der Route deklariert.
  31.     size = Checkpoint größe :)
  32. */
  33. #define StartCheckpoint<%0>(%1,%2,%3,%4) SetPlayerCheckpoint(%1,%3[%2][0],%3[%2][1],%3[%2][2],%4),SetPVarInt(%1,!"check_"#%0,%2)
  34. /*
  35. native IsInCheckpoint(playerid, struct[]<Route>);
  36.     playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
  37.     struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
  38.     Route = Routenid
  39. */
  40. #define IsInCheckpoint(%0,%1<%2>) (GetPVarType(%0,!"check_"#%2)==PLAYER_VARTYPE_NONE)?-1:(GetPVarInt(%0,!"check_"#%2)==sizeof(%1)-1)?1:0
  41. /*
  42. native NextCheckpoint(playerid, struct[]<Route>, size);
  43.     playerid = Spielerid dem der Checkpoint angezeigt wird.
  44.     struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
  45.     Route = Routenid
  46.     size = Die größe vom Nächsten Checkpoint :)
  47. */
  48. #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)
  49. /*
  50. native GetRouteCounter<Route>(playerid);
  51.     playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
  52.     Route = Routenid
  53. */
  54. #define GetRouteCounter<%0>(%1) (GetPVarType(%1, !"check_"#%0) == PLAYER_VARTYPE_NONE)?-1:GetPVarInt(%1,!"check_"#%0)
  55. /*
  56. native ClearCheckpoint<Route>(playerid);
  57.     playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
  58.     Route = Routenid
  59. */
  60. #define ClearCheckpoint<%0>(%1) DeletePVar(%1,!"check_"#%0),DisablePlayerCheckpoint(%1)
  61. /******************************************************************************/
  62. /*
  63. native StartRaceCheckpoint<Route>(playerid, type, start_index, struct[], size);
  64.     Route = Die Routenid...wird im unteren erklärt werden
  65.     playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
  66.     type = RaceCheckpoint Type
  67.     start_index = Der Index, wo die Route starten soll (Standard Fall=0)
  68.     struct[] = Hier wurden alle Punkte der Route deklariert.
  69.     size = Checkpoint größe :)
  70. */
  71. #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)
  72. /*
  73. native IsInRaceCheckpoint(playerid, struct[]<Route>);
  74.     playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
  75.     struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
  76.     Route = Routenid
  77. */
  78. #define IsInRaceCheckpoint(%0,%1<%2>) (GetPVarType(%0,!"race_check_"#%2)==PLAYER_VARTYPE_NONE)?-1:(GetPVarInt(%0,!"race_check_"#%2)==sizeof(%1)-1)?1:0
  79. /*
  80. native NextRaceCheckpoint(playerid, struct[]<Route>, size, type);
  81.     playerid = Spielerid dem der Checkpoint angezeigt wird.
  82.     struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
  83.     Route = Routenid
  84.     size = Die größe vom Nächsten Checkpoint :)
  85.     type = RaceCheckpoint Typ für Nächsten Checkpoint :)
  86. */
  87. #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)
  88. /*
  89. native GetRaceRouteCounter<Route>(playerid);
  90.     playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
  91.     Route = Routenid
  92. */
  93. #define GetRaceRouteCounter<%0>(%1) (GetPVarType(%1, !"race_check_"#%0) == PLAYER_VARTYPE_NONE)?-1:GetPVarInt(%1,!"race_check_"#%0)
  94. /*
  95. native ClearRaceCheckpoint<Route>(playerid);
  96.     playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
  97.     Route = Routenid
  98. */
  99. #define ClearRaceCheckpoint<%0>(%1) DeletePVar(%1,!"race_check_"#%0),DisablePlayerRaceCheckpoint(%1)
  100. //EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement