xKrUsE6x

Tachosystem by xKrUsE6x

Oct 16th, 2012
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. #define TACHOTIMER 1000 // Definen die Zeit wie oft sich der TachoTimer wiederholt
  3.  
  4. #include <a_samp>
  5.  
  6. new Text:Tacho[MAX_PLAYERS]; // Variable für das TextDraw
  7. new Float:X1[MAX_PLAYERS],Float:Y1[MAX_PLAYERS],Float:Z1[MAX_PLAYERS]; //Unsere Floats zum errechnen der Geschwindigkeit
  8. new Float:X2[MAX_PLAYERS],Float:Y2[MAX_PLAYERS],Float:Z2[MAX_PLAYERS];
  9. new timer; //Unsere Variable für den Timer
  10.  
  11. forward UpdateTacho(); // Forward für den Timer
  12.  
  13. #if defined FILTERSCRIPT
  14.  
  15. public OnFilterScriptInit()
  16. {
  17. print("\n--------------------------------------");
  18. print("Tacho by xKrUsE6x");
  19. print("--------------------------------------\n");
  20. for(new x = 0;x<MAX_PLAYERS;x++) // Gehen eine Forschleife durch, weil wir hier kein Playerid verwenden können
  21. {
  22. Tacho[x] = TextDrawCreate(357.000,340.000,"EGAL"); //Einstellungen für unser TextDraw
  23. TextDrawLetterSize(Tacho[x],0.4,1.1);
  24. TextDrawFont(Tacho[x],1);
  25. TextDrawSetShadow(Tacho[x],1);
  26. TextDrawSetOutline(Tacho[x],1);
  27. }
  28. timer = SetTimer("UpdateTacho",1000,true);//Timer zum Updaten des Tachos
  29. return 1;
  30. }
  31.  
  32. public OnFilterScriptExit()
  33. {
  34. for(new i = 0;i<MAX_PLAYERS;i++)
  35. {
  36. TextDrawHideForPlayer(i,Tacho[i]);
  37. KillTimer(timer);
  38. }
  39. return 1;
  40. }
  41.  
  42. #endif
  43.  
  44. public UpdateTacho() //Tacho Public
  45. {
  46. for(new i = 0;i<MAX_PLAYERS;i++) //Forschleife
  47. {
  48. if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i)) //Abfrgae ob Spieler in Car sitzt
  49. {
  50. new Float:Strecke,Float:Geschwindigkeit; //Neue Variablen
  51. GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]); //Geben dem Auto die erste Position
  52. Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));//Rechnen die Geschwindigkeit aus
  53. Geschwindigkeit = (Strecke / (TACHOTIMER /1000)) * 3.6; //Teilen das durch unseren TACHOTIMER define. Danach durch 1000 und dann mal 3,6. Damit es in Killometer ausgegeben wird.
  54. new string[60]; //definen unseren String
  55. format(string, 50,"Geschwindigkeit: %d km/h",floatround(Geschwindigkeit)); //Geben unseren TextDraw aus
  56. TextDrawSetString(Tacho[i],string); //Updaten unseren Tacho
  57. GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]); //Geben dem Auto die zweite Position
  58. TextDrawShowForPlayer(i,Tacho[i]); //Zeigen unserem Player den Tacho
  59. }
  60. else //Wenn er kein Fahrer ist oder in keinem Auto sitzt oder er NPC ist, passiert folgendes
  61. {
  62. TextDrawHideForPlayer(i,Tacho[i]); //TextDraw wird nicht angezeigt
  63. }
  64. }
  65. return 1;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment