3 posts in this topic

Спойлер

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

Share this post


Link to post
Share on other sites

взял себе

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • warrion4ik
      By warrion4ik
      При телепорте по метке она тепает под текстуры и приходится перетелепортироваться, как это можно исправить?
      Видео: https://youtu.be/FLjer8lfGc0
    • glvde.
      By glvde.


      Просмотр файла Aurora RP (доработка)
      Хранение данных (версия MySQL): R41-3.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65264.
      Анти-чит: Nexius-AC.

      Под доработку взята версия Aurora за декабрь 2018.
      Автор данного мода: oscar_floyd.
      Автор данной доработки: GLADE (я).

      На доработку мода ушло около одного месяца.

      Что было сделано:
       

      Так же, начал делать инвентарь (copy by Aurora), но так и не доделал.

      Дополнительные скриншоты:
       


      Не исключаю, что есть ещё баги.
      Спасибо за внимание.
      Добавил glvde. Добавлено 21.04.2020 Категория Моды Автор oscar_floyd