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

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

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

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

Спидометр

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

Martin*Smith)

Новичок
Здравствуйте пользователи Pawno-info.

Сегодня я написал первый свой спидометр.
И решил поделится с вами.

Прошу строго не судить все таки первая работа.​

Вот скрин спидометра

И так преступим:

Для начала ко всем new добавляем

PHP:
#define COLOR_BORDER 0x00000AA//цвет линии
new Text:Box;//Фон спидометра
new Text:BBorder;//полоса 
new Text:TBorder; //полоса
new Text:SpeedShow[MAX_PLAYERS];// Спидометр
#define ONE_HUNDRED_MSECOND 100//обновления спидометра
new STimer[MAX_PLAYERS];//таймер
forward UpdateSpeedometr(playerid);
Далее идем в public onplayerconnect:

PHP:
	SpeedShow[playerid] = TextDrawCreate(470.000000,366.000000,"0km/h");
	TextDrawBackgroundColor(SpeedShow[playerid],COLOR_BLACK);
	TextDrawLetterSize(SpeedShow[playerid],0.399999,1.710000);
	TextDrawFont(SpeedShow[playerid],2);
	TextDrawColor(SpeedShow[playerid],COLOR_WHITE);
	TextDrawSetOutline(SpeedShow[playerid],1);
	TextDrawSetProportional(SpeedShow[playerid],1);
	TextDrawSetShadow(SpeedShow[playerid],1);
Затем в public ongamemodeini:

PHP:
	Box = TextDrawCreate(510.0, 354.0, "_");
	TextDrawUseBox(Box, 1);
	TextDrawBoxColor(Box, COLOR_BOX);
	TextDrawTextSize(Box, 0.0, 100.0);
	TextDrawLetterSize(Box, 0.0, 4.7);
	TextDrawAlignment(Box, 2);

	BBorder = TextDrawCreate(510.0,358.0,"_");
	TBorder = TextDrawCreate(510.0,393.0,"_");

	TextDrawUseBox(BBorder, 1);
	TextDrawBoxColor(BBorder, COLOR_REDL);
	TextDrawTextSize(BBorder, 0.0, 93.0);
	TextDrawLetterSize(BBorder, 0.0, -0.2);
	TextDrawAlignment(BBorder, 2);

	TextDrawUseBox(TBorder, 1);
	TextDrawBoxColor(TBorder, COLOR_REDL);
	TextDrawTextSize(TBorder, 0.0, 93.0);
	TextDrawLetterSize(TBorder, 0.0, -0.2);
	TextDrawAlignment(TBorder, 2);
Затем в public OnPlayerStateChange

PHP:
	if(newstate == 1)
	{
		KillTimer(STimer[playerid]);
		TextDrawHideForPlayer(playerid,Box);
		TextDrawHideForPlayer(playerid,LBorder);
		TextDrawHideForPlayer(playerid,RBorder);
		TextDrawHideForPlayer(playerid,BBorder);
		TextDrawHideForPlayer(playerid,TBorder);
		TextDrawHideForPlayer(playerid,SpeedShow[playerid]);
	}
	if(newstate == PLAYER_STATE_DRIVER)
	{
		STimer[playerid] = SetTimerEx("UpdateSpeedometr", ONE_HUNDRED_MSECOND, 1, "d", playerid);
		TextDrawShowForPlayer(playerid,Box);
		TextDrawShowForPlayer(playerid,LBorder);
		TextDrawShowForPlayer(playerid,RBorder);
		TextDrawShowForPlayer(playerid,BBorder);
		TextDrawShowForPlayer(playerid,TBorder);
		TextDrawShowForPlayer(playerid,SpeedShow[playerid]);
	}
И в конец мода вставляем:

PHP:
stock SpeedVehicle(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),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)) * 213.3;
return floatround(ST[3]);
}
public UpdateSpeedometr(playerid)
{
	if(GetPlayerState(playerid) == 2)
	{
		new str[64];
		format(str, sizeof(str),"%d KM/H",SpeedVehicle(playerid) / 2);
		TextDrawSetString(SpeedShow[playerid],str);
	}
	return 0;
}
Вот и все радуемся
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу