Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Перевод на switch

Статус
В этой теме нельзя размещать новые ответы.

Ge0Ximik

Ученик
Доброго времени суток!
Столкнулся с проблемой, что после перевода на 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;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу