[Ajuda] Radar Floodando Mensagem
#1

Olб pessoal, gostaria de saber se alguйm pode me ajudar nisso aqui, quando eu passo pelo radar em alta velocidade, ele manda vбrias mensagem, ao invйs de mandar sу uma mensagem que eu tomei a multa, como eu resolvo?

PHP Code:
BNS::UpdateRadar()
{
    new 
gstring[256];
    foreach(
Playeri)
    {
        if(
GetPlayerState(i) == PLAYER_STATE_DRIVER && !OnDuty[i] && GetVehicleModel(GetPlayerVehicleID(i)) != 510)
        {
               for(new 
ii 0ii 45ii++)
            {
                if(
IsPlayerInRangeOfPoint(i08.0RadarInfo[ii][R_X],RadarInfo[ii][R_Y],RadarInfo[ii][R_Z]))
                 {
                    if(
GetPlayerVehicleSpeed(i) > RadarInfo[ii][R_Velo])
                       {
                             
PlayerPlaySound(i11320.00.00.0);
                        
format(gstring127"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[ii][R_Velo]);
                        
SendClientMessage(i, -1gstring);
                        
PlayerInfo[i][pMultas] += 95;
                        return 
true;
                  }
                }
            }
        }
    }
     for(new 
uu 0uu 45uu++)
      {
        if(
mostrarv)
        {
            
format(gstringsizeof gstring"(( RADAR ))\nMбxima velocidade: %d km/h"RadarInfo[uu][R_Velo]);
            
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6gstring);
            
mostrarv false;
        }
        else
        {
            
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6"(( RADAR ))");
            
mostrarv true;
        }
    }
    return 
0;

Reply
#2

PHP Code:
BNS::UpdateRadar() 

    new 
