[Ajuda] Radar
#1

Bom dia seres humanos, estou hoje convocando a presenзa de todos aqui para me auxiliar em um sistema de radar
Problems: Nгo esta pegando e nao esta registrando nada.
Lembrando que eu peguei de uma base aqui do forum, mas nao me lembro do link >
PHP код:
forward Radar();
public 
Radar()
{
    new 
Float:Pos[3];
    for(new 
iGetPlayerPoolSize(); i++)
    {
        
GetPlayerPos(iPos[0], Pos[1], Pos[2]);
        
CheckRadar(iPos[0], Pos[1], Pos[2], 7.060);
    }
    return 
1;

PHP код:
stock CheckRadar(playeridFloat:rXFloat:rYFloat:rZFloat:rRadiusspeed)
{
    new 
SpeedRegistred GetVehicleSpeed(playerid), string[150], string2[150];
    if(
IsPlayerInRangeOfPoint(playeridrRadiusrXrYrZ))
    {
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            if(
SpeedRegistred speed)
            {
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou uma infraзгo de velocidade! Permitida: %d | Registrada: %d!"speedSpeedRegistred);
                
format(string2sizeof(string2), "{1E90FF}[ PB ]A multa foi automaticamente registrada e colocada em sua carteira! MULTA: %d!"SpeedRegistred*4);
                
GivePlayerMoney(playerid, -SpeedRegistred*4);
                
SendClientMessage(playerid, -1string);
                
SendClientMessage(playerid, -1string2);
            }
            else if(
SpeedRegistred <= speed )
            {
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou a velocidade de %d | Permitida: %d!"SpeedRegistredspeed);
                
SendClientMessage(playerid, -1string);
            }
        }
    }
    return 
1;
}
stock GetVehicleSpeed(playerid)
{
    new 
Float:vxFloat:vyFloat:vzFloat:vel;
    
vel GetVehicleVelocity(GetPlayerVehicleID(playerid), vxvyvz);
    
vel = (floatsqroot(((vx*vx)+(vy*vy))+(vz*vz))* 181.5);
    return 
floatround(vel);

PHP код:
no inicio
    SetTimer
("Radar"100true); 
Reply
#2

Com tanta ajuda que recebeu nгo lhe ocorreu em nenhum momento em usar PRINT ou PRINTF para ver atй onde
vai ou qual valor do GetVehicleSpeed?

Agora que fui ver o cуdigo por completo, kk vc ta pegando a posiзгo do player logo em seguida fazendo uma comparaзгo, mas isso deve ser feito em uma matriz com a posiзгo do radar.
Reply
#3

Quote:
Originally Posted by Felipealves
Посмотреть сообщение
Com tanta ajuda que recebeu nгo lhe ocorreu em nenhum momento em usar PRINT ou PRINTF para ver atй onde
vai ou qual valor do GetVehicleSpeed?

Agora que fui ver o cуdigo por completo, kk vc ta pegando a posiзгo do player logo em seguida fazendo uma comparaзгo, mas isso deve ser feito em uma matriz com a posiзгo do radar.
Me buguei agora, poderia dar um exemplo?
Reply
#4

Quote:
Originally Posted by vitinhosamp
Посмотреть сообщение
Me buguei agora, poderia dar um exemplo?
PHP код:
#define MAX_RADARS 3
// OnGamemodeInit
SetTimer("Radar"1000true);
//- array bi dimensional, tem 4 floats para qnd tu for criar os objt e ter rotaзгo...
new Float:Radars[MAX_RADARS][4] = {
    {
0.0,0.0,0.0,0.0},
    {
0.0,0.0,0.0,0.0},
    {
0.0,0.0,0.0,0.0}
};
forward Radar();
public 
Radar()

    for(new 
0GetPlayerPoolSize(); i++)
        for(new 
0MAX_RADARSr++)
                 
CheckRadar(iRadars[r][0], Radars[r][1], Radars[r][2], 7.010);
    return 
1
}  
CheckRadar(playeridFloat:rXFloat:rYFloat:rZFloat:rRadiusspeed

    new 
SpeedRegistred GetVehicleSpeed(playerid), string[150], string2[150]; 
    if(
IsPlayerInRangeOfPoint(playeridrRadiusrXrYrZ)) 
    { 
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER
        { 
            if(
SpeedRegistred speed
            { 
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou uma infraзгo de velocidade! Permitida: %d | Registrada: %d!"speedSpeedRegistred); 
                
format(string2sizeof(string2), "{1E90FF}[ PB ]A multa foi automaticamente registrada e colocada em sua carteira! MULTA: %d!"SpeedRegistred*4); 
                
GivePlayerMoney(playerid, -SpeedRegistred*4); 
                
SendClientMessage(playerid, -1string); 
                
SendClientMessage(playerid, -1string2);
            } 
            else if(
SpeedRegistred <= speed
            { 
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou a velocidade de %d | Permitida: %d!"SpeedRegistredspeed); 
                
SendClientMessage(playerid, -1string);
            } 
        } 
    }
    return 
1

GetVehicleSpeed(playerid

    new 
Float:vxFloat:vyFloat:vzFloat:vel
    
vel GetVehicleVelocity(GetPlayerVehicleID(playerid), vxvyvz); 
    
vel = (floatsqroot(((vx*vx)+(vy*vy))+(vz*vz))* 181.5); 
    return 
floatround(vel); 

Reply
#5

Deu no mesmo, nao esta pegando nada !
Reply
#6

Colocou ae posiзгo do radar? E o timer...
Reply
#7

Olб, vitinhosamp.
Coloque um debug na callback CheckRadar e veja se estб sendo chamada ao passar no radar.

PHP код:
CheckRadar(playeridFloat:rXFloat:rYFloat:rZFloat:rRadiusspeed)  
{
    
printf("%d passou no radar."playerid);
    new 
SpeedRegistred GetVehicleSpeed(playerid), string[150], string2[150];  
    if(
IsPlayerInRangeOfPoint(playeridrRadiusrXrYrZ))  
    {  
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER)  
        {  
            if(
SpeedRegistred speed)  
            {  
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou uma infraзгo de velocidade! Permitida: %d | Registrada: %d!"speedSpeedRegistred);  
                
format(string2sizeof(string2), "{1E90FF}[ PB ]A multa foi automaticamente registrada e colocada em sua carteira! MULTA: %d!"SpeedRegistred*4);  
                
GivePlayerMoney(playerid, -SpeedRegistred*4);  
                
SendClientMessage(playerid, -1string);  
                
SendClientMessage(playerid, -1string2); 
            }  
            else if(
SpeedRegistred <= speed)  
            {  
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou a velocidade de %d | Permitida: %d!"SpeedRegistredspeed);  
                
SendClientMessage(playerid, -1string); 
            }  
        }  
    } 
    return 
1;  

E outra, como vocк estб determinando os locais do radar? Isso aн estб faltando coisa...
Reply
#8

Esta definido assim!

PHP код:
new Float:Radares[1][4] =
{
    {
1212.5142,-1719.8408,13.546919.1700}
}; 
PHP код:
forward Radar();
public 
Radar()
{
    for(new 
iGetPlayerPoolSize(); i++)
    {
        for(new 
rMAX_RADARr++)
        {
            
CheckRadar(iRadares[r][0], Radares[r][1], Radares[r][2], 7.060);
        }
    }
    return 
1;

PHP код:
stock CheckRadar(playeridFloat:rXFloat:rYFloat:rZFloat:rRadiusspeed)
{
    new 
SpeedRegistred GetVehicleSpeed(playerid), string[150], string2[150];
    
printf("O player %s passou no radar!"Pname(playerid));
    if(
IsPlayerInRangeOfPoint(playeridrRadiusrXrYrZ))
    {
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            if(
SpeedRegistred speed)
            {
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou uma infraзгo de velocidade! Permitida: %d | Registrada: %d!"speedSpeedRegistred);
                
format(string2sizeof(string2), "{1E90FF}[ PB ]A multa foi automaticamente registrada e colocada em sua carteira! MULTA: %d!"SpeedRegistred*4);
                
GivePlayerMoney(playerid, -SpeedRegistred*4);
                
SendClientMessage(playerid, -1string);
                
SendClientMessage(playerid, -1string2);
            }
            else if(
SpeedRegistred <= speed )
            {
                
format(stringsizeof(string), "{1E90FF}[ PB ]O radar registrou a velocidade de %d | Permitida: %d!"SpeedRegistredspeed);
                
SendClientMessage(playerid, -1string);
            }
        }
    }
    return 
1;

a stock CheckRadar nгo e chamada!
Reply
#9

Colocou o Timer? e nгo precisa por stock, dx sem.

PHP код:
SetTimer("Radar"1000true); 
Reply
#10

Dei uma otimizada, mas mesmo assim nгo funcionou!

PHP код:
    SetTimer("Radar"500true);
forward Radar();
public 
Radar()
{
    new 
string[250], string2[250];
    for(new 
iGetPlayerPoolSize(); i++)
    {
        for(new 
rMAX_RADARr++)
        {
            if(
IsPlayerInRangeOfPoint(i7.0Radares[r][0], Radares[r][1], Radares[r][2]))
            {
                
floatround(Radares[r][3]);
                if(
GetVehicleSpeed(i) > Radares[r][3])
                {
                    if(
GetVehicleSpeed(i) > Radares[r][3])
                    {
                        
format(stringsizeof(string), "{FF0000}[ PB ]O radar registrou uma infraзгo de velocidade! Permitida: %d | Registrada %d!"Radares[r][3], GetVehicleSpeed(i));
                        
format(string2sizeof(string2), "{FF0000}[ PB ]A multa foi retiada automaticamente do seu dinheiro! Multa: %d!"GetVehicleSpeed(i)*4);
                        
GivePlayerMoney(i, -GetVehicleSpeed(i)*4);
                        
SendClientMessage(i, -1string);
                        
SendClientMessage(i, -1string2);
                    }
                    else
                    {
                        
format(stringsizeof(string), "{FF0000}[ PB ]O radar registrou %d!"GetVehicleSpeed(i));
                        
SendClientMessage(i, -1string);
                    }
                }
            }
        }
    }
    return 
1;
}
stock GetVehicleSpeed(playerid)
{
    new 
Float:vxFloat:vyFloat:vzFloat:vel;
    
vel GetVehicleVelocity(GetPlayerVehicleID(playerid), vxvyvz);
    
vel = (floatsqroot(((vx*vx)+(vy*vy))+(vz*vz))* 181.5);
    
printf("A velocidade do player й %d!"vel);
    return 
floatround(vel);

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)