Доступ к готовым решениям

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

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

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

Урок Спидометр by Aidarchik

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

aidar14

Умник

Нарисовал,может кому нибудь понадобиться.
1)Создадим переменные:
PHP:
new Text: SpeedCar[MAX_PLAYERS];
new Text: FuelCar[MAX_PLAYERS];
new Text: WayCar[MAX_PLAYERS];
new Text: ModelCar[MAX_PLAYERS];
new Text: EngineCar[MAX_PLAYERS];
new Text: DoorCar[MAX_PLAYERS];
new Text: LightCar[MAX_PLAYERS];
new Text: HealthCar[MAX_PLAYERS];
new PlayerText: ShowCar[MAX_PLAYERS];
new EngineState[MAX_PLAYERS];//Переменная заводки авто

new Text: Textdraw1;
new Text: Textdraw0;
new Text: Textdraw3;
new Text: Textdraw11;

new Float: PosCar[3];
new TimerSpeed;

new VehicleModel[212][] =
{
	"Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
	"Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr.Whoopee","BF Injection",
	"Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
	"Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
	"Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Barron","RC Raider",
	"Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","Zr-350","Walton","Regina",
	"Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
	"Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring A","Hotring B",
	"Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
	"Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
	"Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
	"Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
	"Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
	"Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
	"Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car","Police Car",
	"Police Car","Police Ranger","Picador","S.W.A.T.","Alpha","Phoenix","Glendale","Sadler","L Trailer A","L Trailer B",
	"Stair Trailer","Boxville","Farm Plow","U Trailer"
};
2)В паблик OnPlayerConnect сами textdraw:
PHP:
//Спидометр
    ModelCar[playerid] = TextDrawCreate(513.868469, 391.000061, "_");
	TextDrawLetterSize(ModelCar[playerid], 0.296434, 1.395833);
	TextDrawAlignment(ModelCar[playerid], 1);
	TextDrawColor(ModelCar[playerid], -1);
	TextDrawUseBox(ModelCar[playerid], true);
	TextDrawBoxColor(ModelCar[playerid], 0);
	TextDrawSetShadow(ModelCar[playerid], 0);
	TextDrawSetOutline(ModelCar[playerid], 1);
	TextDrawBackgroundColor(ModelCar[playerid], 51);
	TextDrawFont(ModelCar[playerid], 2);
	TextDrawSetProportional(ModelCar[playerid], 1);
 
	SpeedCar[playerid] = TextDrawCreate(512.562316, 352.333343, "_");
	TextDrawLetterSize(SpeedCar[playerid], 0.347971, 1.384166);
	TextDrawAlignment(SpeedCar[playerid], 1);
	TextDrawColor(SpeedCar[playerid], -1);
	TextDrawUseBox(SpeedCar[playerid], true);
	TextDrawBoxColor(SpeedCar[playerid], 0);
	TextDrawSetShadow(SpeedCar[playerid], 0);
	TextDrawSetOutline(SpeedCar[playerid], 1);
	TextDrawBackgroundColor(SpeedCar[playerid], 51);
	TextDrawFont(SpeedCar[playerid], 2);
	TextDrawSetProportional(SpeedCar[playerid], 1);

	FuelCar[playerid] = TextDrawCreate(512.625305, 365.000061, "_");
	TextDrawLetterSize(FuelCar[playerid], 0.347971, 1.384166);
	TextDrawAlignment(FuelCar[playerid], 1);
	TextDrawColor(FuelCar[playerid], -1);
	TextDrawUseBox(FuelCar[playerid], true);
	TextDrawBoxColor(FuelCar[playerid], 0);
	TextDrawSetShadow(FuelCar[playerid], 0);
	TextDrawSetOutline(FuelCar[playerid], 1);
	TextDrawBackgroundColor(FuelCar[playerid], 51);
	TextDrawFont(FuelCar[playerid], 2);
	TextDrawSetProportional(FuelCar[playerid], 1);
	
	WayCar[playerid] = TextDrawCreate(445.5, 427.093383, "_");
	TextDrawLetterSize(WayCar[playerid], 0.449999, 1.600000);
	TextDrawAlignment(WayCar[playerid], 1);
	TextDrawColor(WayCar[playerid], -1);
	TextDrawSetShadow(WayCar[playerid], 0);
	TextDrawSetOutline(WayCar[playerid], 1);
	TextDrawBackgroundColor(WayCar[playerid], 51);
	TextDrawFont(WayCar[playerid], 1);
	TextDrawSetProportional(WayCar[playerid], 1);

	EngineCar[playerid] = TextDrawCreate(455.055877, 410.333465, "_");
	TextDrawLetterSize(EngineCar[playerid], 0.296434, 1.395833);
	TextDrawAlignment(EngineCar[playerid], 1);
	TextDrawColor(EngineCar[playerid], -1);
	TextDrawUseBox(EngineCar[playerid], true);
	TextDrawBoxColor(EngineCar[playerid], 0);
	TextDrawSetShadow(EngineCar[playerid], 0);
	TextDrawSetOutline(EngineCar[playerid], 1);
	TextDrawBackgroundColor(EngineCar[playerid], 51);
	TextDrawFont(EngineCar[playerid], 2);
	TextDrawSetProportional(EngineCar[playerid], 1);

	DoorCar[playerid] = TextDrawCreate(591.517211, 409.416778, "_");
	TextDrawLetterSize(DoorCar[playerid], 0.296434, 1.395833);
	TextDrawAlignment(DoorCar[playerid], 1);
	TextDrawColor(DoorCar[playerid], -1);
	TextDrawUseBox(DoorCar[playerid], true);
	TextDrawBoxColor(DoorCar[playerid], 0);
	TextDrawSetShadow(DoorCar[playerid], 0);
	TextDrawSetOutline(DoorCar[playerid], 1);
	TextDrawBackgroundColor(DoorCar[playerid], 51);
	TextDrawFont(DoorCar[playerid], 2);
	TextDrawSetProportional(DoorCar[playerid], 1);
	
	ShowCar[playerid] = CreatePlayerTextDraw(playerid, 446.096252, 353.500000, "_");
    PlayerTextDrawFont(playerid, ShowCar[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
    PlayerTextDrawUseBox(playerid, ShowCar[playerid], 0);
    PlayerTextDrawTextSize(playerid, ShowCar[playerid], 64.187400, 53.666698);
    PlayerTextDrawSetPreviewModel(playerid, ShowCar[playerid], 411);
    PlayerTextDrawSetPreviewRot(playerid,ShowCar[playerid], 270.000000, 360.000000, 180.000000, 1.000000);
    PlayerTextDrawBackgroundColor(playerid, ShowCar[playerid], 0xFFFFFF00);
    
    LightCar[playerid] = TextDrawCreate(516.961791, 409.583435, "LIGHT");
	TextDrawLetterSize(LightCar[playerid], 0.296434, 1.395833);
	TextDrawAlignment(LightCar[playerid], 1);
	TextDrawColor(LightCar[playerid], -1);
	TextDrawUseBox(LightCar[playerid], true);
	TextDrawBoxColor(LightCar[playerid], 0);
	TextDrawSetShadow(LightCar[playerid], 0);
	TextDrawSetOutline(LightCar[playerid], 1);
	TextDrawBackgroundColor(LightCar[playerid], 51);
	TextDrawFont(LightCar[playerid], 2);
	TextDrawSetProportional(LightCar[playerid], 1);
    
    HealthCar[playerid] = TextDrawCreate(513.337036, 378.916717, "_");
	TextDrawLetterSize(HealthCar[playerid], 0.296434, 1.395833);
	TextDrawAlignment(HealthCar[playerid], 1);
	TextDrawColor(HealthCar[playerid], -1);
	TextDrawUseBox(HealthCar[playerid], true);
	TextDrawBoxColor(HealthCar[playerid], 0);
	TextDrawSetShadow(HealthCar[playerid], 0);
	TextDrawSetOutline(HealthCar[playerid], 1);
	TextDrawBackgroundColor(HealthCar[playerid], 51);
	TextDrawFont(HealthCar[playerid], 2);
	TextDrawSetProportional(HealthCar[playerid], 1);
3)Кидаю свой паблик OnPlayerStateChange
PHP:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	new carid = GetPlayerVehicleID(playerid);
	if(newstate == PLAYER_STATE_DRIVER)
	{
	    TextDrawShowForPlayer(playerid, ModelCar[playerid]);
		TextDrawShowForPlayer(playerid, SpeedCar[playerid]);
		TextDrawShowForPlayer(playerid, EngineCar[playerid]);
	 	PlayerTextDrawSetPreviewModel(playerid, ShowCar[playerid], GetVehicleModel(carid));
		PlayerTextDrawShow(playerid, ShowCar[playerid]);
		TextDrawShowForPlayer(playerid, DoorCar[playerid]);
		TextDrawShowForPlayer(playerid, FuelCar[playerid]);
		TextDrawShowForPlayer(playerid, LightCar[playerid]);
		TextDrawShowForPlayer(playerid, HealthCar[playerid]);
		TextDrawShowForPlayer(playerid, Textdraw1);
		TextDrawShowForPlayer(playerid, Textdraw0);
		TextDrawShowForPlayer(playerid, Textdraw3);
		TextDrawShowForPlayer(playerid, Textdraw11);
		TextDrawShowForPlayer(playerid, WayCar[playerid]);
//EngineState переменная заводки авто
	 }
 	else if(newstate == PLAYER_STATE_ONFOOT)
	{
        PlayerTextDrawHide(playerid, ShowCar[playerid]);
	    TextDrawHideForPlayer(playerid, ModelCar[playerid]);
	    TextDrawHideForPlayer(playerid, SpeedCar[playerid]);
	    TextDrawHideForPlayer(playerid, EngineCar[playerid]);
	    TextDrawHideForPlayer(playerid, FuelCar[playerid]);
	    TextDrawHideForPlayer(playerid, DoorCar[playerid]);
	    TextDrawHideForPlayer(playerid, LightCar[playerid]);
	    TextDrawHideForPlayer(playerid, HealthCar[playerid]);
	    TextDrawHideForPlayer(playerid, Textdraw1);
	    TextDrawHideForPlayer(playerid, Textdraw0);
		TextDrawHideForPlayer(playerid, Textdraw3);
		TextDrawHideForPlayer(playerid, Textdraw11);
		TextDrawHideForPlayer(playerid, WayCar[playerid]);
	}
	return 1;
}
4)Создадим таймер:
PHP:
TimerSpeed = SetTimer("UpdateSpedometr",120,1);
5)Создадим паблик сам:
PHP:
publics UpdateSpedometr()
{
	foreach(new i: Player)
	{
	    if(IsPlayerInAnyVehicle(i))
	    {
         	new Float: m = GetPlayerDistanceFromPoint(i, PosCar[0], PosCar[1], PosCar[2]);
			new Float: km = m / 1000.0;
			new carid = GetPlayerVehicleID(i);
         	new lockk[20];new str[30];new str2[30];new str3[30];new str4[30];new str5[30];new str6[30];new str7[30];new str8[30];
         	new Float:carhealth;new Float: HealCar2[30];new EngineVehicle[20];
			GetVehicleHealth(carid,carhealth);
	        if(EngineState[i] == 0) EngineVehicle = "~r~ENGINE";
	        else EngineVehicle = "~g~ENGINE";
	        if(lock[i] == 0) lockk = "~g~LOCK";
	        else lockk = "~r~LOCK";
         	format(str2,sizeof(str2),"~w~SPEED: ~w~%d KM/H",SpeedVehicle(i));//Speed
	        TextDrawSetString(SpeedCar[i],str2);
	        format(str6,sizeof(str6),"~w~FUEL: ~w~%d");//Fuel
	        TextDrawSetString(FuelCar[i],str6);
	        format(str3,sizeof(str3),"%s",EngineVehicle);//Engine
	        TextDrawSetString(EngineCar[i],str3);
	        format(str5,sizeof(str5),"%s",lockk);//Lock
	        TextDrawSetString(DoorCar[i],str5);
	        format(str4,sizeof(str4),"~g~LIGHT");//Light
	        TextDrawSetString(LightCar[i],str4);
          	format(str, sizeof(str), "~b~MODEL: ~w~%s", VehicleModel[GetVehicleModel(carid)-400]);//ModelCar
	        TextDrawSetString(ModelCar[i],str);
	        format(str7, sizeof(str7), "~w~Health: ~w~%s%.0f%", HealCar2, carhealth / 10);//HealthCar
	        TextDrawSetString(HealthCar[i],str7);
	        format(str8, sizeof(str8), "~w~WAY: ~w~%0.0f KM",km);
	        TextDrawSetString(WayCar[i],str8);
	    }
	}
}
6)в OnGameModeExit:
PHP:
KillTimer(TimerSpeed);
7)Обнулим переменную в OnPlayerConnect:EngineState[playerid] = 0;
8)В паблик OnPlayerStateChangee после этой строчкиTextDrawShowForPlayer(playerid, WayCar[playerid]); вставляем:
PHP:
if(EngineState[playerid] == 0)return SCM(playerid,COLOR_GREY,"Чтобы завести авто нажмите клавишу 'CTRL'");
9)Делаем скорость саму:
PHP:
stock SpeedVehicle(playerid)
{
    new Float: ST[4];
    new carid = GetPlayerVehicleID(playerid);
    if(IsPlayerInAnyVehicle(playerid))
	GetVehicleVelocity(carid,ST[0],ST[1],ST[2]);
	else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
    return floatround(ST[3]);
}
10)в public OnPlayerEnterVehicle вставляем
PHP:
GetPlayerPos(playerid, PosCar[0], PosCar[1], PosCar[2]);
Вот и всё!
Чего не хватает в комментарий
От :ay: не откажусь!
Автор:Я Aidarchik||||||||||NickName:Eduard_Bessonov
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу