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

Гость stibs
Новичок
Спойлер

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 пользователей онлайн

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

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

    • Daf
      От Daf
      Здравствуйте, сливаю вам cef спидометр! 
      Автор: я
       
      pawn код
      CEF. Создайте текстовый файл с любым названием, но добавьте расширение .html. Затем вставьте в него код, который приведен ниже.
      отдельно индикаторы
      cef_execute_js(playerid, browser, "samp.updateIndicators({left: 0, right: 1, highbeam: 0})"); cef_execute_js(playerid, browser, "samp.updateIndicators({left: 0, right: 1, highbeam: 0})");