new barrier; // Setup the variable "barrier" new Float:movespeed = 0.05; // Set the move speed of the barrier public OnGameModeInit() { AddPlayerClass(2, 1888.0, 1095.0, 11.0, 0, 0, 0, 0, 0, 0, 0); barrier = CreateObject(968, 1882.5, 1103.2, 10, 0, 0, 0); // Barrier (Opened) return 1; } CMD:barrier(playerid, params[]) { new status; if (sscanf(params, "i", status)) return SendClientMessage(playerid, -1, "0: Open; 1: Close"); if (status == 0) // Open the barrier { MoveObject(barrier, 1882.5, 1103.2, 10, movespeed, 0.0, 0.0, 0.0); GameTextForPlayer(playerid, "~w~The barrier was opened~n~Rotation Y: ~r~0.0", 3000, 3); } if (status == 1) // Close the barrier { MoveObject(barrier, 1882.5, 1103.2, 10, movespeed, 0.0, 90.0, 0.0); // Rotation Y is changed to 90.0 GameTextForPlayer(playerid, "~w~The barrier was closed~n~Rotation Y: ~r~90.0", 3000, 3); } return 1; }
This function can be used to make objects rotate smoothly. In order to achieve this however, the object must also be moved. The specified rotation is the rotation the object will have after the movement. Hence the object will not rotate when no movement is applied. For a script example take a look at the ferriswheel.pwn filterscript made by Kye included in the server package (SA-MP 0.3d and above). |
CMD:barrier(playerid, params[]) { new status; if (sscanf(params, "i", status)) return SendClientMessage(playerid, -1, "0: Open; 1: Close"); if (status == 0) // Open the barrier { MoveObject(barrier, 1882.5, 1103.2, 10+0.0001, movespeed, 0.0, 0.0, 0.0); GameTextForPlayer(playerid, "~w~The barrier was opened~n~Rotation Y: ~r~0.0", 3000, 3); } if (status == 1) // Close the barrier { MoveObject(barrier, 1882.5, 1103.2, 10, movespeed, 0.0, 90.0, 0.0); // Rotation Y is changed to 90.0 GameTextForPlayer(playerid, "~w~The barrier was closed~n~Rotation Y: ~r~90.0", 3000, 3); } return 1; }
Код:
CMD:barrier(playerid, params[]) { new status; if (sscanf(params, "i", status)) return SendClientMessage(playerid, -1, "0: Open; 1: Close"); if (status == 0) // Open the barrier { MoveObject(barrier, 1882.5, 1103.2, 10+0.0001, movespeed, 0.0, 0.0, 0.0); GameTextForPlayer(playerid, "~w~The barrier was opened~n~Rotation Y: ~r~0.0", 3000, 3); } if (status == 1) // Close the barrier { MoveObject(barrier, 1882.5, 1103.2, 10, movespeed, 0.0, 90.0, 0.0); // Rotation Y is changed to 90.0 GameTextForPlayer(playerid, "~w~The barrier was closed~n~Rotation Y: ~r~90.0", 3000, 3); } return 1; } |
pawn Код:
0.01 - Rotaciуn muy lenta 1.00 - Velocidad normal (ideal para barreras, etc) 5.00 - Velocidad rбpida |