Guest User

Untitled

a guest
Feb 17th, 2010
6,922
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.02 KB | None | 0 0
  1. #include <a_samp>
  2. enum td
  3. {
  4.     Text:TDSpeedClock[10]
  5. }
  6.  
  7. new TextDraws[td];
  8. new Text:TextDrawsd[MAX_PLAYERS][4];
  9. new DeActiveSpeedometer[MAX_PLAYERS];
  10.  
  11. public OnFilterScriptInit()
  12. {
  13.     print("Clock Speedometer load");
  14.    
  15.     TextDraws[TDSpeedClock][0] = TextDrawCreate(491.000000,393.000000,"~g~20");
  16.     TextDraws[TDSpeedClock][1] = TextDrawCreate(487.000000,372.000000,"~g~40");
  17.     TextDraws[TDSpeedClock][2] = TextDrawCreate(491.000000,351.000000,"~g~60");
  18.     TextDraws[TDSpeedClock][3] = TextDrawCreate(524.000000,338.000000,"~g~80");
  19.     TextDraws[TDSpeedClock][4] = TextDrawCreate(564.000000,341.000000,"~g~100");
  20.     TextDraws[TDSpeedClock][5] = TextDrawCreate(594.000000,360.500000,"~g~120");
  21.     TextDraws[TDSpeedClock][6] = TextDrawCreate(591.000000,383.000000,"~g~140");
  22.     TextDraws[TDSpeedClock][7] = TextDrawCreate(578.000000,402.000000,"~g~160");
  23.     TextDraws[TDSpeedClock][8] = TextDrawCreate(534.000000,396.000000,"~r~/ \\");
  24.     TextDraws[TDSpeedClock][9] = TextDrawCreate(548.000000,401.000000,".");
  25.     TextDrawLetterSize(TextDraws[TDSpeedClock][8], 1.059999, 2.100000);
  26.     TextDrawLetterSize(TextDraws[TDSpeedClock][9], 0.73, -2.60);
  27.     for(new i; i < 10; i++)
  28.     {
  29.         TextDrawSetShadow(TextDraws[TDSpeedClock][i], 1);
  30.         TextDrawSetOutline(TextDraws[TDSpeedClock][i], 0);
  31.     }
  32.  
  33.    
  34.     return 1;
  35. }
  36.  
  37. public OnFilterScriptExit()
  38. {
  39.     print("Clock Speedometer unload");
  40.    
  41.     return 1;
  42. }
  43.  
  44. public OnPlayerCommandText(playerid, cmdtext[])
  45. {
  46.     if(strcmp(cmdtext[1], "speedo", false) == 0)
  47.     {
  48.         new strOptionInfo[2][37]=
  49.             {
  50.                 "You have turned on your speedometer",
  51.                 "You have turned off your speedometer"
  52.             };
  53.            
  54.         DeActiveSpeedometer[playerid] = !DeActiveSpeedometer[playerid];
  55.         SendClientMessage(playerid, 0x00AA00FF, strOptionInfo[DeActiveSpeedometer[playerid]]);
  56.         if(!DeActiveSpeedometer[playerid])
  57.         {
  58.             for(new i; i < 10; i++)
  59.                 TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  60.  
  61.             for(new i; i < 4; i++)
  62.                 TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
  63.         }
  64.         else
  65.         {
  66.             for(new i; i < 4; i++)
  67.                 TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
  68.             for(new i; i < 10; i++)
  69.                 TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  70.         }
  71.        
  72.         return 1;
  73.     }
  74.    
  75.     return 0;
  76. }
  77.  
  78. public OnPlayerStateChange(playerid, newstate, oldstate)
  79. {
  80.     if(newstate == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
  81.     {
  82.         for(new i; i < 10; i++)
  83.             TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  84.            
  85.         for(new i; i < 4; i++)
  86.             TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
  87.  
  88.     }
  89.     else
  90.     {
  91.         for(new i; i < 4; i++)
  92.             TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
  93.         for(new i; i < 10; i++)
  94.             TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
  95.     }
  96.    
  97.     return 1;
  98. }
  99.  
  100. public OnPlayerUpdate(playerid)
  101. {
  102.     new
  103.         Float:fPos[3],
  104.         Float:Pos[4][2],
  105.         Float:fSpeed;
  106.        
  107.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
  108.     {
  109.         GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
  110.  
  111.         fSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
  112.          floatpower(fPos[2], 2)) * 200;
  113.        
  114.         new Float:alpha = 320 - fSpeed;
  115.         if(alpha < 60)
  116.             alpha = 60;
  117.  
  118.         for(new i; i < 4; i++)
  119.         {
  120.             TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
  121.             TextDrawDestroy(TextDrawsd[playerid][i]);
  122.             GetDotXY(548, 401, Pos[i][0], Pos[i][1], alpha, (i + 1) * 8);
  123.             TextDrawsd[playerid][i] = TextDrawCreate(Pos[i][0], Pos[i][1], "~b~.");
  124.             TextDrawLetterSize(TextDrawsd[playerid][i], 0.73, -2.60);
  125.             TextDrawSetOutline(TextDrawsd[playerid][i], 0);
  126.             TextDrawSetShadow(TextDrawsd[playerid][i], 1);
  127.             TextDrawShowForPlayer(playerid, TextDrawsd[playerid][i]);
  128.         }
  129.     }
  130.    
  131.    
  132.     return 1;
  133. }
  134.  
  135. stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
  136. {
  137.      NewX = StartPosX + (dist * floatsin(alpha, degrees));
  138.      NewY = StartPosY + (dist * floatcos(alpha, degrees));
  139. }
  140.  
Advertisement
Add Comment
Please, Sign In to add comment