Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
11 Дек 2024
Сообщения
63
Хай, сливаю систему вывода, и счетчика очков дрифта. Доработать там минимум.
Pawn:
enum vehicleDrift
{
    Float:vehicleWheelDegrees,
    vehicleGlobalDriftCount,
    vehicleTempDriftCount[2], // 0 - count, 1 - x
    bool:vehicleDriftStatus,
    STREAMER_TAG_OBJECT:vehicleDriftObject[12],
    vehicleDriftTick,
    vehicleUpdateTimer
}

new VehicleDrift[MAX_VEHICLES][vehicleDrift],
    Float:playerLastDriftAngle[MAX_PLAYERS char];

stock ToggleVehicleDriftStyle(vehicleid, bool:toggle)
{
    VehicleDriftInterface(vehicleid, toggle);

    SendVehiclePacketData(vehicleid, 187, bool:toggle);
    VehicleDrift[vehicleid][vehicleDriftStatus] = toggle;
    VehicleDrift[vehicleid][vehicleUpdateTimer] = INVALID_DATA_ID;

    return SendPlayerDebugF(0, "ToggleVehicleDriftStyle( vehicleid = %d , toggle = %s )", vehicleid, toggle ? "true" : "false");
}
cmd:drr(playerid)
{
return true
};
stock VehicleDriftInterface(vehicleid, bool:toggle)
{
    if(toggle)
    {
        VehicleDrift[vehicleid][vehicleDriftObject][0] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][0], 0, "&", 120, "Webdings", 100, 0, 0xFFCD5C5C, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][0], vehicleid, 1.247000, -2.455000, 0.315000, 0.000000, 0.000000, 90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][1] = CreateDynamicObject(19478, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][1], vehicleid, 1.250000, -2.450000, 0.320000, 0.000000, 0.000000, -90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][2] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, "0", 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][2], vehicleid, 1.920000, -2.461000, 0.315000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][3] = CreateDynamicObject(19478, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][3], vehicleid, 1.250000, -2.450000, -0.069000, 0.000000, 0.000000, -90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][4] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, "000000000", 120, "Arial", 122, 1, 0xaa000000, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][4], vehicleid, 1.918000, -2.447000, 0.317000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][5] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][5], 0, "TOTAL: 000000", 120, "Arial", 60, 1, 0xffffffff, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][5], vehicleid, 1.900000, -2.461000, 0.115000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][6] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][6], 0, "@", 120, "Webdings", 80, 0, 0xFFCD5C5C, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][6], vehicleid, 1.247000, -2.455000, -0.070000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][7] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][7], 0, "TOTAL: 000000", 120, "Arial", 60, 1, 0xff606060, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][7], vehicleid, 1.900000, -2.453000, 0.115000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][8] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][8], 0, "ШИНЫ", 120, "Calibri", 50, 1, 0xFAC8BE9F, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][8], vehicleid, 1.649000, -2.461000, -0.072000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][9] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, "0.0%", 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][9], vehicleid, 2.190000, -2.461000, -0.072000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][10] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][10], 0, "x1", 120, "Calibri", 50, 1, 0xffffffff, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][10], vehicleid, 1.367000, -2.455000, 0.466000, 0.000000, 0.000000, 270.000000);
        VehicleDrift[vehicleid][vehicleDriftObject][11] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][11], 0, "{FF8000}ЗАЖМИТЕ {FFFFFF}L-SHIFT\n{FF8000}ДЛЯ ДРИФТА", 120, "Arial", 60, 1, 0xFFFFFFFF, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][11], vehicleid, 1.800000, -2.453000, -0.446000, 0.000000, 0.000000, 270.000000);
    }
    else
    {
        for(new i; i < 12; i++)
            if(IsValidDynamicObject(VehicleDrift[vehicleid][vehicleDriftObject][i]))
                DestroyDynamicObject(VehicleDrift[vehicleid][vehicleDriftObject][i]);
    }

    return SendPlayerDebugF(0, "VehicleDriftInterface( vehicleid = %d , toggle = %s )", vehicleid, toggle ? "true" : "false");
}

stock DriftVehicleResetInformation(vehicleid)
{
    VehicleDrift[vehicleid][vehicleTempDriftCount][0] = VehicleDrift[vehicleid][vehicleDriftTick] = 0;
    VehicleDrift[vehicleid][vehicleTempDriftCount][1] = 1;

    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, "0", 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, "000000000", 120, "Arial", 122, 1, 0xaa000000, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][10], 0, "x1", 120, "Calibri", 50, 1, 0xffffffff, 0, 1);

    return true;
}

stock DriftVehicleAddInformation(vehicleid)
{
    static text[30];
    VehicleDrift[vehicleid][vehicleGlobalDriftCount] = (VehicleDrift[vehicleid][vehicleTempDriftCount][0] * VehicleDrift[vehicleid][vehicleTempDriftCount][1]);

    f(text, 30, "TOTAL: %06d", VehicleDrift[vehicleid][vehicleGlobalDriftCount]);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][5], 0, text, 120, !"Arial", 60, 1, 0xffffffff, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][7], 0, text, 120, !"Arial", 60, 1, 0xff606060, 0, 2);

    return true;
}

public: OnRequestVehicleUpdateDrifting(playerid, vehicleid, Float:A)
{
    new Float:playerAngle = GetPVarFloat(playerid, !"playerDriftingAngle"),
        Float:playerDriftAngle = floatabs(playerAngle - A);

    static text[30]; text[0] = EOS;

    if(pTemp[playerid][playerPressedKeyOnDrift])
    {
        if(1.5 < playerDriftAngle < 180.0)
        {
            SendPlayerDebugF(playerid, "lastPick %d", VehicleDrift[vehicleid][vehicleDriftTick]-GetTickCount() % 10);

            if(VehicleDrift[vehicleid][vehicleDriftTick]-GetTickCount() % 20)
                VehicleDrift[vehicleid][vehicleTempDriftCount][1] += 1;

            VehicleDrift[vehicleid][vehicleTempDriftCount][0] += floatround(playerDriftAngle);

            if(VehicleDrift[vehicleid][vehicleWheelDegrees] != -1.0)
                VehicleDrift[vehicleid][vehicleWheelDegrees] += 0.6 * VehicleDrift[vehicleid][vehicleTempDriftCount][1];

            if(VehicleDrift[vehicleid][vehicleWheelDegrees] >= 100.0)
            {
                VehicleDrift[vehicleid][vehicleWheelDegrees] = -1.0;

                static vehicle_panels, vehicle_doors, vehicle_lights, vehicle_teer;
                GetVehicleDamageStatus(vehicleid, vehicle_panels, vehicle_doors, vehicle_lights, vehicle_teer);
                UpdateVehicleDamageStatus(vehicleid,vehicle_panels, vehicle_doors, vehicle_lights, 5);
            }

            f(text, 30, "%d", VehicleDrift[vehicleid][vehicleTempDriftCount][0]);
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, text, 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
            f(text, 30, "%09d", VehicleDrift[vehicleid][vehicleTempDriftCount][0]);
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, text, 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
            f(text, 30, "%01.f%s", VehicleDrift[vehicleid][vehicleWheelDegrees] == -1.0 ? 0.0 : VehicleDrift[vehicleid][vehicleWheelDegrees], VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0 ? "%" : "");
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, text, 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        }
    }
    else
    {
        if(VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0)
        {
            f(text, 30, "%01.f%s", VehicleDrift[vehicleid][vehicleWheelDegrees] == -1.0 ? 0.0 : VehicleDrift[vehicleid][vehicleWheelDegrees], VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0 ? "%" : "");
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, text, 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        }
    }

    SendPlayerDebugF(playerid, "%s -> %f , %f , %f", pTemp[playerid][playerPressedKeyOnDrift] ? "true" : "false", playerAngle, playerDriftAngle, A);

    return GetVehicleZAngle(vehicleid, A), VehicleDrift[vehicleid][vehicleUpdateTimer] = CallTimeOutFunction("OnRequestVehicleUpdateDrifting", 3000, false, "ddf", playerid, vehicleid, A);
}
 
Пользователь
Регистрация
20 Мар 2025
Сообщения
140
Хай, сливаю систему вывода, и счетчика очков дрифта. Доработать там минимум.
Pawn:
enum vehicleDrift
{
    Float:vehicleWheelDegrees,
    vehicleGlobalDriftCount,
    vehicleTempDriftCount[2], // 0 - count, 1 - x
    bool:vehicleDriftStatus,
    STREAMER_TAG_OBJECT:vehicleDriftObject[12],
    vehicleDriftTick,
    vehicleUpdateTimer
}

new VehicleDrift[MAX_VEHICLES][vehicleDrift],
    Float:playerLastDriftAngle[MAX_PLAYERS char];

stock ToggleVehicleDriftStyle(vehicleid, bool:toggle)
{
    VehicleDriftInterface(vehicleid, toggle);

    SendVehiclePacketData(vehicleid, 187, bool:toggle);
    VehicleDrift[vehicleid][vehicleDriftStatus] = toggle;
    VehicleDrift[vehicleid][vehicleUpdateTimer] = INVALID_DATA_ID;

    return SendPlayerDebugF(0, "ToggleVehicleDriftStyle( vehicleid = %d , toggle = %s )", vehicleid, toggle ? "true" : "false");
}
cmd:drr(playerid)
{
return true
};
stock VehicleDriftInterface(vehicleid, bool:toggle)
{
    if(toggle)
    {
        VehicleDrift[vehicleid][vehicleDriftObject][0] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][0], 0, "&", 120, "Webdings", 100, 0, 0xFFCD5C5C, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][0], vehicleid, 1.247000, -2.455000, 0.315000, 0.000000, 0.000000, 90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][1] = CreateDynamicObject(19478, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][1], vehicleid, 1.250000, -2.450000, 0.320000, 0.000000, 0.000000, -90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][2] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, "0", 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][2], vehicleid, 1.920000, -2.461000, 0.315000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][3] = CreateDynamicObject(19478, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][3], vehicleid, 1.250000, -2.450000, -0.069000, 0.000000, 0.000000, -90.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][4] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, "000000000", 120, "Arial", 122, 1, 0xaa000000, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][4], vehicleid, 1.918000, -2.447000, 0.317000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][5] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][5], 0, "TOTAL: 000000", 120, "Arial", 60, 1, 0xffffffff, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][5], vehicleid, 1.900000, -2.461000, 0.115000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][6] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][6], 0, "@", 120, "Webdings", 80, 0, 0xFFCD5C5C, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][6], vehicleid, 1.247000, -2.455000, -0.070000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][7] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][7], 0, "TOTAL: 000000", 120, "Arial", 60, 1, 0xff606060, 0, 2);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][7], vehicleid, 1.900000, -2.453000, 0.115000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][8] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][8], 0, "ШИНЫ", 120, "Calibri", 50, 1, 0xFAC8BE9F, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][8], vehicleid, 1.649000, -2.461000, -0.072000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][9] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, "0.0%", 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][9], vehicleid, 2.190000, -2.461000, -0.072000, 0.000000, 0.000000, 270.000000);

        VehicleDrift[vehicleid][vehicleDriftObject][10] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 0
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][10], 0, "x1", 120, "Calibri", 50, 1, 0xffffffff, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][10], vehicleid, 1.367000, -2.455000, 0.466000, 0.000000, 0.000000, 270.000000);
        VehicleDrift[vehicleid][vehicleDriftObject][11] = CreateDynamicObject(19476, 0.000000, 0.000000, -1000.000000, 0.000000, 0.000000, 0.000000, 0, 0, -1, STREAMER_OBJECT_SD, 50.0); // 1
        SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][11], 0, "{FF8000}ЗАЖМИТЕ {FFFFFF}L-SHIFT\n{FF8000}ДЛЯ ДРИФТА", 120, "Arial", 60, 1, 0xFFFFFFFF, 0, 1);
        AttachDynamicObjectToVehicle(VehicleDrift[vehicleid][vehicleDriftObject][11], vehicleid, 1.800000, -2.453000, -0.446000, 0.000000, 0.000000, 270.000000);
    }
    else
    {
        for(new i; i < 12; i++)
            if(IsValidDynamicObject(VehicleDrift[vehicleid][vehicleDriftObject][i]))
                DestroyDynamicObject(VehicleDrift[vehicleid][vehicleDriftObject][i]);
    }

    return SendPlayerDebugF(0, "VehicleDriftInterface( vehicleid = %d , toggle = %s )", vehicleid, toggle ? "true" : "false");
}

