Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- new gate;
- new bool:gateopen;
- public OnFilterScriptInit() // Alternatively, use OnGameModeInit if you implement it in your gamemode
- {
- SetTimer("GateCheck", 800, true); //This is used to create the timer. The "GateCheck" is the callback we'll be using,
- // the '800' is the amount of milliseconds between each call and the 'true' indicates that this timer is looping endlessly
- gate = CreateObject(16442, 8.0, 3.0, 10.0, 0.0, 0.0, 0.0);
- //'gate = CreateObject(...);' = Assigns the object id of the gate to the 'gate' variable
- //16442 = object model id < change it to the model id you use for your gate
- // 8.0, 3.0, 10.0 = coordinates of the gate
- // 0.0, 0.0, 0.0 = Rotation of the gate. None in this case.
- return 1;
- }
- forward GateCheck();
- public GateCheck()
- {
- for(new i; i < MAX_PLAYERS; i++) // Start the loop
- {
- if(IsPlayerInRangeOfPoint(playerid, 15.0, 8.0, 3.0, 10.0)) //Check if any player is in the area. Replace '8.0, 3.0, 10.0' with your own coordinates of your closed gate.
- {
- if(gateopen == false) // If the gate isn't open...
- {
- MoveObject(gate, 32.0, 12.0, 10.0, 3.5); //Then open it! Change '32.0, 12.0, 10.0' to the coordinates of your opened gate.
- gateopen = true; // Setting this to true indicates it's open(ing)
- }
- return; //This closes the callback
- }
- }
- //This is called if nobody has been found near the gate. Obviously, because 'return' would fully close the function and this wouldn't be used then.
- if(gateopen == true) //If the gate IS open, but there's no one near..
- {
- MoveObject(gate, 8.0, 3.0, 10.0, 3.5); // Change the '8.0, 3.0, 10.0' to the coordinates of your gate when it's closed.
- gateopen = false; //This indicates the gate is closed again. Or at least, closing.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement