15.06.2015, 14:40
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