stock DriftVehicleResetInformation(vehicleid)
{
    VehicleDrift[vehicleid][vehicleTempDriftCount][0] = VehicleDrift[vehicleid][vehicleDriftTick] = 0;
    VehicleDrift[vehicleid][vehicleTempDriftCount][1] = 1;

    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, "0", 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, "000000000", 120, "Arial", 122, 1, 0xaa000000, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][10], 0, "x1", 120, "Calibri", 50, 1, 0xffffffff, 0, 1);

    return true;
}

stock DriftVehicleAddInformation(vehicleid)
{
    static text[30];
    VehicleDrift[vehicleid][vehicleGlobalDriftCount] = (VehicleDrift[vehicleid][vehicleTempDriftCount][0] * VehicleDrift[vehicleid][vehicleTempDriftCount][1]);

    f(text, 30, "TOTAL: %06d", VehicleDrift[vehicleid][vehicleGlobalDriftCount]);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][5], 0, text, 120, !"Arial", 60, 1, 0xffffffff, 0, 2);
    SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][7], 0, text, 120, !"Arial", 60, 1, 0xff606060, 0, 2);

    return true;
}

public: OnRequestVehicleUpdateDrifting(playerid, vehicleid, Float:A)
{
    new Float:playerAngle = GetPVarFloat(playerid, !"playerDriftingAngle"),
        Float:playerDriftAngle = floatabs(playerAngle - A);

    static text[30]; text[0] = EOS;

    if(pTemp[playerid][playerPressedKeyOnDrift])
    {
        if(1.5 < playerDriftAngle < 180.0)
        {
            SendPlayerDebugF(playerid, "lastPick %d", VehicleDrift[vehicleid][vehicleDriftTick]-GetTickCount() % 10);

            if(VehicleDrift[vehicleid][vehicleDriftTick]-GetTickCount() % 20)
                VehicleDrift[vehicleid][vehicleTempDriftCount][1] += 1;

            VehicleDrift[vehicleid][vehicleTempDriftCount][0] += floatround(playerDriftAngle);

            if(VehicleDrift[vehicleid][vehicleWheelDegrees] != -1.0)
                VehicleDrift[vehicleid][vehicleWheelDegrees] += 0.6 * VehicleDrift[vehicleid][vehicleTempDriftCount][1];

            if(VehicleDrift[vehicleid][vehicleWheelDegrees] >= 100.0)
            {
                VehicleDrift[vehicleid][vehicleWheelDegrees] = -1.0;

                static vehicle_panels, vehicle_doors, vehicle_lights, vehicle_teer;
                GetVehicleDamageStatus(vehicleid, vehicle_panels, vehicle_doors, vehicle_lights, vehicle_teer);
                UpdateVehicleDamageStatus(vehicleid,vehicle_panels, vehicle_doors, vehicle_lights, 5);
            }

            f(text, 30, "%d", VehicleDrift[vehicleid][vehicleTempDriftCount][0]);
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][2], 0, text, 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
            f(text, 30, "%09d", VehicleDrift[vehicleid][vehicleTempDriftCount][0]);
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][4], 0, text, 120, "Arial", 122, 1, 0xffcd5c5c, 0, 2);
            f(text, 30, "%01.f%s", VehicleDrift[vehicleid][vehicleWheelDegrees] == -1.0 ? 0.0 : VehicleDrift[vehicleid][vehicleWheelDegrees], VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0 ? "%" : "");
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, text, 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        }
    }
    else
    {
        if(VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0)
        {
            f(text, 30, "%01.f%s", VehicleDrift[vehicleid][vehicleWheelDegrees] == -1.0 ? 0.0 : VehicleDrift[vehicleid][vehicleWheelDegrees], VehicleDrift[vehicleid][vehicleWheelDegrees] > 0.0 ? "%" : "");
            SetDynamicObjectMaterialText(VehicleDrift[vehicleid][vehicleDriftObject][9], 0, text, 120, "Arial", 80, 1, 0xffadff2f, 0, 1);
        }
    }

    SendPlayerDebugF(playerid, "%s -> %f , %f , %f", pTemp[playerid][playerPressedKeyOnDrift] ? "true" : "false", playerAngle, playerDriftAngle, A);

    return GetVehicleZAngle(vehicleid, A), VehicleDrift[vehicleid][vehicleUpdateTimer] = CallTimeOutFunction("OnRequestVehicleUpdateDrifting", 3000, false, "ddf", playerid, vehicleid, A);
}
слей в след раз систему /adonate :)
 
Сверху