Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Прекрасный спидометр

Статус
В этой теме нельзя размещать новые ответы.

Ildars

Умник
Здравствуйте друзья.
Сегодня я хотел-бы опубликовать красивый спидометр для вашего сервера.
Автор:не знаю , взято с англоязычного портала (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;
К forward'aм:
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;
}
В public OnGameModeInit:

PHP:
for(new i = 0; i < MAX_VEHICLES; i++)
	{
		Gas[i] = 100;
	}
	checkgastimer = SetTimer("CheckGas", 45000, 1);
В public OnPlayerDisconnect:

PHP:
	for(new i; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if(IsPlayerInAnyVehicle(i))
			{
			    DestroySpeedo(i);
				oldspeed[i] = 0;
			}
		}
	}
	KillTimer(checkgastimer);
В public OnPlayerConnect(playerid):

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);
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу