SA-MP Forums Archive
[Tutorial] Radar de velocidade [Detector/Bloqueador] - 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)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Radar de velocidade [Detector/Bloqueador] (/showthread.php?tid=195202)



Bloqueador de velocidade [BLOQUEIA CERTO LIMITE] - blackwave - 01.12.2010

Para que serve?

Serve para limitar a velocidade do players do server

CREDITOS:
Blackwave (eu)
OBS: So copiei a stock de um tutorial em inglкs, de um velocimetro. O resto, eu que fiz.

==================================================
Antes de comeзar, coloque no topo:
pawn Код:
new bool:speed_limit_is_actived = false;
#define AMARELO 0xFFFF00FF
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Agora, coloque no seu OnGameModeInit ou OnFilterScriptInit (GM e FS respectivamente), esse Text3D:
pawn Код:
public OnFilterScriptInit()
{
   Create3DTextLabel("RADAR!", AMARELO, 2046.52, 1302.56, 18.83, 100, 0); // 3D label do radar
   // 2046.52, 1302.56, 18.83 == coordenadas | 100 a distancia de que pode ser visto | 0 = Virtual world
   return 1;
}
No OnPlayerCommandText:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
   dcmd(speedon,7,cmdtext); // Ativar o comando de limite de speed
    dcmd(speedoff,8,cmdtext); // Desativar o comando de limite de speed
   return 0;
}
E, no OnPlayerUpdate:

pawn Код:
public OnPlayerUpdate(playerid)
{
   
 
    if(IsPlayerInAnyVehicle(playerid)) // Se o jogador estiver em um veiculo qualquer
    {
              if(IsPlayerInRangeOfPoint(playerid, 50, 2046.52, 1302.56, 18.83)) // Se estiver hб 50m do radar
              {
                if(speed_limit_is_actived == true) // Se o limite de velocidade estiver ativo
          {
                new str[128]; // String
        new v; v = GetPlayerVehicleID(playerid); // String v, que define o veiculo que o player estб
        new sp; sp = GetPlayerSpeed(playerid); // Obtem a velocidade do carro do player
        //format(str,sizeof(str),"KM/H: %d", sp); // Formata a string com a velocidade obtida (opcinal)

        if(sp >= 50)  // SP = Speed. Se a velocidade for igual ou maior a 50. "Pode ser mudada"
        {
         GameTextForPlayer(playerid, "~g~Limite maximo antigido ~r~@", 1000, 5); // Retorna isso
         RemovePlayerFromVehicle(playerid); // E isso(remove jogador do carro)
        }
         

       }
    }
 
  return 1;
}
   
    return 1;
}
Dps de todas as callbacks (publics), coloque isto:
pawn Код:
dcmd_speedon(playerid,params[])
{
   
      if(speed_limit_is_actived == true) return SendClientMessage(playerid, AMARELO, "Limite ja ativado");
      else
      {
         speed_limit_is_actived = true; // Ativado
         SoundForAll(1133);
         return SendClientMessageToAll(AMARELO, "@ Limite de velocidade setado para 50km/h");
      }
   }


dcmd_speedoff(playerid,params[])
{
      if(speed_limit_is_actived == false) return SendClientMessage(playerid, AMARELO, "Limite jб desativado. Ative-o antes");
      else
      {
         speed_limit_is_actived == false; // Desativado
         SoundForAll(1133);
         return SendClientMessageToAll(AMARELO, "@ Limite de velocidade desativado!");
       }
   }
}
IMPORTANTE:

Nгo se esqueзa de adicionar a stock:
pawn Код:
stock GetPlayerSpeed(playerid)
{
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid))
        GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
        else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 100.3;
    return floatround(ST[3]);
}
FIM


Re: Radar de velocidade [Detector/Bloqueador] - [Ips]Guh - 01.12.2010

Veri gude.


Re: Radar de velocidade [Detector/Bloqueador] - [Banido]HigorOliver - 01.12.2010

public OnPlayerUpdate(playerid)

Hum...........


Re: Radar de velocidade [Detector/Bloqueador] - blackwave - 01.12.2010

Quote:
Originally Posted by badio12
Посмотреть сообщение
Veri gude.
Vlws.

Quote:

public OnPlayerUpdate(playerid)

Hum...........

Pq "hum...."? coloquei GameText para nгo encher a tela com o SendClientMessage. E nгo laga, alem disso.


Re: Radar de velocidade [Detector/Bloqueador] - [Banido]HigorOliver - 01.12.2010

Isso com uma quantidade de players elevadas vai dar uma travadinha sakas ?


Re: Radar de velocidade [Detector/Bloqueador] - blackwave - 01.12.2010

Quote:
Originally Posted by [Banido]HigorOliver
Посмотреть сообщение
Isso com uma quantidade de players elevadas vai dar uma travadinha sakas ?
Sim, se fosse no game geral e com velocidade de no minimo 10km/h travaria, mas й se o jogador estiver hб 50m do radar, estiver em veiculo e com velocidade maior ou igual ao SP la, que pode ser mudada. Vc tbm pode editar, mas no OnPlayerStateChange nгo funfou aq. Ja testei e nгo trava, ja que sгo 3 condiзхes antes de retornar os valores la de tirar do veiculo e do gametext.


Re: Radar de velocidade [Detector/Bloqueador] - jonas_gabriel - 01.12.2010

legal.

coloca entre [pawn ] [/pawn ]


Re: Radar de velocidade [Detector/Bloqueador] - blackwave - 01.12.2010

Quote:
Originally Posted by jonas_gabriel
Посмотреть сообщение
legal.

coloca entre [pawn ] [/pawn ]
Vlw. Pronto.


Re: Radar de velocidade [Detector/Bloqueador] - ipsBruno - 02.12.2010

Uau Legal.
Eu criei um sistema de anti velocidade
basta buscar por 'RealRP'


Re: Radar de velocidade [Detector/Bloqueador] - Kasura - 02.12.2010

@black
Gostei atй do sistema
sу achei que daria pra fazer isso em funзгo com stock e por em 1 settimer ou CP ou atй podese usar area.
e o code ta 1 pouco leve em termos de dificuldade de programaзгo e utilidade rбpida.
mas como eu disse
Fico bom ^^