Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////[## Includes ##]/////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <zcmd>
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////[## [MySQL] Database Setup ##]//////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- #define host "localhost"//Here input your host
- #define user "root"//Your username
- #define db "database12"//Youe established database
- #define pass ""//user password
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////[## Dialogs ##]/////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- #define Registeration 312
- #define OnlineBan 1
- #define BanInfoX 2
- #define OfflineBan 3
- #define banip1 4
- #define banip2 5
- #define banip11 6
- #define SBANIP 7
- #define SBANNAME 8
- #define Login 9
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////[## Global Variables ##]/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- new mysql;
- new player2;
- //(/Ban command variables)//
- new GName1[1][25];
- new GName2[1][25];
- //(/Oban command variables)//
- new GName3[1][25];
- new GName4[1][25];
- new GIP2[1][16];
- //(/Banip commandvariables)//
- new GName5[1][25];
- new GName6[1][25];
- new GIP[1][16];
- //(/Ban command variables)//
- new GName7[1][25];
- new GName8[1][25];
- new player1;
- new IP[MAX_PLAYERS][16];
- new IP2[MAX_PLAYERS][16]; //We made a new one to avert glitches with the registeration System.
- new Name[MAX_PLAYERS][24];
- new IsPlayerRegisterd[MAX_PLAYERS];
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////[## Forwards ##]/////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- forward baninfox(playerid);
- forward Offlineban(playerid);
- forward IPBan(playerid);
- forward OnAccountCheck(playerid);
- forward KICKPLAYER(playerid);
- forward OnBanCheck(playerid);
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////[## Natives ##]//////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- native WP_Hash(buffer[], len, const str[]);
- ////////////////////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////[## Enumerators ##]///////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- enum Player_Information
- {
- Password[129]
- }
- new pInfo[MAX_PLAYERS][Player_Information];
- ////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////[## Main Script ##]////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print("Ban system by revo");
- print("--------------------------------------\n");
- mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
- mysql = mysql_connect(host, user, db, pass);
- if(mysql_errno(mysql) != 0)
- {
- print("Could not connect to database!");
- }
- else
- {
- printf("Successfully connected to the database");
- }
- SetGameModeText("MySQL R9-3");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new query[128];
- GetPlayerIp(playerid, IP2[playerid], 16);
- mysql_format(mysql, query, sizeof(query),"SELECT `Username`, `Reason` FROM `bans` WHERE `IP` = '%s'", IP2[playerid]);
- IsPlayerRegisterd[playerid] = -1;
- mysql_tquery(mysql, query, "OnBanCheck", "i", playerid);
- playerid = player1;
- return 1;
- }
- public OnBanCheck(playerid)
- {
- new rows, fields;
- new name[3][16];
- new query[128];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Username", name[0], mysql, 24);
- cache_get_field_content(0, "Reason", name[1], mysql, 45);
- new string[128];
- format(string,sizeof string,"'%s' has been kicked from the server (IP/Name Banned from the server) | Ban Reason: '%s' |",name[0],name[1]);
- SendClientMessageToAll(-1,string);
- SetTimerEx("KICKPLAYER",1000,false,"i",2);
- }
- else
- {
- GetPlayerName(playerid, Name[playerid], 24);
- GetPlayerIp(playerid, IP[playerid], 16);
- mysql_format(mysql, query, sizeof(query),"SELECT `IP`, `Password` FROM `accounts` WHERE `Username` = '%s' LIMIT 1", Name[playerid]);
- mysql_tquery(mysql, query, "OnAccountCheck", "i", playerid);
- }
- return 1;
- }
- public KICKPLAYER()
- {
- Kick(player1);
- }
- public OnAccountCheck(playerid)
- {
- new rows, fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "IP", IP[playerid], mysql, 16);
- new newIp[16];
- GetPlayerIp(playerid, newIp, 16);
- if(strlen(IP[playerid]) != 0 && !strcmp(IP[playerid], newIp, true))
- {
- new query[128];
- mysql_format(mysql, query, sizeof(query),"SELECT `Username` FROM `accounts` WHERE `Username` = '%s' LIMIT 1", Name[playerid]);
- SendClientMessage(playerid, -1, "{FF0066}|+ Successfully LoggedIn +|");
- }
- else
- {
- (!strlen(IP[playerid]) || strcmp(IP[playerid], newIp, true));
- cache_get_field_content(0, "Password", pInfo[playerid][Password], mysql, 129);
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login", "Login", "Quit");
- }
- }
- else
- {
- ShowPlayerDialog(playerid, Registeration, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.", "Register", "Quit");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == OnlineBan)
- {
- if(!response) return SendClientMessage(playerid, -1, "Cancelled");
- if (response)
- {
- new query[500];
- new string[128];
- format(string,sizeof string,"'%s' has been banned by '%s' | Reason: '%s' |",GName2[0],GName1[0],inputtext);
- SendClientMessageToAll(-1,string);
- // Kick(player2);
- GetPlayerIp(playerid, IP2[player2], 16);
- new Year, Month, Day;
- getdate(Year, Month, Day);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `bans` (`Username`,`IP`,`Bannedby`,`Reason`,`Year`,`Month`,`Day`) VALUES ('%s','%s','%s','%s','%d','%d','%d')",
- GName2[0], IP2[player2], GName1[0], inputtext, Year, Month, Day);
- return mysql_tquery(mysql, query, "", "");
- }
- }
- if(dialogid == OfflineBan)
- {
- if(!response) return SendClientMessage(playerid, -1, "Cancelled");
- if (response)
- {
- new query[500];
- new string[128];
- format(string,sizeof string,"'%s' has been offline banned by '%s' | Reason: '%s' |",GName4[0],GName3[0],inputtext);
- SendClientMessageToAll(-1,string);
- new Year, Month, Day;
- getdate(Year, Month, Day);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `bans` (`Username`,`IP`,`Bannedby`,`Reason`,`Year`,`Month`,`Day`) VALUES ('%s','%s','%s','%s','%d','%d','%d')",
- GName4[0], GIP2[0], GName3[0], inputtext, Year, Month, Day);
- return mysql_tquery(mysql, query, "", "");
- }
- }
- if(dialogid == Registeration)
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, Registeration, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.\nYour password must be at least 6 characters long!", "Register", "Quit");
- new query[300];
- GetPlayerIp(playerid, IP[playerid], 16);
- WP_Hash(pInfo[playerid][Password], 129, inputtext);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `accounts` (`Username`, `Password`, `IP`) VALUES ('%s', '%s', '%s')", Name[playerid], pInfo[playerid][Password], IP[playerid]);
- IsPlayerRegisterd[playerid] = 1;
- SendClientMessage(playerid, -1, "Successfully Registered");
- return mysql_tquery(mysql, query, "", "");
- }
- if(dialogid == Login)
- {
- if(!response) Kick(playerid);
- new hpass[129];
- new query[100];
- WP_Hash(hpass, 129, inputtext);
- if(!strcmp(hpass, pInfo[playerid][Password]))
- {
- mysql_format(mysql, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Username` = '%e' LIMIT 1", Name[playerid]);
- SendClientMessage(playerid, -1, "{FF0066}|+ Successfully LoggedIn +|");
- }
- else
- {
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login\nWrong password!", "Login", "Quit");
- }
- }
- if(dialogid == banip11)
- {
- if(!response) return SendClientMessage(playerid, -1, "Cancelled");
- if (response)
- {
- new query[500];
- new string[128];
- format(string,sizeof string,"%s's ip has been offline banned by '%s' | Reason: '%s' |",GName6[0],GName5[0],inputtext);
- SendClientMessageToAll(-1,string);
- new Year, Month, Day;
- getdate(Year, Month, Day);
- mysql_format(mysql, query, sizeof(query), "INSERT INTO `bans` (`Username`,`IP`,`Bannedby`,`Reason`,`Year`,`Month`,`Day`) VALUES ('%s','%s','%s','%s','%d','%d','%d')",
- GName6[0], GIP[0], GName5[0], inputtext, Year, Month, Day);
- return mysql_tquery(mysql, query, "", "");
- }
- }
- if(dialogid == banip1)
- {
- if(!response) return SendClientMessage(playerid, -1, "Cancelled");
- if (response) return ShowPlayerDialog(playerid,banip11, DIALOG_STYLE_INPUT,"{FF0066}Reason","{FFFFFF}Insert the reason below","Done","Back");
- }
- return 0;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////[## OnlineBan ##]////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:ban(playerid, params[])
- {
- new name[24];
- new pname[24];
- new targetid;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "ig", targetid)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /Ban [Id] |");
- if(IsPlayerConnected(targetid) && targetid != INVALID_PLAYER_ID)
- {
- ShowPlayerDialog(playerid, OnlineBan, DIALOG_STYLE_INPUT,"{FF0066}Reason","{FFFFFF}Insert the reason below","Done","Back");
- GetPlayerName(targetid, name, sizeof(name));
- GetPlayerName(playerid, pname, sizeof(pname));
- GName2[0] = name;
- GName1[0] = pname;
- targetid = player2;
- }
- else
- {
- SendClientMessage(playerid, -1, "{9E6700}» Player is not connected");
- }
- return 1;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////[## OfflineBan ##]///////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:oban(playerid, params[])
- {
- new name[25];
- new query[250];
- new pname[25];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "s[128]", name)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /Oban [Username] |");
- format(query, sizeof(query), "SELECT * FROM `bans` WHERE `Username` = '%s'", name);
- GetPlayerName(playerid, pname, sizeof(pname));
- GName3[0] = pname;
- GName4[0] = name;
- mysql_tquery(mysql, query, "Offlineban", "i", playerid);
- return 1;
- }
- public Offlineban(playerid) {
- new rows;
- new fields;
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- SendClientMessage(playerid, -1, "{9E6700}» Player is already banned");
- }
- else
- {
- new query2[250];
- format(query2, sizeof(query2), "SELECT * FROM `accounts` WHERE `Username` = '%s'", GName4[0]);
- mysql_tquery(mysql, query2, "Offlineban2", "i", playerid);
- }
- }
- forward Offlineban2(playerid);
- public Offlineban2(playerid) {
- new rows;
- new fields;
- new ip[16];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "IP", ip, mysql, 24);
- GIP2[0] = ip;
- ShowPlayerDialog(playerid, OfflineBan, DIALOG_STYLE_INPUT,"{FF0066}Reason","{FFFFFF}Insert the reason below","Done","Back");
- }
- else
- {
- SendClientMessage(playerid, -1, "{9E6700}» No accounts found");
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////[## Ip Ban ##]/////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:banip(playerid, params[])
- {
- new IPX[16];
- new query[250];
- new pname[24];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "s[128]", IPX)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /Banip [IP] |");
- if(strlen(IPX) > 16) return SendClientMessage(playerid, -1, "{9E6700}» Max Ip characters are 16!");
- format(query, sizeof(query), "SELECT * FROM `bans` WHERE `IP` = '%s'", IPX);
- GetPlayerName(playerid, pname, sizeof(pname));
- GIP[0] = IPX;
- GName5[0] = pname;
- mysql_tquery(mysql, query, "IPBan", "i", playerid);
- return 1;
- }
- public IPBan(playerid) {
- new rows;
- new fields;
- new query[250];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- SendClientMessage(playerid, -1, "{9E6700}» Player is already banned");
- }
- else
- {
- format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `IP` = '%s'", GIP[0]);
- mysql_tquery(mysql, query, "IPBan2", "i", playerid);
- }
- return 1;
- }
- forward IPBan2(playerid);
- public IPBan2(playerid) {
- new rows;
- new fields;
- new name[1][25];
- new string[250];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Username", name[0], mysql, 16);
- format(string, sizeof(string),"\n{FFFFFF}..: Are sure that you want to officially block this IP from joining the server :..IP '%s'\nSide Notes: This ip is registered in the server and its owner is %s",GIP[0],name[0]);
- ShowPlayerDialog(playerid,banip1,DIALOG_STYLE_MSGBOX,"{FF0066}Confirmation",string, "Yes","Quit");
- GName6[0] = name[0];
- }
- else
- {
- SendClientMessage(playerid, -1, "{9E6700}» No accounts attached to this ip found");
- }
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////[## Ip Unban ##]/////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:unbanip(playerid, params[])
- {
- new IPX[16];
- new query[250];
- new pname[24];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "s[128]", IPX)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /Unbanip [IP] |");
- format(query, sizeof(query), "SELECT * FROM `bans` WHERE `IP` = '%s'", IPX);
- GetPlayerName(playerid, pname, sizeof(pname));
- GIP[0] = IPX;
- GName5[0] = pname;
- mysql_tquery(mysql, query, "IPBanX", "i", playerid);
- return 1;
- }
- forward IPBanX(playerid);
- public IPBanX(playerid) {
- new rows;
- new fields;
- new name[1][25];
- new query[250];
- new string[128];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Username", name[0], mysql, 16);
- format(query, sizeof(query),"DELETE FROM `bans` WHERE `IP` = '%s'",GIP[0]);
- mysql_tquery(mysql, query, "", "");
- SendClientMessage(playerid, -1, "| Sucessfully unbanned ");
- format(string,sizeof string,"| %s's ip has been unbanned by %s |",name[0],GName5[0]);
- SendClientMessageToAll(-1,string);
- }
- else
- {
- SendClientMessage(playerid, -1, "{9E6700}» There is no such banned IP");
- }
- return 1;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////[## Unban ##]//////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:unban(playerid, params[])
- {
- new name[24];
- new query[250];
- new pname[24];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "s[128]", name)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /Unban [Username] |");
- format(query, sizeof(query), "SELECT * FROM `bans` WHERE `Username` = '%s'", name);
- GetPlayerName(playerid, pname, sizeof(pname));
- GName7[0] = name;
- GName8[0] = pname;
- mysql_tquery(mysql, query, "Unban", "i", playerid);
- return 1;
- }
- forward Unban(playerid);
- public Unban(playerid) {
- new rows;
- new fields;
- new name[1][25];
- new query[250];
- new string[128];
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- cache_get_field_content(0, "Username", name[0], mysql, 16);
- format(query, sizeof(query),"DELETE FROM `bans` WHERE `Username` = '%s'",GName7[0]);
- mysql_tquery(mysql, query, "", "");
- SendClientMessage(playerid, -1, "| Sucessfully unbanned ");
- format(string,sizeof string,"| %s's ip has been banned by %s |",name[0],GName8[0]);
- SendClientMessageToAll(-1,string);
- }
- else
- {
- SendClientMessage(playerid, -1, "No banned account found");
- }
- return 1;
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////[## BanInfo ##]/////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////
- CMD:baninfo(playerid, params[])
- {
- new name[24];
- new query[250];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- if(sscanf(params, "s[128]", name)) return SendClientMessage(playerid, -1, "{FF0066}{FF0066}» Err:| /BanInfo [Username] |");
- format(query, sizeof(query), "SELECT * FROM `bans` WHERE `Username` = '%s'", name);
- mysql_tquery(mysql, query, "baninfox", "i", playerid);
- return 1;
- }
- public baninfox(playerid) {
- new rows;
- new fields;
- new s[7][150];
- new string[400];
- cache_get_field_content(0, "Username", s[0], mysql, 24);
- cache_get_field_content(0, "IP", s[1], mysql, 16);
- cache_get_field_content(0, "Bannedby", s[2], mysql, 24);
- cache_get_field_content(0, "Reason", s[3], mysql, 40);
- cache_get_field_content(0, "Year", s[4], mysql, 24);
- cache_get_field_content(0, "Month", s[5], mysql, 24);
- cache_get_field_content(0, "Day", s[6], mysql, 24);
- cache_get_data(rows, fields, mysql);
- if(rows)
- {
- format(string, sizeof(string),"\n{9E6700}..::{FFFFFF}%s's Ban information{9E6700}::..\n\n{9E6700}User's Username{FFCCCC} '%s'\n\n{9E6700}User's IP {FFCCCC}'%s'\n\n{9E6700}User's Banned by {FFCCCC}'%s'\n\n{9E6700}User's Ban Reason {FFCCCC}'%s'\n\n{9E6700}Year user got banned in{FFCCCC}'%s'\n\n{9E6700}Month user got banned in{FFCCCC}'%s'\n\n{9E6700}Day user got banned in {FFCCCC}'%s'",
- s[0],s[0],s[1],s[2],s[3],s[4],s[5],s[6]);
- ShowPlayerDialog(playerid, BanInfoX,DIALOG_STYLE_MSGBOX,"Prohibition CP",string, "Close","");
- }
- else
- {
- SendClientMessage(playerid, -1, "{9E6700}» No accounts found");
- }
- return 1;
- }
- CMD:bancmds(playerid, params[])
- {
- new string[600];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0066}» Err:| You are not rcon administrator |");
- strcat(string, "\t{9E6700}..:: {FFFFFF}Prohibition System Commands{9E6700} ::..", 500 );
- strcat(string, "\n\n{FFFFFF}/Ban [Id]", 500 );
- strcat(string, "\n{9E6700}»Function: Will ban an online user.\n", 500 );
- strcat(string, "\n{FFFFFF}/Oban [Username]", 500 );
- strcat(string, "\n{9E6700}»Function: Will offline ban an already registered user.\n", 500 );
- strcat(string, "\n{FFFFFF}/Unban [Username]", 500 );
- strcat(string, "\n{9E6700}»Function: Will unban an already banned user.\n", 500 );
- strcat(string, "\n{FFFFFF}/Banip [Ip]", 500 );
- strcat(string, "\n{9E6700}»Function: Will ban an already registered IP.\n", 500 );
- strcat(string, "\n{FFFFFF}/Unbanip [Ip]", 500 );
- strcat(string, "\n{9E6700}»Function: Will unban an already banned IP.\n", 500 );
- strcat(string, "\n{FFFFFF}/BanInfo [Username]", 500 );
- strcat(string, "\n{9E6700}»Function: Will view an information of a special ban.", 600 );
- ShowPlayerDialog(playerid,3132, DIALOG_STYLE_MSGBOX, "Prohibition Commands", string, "Close","");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement