07.07.2013, 16:18
pawn Код:
#include <a_samp>
enum td
{
Text:TDSpeedClock[10]
}
new TextDraws[td];
new Text:TextDrawsd[MAX_PLAYERS][4];
new DeActiveSpeedometer[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("Clock Speedometer load");
TextDraws[TDSpeedClock][0] = TextDrawCreate(491.000000,393.000000,"~g~20");
TextDraws[TDSpeedClock][1] = TextDrawCreate(487.000000,372.000000,"~g~40");
TextDraws[TDSpeedClock][2] = TextDrawCreate(491.000000,351.000000,"~g~60");
TextDraws[TDSpeedClock][3] = TextDrawCreate(524.000000,338.000000,"~g~80");
TextDraws[TDSpeedClock][4] = TextDrawCreate(564.000000,341.000000,"~g~100");
TextDraws[TDSpeedClock][5] = TextDrawCreate(594.000000,360.500000,"~g~120");
TextDraws[TDSpeedClock][6] = TextDrawCreate(591.000000,383.000000,"~g~140");
TextDraws[TDSpeedClock][7] = TextDrawCreate(578.000000,402.000000,"~g~160");
TextDraws[TDSpeedClock][8] = TextDrawCreate(534.000000,396.000000,"~r~/ \\");
TextDraws[TDSpeedClock][9] = TextDrawCreate(548.000000,401.000000,".");
TextDrawLetterSize(TextDraws[TDSpeedClock][8], 1.059999, 2.100000);
TextDrawLetterSize(TextDraws[TDSpeedClock][9], 0.73, -2.60);
for(new i; i < 10; i++)
{
TextDrawSetShadow(TextDraws[TDSpeedClock][i], 1);
TextDrawSetOutline(TextDraws[TDSpeedClock][i], 0);
}
return 1;
}
public OnFilterScriptExit()
{
print("Clock Speedometer unload");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext[1], "speedo", false) == 0)
{
new strOptionInfo[2][37]=
{
"You have turned on your speedometer",
"You have turned off your speedometer"
};
DeActiveSpeedometer[playerid] = !DeActiveSpeedometer[playerid];
SendClientMessage(playerid, 0x00AA00FF, strOptionInfo[DeActiveSpeedometer[playerid]]);
if(!DeActiveSpeedometer[playerid])
{
for(new i; i < 10; i++)
TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
for(new i; i < 4; i++)
TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
}
else
{
for(new i; i < 4; i++)
//TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
TextDrawDestroy(TextDrawsd[playerid][i]);
for(new i; i < 10; i++)
TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
}
return 1;
}
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
{
for(new i; i < 10; i++)
TextDrawShowForPlayer(playerid, TextDraws[TDSpeedClock][i]);
for(new i; i < 4; i++)
TextDrawsd[playerid][i] = TextDrawCreate(555.0, 402.0, "~b~.");
}
else
{
for(new i; i < 4; i++)
//TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
TextDrawDestroy(TextDrawsd[playerid][i]);
for(new i; i < 10; i++)
TextDrawHideForPlayer(playerid, TextDraws[TDSpeedClock][i]);
}
return 1;
}
public OnPlayerUpdate(playerid)
{
new
Float:fPos[3],
Float:Pos[4][2],
Float:fSpeed;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !DeActiveSpeedometer[playerid])
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
fSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
floatpower(fPos[2], 2)) * 200;
fSpeed = floatsqroot(fPos[0] * fPos[0] + fPos[1] * fPos[1] + fPos[2] * fPos[2]) * 200; // Looks just as good, just saved you 3 function calls,
new Float:alpha = 320 - fSpeed;
if(alpha < 60)
alpha = 60;
for(new i; i < 4; i++)
{
TextDrawHideForPlayer(playerid, TextDrawsd[playerid][i]);
TextDrawDestroy(TextDrawsd[playerid][i]);
GetDotXY(548, 401, Pos[i][0], Pos[i][1], alpha, (i + 1) * 8);
TextDrawsd[playerid][i] = TextDrawCreate(Pos[i][0], Pos[i][1], "~b~.");
TextDrawLetterSize(TextDrawsd[playerid][i], 0.73, -2.60);
TextDrawSetOutline(TextDrawsd[playerid][i], 0);
TextDrawSetShadow(TextDrawsd[playerid][i], 1);
TextDrawShowForPlayer(playerid, TextDrawsd[playerid][i]);
}
}
return 1;
}
stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
{
NewX = StartPosX + (dist * floatsin(alpha, degrees));
NewY = StartPosY + (dist * floatcos(alpha, degrees));
}
Код HTML:
TextDraws[TDSpeedClock][0] = TextDrawCreate(491.000000,393.000000,"~g~20");