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

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

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

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

Простой спидометр

Статус
В этой теме нельзя размещать новые ответы.
[HR][/HR]
Привет всем уважаемые друзья.
Сегодня я решил испытать свои навыки Pawn на такой штуке как TextDraw.
И так что же получилось
​
[HR][/HR]
[HR][/HR]
[HR][/HR]

Спидометр очень прост да,но это все что мне сегодня далось может кто поставит на DM сервер :)​


К всем NEW

PHP:
new Text:S[MAX_PLAYERS];
new Text:F[MAX_PLAYERS];
new str1[10],str2[10];
new spedtimer;
Далее в public OnPlayerConnect(playerid)

PHP:
S[playerid] = TextDrawCreate(517.000000, 384.000000, "_");
    TextDrawBackgroundColor(S[playerid], 255);
    TextDrawFont(S[playerid], 1);
    TextDrawLetterSize(S[playerid], 0.470000, 1.400000);
    TextDrawColor(S[playerid], -1);
    TextDrawSetOutline(S[playerid], 0);
    TextDrawSetProportional(S[playerid], 1);
    TextDrawSetSelectable(S[playerid], 0);

    F[playerid] = TextDrawCreate(516.000000, 400.000000, "_");
    TextDrawBackgroundColor(F[playerid], 255);
    TextDrawFont(F[playerid], 1);
    TextDrawLetterSize(F[playerid], 0.480000, 1.100000);
    TextDrawColor(F[playerid], -1);
    TextDrawSetOutline(F[playerid], 0);
    TextDrawSetProportional(F[playerid], 1);
    TextDrawSetSelectable(F[playerid], 0);
Дальше идем в public OnGameModeInit()

PHP:
spedtimer = SetTimer("UpdateSpeedometrr", 1000, 1);
В public OnGameModeExit()

PHP:
KillTimer(spedtimer);
После в public OnPlayerStateChange(playerid, newstate, oldstate)

PHP:
new tacha = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
        if(PlayerRacing[playerid] == 0)
         {
             if(!IsAPlane(tacha) && !IsABoat(tacha) && !IsANoSpeed(tacha))
            {
                  TextDrawShowForPlayer(playerid,S[playerid]);
                  TextDrawShowForPlayer(playerid,F[playerid]);
            }
        }
    }
    else if(newstate == PLAYER_STATE_ONFOOT)
    {
         if(!IsAPlane(tacha) && !IsABoat(tacha) && !IsANoSpeed(tacha))
        {
            TextDrawHideForPlayer(playerid,S[playerid]);
            TextDrawHideForPlayer(playerid,F[playerid]);
        }
    }
И создадим public "public UpdateSpeedometr()"

PHP:
forward UpdateSpeedometr();
public UpdateSpeedometr()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerInAnyVehicle(i))
        {
            new string[128];
            new vehs[100];
            new vehicleid = GetPlayerVehicleID(i);
            format(str1, sizeof(str1), "~w~SPEED: ~g~%d", SpeedVehicle(i) / 2);
            format(str2, sizeof(str2), "~w~FUEL: ~g~%s%.0f", vehs,Fuell[GetPlayerVehicleID(i)]);
            if(!IsAPlane(vehicleid) && !IsABoat(vehicleid) && !IsANoSpeed(vehicleid))
            {
                if(SpeedVehicle(i) != 0)
                {
                    Fuell[vehicleid] -= 0.0050;
                }
            }
            TextDrawSetString(S[i],str1);
            TextDrawSetString(F[i],str2);
        }
    }
}
[HR][/HR]
Вот и все спидометр готов,с вами были Узбагоительное автор я.​
[HR][/HR]

Ах да еще забыл,если у вас чистый new.pwn и не разу не делался спидометр то добавьте следующие.

К всем new


К всем new

PHP:
new PlayerRacing[MAX_PLAYERS];
И в конец мода

PHP:
stock IsAPlane(carid){switch(GetVehicleModel(carid)){case 592,577,511,512,593,520,553,476,519,460,513,548,417,487,488,497,563,447,469:return true;}return false;}
stock BezBenzacar(carid){switch(GetVehicleModel(carid)){case 462,510,481,509:return true;}return false;}
stock IsANoSpeed(carid){switch(GetVehicleModel(carid)){case 441,448,449,450,462,464,465,481,501,509,510,537,538,564,569,570,590,591,594,606,607,608,610,611:return true;}return false;}
stock IsABoat(carid){switch(GetVehicleModel(carid)){case 472,473,493,595,484,430,452..454,446:return true;}return false;}
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]);
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу