[Ajuda] Verificar velocidade veнculo
#1

Fala galera, precisa da ajuda de vocкs, como posso verificar uma velocidade de um veнculo ? jб tenho uma estrutura, ele passa por um determinado local, e se estiver passando de uma certa velocidade, irei aplicar funзхes como perda de dinheiro ou nivel de procurado, mas a questгo й, preciso verificar a velocidade dele em 120 km, se ele passar disso no caso eu iria aplicar as funзхes ... um sistema de radar bem simples que eu tenho.

Код:
if(IsPlayerInRangeOfPoint(playerid, 25.0, 1073.8452,-1846.3025,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1322.3062,-1737.6947,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1437.9358,-1737.6543,13.5469)
	|| IsPlayerInRangeOfPoint(playerid, 25.0, 1524.0229,-1601.5702,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1815.6035,-1669.0353,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1996.7695,-1455.2034,13.5547))
	{
		if(IsPlayerInAnyVehicle(playerid))
		{
			SetPlayerWantedLevel(playerid, 1);
			SendClientMessage(playerid,0xAA3333AA,"Vocк passou acima da velocidade em um radar. E foi gerada uma multa!");
			SendClientMessage(playerid,0xFF66FFAA,"Perdeu a carteira otario :)");
		}
	}
Reply
#2

Tira sua base dai


Quote:

public Radar(playerid)
{
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X, Float:Y, Float:Z, Float:Speed;
GetVehicleVelocity(GetPlayerVehicleID(playerid), X, Y, Z);
Speed = floatmul(floatsqroot(floatadd(floatadd(floatpower( X, 2), floatpower(Y, 2)), floatpower(Z, 2))), 100.0);
new Float:vcarro;
GetVehicleHealth(GetPlayerVehicleID(playerid), vcarro);
new velocid;
velocid = floatround(Speed, floatround_floor);
if(IsPlayerInCircle(playerid, 1698.01270, -736.61951, 20) || IsPlayerInCircle(playerid, 1348.89185, -1437.88037,20) || IsPlayerInCircle(playerid, 1207.30078, -1706.53113,20) || IsPlayerInCircle(playerid,-121.80331, -1204.59814,20) || IsPlayerInCircle(playerid,-1654.15955, 2730.46631,20) || IsPlayerInCircle(playerid, 1217.35876, 1689.29993, 20) || IsPlayerInCircle(playerid, 877.14832, 2617.93750,20) || IsPlayerInCircle(playerid, -2681.44043, 1697.19482,20)
|| IsPlayerInCircle(playerid,521.51068, -1722.01721,20) || IsPlayerInCircle(playerid,884.85620, -1389.45581,20) || IsPlayerInCircle(playerid, 1698.01270, -736.61951, 20) || IsPlayerInCircle(playerid, 356.64810, -1376.79541,20) || IsPlayerInCircle(playerid, -152.74860, -1482.63660,20) || IsPlayerInCircle(playerid, -1093.93665, -2857.70215,20) || IsPlayerInCircle(playerid, -2887.01465, -1030.04370,20) || IsPlayerInCircle(playerid, -845.09442, -1045.57422,20)
|| IsPlayerInCircle(playerid,-1817.13293, 206.84985,20) || IsPlayerInCircle(playerid,-379.07733, 2708.18726,20) || IsPlayerInCircle(playerid,2137.04468, 2019.77856,20) || IsPlayerInCircle(playerid,370.2837,1497.6050,20) || IsPlayerInCircle(playerid,-628.94098, 651.85773,20) || IsPlayerInCircle(playerid,-167.75929, 367.75211,20) || IsPlayerInCircle(playerid,-708.56897, -1471.71875,20) || IsPlayerInCircle(playerid,520.20801, 473.19461,20) || IsPlayerInCircle(playerid,-1663.99243, -1636.30969,20)){
if(velocid > 95){
if(aradar[playerid] == 0){
SendClientMessage(playerid,Vermelho,"============= =============================> Radar <==========================================");
TextDrawShowForPlayer(playerid, Flash);
PlayerPlaySound(playerid,1132,0.0,0.0,0.0);
format(gstring, 128,"| RADAR | Velocidade Registrada: %iKm/h",velocid);
SendClientMessage(playerid,Amarelo,gstring);
SendClientMessage(playerid,Branco,"| INFO | Vocк foi pego(a) no radar,por estar acima do limite permitido(85KM/h)");
SendClientMessage(playerid,Branco,"| INFO | Portanto,vocк foi multado em {1CEB00}$500, {FFFFFF}Para pagar vб atй o Detran de LV!");
format(gstring, 128,"| INFO | No total,vocк tem %d Multas",dini_Int(filena(playerid),"Multas")+1);
SendClientMessage(playerid,Branco,gstring);
SetTimerEx("flex", 1000, false, "i", playerid);
SendClientMessage(playerid,Branco,"| INFO | Ao completar {FF0000}6 multas {FFFFFF}vocк perdera sua habilitaзгo terrestre e pagarб {1CEB00}$6.000!");
dini_IntSet(filena(playerid), "Multas",dini_Int(filena(playerid),"Multas")+1 );
if(dini_Int(filena(playerid),"Multas") >= 6){
PlayerInfo[playerid][pHabTerrestre] = 0;
dini_IntSet(filena(playerid),"SaldoBancario",dini_ Int(filena(playerid),"SaldoBancario")-6000);
dini_IntSet(filena(playerid),"Multas",0);
SendClientMessage(playerid,Branco,"| INFO | Vocк completou {FF0000}6 multas {FFFFFF}fsem pagar, perdeu sua habilitaзгo e pagou {1CEB00}$6.000!");
}
SendClientMessage(playerid,Vermelho,"~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~> Radar <~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
aradar[playerid] = 1;
}
} else {
if(aradar[playerid] == 0){
GameTextForPlayer(playerid, "~r~RADAR", 3000, 3);
format(gstring, 256,"| RADAR | Velocidade Registrada: %iKm/h",velocid);
SendClientMessage(playerid,Amarelo,gstring);
aradar[playerid] = 1;
}
}
} else aradar[playerid] = 0;
}
}

Reply
#3

Quote:
Originally Posted by VinteDois
Посмотреть сообщение
Tira sua base dai
essa do los cracudos nгo funciona na minha, jб tentei adaptar mas .... queria simplificar ela, deixar a verificaзгo de velocidade mais a aзгo da multa e de seta estrelas, sу isso, passando em determinado local й claro .
Reply
#4

No final do gm coloca esse stock...

Код:
stock GetPlayerSpeedEx(playerid)
{
	new Float:ST[4];
    GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    if(GetVehicleType(GetVehicleModel(GetPlayerVehicleID(playerid))) == VEHICLE_TYPE_BIKE) ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100;
    else ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 200;
	new Veloc5 = floatround(ST[3]);
    return Veloc5;
}
Com isso sua funзгo fica assim...

Код:
if(IsPlayerInRangeOfPoint(playerid, 25.0, 1073.8452,-1846.3025,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1322.3062,-1737.6947,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1437.9358,-1737.6543,13.5469)
|| IsPlayerInRangeOfPoint(playerid, 25.0, 1524.0229,-1601.5702,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1815.6035,-1669.0353,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1996.7695,-1455.2034,13.5547))
{
	if(IsPlayerInAnyVehicle(playerid))
	{
		if(GetPlayerSpeedEx(playerid) > velocidade maxima que voce quiser)
		{
			SetPlayerWantedLevel(playerid, 1);
			SendClientMessage(playerid,0xAA3333AA,"Vocк passou acima da velocidade em um radar. E foi gerada uma multa!");
			SendClientMessage(playerid,0xFF66FFAA,"Perdeu a carteira otario :)");
		}
	}
}
Reply
#5

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
No final do gm coloca esse stock...

Код:
stock GetPlayerSpeedEx(playerid)
{
	new Float:ST[4];
    GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    if(GetVehicleType(GetVehicleModel(GetPlayerVehicleID(playerid))) == VEHICLE_TYPE_BIKE) ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100;
    else ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 200;
	new Veloc5 = floatround(ST[3]);
    return Veloc5;
}
Com isso sua funзгo fica assim...

Код:
if(IsPlayerInRangeOfPoint(playerid, 25.0, 1073.8452,-1846.3025,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1322.3062,-1737.6947,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1437.9358,-1737.6543,13.5469)
|| IsPlayerInRangeOfPoint(playerid, 25.0, 1524.0229,-1601.5702,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1815.6035,-1669.0353,13.5469) || IsPlayerInRangeOfPoint(playerid, 25.0, 1996.7695,-1455.2034,13.5547))
{
	if(IsPlayerInAnyVehicle(playerid))
	{
		if(GetPlayerSpeedEx(playerid) > velocidade maxima que voce quiser)
		{
			SetPlayerWantedLevel(playerid, 1);
			SendClientMessage(playerid,0xAA3333AA,"Vocк passou acima da velocidade em um radar. E foi gerada uma multa!");
			SendClientMessage(playerid,0xFF66FFAA,"Perdeu a carteira otario :)");
		}
	}
}
Deu dois erros amigo :

Код:
C:\Users\anjos\Desktop\l - (105003) : error 021: symbol already defined: "GetPlayerSpeedEx"
C:\Users\anjos\Desktop\l - (105006) : error 017: undefined symbol "VEHICLE_TYPE_BIKE"
Reply
#6

Й verdade, foi mal...

Muda de "GetPlayerSpeedEx" pra "GetPlayerSpeedKM"....

E substitui o stock que mandei anteriormente por esse aqui...

Код:
stock GetPlayerSpeedKM(playerid)
{
	new Float:ST[4], model = GetVehicleModel(GetPlayerVehicleID(playerid));
    GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    if(model == 510 || model == 481 || model == 509) ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100;
    else ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 200;
	new Veloc5 = floatround(ST[3]);
    return Veloc5;
}
Reply
#7

