Ildars
Умник
Здравствуйте друзья.
Сегодня я хотел-бы опубликовать красивый спидометр для вашего сервера.
Автор:не знаю , взято с англоязычного портала (forum.wiki.pawno-info.ru) не реклама
Сегодня я хотел-бы опубликовать красивый спидометр для вашего сервера.
Автор:не знаю , взято с англоязычного портала (forum.wiki.pawno-info.ru) не реклама
Ко все new:
PHP:
new PlayerText:speedo1[MAX_PLAYERS];
new PlayerText:speedo2[MAX_PLAYERS];
new PlayerText:LinesBig[MAX_PLAYERS][14];
new PlayerText:MPH[MAX_PLAYERS][14];
new PlayerText:Dots[MAX_PLAYERS][21];
new PlayerText:kmh[MAX_PLAYERS][11];
new PlayerText:MPHT[MAX_PLAYERS];
new PlayerText:kmhT[MAX_PLAYERS];
new PlayerText:LinesSmall[MAX_PLAYERS][13];
new PlayerText:Spee[MAX_PLAYERS][14];
new PlayerText:Spee2[MAX_PLAYERS][4];
new PlayerText:fuel3[MAX_PLAYERS];
new PlayerText:fuel1[MAX_PLAYERS];
new PlayerText:fuel2[MAX_PLAYERS];
new PlayerText:FuelBar[MAX_PLAYERS][7];
new PlayerText:LinesFuel[MAX_PLAYERS][8];
new PlayerText:Circles[MAX_PLAYERS][8];
new Float:oldspeed[MAX_PLAYERS];
new Gas[MAX_VEHICLES];
new checkgastimer;
PHP:
forward CreateSpeedo(playerid);
forward DestroySpeedo(playerid);
forward CheckGas();
PHP:
stock Float:GetSpeed(playerid)
{
new Float:p[3];
GetVehicleVelocity(GetPlayerVehicleID(playerid),p[0],p[1],p[2]);
new Float:speed = (150.0*(p[0]*p[0]+p[1]*p[1])) / 1.61;
return speed;
}
stock RotationXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:rotation, Float:dist)
{
NewX = StartPosX + (dist * floatsin(rotation, degrees));
NewY = StartPosY + (dist * floatcos(rotation, degrees));
}
stock IsNonFuelVehicle(vehicleid)
{
switch(GetVehicleModel(vehicleid))
{
case 592,577,511,512,593,520,553,476,519,460,513,548,
417,488,563,447,509,481,510,472,595,
484,430: return 1;
}
return 0;
}
PHP:
for(new i = 0; i < MAX_VEHICLES; i++)
{
Gas[i] = 100;
}
checkgastimer = SetTimer("CheckGas", 45000, 1);
PHP:
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInAnyVehicle(i))
{
DestroySpeedo(i);
oldspeed[i] = 0;
}
}
}
KillTimer(checkgastimer);
PHP:
oldspeed[playerid] = 0;
В public OnPlayerUpdate(playerid):
PHP:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1)
{
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != 481 && GetVehicleModel(vehid) != 509 && GetVehicleModel(vehid) != 510)
{
if(oldspeed[playerid] != GetSpeed(playerid))
{
new Float:rotation;
if(GetSpeed(playerid) >= 0 && GetSpeed(playerid) < 10)
{
rotation = 319 - (GetSpeed(playerid) * 0.8);
}
else if(GetSpeed(playerid) >= 10 && GetSpeed(playerid) <= 140)
{
rotation = 311 - ((GetSpeed(playerid) - 10) * 2.076923);
}
else
{
rotation = 41;
}
for(new q = 13; q >= 0; q--)
{
PlayerTextDrawDestroy(playerid, Spee[playerid][q]);
new Float:Pos[14][2];
RotationXY(446.6, 358+35.0, Pos[q][0], Pos[q][1], rotation, (q + 1) * 5);
if(q == 0)
{
Spee[playerid][q] = CreatePlayerTextDraw(playerid, Pos[q][0], Pos[q][1], "~l~.");
}
else
{
Spee[playerid][q] = CreatePlayerTextDraw(playerid, Pos[q][0], Pos[q][1], ".");
}
if(q > 0) { PlayerTextDrawColor(playerid, Spee[playerid][q], 0x8B0000FF); }
if(q==1)
{
PlayerTextDrawBackgroundColor(playerid, Spee[playerid][q], 0x8B0000FF);
PlayerTextDrawSetOutline(playerid, Spee[playerid][q], 1);
}
else if(q==0)
{
PlayerTextDrawBackgroundColor(playerid, Spee[playerid][q], 0x000000FF);
PlayerTextDrawSetOutline(playerid, Spee[playerid][q], 1);
}
else
{
PlayerTextDrawBackgroundColor(playerid, Spee[playerid][q], 0x00000000);
}
PlayerTextDrawLetterSize(playerid, Spee[playerid][q], 0.73, -2.60);
PlayerTextDrawShow(playerid, Spee[playerid][q]);
}
new Float:rotation2 = rotation - 180;
for(new x; x < 4; x++)
{
PlayerTextDrawDestroy(playerid, Spee2[playerid][x]);
new Float:Pos1[4][2];
RotationXY(446.6, 358+35.0, Pos1[x][0], Pos1[x][1], rotation2, (x + 1) * 5);
Spee2[playerid][x] = CreatePlayerTextDraw(playerid, Pos1[x][0], Pos1[x][1], "~l~.");
PlayerTextDrawBackgroundColor(playerid, Spee2[playerid][x], 0x000000FF);
PlayerTextDrawLetterSize(playerid, Spee2[playerid][x], 0.73, -2.60);
PlayerTextDrawColor(playerid, Spee2[playerid][x], 0x000000FF);
PlayerTextDrawSetOutline(playerid, Spee2[playerid][x], 1);
PlayerTextDrawShow(playerid, Spee2[playerid][x]);
}
oldspeed[playerid] = GetSpeed(playerid);
}
}
}
}
В public OnPlayerStateChange(playerid, newstate, oldstate)
PHP:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
new vehid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehid) != 481 && GetVehicleModel(vehid) != 509 && GetVehicleModel(vehid) != 510)
{
if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1)
{
CreateSpeedo(playerid);
}
}
}
if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
{
DestroySpeedo(playerid);
oldspeed[playerid] = 0;
}
В public OnPlayerExitVehicle(playerid, vehicleid):
PHP:
DestroySpeedo(playerid);
