[FilterScript] Anti Reparador de Carro.
#1

Explicaзгo do Download.
Bom galera, eu estou finalizando minhas atividades com SA-MP jб que estou tendo uma vida um pouco mais complicada.
Sou antigo aqui no fуrum, nunca me dediquei tanto no SA-MP mas agora realmente irei largar de mгo, e estou liberando meus sistemas...


Sobre o sistema.
O sistema simplesmente consiste em uma checagem se o veнculo й reparado ou nгo, perto ou nгo de algum reparador... isso й, se for reparado fora do local ele й kikado. Sistema simples mas pode ajudar a negada
pawn Код:
#include <a_samp>
#include <zcmd>


#define SCM SendClientMessage
#define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
forward Bana(p); public Bana(p) {
    #undef Ban
    Ban(p);
    #define Ban(%0) SetTimerEx("Bana", 100, false, "i", %0)
    return 1;
}


new Danificado[MAX_PLAYERS];
new Timer4[MAX_PLAYERS];
new const Float:localreparar[][] ={
{1025.05, -1024.23, 32.1}, // LS Temple
{487.68, -1740.87, 11.13}, // LS Santa Maria
{-1420.73, 2583.37, 55.56}, // El Quebrados
{-1904.39, 284.97, 40.75}, // Wang Cars
{-2425.91, 1022.33, 50.10}, // Juniper Hill
{1975.60, 2162.16, 10.77}, // LV Redsands
{2065.38, -1831.51, 13.25}, // Idlewood
{-99.55, 1118.36, 19.44}, // Fort Carson
{721.07, -455.94, 16.04}, // Dillimore
{2393.74, 1493.01, 10.52} // LV Unused (Pyramid)
};

//
public OnFilterScriptInit(){
print("\n--------------------------------------");
print(" Anti Reparador: BY - Teles");
print("--------------------------------------\n");
SetTimer("IniciarSistema", 5000, false);
return 1;}

//
forward IniciarSistema(playerid);
public IniciarSistema(playerid){
SetTimer("VCarRepair",2000, true);
return 1;}

//
public OnFilterScriptExit(){
return 1;}

//
public OnPlayerConnect(playerid){
Danificado[playerid] = 0;
AntiDeAMX();
return 1;}

//
public OnPlayerDisconnect(playerid, reason){
Danificado[playerid] = 0;
return 1;}

//
public OnVehicleDamageStatusUpdate(vehicleid, playerid){
new carro = GetPlayerVehicleID(playerid);
new Float:HealthV,panels,doors,lights,tires;
KillTimer(Timer4[playerid]);
GetVehicleHealth(carro,HealthV);
GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
if(HealthV < 998 && HealthV > 250){
Danificado[playerid] = 1;}
Timer4[playerid] = SetTimerEx("VerificarCarro", 2000, true,"i",playerid);
if(tires == 0) return 1;
else{
Danificado[playerid] = 1;}
return 1;}

//
public OnVehicleRespray(playerid, vehicleid, color1, color2){
Danificado[playerid] = 0;
KillTimer(Timer4[playerid]);
return 1;}

//
public OnVehiclePaintjob(playerid, vehicleid, paintjobid){
Danificado[playerid] = 0;
KillTimer(Timer4[playerid]);
return 1;}

//
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){
new Float:HealthV,panels,doors,lights,tires;
GetVehicleHealth(vehicleid,HealthV);
GetVehicleDamageStatus(vehicleid,panels,doors,lights,tires);
if(HealthV < 998 && HealthV > 250){
Danificado[playerid] = 1;
Timer4[playerid] = SetTimerEx("VerificarCarro", 2000, true,"i",playerid);}
else{
Danificado[playerid] = 0;
KillTimer(Timer4[playerid]);}
if(tires == 0){
KillTimer(Timer4[playerid]);}
else{
SetTimerEx("VerificarCarro", 2000, true,"i",playerid);
Danificado[playerid] = 1;}
return 1;}

//
public OnPlayerExitVehicle(playerid, vehicleid)
{
    Danificado[playerid] = 0;
    KillTimer(Timer4[playerid]);
    return 1;
}

//
forward VerificarCarro(playerid);
public VerificarCarro(playerid){
new carro = GetPlayerVehicleID(playerid);
new Float:HealthV,panels,doors,lights,tires;
GetVehicleHealth(carro,HealthV);
GetVehicleDamageStatus(carro,panels,doors,lights,tires);
if(IsPlayerInAnyVehicle(playerid)){
if(Danificado[playerid] == 1){
if(HealthV == 1000 && tires == 0){
Danificado[playerid] = 0;
SetTimerEx("AlertaReparando", 0,false,"i",playerid);}}}
return 1;}

//
forward VCarRepair(playerid);
public VCarRepair(playerid){
for(new i=0; i<sizeof(localreparar); i++){
if(IsPlayerInRangeOfPoint(playerid, 15, localreparar[i][0], localreparar[i][1], localreparar[i][2])){
if(IsPlayerInAnyVehicle(playerid)){
KillTimer(Timer4[playerid]);
Danificado[playerid] = 0;}}}
return 1;}

//
forward AlertaReparando(playerid);
public AlertaReparando(playerid){
new name[MAX_PLAYER_NAME], string[1000];
GetPlayerName(playerid, name, sizeof(name));
if(IsPlayerConnected(playerid)){
printf( "%s(ID: %d) Reparou seu carro e levou KICK!",name, playerid );
format(string, sizeof(string), "%s(ID: %d) levou kick. Suspeita de: {ff0000}Vehicle Repair!", name, playerid);
SendClientMessageToAll(0x0000FFAA, string);
SetTimerEx("AutoKick", 0,false,"i",playerid);}
return 0;}

//
forward AutoKick(playerid);
public AutoKick(playerid){
GameTextForPlayer(playerid, "~b~Voce foi expulso ~n~~r~para seguranca do servidor!.", 5000, 3);
Kick(playerid);
return 0;}

//
AntiDeAMX()
{
    new a[][] =
    {
        "Unarmed (Fist)",
        "Brass K"
    };
    #pragma unused a
}

O sistema foi usado e funcionou normalmente, utilizando duas includes...
Usem, divirtam-se e beijos, foi bom a ajuda de vocкs <3
Reply
#2

Uma pergunta.. pra que tem a include zcmd se nгo vi nenhum cmd?
E pra que tem o 'ban' se kicka o jogador?
Reply
#3

Bem legal o sistema, parabйns pena que vai parar com o samp, boa sorte na sua vida.
Reply
#4

Boa ideia... Bom trabalho!
Reply
#5

Nick em relaзгo ao Ban, й que existe pessoas que preferem utilizar ban ao invйs de kick, e se trocarem, pra nгo bugar
Em relaзгo ao zcmd, й que houve outras atualizaзхes do sistema, que foi inserido o comando para ativar ou desativar o sistema em caso de bug... mas eu coloquei essa versгo e esqueci de remover.

Obrigado Locked .
SuYaNw sempre fui seu fг, obrigado pela ajuda que me deu aqui no fуrum (Nem deve lembrar de mim haha).
Obrigado gente >)
Reply
#6

Bom trabalho!
Reply
#7

Interessante, foi uma boa sacada..

De qualquer forma, parabйns.
Reply
#8

Bom trabalho mano
Reply
#9

Apesar de nгo gostar dessa organizaзгo/indentaзгo, a ideia em si foi bem implementada.

Bom trabalho.
Reply
#10

Obrigado a quem gostou
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)