Гость stibs

Спидометр

В теме 5 сообщений

Спойлер

b896baa12061.png

При желании спидометр можно будет перевести на русский язык, однако при этом обязательно использование плагина CRP, иначе русские буквы просто не появятся! 

Перейдем к установке текстдрава и самого спидометра. 


Ко всем new: 

Спойлер

new Text:SBox;
new Text:SBox1;
new PlayerText:CarSpeed[MAX_PLAYERS];
new PlayerText:CarFuel[MAX_PLAYERS];
new PlayerText:CarMilliage[MAX_PLAYERS];
new PlayerText:CarLights[MAX_PLAYERS];
new PlayerText:CarEngine[MAX_PLAYERS];
new SpeedTimer[MAX_PLAYERS]; // таймер для спидометра
num vInfo
{
        vEngine,
        Float:vFuel,
        Float:vMilliage,
        vLights,
        Float:vPosx,Float:vPosy,Float:vPosz
};
new VehicleInfo[MAX_VEHICLES][vInfo];

 

В OnGameModeInit: 
 

Спойлер

SBox = TextDrawCreate(626.000000, 384.540008, "usebox");
TextDrawLetterSize(SBox, 0.000000, 5.905555);
TextDrawTextSize(SBox, 430.799987, 0.000000);
TextDrawAlignment(SBox, 1);
TextDrawColor(SBox, 0);
TextDrawUseBox(SBox, true);
TextDrawBoxColor(SBox, 102);
TextDrawSetShadow(SBox, 0);
TextDrawSetOutline(SBox, 0);
TextDrawFont(SBox, 0);

SBox1 = TextDrawCreate(601.875000, 383.250061, "LD_SPAC:white");
TextDrawLetterSize(SBox1, 0.000000, 0.000000);
TextDrawTextSize(SBox1, 21.250000, 57.166625);
TextDrawAlignment(SBox1, 1);
TextDrawColor(SBox1, 255);
TextDrawSetShadow(SBox1, 0);
TextDrawSetOutline(SBox1, 0);
TextDrawFont(SBox1, 4);

 

В OnPlayerConnect: 
 

Спойлер

