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);
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);
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);
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;
}
Последнее редактирование модератором:
