// Anti-DB Script // Made for PTGN // By Sacky #include #define MAX_DB 5 #define dcmd(%1,%2) if ((strcmp(cmdtext, "/%1", true, %2+1) == 0)&&(((cmdtext[%2+1]==0)&&(dcmd_%1(playerid,"")))||((cmdtext[%2+1]==32)&&(dcmd_%1(playerid,cmdtext[%2+2]))))) return 1 new dbcounter[MAX_PLAYERS]; new dba[MAX_PLAYERS]; new tdbs[MAX_PLAYERS]; public OnFilterScriptInit() { print("\n---------------------------\n"); print(" Anti-DB FS By Sacky\n"); print("---------------------------\n"); return true; } public OnPlayerDeath(playerid,killerid,reason) { if(IsPlayerConnected(playerid) && IsPlayerConnected(killerid)) { if(IsPlayerInAnyVehicle(killerid) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(killerid) == PLAYER_STATE_DRIVER && reason != WEAPON_VEHICLE) { dbcounter[killerid]++; tdbs[killerid]++; if(dbcounter[killerid] > MAX_DB / 2 && dbcounter[killerid] < MAX_DB) SendClientMessage(killerid,0x0AD0FF,"Don't drive-by abuse! There will be punishments for those who abuse it excessively"); else if(dbcounter[killerid] == MAX_DB) { GameTextForPlayer(killerid,"DON'T DRIVEBY ABUSE!",4,5000); RemovePlayerFromVehicle(killerid); ResetPlayerMoney(killerid); ResetPlayerWeapons(killerid); if(dba[killerid] == MAX_DB / 2) SetPlayerPos(killerid,0.0,0.0,99999.9); else if(dba[killerid] == MAX_DB) Kick(killerid); } } } return true; } public OnPlayerConnect(playerid) { dbcounter[playerid] = 0; dba[playerid] = 0; tdbs[playerid] = 0; return true; } public OnPlayerCommandText(playerid,cmdtext[]) { dcmd(drivebys,8); return true; } dcmd_drivebys(playerid,params[]) { if(strlen(params)) { new pid = strval(params); if(IsPlayerConnected(pid)) { new msgstr[32],pname[MAX_PLAYER_NAME]; GetPlayerName(pid,pname,MAX_PLAYER_NAME); format(msgstr,sizeof(msgstr),"%s has done %d driveby's this game",pname,tdbs[playerid]); SendClientMessage(playerid,0x000000FF,msgstr); } else SendClientMessage(playerid,0x0AD0FF,"That player isn't connected"); } else SendClientMessage(playerid,0x0AD0FF,"USAGE: /drivebys [playerid]"); return true; }