Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /***********************************\
- ***** Made By: Gigi Falcone *****
- ***** Script: RampMaker *****
- ***** Type: Include *****
- ***** Version: 0.1a *****
- ***** Stable: 0.1 *****
- ***** Lines: 172 *****
- ***** Release: 15.06.2011. *****
- ***** Contact: [email protected] *****
- \***********************************/
- /*
- - Credits -
- -----------
- Incognito - Plugin Streamer
- Gigi_Falcone - Script
- - Script Requirements -
- -----------------------
- This script can use Plugin Streamer by Incognito, but it can work without it too!
- - Natives -
- -----------
- native CreateRamp(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
- native DestroyRamp(RampID)
- native ActivateRamp(RampID,Side)
- */
- //==============================================================================
- //======================== [MAIN SETUP] =====================================[1]
- #define USE_STREAMER //Uncomment this if you don't want to use Plugin Streamer!
- #define I_AM_BOT //Uncomment this to use this include!
- //==============================================================================
- //======================== [INCLUDES] =======================================[1]
- #include <a_samp>
- #if defined USE_STREAMER
- #include <streamer>
- #endif
- //==============================================================================
- //======================== [DEFINES] ========================================[2]
- #define RAMP_NUMBER 10 //Setup max ammount of ramps. Change this to the number of created ramps.
- #define RM_DISTANCE 200 //Change this if you use Plugin Streamer!
- #define RM_INTERVAL 10 //Timer interval in miliseconds (ms), change to desired value.
- #define RM_AMMOUNT 0.5 //Ramp rotation ammount. Change to desired value.
- //==============================================================================
- //======================== [VARIABLES] ======================================[3]
- new RM_RampCount;
- enum RM_Info
- {
- RM_ID,
- RM_Side,
- Float:RM_X,
- Float:RM_Y,
- Float:RM_Z,
- Float:RM_rX,
- Float:RM_rY,
- Float:RM_rZ,
- RM_State,
- RM_TimerID
- }
- new RM_RampInfo[RAMP_NUMBER][RM_Info];
- //==============================================================================
- //======================== [FORWARDS] =======================================[4]
- forward RotateRamp(RampID,RampInfoID,Float:RotAmmount);
- //==============================================================================
- //======================== [PUBLICS] ========================================[5]
- public RotateRamp(RampID,RampInfoID,Float:RotAmmount)
- {
- if(RampInfoID == -1) return 0;
- if(RM_RampInfo[RampInfoID][RM_Side] == 1)
- {
- new Compare = floatcmp(RM_RampInfo[RampInfoID][RM_rY],RotAmmount);
- if(Compare == -1)
- {
- RM_RampInfo[RampInfoID][RM_rY] = floatadd(RM_RampInfo[RampInfoID][RM_rY],RM_AMMOUNT);
- SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
- }
- else if(Compare >= 0)
- {
- RM_RampInfo[RampInfoID][RM_rY] = RotAmmount;
- SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
- RM_RampInfo[RampInfoID][RM_State] = 0;
- KillTimer(RM_RampInfo[RampInfoID][RM_TimerID]);
- }
- }
- else if(RM_RampInfo[RampInfoID][RM_Side] == 2)
- {
- new Compare = floatcmp(RM_RampInfo[RampInfoID][RM_rY],RotAmmount);
- if(Compare == 1)
- {
- RM_RampInfo[RampInfoID][RM_rY] = floatsub(RM_RampInfo[RampInfoID][RM_rY],RM_AMMOUNT);
- SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
- }
- else if(Compare <= 0)
- {
- RM_RampInfo[RampInfoID][RM_rY] = RotAmmount;
- SetObjectRot(RampID,RM_RampInfo[RampInfoID][RM_rX],RM_RampInfo[RampInfoID][RM_rY],RM_RampInfo[RampInfoID][RM_rZ]);
- RM_RampInfo[RampInfoID][RM_State] = 0;
- KillTimer(RM_RampInfo[RampInfoID][RM_TimerID]);
- }
- }
- return 1;
- }
- //==============================================================================
- //======================== [STOCKS] =========================================[6]
- stock CreateRamp(Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ)
- {
- #if defined I_AM_BOT
- print("Read the damn README for g_makeramp you moron!");
- GameModeExit();
- #endif
- new RM_ObjID = -1;
- #if defined USE_STREAMER
- RM_ObjID = CreateObject(968,X,Y,Z,rX,rY,rZ);
- #else
- RM_ObjID = CreateDynamicObject(968,X,Y,Z,rX,rY,rZ,-1,-1,-1,RM_DISTANCE);
- #endif
- if(RM_ObjID != -1)
- {
- RM_RampInfo[RM_RampCount][RM_ID] = RM_ObjID;
- RM_RampInfo[RM_RampCount][RM_X] = X;
- RM_RampInfo[RM_RampCount][RM_Y] = Y;
- RM_RampInfo[RM_RampCount][RM_Z] = Z;
- RM_RampInfo[RM_RampCount][RM_rX] = rX;
- RM_RampInfo[RM_RampCount][RM_rY] = rY;
- RM_RampInfo[RM_RampCount][RM_rZ] = rZ;
- RM_RampCount++;
- return RM_ObjID;
- }
- else return -1;
- }
- stock DestroyRamp(RampID)
- {
- for(new i; i < sizeof(RM_RampInfo); i++)
- {
- if(RM_RampInfo[i][RM_ID] != RampID) continue;
- DestroyObject(RM_RampInfo[i][RM_ID]);
- KillTimer(RM_RampInfo[i][RM_TimerID]);
- RM_RampInfo[i][RM_ID] = -1;
- RM_RampInfo[i][RM_X] = 0;
- RM_RampInfo[i][RM_Y] = 0;
- RM_RampInfo[i][RM_Z] = 0;
- RM_RampInfo[i][RM_rX] = 0;
- RM_RampInfo[i][RM_rY] = 0;
- RM_RampInfo[i][RM_rZ] = 0;
- RM_RampInfo[i][RM_Side] = 0;
- RM_RampInfo[i][RM_State] = 0;
- RM_RampInfo[i][RM_TimerID] = -1;
- break;
- }
- }
- stock ActivateRamp(RampID,Side)
- {
- new RampInfoID = -1;
- new Float:RotAmmount;
- for(new i; i < sizeof(RM_RampInfo); i++)
- {
- if(RM_RampInfo[i][RM_ID] != RampID) continue;
- if(RM_RampInfo[i][RM_State] == 0)
- {
- RM_RampInfo[i][RM_State] = 1;
- RampInfoID = i;
- RM_RampInfo[RampInfoID][RM_Side] = Side;
- if(RM_RampInfo[RampInfoID][RM_Side] == 1) RotAmmount = floatadd(RM_RampInfo[i][RM_rY],90.0);
- else if(RM_RampInfo[RampInfoID][RM_Side] == 2) RotAmmount = floatsub(RM_RampInfo[i][RM_rY],90.0);
- RM_RampInfo[i][RM_TimerID] = SetTimerEx("RotateRamp",RM_INTERVAL,true,"iif",RampID,RampInfoID,RotAmmount);
- }
- break;
- }
- }
- //====================== [End Of File] =========================================
- //==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment