Guest User

RampMaker

a guest
Jun 15th, 2011
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.58 KB | None | 0 0
  1.                     /***********************************\
  2.                      *****  Made By: Gigi Falcone  *****
  3.                      *****  Script:  RampMaker     *****
  4.                      *****  Type:    Include       *****
  5.                      *****  Version: 0.1a          *****
  6.                      *****  Stable:  0.1           *****
  7.                      *****  Lines:   172           *****
  8.                      *****  Release: 15.06.2011.   *****
  9.                      *****  Contact: [email protected] *****
  10.                     \***********************************/
  11.  
  12. /*
  13. - Credits -
  14. -----------
  15. Incognito - Plugin Streamer
  16. Gigi_Falcone - Script
  17.  
  18. - Script Requirements -
  19. -----------------------
  20. This script can use Plugin Streamer by Incognito, but it can work without it too!
  21.  
  22.  
  23. - Natives -
  24. -----------
  25. native CreateRamp(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
  26. native DestroyRamp(RampID)
  27. native ActivateRamp(RampID,Side)
  28. */
  29. //==============================================================================
  30. //======================== [MAIN SETUP] =====================================[1]
  31. #define USE_STREAMER                                                            //Uncomment this if you don't want to use Plugin Streamer!
  32. #define I_AM_BOT                                                                //Uncomment this to use this include!
  33. //==============================================================================
  34. //======================== [INCLUDES] =======================================[1]
  35. #include <a_samp>
  36. #if defined USE_STREAMER
  37.     #include <streamer>
  38. #endif
  39. //==============================================================================
  40. //======================== [DEFINES] ========================================[2]
  41. #define RAMP_NUMBER     10                                                      //Setup max ammount of ramps. Change this to the number of created ramps.
  42. #define RM_DISTANCE     200                                                     //Change this if you use Plugin Streamer!
  43. #define RM_INTERVAL     10                                                      //Timer interval in miliseconds (ms), change to desired value.
  44. #define RM_AMMOUNT      0.5                                                     //Ramp rotation ammount. Change to desired value.
  45. //==============================================================================
  46. //======================== [VARIABLES] ======================================[3]
  47. new RM_RampCount;
  48. enum RM_Info
  49. {
  50.     RM_ID,
  51.     RM_Side,
  52.     Float:RM_X,
  53.     Float:RM_Y,
  54.     Float:RM_Z,
  55.     Float:RM_rX,
  56.     Float:RM_rY,
  57.     Float:RM_rZ,
  58.     RM_State,
  59.     RM_TimerID
  60. }
  61. new RM_RampInfo[RAMP_NUMBER][RM_Info];
  62. //==============================================================================
  63. //======================== [FORWARDS] =======================================[4]
  64. forward RotateRamp(RampID,RampInfoID,Float:RotAmmount);
  65. //==============================================================================
  66. //======================== [PUBLICS] ========================================[5]
  67. public RotateRamp(RampID,RampInfoID,Float:RotAmmount)
  68. {
  69.     if(RampInfoID == -1) return 0;
  70.     if(RM_RampInfo[RampInfoID][RM_Side] == 1)
  71.     {
  72.         new Compare = floatcmp(RM_RampInfo[RampInfoID][RM_rY],RotAmmount);
  73.         if(Compare == -1)
  74.         {
  75.             RM_RampInfo[RampInfoID][RM_rY] = floatadd(RM_RampInfo[RampInfoID][RM_rY],RM_AMMOUNT);
  76.             SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
  77.         }
  78.         else if(Compare >= 0)
  79.         {
  80.             RM_RampInfo[RampInfoID][RM_rY] = RotAmmount;
  81.             SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
  82.             RM_RampInfo[RampInfoID][RM_State] = 0;
  83.             KillTimer(RM_RampInfo[RampInfoID][RM_TimerID]);
  84.         }
  85.     }
  86.     else if(RM_RampInfo[RampInfoID][RM_Side] == 2)
  87.     {
  88.         new Compare = floatcmp(RM_RampInfo[RampInfoID][RM_rY],RotAmmount);
  89.         if(Compare == 1)
  90.         {
  91.             RM_RampInfo[RampInfoID][RM_rY] = floatsub(RM_RampInfo[RampInfoID][RM_rY],RM_AMMOUNT);
  92.             SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
  93.         }
  94.         else if(Compare <= 0)
  95.         {
  96.             RM_RampInfo[RampInfoID][RM_rY] = RotAmmount;
  97.             SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
  98.             RM_RampInfo[RampInfoID][RM_State] = 0;
  99.             KillTimer(RM_RampInfo[RampInfoID][RM_TimerID]);
  100.         }
  101.     }
  102.     return 1;
  103. }
  104. //==============================================================================
  105. //======================== [STOCKS] =========================================[6]
  106. stock CreateRamp(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
  107. {
  108.     #if defined I_AM_BOT
  109.         print("Read the damn README for g_makeramp you moron!");
  110.         GameModeExit();
  111.     #endif
  112.     new RM_ObjID = -1;
  113.     #if defined USE_STREAMER
  114.     RM_ObjID = CreateObject(968,X,Y,Z,rX,rY,rZ);
  115.     #else
  116.     RM_ObjID = CreateDynamicObject(968,X,Y,Z,rX,rY,rZ,-1,-1,-1,RM_DISTANCE);
  117.     #endif
  118.     if(RM_ObjID != -1)
  119.     {
  120.         RM_RampInfo[RM_RampCount][RM_ID]    = RM_ObjID;
  121.         RM_RampInfo[RM_RampCount][RM_X]     = X;
  122.         RM_RampInfo[RM_RampCount][RM_Y]     = Y;
  123.         RM_RampInfo[RM_RampCount][RM_Z]     = Z;
  124.         RM_RampInfo[RM_RampCount][RM_rX]    = rX;
  125.         RM_RampInfo[RM_RampCount][RM_rY]    = rY;
  126.         RM_RampInfo[RM_RampCount][RM_rZ]    = rZ;
  127.         RM_RampCount++;
  128.         return RM_ObjID;
  129.     }
  130.     else return -1;
  131. }
  132. stock DestroyRamp(RampID)
  133. {
  134.     for(new i; i < sizeof(RM_RampInfo); i++)
  135.     {
  136.         if(RM_RampInfo[i][RM_ID] != RampID) continue;
  137.         DestroyObject(RM_RampInfo[i][RM_ID]);
  138.         KillTimer(RM_RampInfo[i][RM_TimerID]);
  139.         RM_RampInfo[i][RM_ID]       = -1;
  140.         RM_RampInfo[i][RM_X]        = 0;
  141.         RM_RampInfo[i][RM_Y]        = 0;
  142.         RM_RampInfo[i][RM_Z]        = 0;
  143.         RM_RampInfo[i][RM_rX]       = 0;
  144.         RM_RampInfo[i][RM_rY]       = 0;
  145.         RM_RampInfo[i][RM_rZ]       = 0;
  146.         RM_RampInfo[i][RM_Side]     = 0;
  147.         RM_RampInfo[i][RM_State]    = 0;
  148.         RM_RampInfo[i][RM_TimerID]  = -1;
  149.         break;
  150.     }
  151. }
  152. stock ActivateRamp(RampID,Side)
  153. {
  154.     new RampInfoID = -1;
  155.     new Float:RotAmmount;
  156.     for(new i; i < sizeof(RM_RampInfo); i++)
  157.     {
  158.         if(RM_RampInfo[i][RM_ID] != RampID) continue;
  159.         if(RM_RampInfo[i][RM_State] == 0)
  160.         {
  161.             RM_RampInfo[i][RM_State] = 1;
  162.             RampInfoID = i;
  163.             RM_RampInfo[RampInfoID][RM_Side] = Side;
  164.             if(RM_RampInfo[RampInfoID][RM_Side] == 1) RotAmmount = floatadd(RM_RampInfo[i][RM_rY],90.0);
  165.             else if(RM_RampInfo[RampInfoID][RM_Side] == 2) RotAmmount = floatsub(RM_RampInfo[i][RM_rY],90.0);
  166.             RM_RampInfo[i][RM_TimerID] = SetTimerEx("RotateRamp",RM_INTERVAL,true,"iif",RampID,RampInfoID,RotAmmount);
  167.         }
  168.         break;
  169.     }
  170. }
  171. //====================== [End Of File] =========================================
  172. //==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment