От
dragytop
Здравствуйте, тут система у меня есть дрифта она почему-то работает только если на лево дрифтить на право как будто даже системы нету
Вот сама система:
public OnPlayerUpdate(playerid) // ниже
if (!IsPlayerInAnyVehicle(playerid)) return 1;
new vehicleid = GetPlayerVehicleID(playerid);
new Float:vx, Float:vy, Float:vz, Float:speed, Float:angle, Float:movementAngle, Float:driftAngle;
if (GetTickCount() - lastUpdateTime[playerid] < 1000)
return 1;
lastUpdateTime[playerid] = GetTickCount();
GetVehicleVelocity(vehicleid, vx, vy, vz);
speed = floatsqroot(vx * vx + vy * vy) * 180.0;
GetVehicleZAngle(vehicleid, angle);
movementAngle = atan2(vy, vx);
driftAngle = floatabs(angle - movementAngle);
if (driftAngle > 180.0) driftAngle = 360.0 - driftAngle;
if (speed > 30.0 && driftAngle > 25.0 && driftAngle < 85.0)
{
new driftPoints = random(101) + 50;
DriftScore[playerid] += driftPoints;
new text[64];
format(text, sizeof(text), "~w~DRIFT: ~g~%d", DriftScore[playerid]);
GameTextForPlayer(playerid, text, 3000, 3);
KillTimer(DriftTimer[playerid]);
DriftTimer[playerid] = SetTimerEx("EndDrift", 3000, false, "d", playerid);
}
else
{
if (DriftScore[playerid] > 0 && DriftTimer[playerid] == 0)
{
DriftTimer[playerid] = SetTimerEx("EndDrift", 3000, false, "d", playerid);
}
}
return 1;
}
new DriftScore[MAX_PLAYERS]; // DRIFT SYSTEM //"дрифт очки (ИВ)"
new DriftTimer[MAX_PLAYERS]; // DRIFT SYSTEM //"время дрифта"
new lastUpdateTime[MAX_PLAYERS]; // DRIFT SYSTEM //"обновление дрифта"
forward EndDrift(playerid);
public EndDrift(playerid)
{
if (DriftScore[playerid] > 0)
{
new money = DriftScore[playerid];
PI[playerid][pCash] += money;
GameTextForPlayer(playerid, "", 500, 3);
new text[64];
format(text, sizeof(text), "~w~MONEY: ~g~+%d$", money);
GameTextForPlayer(playerid, text, 2000, 3);
DriftScore[playerid] = 0;
DriftTimer[playerid] = 0;
}
}
Буду благодарен!