Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- supervehicle.pwn, débuté le 20/12/2014
- Crédits: TheArrow
- */
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- main(){ }
- // VARIABLES GLOBALES
- new bool:vehicleMode[MAX_PLAYERS], bool:vehicleGravity[MAX_PLAYERS], bool:vehicleAccel[MAX_PLAYERS], Float:count[MAX_PLAYERS];
- // DEFINES
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- #define RELEASED(%0) \
- (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
- #define pi 3.141592653589793238462643383279502884
- #define acceleration 0.01
- // FORWARD
- forward Gravity(playerid, mode);
- public OnPlayerConnect(playerid)
- {
- vehicleMode[playerid] = false, vehicleGravity[playerid] = false;
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_ACTION) {
- if(vehicleMode[playerid] == false) { SendClientMessage(playerid, -1, "The supervehicle mode has been activated."), vehicleMode[playerid] = true; }
- else { SendClientMessage(playerid, -1, "The supervehicle mode has been disabled."), vehicleMode[playerid] = false, vehicleGravity[playerid] = false; } }
- else if(newkeys & KEY_YES && vehicleMode[playerid] == true) {
- vehicleGravity[playerid] = false;
- SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, 0.5);
- SetTimerEx("Gravity", 100, false, "ii", playerid, 1); }
- else if(newkeys & KEY_NO && vehicleMode[playerid] == true) {
- vehicleGravity[playerid] = false;
- SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, -0.5);
- SetTimerEx("Gravity", 100, false, "ii", playerid, 1); }
- else if(PRESSED(KEY_ANALOG_UP) && vehicleMode[playerid] == true) {
- vehicleGravity[playerid] = false,
- vehicleAccel[playerid] = true,
- count[playerid] = 1; }
- else if(RELEASED(KEY_ANALOG_UP) && vehicleMode[playerid] == true) SetTimerEx("Gravity", 100, false, "ii", playerid, 0);
- return 1;
- }
- public Gravity(playerid, mode)
- {
- vehicleGravity[playerid] = true;
- if(mode == 0) { vehicleAccel[playerid] = false, count[playerid] = 1; }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(IsPlayerInAnyVehicle(playerid) && vehicleMode[playerid] == true && vehicleGravity[playerid] == true) SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0.03);
- else if(vehicleAccel[playerid] == true) {
- new Float:z_angle, Float:vx, Float:vy, Float:vz, Float:quad_X, Float:quad_Y, Float:quad_Z, Float:quad_W;
- GetVehicleZAngle(GetPlayerVehicleID(playerid), z_angle);
- z_angle = ((360 - z_angle) * 2*pi) / 360;
- GetVehicleRotationQuat(GetPlayerVehicleID(playerid), quad_W, quad_X, quad_Y, quad_Z);
- GetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz);
- if(quad_X < 0) SetVehicleVelocity(GetPlayerVehicleID(playerid), floatsin(z_angle)*count[playerid], floatcos(z_angle)*count[playerid], vz-(quad_X/3));
- else if(quad_X >= 0) SetVehicleVelocity(GetPlayerVehicleID(playerid), floatsin(z_angle)*count[playerid], floatcos(z_angle)*count[playerid], vz-(quad_X/3));
- count[playerid] += acceleration; }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement