Guest User

Untitled

a guest
Jan 14th, 2012
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.12 KB | None | 0 0
  1. /*
  2. // ---------------------------------------
  3. Incorporated Gaming Release.
  4.     DO NOT REMOVE THE ABOVE OR ANY CREDITS.
  5.         I_Checkpoint.
  6.             By Snowman12.
  7. // ---------------------------------------
  8. */
  9.  
  10. #if defined I_Checkpoint included
  11.     #endinput
  12. #endif
  13. #define I_Checkpoint included
  14.  
  15. #include <YSI\y_hooks>
  16.  
  17. #if !defined _streamer_included
  18. #error You will be needing to download streamer.inc.
  19. #endif
  20.  
  21. #define MAX_CHECKPOINTS         (300)
  22.  
  23. #define INVALID_CHECKPOINT_ID   (0xFFFF)
  24.  
  25. #if !defined COL_YELLOW
  26. #define COL_YELLOW "{F2FF00}"
  27. #endif
  28.  
  29. /* CHANGE LOG */
  30.  
  31. /*
  32.     Version: v0.1 Released.
  33.     Remember to add any suggestions you have.
  34. */
  35.  
  36. /*
  37. native CreateDynamicCheckpoint(CheckpointName[28], Float: X, Float: Y, Float: Z, Float: Size, Float: EX, Float: EY, Float: EZ, Interior = -1,  EInterior = -1);
  38. */
  39.  
  40. enum E_CHECKPOINT_INFO
  41. {
  42.     E_CHECKPOINT_NAME[30],
  43.     Text3D: E_LABEL,
  44.     E_CHECKPOINT,
  45.     bool: E_CREATED,
  46.     Float: E_LOCX,
  47.     Float: E_LOCY,
  48.     Float: E_LOCZ,
  49.     Float: E_SIZE,
  50.     Float: E_ENTER_X,
  51.     Float: E_ENTER_Y,
  52.     Float: E_ENTER_Z,
  53.     E_INTERIOR,
  54.     E_ENTER_INTERIOR,
  55. };
  56.  
  57. new CheckpointInfo[MAX_CHECKPOINTS][E_CHECKPOINT_INFO];
  58.  
  59. hook OnGameModeInit()
  60. {
  61.     print("====================================");
  62.     print("| CHECKPOINT CREATOR LOADED        |");
  63.     print("| MAX CHECKPOINTS: %d              |");
  64.     print("| (c) Incorporated Gaming 2011     |");
  65.     printf("| VERSION: %d                     |",INCLUDE_REVISION);
  66.     print("====================================");
  67.     return 1;
  68. }
  69.  
  70. CreateDynamicCheckpoint(CheckpointName[28], Float: X, Float: Y, Float: Z, Float: Size, Float: EX, Float: EY, Float: EZ, Interior = -1,  EInterior = -1)
  71. {
  72.     new ID = GetFreeCheckpointSlot();
  73.     new szString[50];
  74.    
  75.     if(ID != INVALID_CHECKPOINT_ID)
  76.     {
  77.         format(szString,sizeof(szString),""COL_YELLOW"Checkpoint:{FFFFFF}\n%s",CheckpointName);
  78.         format(CheckpointInfo[ID][E_CHECKPOINT_NAME], 30, "%s", CheckpointName);
  79.         CheckpointInfo[ID][E_CHECKPOINT] = CreateDynamicCP(X, Y, Z, Size, VirtualWorld, Interior);
  80.         CheckpointInfo[ID][E_LABEL] = Create3DTextLabel(szString,0xFFFFFFFF, X, Y, Z, 15.0, 0);
  81.         CheckpointInfo[ID][E_LOCX] = X, CheckpointInfo[ID][E_LOCY] = Y, CheckpointInfo[ID][E_LOCZ] = Z;
  82.         CheckpointInfo[ID][E_CREATED] = true;
  83.         CheckpointInfo[ID][E_SIZE] = Size;
  84.         CheckpointInfo[ID][E_ENTER_X] = EX, CheckpointInfo[ID][E_ENTER_Y], CheckpointInfo[ID][E_ENTER_Z];
  85.         CheckpointInfo[ID][E_INTERIOR] = Interior;
  86.         CheckpointInfo[ID][E_ENTER_INTERIOR] = EInterior;
  87.         return ID;
  88.     }
  89.     return INVALID_CHECKPOINT_ID;
  90. }
  91.  
  92. hook OnPlayerEnterDynamicCP(playerid, checkpointid)
  93. {
  94.     for(new i; i < MAX_CHECKPOINTS; i++)
  95.     {
  96.         if(CheckpointInfo[i][E_CHECKPOINT] == checkpointid)
  97.         {
  98.             if(CheckpointInfo[i][E_ENTER_INTERIOR] >= 1)
  99.             {
  100.                 SetPlayerInterior(playerid, CheckpointInfo[i][E_ENTER_INTERIOR]);
  101.             }
  102.             SetPlayerPos(playerid, CheckpointInfo[i][E_ENTER_X], CheckpointInfo[i][E_ENTER_Y], CheckpointInfo[i][E_ENTER_Z]);
  103.         }
  104.     }
  105.     return 1;
  106. }
  107.  
  108. stock GetFreeCheckpointSlot()
  109. {
  110.     for(new i; i < MAX_CHECKPOINTS; i++)
  111.     {
  112.         if(!CheckpointInfo[i][E_CREATED])
  113.             return i;
  114.     }
  115.     return INVALID_CHECKPOINT_ID;
  116. }
Advertisement
Add Comment
Please, Sign In to add comment