Пользователь
- Регистрация
- 11 Дек 2024
- Сообщения
- 63
- Автор темы
- #1
Хай, сливаю систему вывода, и счетчика очков дрифта. Доработать там минимум.
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);
}