Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <progress>
- #define PRESSED(%0) \
- (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
- new Text:SpeedoMeter[MAX_PLAYERS];
- new Text:SpeedoMeterBox[MAX_PLAYERS];
- new Text:NumbersToClock[MAX_PLAYERS];
- new Text:LineClock[MAX_PLAYERS];
- new Bar:N20[MAX_PLAYERS] = {INVALID_BAR_ID, ...};
- new bool:PressedKey[MAX_PLAYERS];
- stock Float:GetVehicleSpeed(vehicleid)
- {
- new Float:Vel[3];
- if(IsValidVehicle(vehicleid))
- {
- GetVehicleVelocity(vehicleid, Vel[0], Vel[1], Vel[2]);
- }
- Vel[0] *= 175;
- Vel[1] *= 175;
- Vel[2] *= 175;
- return Float:VectorSize(Vel[0], Vel[1], Vel[2]);
- }
- public OnFilterScriptInit()
- {
- for(new i = 0; i <= GetMaxPlayers(); i++)
- {
- SpeedoMeter[i] = TextDrawCreate(445.000000, 370.000000, "_");
- TextDrawBackgroundColor(SpeedoMeter[i], 255);
- TextDrawFont(SpeedoMeter[i], 2);
- TextDrawLetterSize(SpeedoMeter[i], 0.460000, 2.299998);
- TextDrawColor(SpeedoMeter[i], -1);
- TextDrawSetOutline(SpeedoMeter[i], 0);
- TextDrawSetProportional(SpeedoMeter[i], 1);
- TextDrawSetShadow(SpeedoMeter[i], 1);
- SpeedoMeterBox[i] = TextDrawCreate(640.000000, 385.000000, "_");
- TextDrawBackgroundColor(SpeedoMeterBox[i], 255);
- TextDrawFont(SpeedoMeterBox[i], 1);
- TextDrawLetterSize(SpeedoMeterBox[i], 1.259999, 6.299999);
- TextDrawColor(SpeedoMeterBox[i], -1);
- TextDrawSetOutline(SpeedoMeterBox[i], 0);
- TextDrawSetProportional(SpeedoMeterBox[i], 1);
- TextDrawSetShadow(SpeedoMeterBox[i], 1);
- TextDrawUseBox(SpeedoMeterBox[i], 1);
- TextDrawBoxColor(SpeedoMeterBox[i], 150);
- TextDrawTextSize(SpeedoMeterBox[i], 434.000000, 31.000000);
- NumbersToClock[i] = TextDrawCreate(440.000000, 400.000000, "0 40 80 120 160 _ 200");
- TextDrawBackgroundColor(NumbersToClock[i], 255);
- TextDrawFont(NumbersToClock[i], 1);
- TextDrawLetterSize(NumbersToClock[i], 0.200000, 1.500000);
- TextDrawColor(NumbersToClock[i], -1);
- TextDrawSetOutline(NumbersToClock[i], 0);
- TextDrawSetProportional(NumbersToClock[i], 1);
- TextDrawSetShadow(NumbersToClock[i], 1);
- LineClock[i] = TextDrawCreate(441.000000, 412.000000, "l");
- TextDrawBackgroundColor(LineClock[i], 255);
- TextDrawFont(LineClock[i], 1);
- TextDrawLetterSize(LineClock[i], 0.219999, 1.899999);
- TextDrawColor(LineClock[i], 16777215);
- TextDrawSetOutline(LineClock[i], 0);
- TextDrawSetProportional(LineClock[i], 1);
- TextDrawSetShadow(LineClock[i], 1);
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- switch(newstate)
- {
- case PLAYER_STATE_DRIVER:
- {
- N20[playerid] = CreateProgressBar(441.00, 433.00, 192.50, 9.50, -1, 100.0);
- SetProgressBarValue(N20[playerid], 100.0);
- ShowProgressBarForPlayer(playerid, N20[playerid]);
- TextDrawShowForPlayer(playerid, SpeedoMeter[playerid]);
- TextDrawShowForPlayer(playerid, SpeedoMeterBox[playerid]);
- TextDrawShowForPlayer(playerid, LineClock[playerid]);
- TextDrawShowForPlayer(playerid, NumbersToClock[playerid]);
- }
- case PLAYER_STATE_ONFOOT:
- {
- DestroyProgressBar(N20[playerid]);
- N20[playerid] = INVALID_BAR_ID;
- TextDrawHideForPlayer(playerid, SpeedoMeter[playerid]);
- TextDrawHideForPlayer(playerid, SpeedoMeterBox[playerid]);
- TextDrawHideForPlayer(playerid, LineClock[playerid]);
- TextDrawHideForPlayer(playerid, NumbersToClock[playerid]);
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(PRESSED(KEY_FIRE) || PRESSED(KEY_ACTION))
- {
- if(GetVehicleSpeed(GetPlayerVehicleID(playerid)) > 20.0000)
- {
- if(GetProgressBarValue(N20[playerid]) > 0.0000000)
- {
- SetProgressBarValue(N20[playerid], GetProgressBarValue(N20[playerid])-1.0);
- UpdateProgressBar(N20[playerid], playerid);
- AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
- PressedKey[playerid] = true;
- }
- }
- }
- else RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010), PressedKey[playerid] = false;
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- new Float:value = GetProgressBarValue(N20[playerid]);
- value += (PressedKey[playerid] == false) ? (0.35) : (-0.75);
- SetProgressBarValue(N20[playerid], value);
- UpdateProgressBar(N20[playerid], playerid);
- if(GetProgressBarValue(N20[playerid]) < 0.100000000) RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
- new string[16];
- format(string, sizeof(string), "~r~%0.0f ~w~KM/H.", GetVehicleSpeed(GetPlayerVehicleID(playerid)));
- TextDrawSetString(SpeedoMeter[playerid], string);
- MoveTextDraw(playerid, LineClock[playerid], 440.000000+(GetVehicleSpeed(GetPlayerVehicleID(playerid))/1.25), 412.000000, "l");
- }
- return 1;
- }
- stock MoveTextDraw(playerid, Text:textdrawid, Float:x, Float:y, string[])
- {
- TextDrawHideForPlayer(playerid, textdrawid);
- TextDrawDestroy(textdrawid);
- textdrawid = TextDrawCreate(x, y, string);
- TextDrawBackgroundColor(textdrawid, 255);
- TextDrawFont(textdrawid, 1);
- TextDrawLetterSize(textdrawid, 0.220000, 1.900000);
- TextDrawColor(textdrawid, 16777215);
- TextDrawSetOutline(textdrawid, 0);
- TextDrawSetProportional(textdrawid, 1);
- TextDrawSetShadow(textdrawid, 1);
- TextDrawShowForPlayer(playerid, textdrawid);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement