Как сделать спидометр самп
В основном, после освоения азов систем регистраций, перед новичком(который только-только начинает писать СВОИ моды), стоит задача сделать функциональный, рабочий спидометр. Чаще всего возникает вопрос «как же сделать его»? Так вот, я заметил, большинство тем содержат в себе либо текстдравы(рисунок) либо функцию, но я почти не замечал где же обучение, за что отвечает та или иная строчка. Естественно расписывать очень подробно, всегда не легко, в любом случае я постараюсь уместить всю полезную информацию в один урок.
И так, для начала, необходимо будет придумать стиль спидометра, его дизайн. Если вы раньше не знали, то спидометры и прочую красивую ерунду, рисуют пользуясь текстдравами. Так вот очень удобно «рисовать» спидометры и т.д в IpleoMax Textdraw Editor, у него понятный интерфейс, также вам не придется по долгу возится с позициями и размерами текстдравов, поищите тему на форуме!
Нарисовав спидометр, нам необходимо создать текстдравы, я выбрал весьма простой дизай для своего спидометра:
Приступим же к скриптовому исполнению задуманного!
Для начала для нарисованных текстдравов, необходимо создать переменные:
Переменные созданы, теперь создадим функции для создания самих текстдравов!
в OnGameModeInit закинем:
Теперь нам надо сделать так, чтобы игрок который сел в машину на место водителя, видел спидометр
За изменение позиции игрока относительно штата, отвечает паблик OnPlayerStateChange, закинем код туда:
if(newstate == PLAYER_STATE_DRIVER)
<
if(!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;
>
SamPawno
Спидометр
Описание: Готовые решения скриптов, filterScript
Модератор: SJplayer
#1 LILUS » 6 ноября 2014, 21:06
new Text : Speed [ MAX_PLAYERS ][ 3 ];
public OnPlayerUpdate ( playerid )
<
if( GetPlayerState ( playerid ) == 2 )
<
SetSpeedDel ( playerid );
SetSpeedPok ( playerid );
>
return 1 ;
>
stock SetSpeedDel ( playerid )
<
switch( SpeedVehicle ( playerid ))
<
case 0..9 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
I» );
case 10..14 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
II» );
case 15..19 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
III» );
case 20..24 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIII» );
case 25..29 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIII» );
case 30..34 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIII» );
case 35..39 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIII» );
case 40..44 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIII» );
case 45..49 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIII» );
case 50..59 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIII» );
case 60..64 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIII» );
case 65..69 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIII» );
case 70..79 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIII» );
case 80..89 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIII» );
case 90..99 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIII» );
case 100..109 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIII» );
case 110..119 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIII» );
case 120..129 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIII» );
case 130..139 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIII» );
case 140..149 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIII» );
case 150..164 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIII» );
case 165..174 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIII» );
case 175..189 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIII» );
case 190..199 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIII» );
case 200..209 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIIII» );
case 210..219 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIIIII» );
case 220..229 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIIIIII» );
case 230..239 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIIIIIII» );
case 240..249 : TextDrawSetString ( Speed [ playerid ][ 0 ], «
IIIIIIIIIIIIIIIIIIIIIIIIIIIII» );
default: TextDrawSetString ( Speed [ playerid ][ 0 ], «
Как сделать спидометр самп
Форум » Pawno программирование SAMP » Уроки | FAQ » [Урок] Система спидометра [Samp-Rp Textdraw] |
[Урок] Система спидометра [Samp-Rp Textdraw]
__NEW__ | Дата: Пятница, 29.07.2016, 00:28 | Сообщение # 1 | ||
Для начала ко всем new Далее в OnGameModeInit 200?’200px’:»+(this.scrollHeight+5)+’px’);»> SpeedForServer[0] = TextDrawCreate(345.000, 381.000, «_»); SpeedForServer[1] = TextDrawCreate(390.000, 396.000, «KM/H»); SpeedForServer[2] = TextDrawCreate(475.000, 389.000, «FUEL»); Далее в OnPlayerConnect 200?’200px’:»+(this.scrollHeight+5)+’px’);»> SpeedForPlayer[playerid][0] = CreatePlayerTextDraw(playerid, 358.000, 395.000, «_»); SpeedForPlayer[playerid][1] = CreatePlayerTextDraw(playerid, 441.000, 391.000, « 50″); SpeedForPlayer[playerid][2] = CreatePlayerTextDraw(playerid, 450.000, 404.000, «Unlock»); Далее если у вас нету stock для проверки скорости автомобиля то ко всем stock Как сделать спидометр самп
[CLEO] Как сделать Спидометр | |||
|