speedo.inc 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #include <progress2>
  2. #include <YSI_Coding\y_hooks>
  3. #define MAX_SPEEDO_TEXTDRAWS 3
  4. static PlayerText:VehicleSpeedo[MAX_PLAYERS][MAX_SPEEDO_TEXTDRAWS];
  5. static PlayerBar:VehicleFuel[MAX_PLAYERS];
  6. static bool:IsSpeedoShowing[MAX_PLAYERS];
  7. timer SpeedTimer[50](playerid, vehicleid)
  8. {
  9. if(IsSpeedoShowing[playerid] && GetPlayerVehicleID(playerid) == vehicleid)
  10. {
  11. Speedo_Update(playerid, vehicleid);
  12. defer SpeedTimer(playerid, vehicleid);
  13. }
  14. }
  15. hook OnPlayerConnect(playerid)
  16. {
  17. Speedo_Create(playerid);
  18. }
  19. hook OnPlayerDisconnect(playerid, reason)
  20. {
  21. DestroyPlayerProgressBar(playerid, VehicleFuel[playerid]);
  22. }
  23. hook OnPlayerStateChange(playerid, newstate, oldstate)
  24. {
  25. if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  26. {
  27. new vehicleid = GetPlayerVehicleID(playerid);
  28. if(!IsSpeedoShowing[playerid] && IsEngineVehicle(vehicleid))
  29. {
  30. Speedo_Show(playerid);
  31. defer SpeedTimer(playerid, vehicleid);
  32. }
  33. }
  34. else if(IsSpeedoShowing[playerid])
  35. {
  36. Speedo_Hide(playerid);
  37. }
  38. }
  39. stock Speedo_Create(playerid)
  40. {
  41. IsSpeedoShowing[playerid] = false;
  42. // Fuel Text
  43. VehicleSpeedo[playerid][0] = CreatePlayerTextDraw(playerid, 549.000000, 80.000000, "FL");
  44. PlayerTextDrawFont(playerid, VehicleSpeedo[playerid][0], 2);
  45. PlayerTextDrawLetterSize(playerid, VehicleSpeedo[playerid][0], 0.316664, 1.049996);
  46. PlayerTextDrawTextSize(playerid, VehicleSpeedo[playerid][0], 626.000000, 16.000000);
  47. PlayerTextDrawSetOutline(playerid, VehicleSpeedo[playerid][0], 1);
  48. PlayerTextDrawSetShadow(playerid, VehicleSpeedo[playerid][0], 0);
  49. PlayerTextDrawAlignment(playerid, VehicleSpeedo[playerid][0], 1);
  50. PlayerTextDrawColor(playerid, VehicleSpeedo[playerid][0], -2016478465);
  51. PlayerTextDrawBackgroundColor(playerid, VehicleSpeedo[playerid][0], 255);
  52. PlayerTextDrawBoxColor(playerid, VehicleSpeedo[playerid][0], 50);
  53. PlayerTextDrawUseBox(playerid, VehicleSpeedo[playerid][0], 0);
  54. PlayerTextDrawSetProportional(playerid, VehicleSpeedo[playerid][0], 1);
  55. PlayerTextDrawSetSelectable(playerid, VehicleSpeedo[playerid][0], 0);
  56. // Speedo Text
  57. VehicleSpeedo[playerid][1] = CreatePlayerTextDraw(playerid, 549.000000, 94.000000, "SD");
  58. PlayerTextDrawFont(playerid, VehicleSpeedo[playerid][1], 2);
  59. PlayerTextDrawLetterSize(playerid, VehicleSpeedo[playerid][1], 0.316664, 1.049996);
  60. PlayerTextDrawTextSize(playerid, VehicleSpeedo[playerid][1], 626.000000, 16.000000);
  61. PlayerTextDrawSetOutline(playerid, VehicleSpeedo[playerid][1], 1);
  62. PlayerTextDrawSetShadow(playerid, VehicleSpeedo[playerid][1], 0);
  63. PlayerTextDrawAlignment(playerid, VehicleSpeedo[playerid][1], 1);
  64. PlayerTextDrawColor(playerid, VehicleSpeedo[playerid][1], -2016478465);
  65. PlayerTextDrawBackgroundColor(playerid, VehicleSpeedo[playerid][1], 255);
  66. PlayerTextDrawBoxColor(playerid, VehicleSpeedo[playerid][1], 50);
  67. PlayerTextDrawUseBox(playerid, VehicleSpeedo[playerid][1], 0);
  68. PlayerTextDrawSetProportional(playerid, VehicleSpeedo[playerid][1], 1);
  69. PlayerTextDrawSetSelectable(playerid, VehicleSpeedo[playerid][1], 0);
  70. // Speed
  71. VehicleSpeedo[playerid][2] = CreatePlayerTextDraw(playerid, 576.000000, 94.000000, "101MPH");
  72. PlayerTextDrawFont(playerid, VehicleSpeedo[playerid][2], 2);
  73. PlayerTextDrawLetterSize(playerid, VehicleSpeedo[playerid][2], 0.262499, 1.049998);
  74. PlayerTextDrawTextSize(playerid, VehicleSpeedo[playerid][2], 626.000000, 16.000000);
  75. PlayerTextDrawSetOutline(playerid, VehicleSpeedo[playerid][2], 1);
  76. PlayerTextDrawSetShadow(playerid, VehicleSpeedo[playerid][2], 0);
  77. PlayerTextDrawAlignment(playerid, VehicleSpeedo[playerid][2], 1);
  78. PlayerTextDrawColor(playerid, VehicleSpeedo[playerid][2], -2016478465);
  79. PlayerTextDrawBackgroundColor(playerid, VehicleSpeedo[playerid][2], 255);
  80. PlayerTextDrawBoxColor(playerid, VehicleSpeedo[playerid][2], 50);
  81. PlayerTextDrawUseBox(playerid, VehicleSpeedo[playerid][2], 0);
  82. PlayerTextDrawSetProportional(playerid, VehicleSpeedo[playerid][2], 1);
  83. PlayerTextDrawSetSelectable(playerid, VehicleSpeedo[playerid][2], 0);
  84. // Fuel Bar
  85. VehicleFuel[playerid] = CreatePlayerProgressBar(playerid, 575.000000, 83.000000, 47.000000, 4.000000, -2016478465, 100.000000, 0);
  86. SetPlayerProgressBarValue(playerid, VehicleFuel[playerid], 50.000000); // DEFAULT VALUE
  87. }
  88. stock Speedo_Show(playerid)
  89. {
  90. for(new i; i < MAX_SPEEDO_TEXTDRAWS; i++)
  91. {
  92. PlayerTextDrawShow(playerid, VehicleSpeedo[playerid][i]);
  93. }
  94. ShowPlayerProgressBar(playerid, VehicleFuel[playerid]);
  95. IsSpeedoShowing[playerid] = true;
  96. }
  97. stock Speedo_Hide(playerid)
  98. {
  99. for(new i; i < MAX_SPEEDO_TEXTDRAWS; i++)
  100. {
  101. PlayerTextDrawHide(playerid, VehicleSpeedo[playerid][i]);
  102. }
  103. HidePlayerProgressBar(playerid, VehicleFuel[playerid]);
  104. IsSpeedoShowing[playerid] = false;
  105. }
  106. stock Speedo_Update(playerid, vehicleid)
  107. {
  108. new speed[10];
  109. format(speed, sizeof(speed), "%.0fMPH", GetVehicleSpeed(vehicleid));
  110. PlayerTextDrawSetString(playerid, VehicleSpeedo[playerid][2], speed);
  111. }