Ge0Ximik
Ученик
Доброго времени суток!
Столкнулся с проблемой, что после перевода на switch дрифт счётчик просто не начинается.. (не TD, не денег, не очков), буду благодарен за помощь.
До перевода:
После перевода:
Столкнулся с проблемой, что после перевода на switch дрифт счётчик просто не начинается.. (не TD, не денег, не очков), буду благодарен за помощь.
До перевода:
PHP:
public Drift()
{
new Float:Angle1, Float:Angle2, Float:BySpeed, s[128];
new Float:Z;
new Float:X;
new Float:Ys;
new Float:SpeedX;
foreach(Player, g)
{
GetPlayerPos(g, X, Ys, Z);
SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Ys,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
Angle1 = ReturnPlayerAngle(g);
Angle2 = GetPlayerTheoreticAngle(g);
BySpeed = floatmul(SpeedX, 12);
if(GetPlayerState(g)==PLAYER_STATE_DRIVER && IsPlayerInAnyVehicle(g) && IsCar(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED)
{
if(PlayerDriftCancellation[g] > 0)
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
DriftPointsNow[g] ++;
scores[g]++;
if(IsZaezd[g] == true) ddscore[g] = DriftPointsNow[g];
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
if(DriftPointsNow[g] > 250)
{
if(PlayerDriftCancellation[g] > 0)
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
DriftPointsNow[g] += 2;
scores[g]++;
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
}
if(DriftPointsNow[g] > 600)
{
if(PlayerDriftCancellation[g] > 0)
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
DriftPointsNow[g] += 3;
scores[g]++;
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
}
if(DriftPointsNow[g] > 1200)
{
if(PlayerDriftCancellation[g] > 0)
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
DriftPointsNow[g] += 4;
scores[g]++;
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
}
if(DriftPointsNow[g] > 2000)
{
if(PlayerDriftCancellation[g] > 0)
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
DriftPointsNow[g] += 5;
scores[g]++;
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
}
}
if(scplay[g] == 1)
{
if(DriftPointsNow[g] > 0)
{
if(DriftPointsNow[g] < 250)
{
TextDrawShowForPlayer(g,Chet[g]);
format(s, sizeof(s), "+%d~y~+1", DriftPointsNow[g]);
TextDrawSetString(Chet[g], s);
}
if(DriftPointsNow[g] > 250)
{
TextDrawShowForPlayer(g,Chet[g]);
format(s, sizeof(s), "+%d~y~+2", DriftPointsNow[g]);
TextDrawSetString(Chet[g], s);
}
if(DriftPointsNow[g] > 600)
{
TextDrawShowForPlayer(g,Chet[g]);
format(s, sizeof(s), "+%d~y~+3", DriftPointsNow[g]);
TextDrawSetString(Chet[g], s);
}
if(DriftPointsNow[g] > 1200)
{
TextDrawShowForPlayer(g,Chet[g]);
format(s, sizeof(s), "+%d~y~+4", DriftPointsNow[g]);
TextDrawSetString(Chet[g], s);
}
if(DriftPointsNow[g] > 2000)
{
TextDrawShowForPlayer(g,Chet[g]);
format(s, sizeof(s), "+%d~y~+5", DriftPointsNow[g]);
TextDrawSetString(Chet[g], s);
}
}
}
SavedPos[ g ][ sX ] = X;
SavedPos[ g ][ sY ] = Ys;
SavedPos[ g ][ sZ ] = Z;
}
return 1;
}
PHP:
public Drift()
{
new Float:Angle1, Float:Angle2, Float:BySpeed, s[128];
new Float:Z,Float:X,Float:Ys,Float:SpeedX;
foreach(Player, g)
{
GetPlayerPos(g, X, Ys, Z);
SpeedX = floatsqroot(floatadd(floatadd(floatpower(floatabs(floatsub(X,SavedPos[ g ][ sX ])),2),floatpower(floatabs(floatsub(Ys,SavedPos[ g ][ sY ])),2)),floatpower(floatabs(floatsub(Z,SavedPos[ g ][ sZ ])),2)));
Angle1 = ReturnPlayerAngle(g);
Angle2 = GetPlayerTheoreticAngle(g);
BySpeed = floatmul(SpeedX, 12);
if(GetPlayerState(g)==PLAYER_STATE_DRIVER && IsPlayerInAnyVehicle(g) && IsCar(GetPlayerVehicleID(g)) && floatabs(floatsub(Angle1, Angle2)) > DRIFT_MINKAT && floatabs(floatsub(Angle1, Angle2)) < DRIFT_MAXKAT && BySpeed > DRIFT_SPEED)
{
if(PlayerDriftCancellation[g] > 0)
{
switch(DriftPointsNow[g])
{
case 0..149: DriftPointsNow[g] += 2,scores[g] += 2;
case 150..799: DriftPointsNow[g] += 3,scores[g] += 3;
case 800..2000: DriftPointsNow[g] += 4,scores[g] += 4;
default: DriftPointsNow[g] += 5,scores[g] += 5;
}
if(IsZaezd[g] == true) ddscore[g] += DriftPointsNow[g];
KillTimer(PlayerDriftCancellation[g]);
PlayerDriftCancellation[g] = 0;
PlayerDriftCancellation[g] = SetTimerEx("DriftCancellation", 2000, 0, "d", g);
return 1;
}
}
if(DriftPointsNow[g] > 0 && scplay[g] == 1)
{
switch(DriftPointsNow[g])
{
case 0..150: format(s, sizeof(s), "+%d~y~+1", DriftPointsNow[g]);
case 151..800: format(s, sizeof(s), "+%d~y~+2", DriftPointsNow[g]);
case 801..1999: format(s, sizeof(s), "+%d~y~+3", DriftPointsNow[g]);
case 2000..4000: format(s, sizeof(s), "+%d~y~+4", DriftPointsNow[g]);
default: format(s, sizeof(s), "+%d ~y~X2", DriftPointsNow[g]);
}
TextDrawShowForPlayer(g,Chet[g]),TextDrawSetString(Chet[g], s);
return 1;
}
SavedPos[ g ][ sX ] = X,SavedPos[ g ][ sY ] = Ys,SavedPos[ g ][ sZ ] = Z;
}
return 1;
}