gstring[256]; 
    foreach(
Playeri
    { 
        if(
GetPlayerState(i) == PLAYER_STATE_DRIVER && !OnDuty[i] && GetVehicleModel(GetPlayerVehicleID(i)) != 510
        { 
               for(new 
ii 0ii 45ii++) 
            { 
                if(
IsPlayerInRangeOfPoint(i08.0RadarInfo[ii][R_X],RadarInfo[ii][R_Y],RadarInfo[ii][R_Z])) 
                 { 
                    if(
GetPlayerVehicleSpeed(i) > RadarInfo[ii][R_Velo]) 
                       { 
                             
PlayerPlaySound(i11320.00.00.0); 
                        
format(gstring127"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[ii][R_Velo]); 
                      
                        
PlayerInfo[i][pMultas] += 95
                        return 
true
                  } 
                } 
            }
            
SendClientMessage(i, -1gstring);  
        } 
    } 
     for(new 
uu 0uu 45uu++) 
      { 
        if(
mostrarv
        { 
            
format(gstringsizeof gstring"(( RADAR ))\nMбxima velocidade: %d km/h"RadarInfo[uu][R_Velo]); 
            
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6gstring); 
            
mostrarv false
        } 
        else 
        { 
            
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6"(( RADAR ))"); 
            
mostrarv true
        } 
    } 
    return 
0

Reply
#3

Agora ferro com tudo kkk fica limpando o chat e nгo para, nem mostra a mensagem.
Reply
#4

Fiz algumas alteraзхes,veja se funciona...
PHP Code:
BNS::UpdateRadar(playerid

        new 
gstring[256]; 
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !OnDuty[playerid] && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510
        { 
            for(new 
045i++) 
            { 
                if(
IsPlayerInRangeOfPoint(playerid08.0RadarInfo[i][R_X],RadarInfo[i][R_Y],RadarInfo[i][R_Z])) 
                { 
                    if(
GetPlayerVehicleSpeed(playerid) > RadarInfo[i][R_Velo])     
                    { 
                        
PlayerPlaySound(playerid11320.00.00.0); 
                        
format(gstring127"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[ii][R_Velo]); 
                        
SendClientMessage(playerid, -1gstring); 
                        
PlayerInfo[playerid][pMultas] += 95
                        return 
true
                    } 
                } 
            } 
        } 
            
        for(new 
uu 0uu 45uu++)  
        {      
            if(
mostrarv)  
            {  
                
format(gstringsizeof gstring"(( RADAR ))\nMбxima velocidade: %d km/h"RadarInfo[uu][R_Velo]);  
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6gstring);  
                
mostrarv false;  
            }  
            else  
            {  
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6"(( RADAR ))");  
                
mostrarv true;  
            }  
        }
        
        return 
0;  

Reply
#5

Ta dando erro.
Quote:

(40040) : error 017: undefined symbol "ii"

Linha
Quote:

format(gstring, 127, "((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h", GetPlayerVehicleSpeed(i), RadarInfo[ii][R_Velo]);

Reply
#6

testa assim

PHP Code:
format(gstringsizeof(gstring), "((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[i][R_Velo]); 
Reply
#7

Foi erro meu,faz o que o rolex disse que funciona...
PHP Code:
format(gstring127"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[i][R_Velo]); 
Reply
#8

Ainda estб floodando a mensagem, serб que й por que o UpdateRadar(playerid); estб em OnPlayerUpdate(playerid) ?
Reply
#9

Em OnGameModeInit coloca :
PHP Code:
SetTimer("UpdateRadar"2*10001); 
e coloca a funзгo
PHP Code:
BNS::UpdateRadar(playerid)  
{  
        new 
gstring[256];  
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !OnDuty[playerid] && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510)  
        {  
            for(new 
045i++)  
            {  
                if(
IsPlayerInRangeOfPoint(playerid08.0RadarInfo[i][R_X],RadarInfo[i][R_Y],RadarInfo[i][R_Z]))  
                {  
                    if(
GetPlayerVehicleSpeed(playerid) > RadarInfo[i][R_Velo])      
                    {  
                        
PlayerPlaySound(playerid11320.00.00.0);  
                        
format(gstring127"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[i][R_Velo]);  
                        
SendClientMessage(playerid, -1gstring);  
                        
PlayerInfo[playerid][pMultas] += 95;  
                        return 
true;  
                    }  
                }  
            }  
        }  
             
        for(new 
uu 0uu 45uu++)   
        {       
            if(
mostrarv)   
            {   
                
format(gstringsizeof gstring"(( RADAR ))\nMбxima velocidade: %d km/h"RadarInfo[uu][R_Velo]);   
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6gstring);   
                
mostrarv false;   
            }   
            else   
            {   
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6"(( RADAR ))");   
                
mostrarv true;   
            }   
        } 
         
        return 
0;   

Veja se funciona,tira do OnPlayerUpdate.
Reply
#10

Ainda continua ;-;
Reply
#11

Vocк usou esta funзгo ?
PHP Code:
BNS::UpdateRadar(playerid)   
{   
        new 
gstring[256];   
        if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !OnDuty[playerid] && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510)   
        {   
            for(new 
045i++)   
            {   
                if(
IsPlayerInRangeOfPoint(playerid08.0RadarInfo[i][R_X],RadarInfo[i][R_Y],RadarInfo[i][R_Z]))   
                {   
                    if(
GetPlayerVehicleSpeed(playerid) > RadarInfo[i][R_Velo])       
                    {   
                        
PlayerPlaySound(playerid11320.00.00.0);   
                        
format(gstring,sizeof(gsstring) ,"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[i][R_Velo]);   
                        
SendClientMessage(playerid, -1gstring);   
                        
PlayerInfo[playerid][pMultas] += 95;   
                        return 
true;   
                    }   
                }   
            }   
        }   
              
        for(new 
uu 0uu 45uu++)    
        {        
            if(
mostrarv)    
            {    
                
format(gstringsizeof gstring"(( RADAR ))\nMбxima velocidade: %d km/h"RadarInfo[uu][R_Velo]);    
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6gstring);    
                
mostrarv false;    
            }    
            else    
            {    
                
Update3DTextLabelText(RadarInfo[uu][TextRadar],0xFFFF00F6"(( RADAR ))");    
                
mostrarv true;    
            }    
        }  
          
        return 
0;    

Reply
#12

Eu tinha esqueci de fecha o console, por isso estava floodando ainda, testei novamente e agora nгo estб aparecendo a mensagem
Reply
#13

Implemente este cуdigo,depois passe pelo radar em alta velocidade,va no console e veja se apareceu estas mensagens
pawn Code:
Player passou acima da velocidade,Executado 1,Executado 2
Cуdigo :
PHP Code:
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !OnDuty[playerid] && GetVehicleModel(GetPlayerVehicleID(playerid)) != 510)    
        {    
            for(new 
045i++)    
            {    
                if(
IsPlayerInRangeOfPoint(playerid08.0RadarInfo[i][R_X],RadarInfo[i][R_Y],RadarInfo[i][R_Z]))    
                {    
                    if(
GetPlayerVehicleSpeed(playerid) > RadarInfo[i][R_Velo])        
                    {    
                        print(
"Player passou acima da velocidade");
                        
PlayerPlaySound(playerid11320.00.00.0);    
                        
format(gstring,sizeof(gsstring) ,"((RADAR)): {B4B5B7}Vocк foi pego a {FFFFFF}%dkm/h {B4B5B7}na regiгo onde a velocidade mбxima й de {FFFFFF}%dkm/h"GetPlayerVehicleSpeed(i), RadarInfo[i][R_Velo]); 
                        print(
"Executado 1");
                        
SendClientMessage(playerid, -1gstring);    
                        print(
"Executado 2");
                        
PlayerInfo[playerid][pMultas] += 95;    
                        return 
true;    
                    }    
                }    
            }    
        } 
Reply
#14

Nгo apareceu nada.
@Edit Oxi, fui em outro e apareceu '-'
Reply
#15

Tem radar que ta funcionando e outros nгo '-'
Reply
#16

Olб,

Uma dica: Coloque a checagem do Radar no atualizador do velocнmetro do seu servidor, tornando o sistema muito mais otimizado. OBS: Caso o 'atualizador' do seu velocнmetro esteja igual a maioria (SetTimer + Looping) altere para SetTimerEx(Contagem por player) e interrompa quando o player sair do veнculo.

Quero ver quando a galera vai entender que 'SetTimer' + 'loop' para checagem de todos os players de pouco perнodo(1/2.. segundos) atrasa o processamento do servidor inteiro :/
Reply
#17

Meu velocimetro й assim SetTimer("Velocimetro", 500, 1); devo colocar assim: SetTimerEx("Velocimetro", 500, 1); ?
Reply
#18

https://sampwiki.blast.hk/wiki/SetTimerEx
Reply
#19

Eu fiz isso SetTimerEx("UpdateRadar", 500, true, "i"); e ainda continua floodando essa merda
Reply
#20

Vocк deve trabalhar com duas temporizaзхes distintas :



- Uma para detectar que o jogador passou em alta velocidade. Nesse caso use SetTimerEx a 500 ms ou menos, conforme sugerido pelo XandyMello.


- Outra para impedir que a mensagem seja repetida. Recomendo aplicar a funзгo gettime para bloquear a detecзгo se ela tiver ocorrido nos ъltimos 2 segundos.



Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)