daily pastebin goal
5%
SHARE
TWEET

SA-MP Include Easy Checkpoints

a guest Dec 3rd, 2016 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top