SA-MP Forums Archive
[Ajuda] Radar - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Radar (/showthread.php?tid=661519)



Radar - vitinhosamp - 07.12.2018

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); 



Re: Radar - Felipealves - 07.12.2018

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.


Re: Radar - vitinhosamp - 07.12.2018

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?


Re: Radar - Felipealves - 07.12.2018

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); 




Re: Radar - vitinhosamp - 07.12.2018

Deu no mesmo, nao esta pegando nada !


Re: Radar - Felipealves - 07.12.2018

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


Re: Radar - ipsLuan - 07.12.2018

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...


Re: Radar - vitinhosamp - 08.12.2018

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!


Re: Radar - Felipealves - 08.12.2018

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

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



Re: Radar - vitinhosamp - 08.12.2018

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);