CarSpeed[playerid] = CreatePlayerTextDraw(playerid, 442.399963, 386.026580, "SPEED: 100");
PlayerTextDrawLetterSize(playerid, CarSpeed[playerid], 0.401249, 1.430832);
PlayerTextDrawAlignment(playerid, CarSpeed[playerid], 1);
PlayerTextDrawColor(playerid, CarSpeed[playerid], -1);
PlayerTextDrawSetShadow(playerid, CarSpeed[playerid], 0);
PlayerTextDrawSetOutline(playerid, CarSpeed[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, CarSpeed[playerid], 51);
PlayerTextDrawFont(playerid, CarSpeed[playerid], 1);
PlayerTextDrawSetProportional(playerid, CarSpeed[playerid], 1);

CarFuel[playerid] = CreatePlayerTextDraw(playerid, 442.149963, 401.026672, "FUEL: 1000");
PlayerTextDrawLetterSize(playerid, CarFuel[playerid], 0.401249, 1.430832);
PlayerTextDrawAlignment(playerid, CarFuel[playerid], 1);
PlayerTextDrawColor(playerid, CarFuel[playerid], -1);
PlayerTextDrawSetShadow(playerid, CarFuel[playerid], 0);
PlayerTextDrawSetOutline(playerid, CarFuel[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, CarFuel[playerid], 51);
PlayerTextDrawFont(playerid, CarFuel[playerid], 1);
PlayerTextDrawSetProportional(playerid, CarFuel[playerid], 1);

CarMilliage[playerid] = CreatePlayerTextDraw(playerid, 441.899963, 416.610015, "MILLIAGE: 10000");
PlayerTextDrawLetterSize(playerid, CarMilliage[playerid], 0.401249, 1.430832);
PlayerTextDrawAlignment(playerid, CarMilliage[playerid], 1);
PlayerTextDrawColor(playerid, CarMilliage[playerid], -1);
PlayerTextDrawSetShadow(playerid, CarMilliage[playerid], 0);
PlayerTextDrawSetOutline(playerid, CarMilliage[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, CarMilliage[playerid], 51);
PlayerTextDrawFont(playerid, CarMilliage[playerid], 1);
PlayerTextDrawSetProportional(playerid, CarMilliage[playerid], 1);

CarLights[playerid] = CreatePlayerTextDraw(playerid, 608.125000, 386.166625, "L");
PlayerTextDrawLetterSize(playerid, CarLights[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, CarLights[playerid], 1);
PlayerTextDrawColor(playerid, CarLights[playerid], -1);
PlayerTextDrawSetShadow(playerid, CarLights[playerid], 0);
PlayerTextDrawSetOutline(playerid, CarLights[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, CarLights[playerid], 51);
PlayerTextDrawFont(playerid, CarLights[playerid], 1);
PlayerTextDrawSetProportional(playerid, CarLights[playerid], 1);

CarEngine[playerid] = CreatePlayerTextDraw(playerid, 609.125000, 413.416778, "E");
PlayerTextDrawLetterSize(playerid, CarEngine[playerid], 0.449999, 1.600000);
PlayerTextDrawAlignment(playerid, CarEngine[playerid], 1);
PlayerTextDrawColor(playerid, CarEngine[playerid], -1);
PlayerTextDrawSetShadow(playerid, CarEngine[playerid], 0);
PlayerTextDrawSetOutline(playerid, CarEngine[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, CarEngine[playerid], 51);
PlayerTextDrawFont(playerid, CarEngine[playerid], 1);
PlayerTextDrawSetProportional(playerid, CarEngine[playerid], 1);

 

В 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;
}

 

В конец / середину мода создаем паблик: 

Спойлер

forward UpdateSpeed(playerid);
public UpdateSpeed(playerid)
{
        new string[256];
        new v = GetPlayerVehicleID(playerid);
        format(string,sizeof(string),"SPEED: %d",SpeedVehicle(playerid));
        PlayerTextDrawSetString(playerid, CarSpeed[playerid], string);
        format(string,sizeof(string),"FUEL: %d",floatround(VehicleInfo[v][vFuel]));
        PlayerTextDrawSetString(playerid, CarFuel[playerid], string);
        format(string,sizeof(string),"MILLIAGE: %d",floatround(VehicleInfo[v][vMilliage]));
        PlayerTextDrawSetString(playerid, CarMilliage[playerid], string);
        switch(VehicleInfo[v][vLights])
        {
            case 0: PlayerTextDrawSetString(playerid, CarLights[playerid], "~w~L");
            case 1: PlayerTextDrawSetString(playerid, CarLights[playerid], "~b~L");
        }
        if(VehicleInfo[v][vEngine]) PlayerTextDrawSetString(playerid, CarEngine[playerid], "~b~E");
        else PlayerTextDrawSetString(playerid, CarEngine[playerid],"~w~E");
        if(VehicleInfo[v][vFuel] <= 0)
        {
            VehicleInfo[v][vEngine] = 0;
            VehicleInfo[v][vFuel] = 0.0;
            SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights],0,0,0,0,0);
        }
        if(GetPlayerDistanceFromPoint(playerid, VehicleInfo[v][vPosx], VehicleInfo[v][vPosy], VehicleInfo[v][vPosz]) > 50.0)
        {
            VehicleInfo[v][vMilliage] += 0.1;
            VehicleInfo[v][vFuel] -= 0.05;
            GetPlayerPos(playerid, VehicleInfo[v][vPosx],VehicleInfo[v][vPosy],VehicleInfo[v][
vPosz]);
        }
        return 1;
}

 

В OnPlayerKeyStateChange: 

Спойлер

if(newkeys & KEY_ACTION)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        new v = GetPlayerVehicleID(playerid);
        if(!noeng(v))
        {
            if(!VehicleInfo[v][vFuel]) return 1;
            if(!VehicleInfo[v][vEngine]) VehicleInfo[v][vEngine] = 1;
            else VehicleInfo[v][vEngine] = 0;
            SetVehicleParamsEx(v, VehicleInfo[v][vEngine], VehicleInfo[v][vLights], 0, 0, 0, 0, 0);
            return 1;
        }
    }
}

 

В конец мода / ко всем стокам: 

Спойлер

stock noeng(carid)
{
        new model = GetVehicleModel(carid);
        if(model == 462||model == 448||model == 509|| model == 510||model == 481||model==468||model == 471 ||
        model == 511 || model == 512||model == 593||model == 520||model == 577||model == 476||model == 519 ||
        model == 460 || model == 513||model == 472||model==473||model == 493||model == 595 || model == 484 ||
        model == 430 || model == 453||model == 452||model == 446||model == 454 ||model == 548 ||model == 425||
        model == 417||model == 487||model == 488||model == 497||model == 563||model == 447||model == 469||model == 553) return 1;
        return 0;
}
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)) * 100.3;
    return floatround(ST[3]);
}

 

Автор: wAx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

взял себе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ранее такого не видел, простенький и оригинальный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 минут назад, Гость Гость сказал:

2013 год pawn-wiki.Мда.

ты бы ещё через 30 лет ответил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Sten Developer
      От Sten Developer
      Объясню всю ситуацию, пишу систему смерти игрока но она не работает. Решил по приколу написать туда обычный вывод текста SCM(playerid, COLOR_RED, "Вы умерли");
      Но однако после смерти текст не выводиться. Не работает абсолютно все. Кто знает как решить эту проблему?
       
    • Fpfe
      От Fpfe
      Я не могу понять в чем ошибка помогите пожалуйста
      C:\Users\Deze{s\Desktop\arzdd\gamemodes\arizonarp.pwn(50864) : error 037: invalid string (possibly non-terminated string)
      Pawn compiler 3.10.8              Copyright (c) 1997-2006, ITB CompuPhase

      1 Error.
       
      Уже почитал Что в этой строке мне просто нужно было 2 запятые поставить,Кто первый ответит тому положительный оставлю