Cheguei a este cуdigo, porйm esta dando erros, alguйm poderia me ajudar a arrumar ?
Код:
public radar(playerid)
{
   if(IsPlayerInRangeOfPoint(playerid, 1698.01270, -736.61951, 49.62677) ||  IsPlayerInRangeOfPoint(playerid, 1348.89185, -1437.88037, 12.54232) ||  IsPlayerInRangeOfPoint(playerid, -121.80331, -1204.59814, 2.15627) || IsPlayerInRangeOfPoint(playerid,-2681.44043, 1697.19482, 66.84026)  || IsPlayerInRangeOfPoint(playerid,877.14832, 2617.93750, 9.90908)   || IsPlayerInRangeOfPoint(playerid,  520.20801, 473.19461, 17.91820) || IsPlayerInRangeOfPoint(playerid, -628.94098, 651.85773, 15.95270)   || IsPlayerInRangeOfPoint(playerid,-1093.93665, -2857.70215, 66.70730)
   if(IsPlayerInRangeOfPoint(playerid,1207.30078, -1706.53113, 12.37581) || IsPlayerInRangeOfPoint(playerid,356.64810, -1376.79541, 13.34579)    || IsPlayerInRangeOfPoint(playerid,  -845.09442, -1045.57422, 88.33936)||  IsPlayerInRangeOfPoint(playerid, -1654.15955, 2730.46631, 58.96183)||  IsPlayerInRangeOfPoint(playerid,1217.35876, 1689.29993, 5.28598) ||  IsPlayerInRangeOfPoint(playerid,366.77060, 1499.16675, 8.87369)  || IsPlayerInRangeOfPoint(playerid, -708.56897, -1471.71875, 57.91850) || IsPlayerInRangeOfPoint(playerid,  -2887.01465, -1030.04370, 8.65030)
   if(IsPlayerInRangeOfPoint(playerid,884.85620, -1389.45581, 12.26654)  || IsPlayerInRangeOfPoint(playerid,521.51068, -1722.01721, 12.01468)    || IsPlayerInRangeOfPoint(playerid, -1817.13293, 206.84985, 14.10623)  || IsPlayerInRangeOfPoint(playerid,-379.07733, 2708.18726, 62.04369)   || IsPlayerInRangeOfPoint(playerid,2137.04468, 2019.77856, 9.88758)  || IsPlayerInRangeOfPoint(playerid,-167.75929, 367.75211, 11.06930)  || IsPlayerInRangeOfPoint(playerid,-152.74860, -1482.63660, 11.75090)  || IsPlayerInRangeOfPoint(playerid,-1663.99243, -1636.30969, 35.44080))
   {

			TextDrawShowForPlayer(playerid, Flash);
			PlayerPlaySound(playerid,1132,0.0,0.0,0.0);
			GiveDinheiro(playerid, -300);
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
			SendClientMessage(playerid,0xAA3333AA," | Radares | Vocк passou acima da velocidade em um radar. E foi multado(a) por 300R$!");
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		}


	if(IsPlayerInAnyVehicle(playerid))
	{



  if(GetPlayerVehicleSpeed(playerid) > 120)
		{

    return 1;
}
Reply
#8

up
Reply
#9

Код:
public radar(playerid)
{
   if(IsPlayerInRangeOfPoint(playerid, 1698.01270, -736.61951, 49.62677) ||  IsPlayerInRangeOfPoint(playerid, 1348.89185, -1437.88037, 12.54232) ||  IsPlayerInRangeOfPoint(playerid, -121.80331, -1204.59814, 2.15627) || IsPlayerInRangeOfPoint(playerid,-2681.44043, 1697.19482, 66.84026)  || IsPlayerInRangeOfPoint(playerid,877.14832, 2617.93750, 9.90908)   || IsPlayerInRangeOfPoint(playerid,  520.20801, 473.19461, 17.91820) || IsPlayerInRangeOfPoint(playerid, -628.94098, 651.85773, 15.95270)   || IsPlayerInRangeOfPoint(playerid,-1093.93665, -2857.70215, 66.70730)
   if(IsPlayerInRangeOfPoint(playerid,1207.30078, -1706.53113, 12.37581) || IsPlayerInRangeOfPoint(playerid,356.64810, -1376.79541, 13.34579)    || IsPlayerInRangeOfPoint(playerid,  -845.09442, -1045.57422, 88.33936)||  IsPlayerInRangeOfPoint(playerid, -1654.15955, 2730.46631, 58.96183)||  IsPlayerInRangeOfPoint(playerid,1217.35876, 1689.29993, 5.28598) ||  IsPlayerInRangeOfPoint(playerid,366.77060, 1499.16675, 8.87369)  || IsPlayerInRangeOfPoint(playerid, -708.56897, -1471.71875, 57.91850) || IsPlayerInRangeOfPoint(playerid,  -2887.01465, -1030.04370, 8.65030)
   if(IsPlayerInRangeOfPoint(playerid,884.85620, -1389.45581, 12.26654)  || IsPlayerInRangeOfPoint(playerid,521.51068, -1722.01721, 12.01468)    || IsPlayerInRangeOfPoint(playerid, -1817.13293, 206.84985, 14.10623)  || IsPlayerInRangeOfPoint(playerid,-379.07733, 2708.18726, 62.04369)   || IsPlayerInRangeOfPoint(playerid,2137.04468, 2019.77856, 9.88758)  || IsPlayerInRangeOfPoint(playerid,-167.75929, 367.75211, 11.06930)  || IsPlayerInRangeOfPoint(playerid,-152.74860, -1482.63660, 11.75090)  || IsPlayerInRangeOfPoint(playerid,-1663.99243, -1636.30969, 35.44080))
   {
		if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSpeed(playerid) > 120)
		{
			TextDrawShowForPlayer(playerid, Flash);
			PlayerPlaySound(playerid,1132,0.0,0.0,0.0);
			GiveDinheiro(playerid, -300);
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
			SendClientMessage(playerid,0xAA3333AA," | Radares | Vocк passou acima da velocidade em um radar. E foi multado(a) por 300R$!");
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		}
	}
    return 1;
}
Reply
#10

Quote:
Originally Posted by JeffSantos2
Посмотреть сообщение
Код:
public radar(playerid)
{
   if(IsPlayerInRangeOfPoint(playerid, 1698.01270, -736.61951, 49.62677) ||  IsPlayerInRangeOfPoint(playerid, 1348.89185, -1437.88037, 12.54232) ||  IsPlayerInRangeOfPoint(playerid, -121.80331, -1204.59814, 2.15627) || IsPlayerInRangeOfPoint(playerid,-2681.44043, 1697.19482, 66.84026)  || IsPlayerInRangeOfPoint(playerid,877.14832, 2617.93750, 9.90908)   || IsPlayerInRangeOfPoint(playerid,  520.20801, 473.19461, 17.91820) || IsPlayerInRangeOfPoint(playerid, -628.94098, 651.85773, 15.95270)   || IsPlayerInRangeOfPoint(playerid,-1093.93665, -2857.70215, 66.70730)
   if(IsPlayerInRangeOfPoint(playerid,1207.30078, -1706.53113, 12.37581) || IsPlayerInRangeOfPoint(playerid,356.64810, -1376.79541, 13.34579)    || IsPlayerInRangeOfPoint(playerid,  -845.09442, -1045.57422, 88.33936)||  IsPlayerInRangeOfPoint(playerid, -1654.15955, 2730.46631, 58.96183)||  IsPlayerInRangeOfPoint(playerid,1217.35876, 1689.29993, 5.28598) ||  IsPlayerInRangeOfPoint(playerid,366.77060, 1499.16675, 8.87369)  || IsPlayerInRangeOfPoint(playerid, -708.56897, -1471.71875, 57.91850) || IsPlayerInRangeOfPoint(playerid,  -2887.01465, -1030.04370, 8.65030)
   if(IsPlayerInRangeOfPoint(playerid,884.85620, -1389.45581, 12.26654)  || IsPlayerInRangeOfPoint(playerid,521.51068, -1722.01721, 12.01468)    || IsPlayerInRangeOfPoint(playerid, -1817.13293, 206.84985, 14.10623)  || IsPlayerInRangeOfPoint(playerid,-379.07733, 2708.18726, 62.04369)   || IsPlayerInRangeOfPoint(playerid,2137.04468, 2019.77856, 9.88758)  || IsPlayerInRangeOfPoint(playerid,-167.75929, 367.75211, 11.06930)  || IsPlayerInRangeOfPoint(playerid,-152.74860, -1482.63660, 11.75090)  || IsPlayerInRangeOfPoint(playerid,-1663.99243, -1636.30969, 35.44080))
   {
		if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSpeed(playerid) > 120)
		{
			TextDrawShowForPlayer(playerid, Flash);
			PlayerPlaySound(playerid,1132,0.0,0.0,0.0);
			GiveDinheiro(playerid, -300);
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
			SendClientMessage(playerid,0xAA3333AA," | Radares | Vocк passou acima da velocidade em um radar. E foi multado(a) por 300R$!");
			SendClientMessage(playerid,0xAA3333AA,"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		}
	}
    return 1;
}
Deu alguns erros com o If
Код:
C:\Users\anjos\Desktop\l -  : error 017: undefined symbol "IsPlayerInR"
C:\Users\anjos\Desktop\l - : error 017: undefined symbol "angeOfPoint"
C:\Users\anjos\Desktop\l - : error 001: expected token: ";", but found "if"
C:\Users\anjos\Desktop\l - : warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l - : warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l -: warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l - : warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l - : warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l - : warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l -  warning 202: number of arguments does not match definition
C:\Users\anjos\Desktop\l (28791) : error 017: undefined symbol "IsPlayerInR"
C:\Users\anjos\Desktop\l : error 017: undefined symbol "angeOfPoint"
C:\Users\anjos\Desktop\l -  invalid expression, assumed zero
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)