Scr all спідометр для автомобілів - форум - втіли мрію в реальність!

Scr all спідометр для автомобілів - форум - втіли мрію в реальність!

В основному, після освоєння азів систем реєстрацій, перед новачком (який тільки-тільки починає писати СВОЇ моди), стоїть завдання зробити функціональний, робочий спідометр. Найчастіше виникає питання "як же зробити його"? Так ось, я помітив, більшість тем містять в собі або текстдрави (малюнок) або функцію, але я майже не помічав де ж навчання, за що відповідає та чи інша рядок. Природно розписувати дуже докладно, завжди нелегко, в будь-якому випадку я постараюся вмістити всю корисну інформацію в один урок.

І так, для початку, необхідно буде придумати стиль спідометра, його дизайн. Якщо ви раніше не знали, то спідометри та іншу красиву дурницю, малюють користуючись текстдравамі. Так ось дуже зручно "малювати" спідометри і т.д в IpleoMax Textdraw Editor, у нього зрозумілий інтерфейс, також вам не доведеться за службовим возиться з позиціями і розмірами текстдравов, пошукайте тему на форумі # 33;

Намалювавши спідометр, нам необхідно створити текстдрави, я вибрав дуже простий дизай для свого спідометра:

Scr all спідометр для автомобілів - форум - втіли мрію в реальність!

Приступимо ж до скриптовими виконання задуманого # 33;

Для початку для намальованих текстдравов, необхідно створити змінні:

Змінні створені, тепер створимо функції для створення самих текстдравов # 33;

в OnGameModeInit закинемо:


Тепер нам треба зробити так, щоб гравець який сів в машину на місце водія, бачив спідометр
За зміну позиції гравця щодо штату, відповідає паблік OnPlayerStateChange, закинемо код туди:

if (newstate == PLAYER_STATE_DRIVER)
if (# 33; noeng (GetPlayerVehicleID (playerid)))
new v = GetPlayerVehicleID (playerid);
VehicleInfo [v] [vFuel] = 50.0;
GetPlayerPos (playerid, VehicleInfo [v] [vPosx], VehicleInfo [v] [vPosy], VehicleInfo [v] [vPosz]);
TextDrawShowForPlayer (playerid, SBox);
TextDrawShowForPlayer (playerid, SBox1);
PlayerTextDrawShow (playerid, CarSpeed ​​[playerid]);
PlayerTextDrawShow (playerid, CarFuel [playerid]);
PlayerTextDrawShow (playerid, CarMilliage [playerid]);
PlayerTextDrawShow (playerid, CarLights [playerid]);
PlayerTextDrawShow (playerid, CarEngine [playerid]);
SpeedTimer [playerid] = SetTimerEx ( "UpdateSpeed", 200,1, "d", playerid);
return 1;
>
>
if (oldstate == PLAYER_STATE_DRIVER)
TextDrawHideForPlayer (playerid, SBox);
TextDrawHideForPlayer (playerid, SBox1);
PlayerTextDrawHide (playerid, CarSpeed ​​[playerid]);
PlayerTextDrawHide (playerid, CarFuel [playerid]);
PlayerTextDrawHide (playerid, CarMilliage [playerid]);
PlayerTextDrawHide (playerid, CarLights [playerid]);
PlayerTextDrawHide (playerid, CarEngine [playerid]);
KillTimer (SpeedTimer [playerid]);
return 1;
>

thewax