Jump to content

Army Ban System (MySQL)


Armyww

Recommended Posts

Army Ban System

Descriere: Este un sistem de ban temporar, cu baza de date MySQL.

Autor: Army, Armyww, Armyw0w (aceasi persoana)

Versiunea: v1.0

Ce imi trebuie sa folosesc sistemul?

Pentru a folosi sistemul aveti nevoie de:

        Sscanf - Click

        MySQL - Click (recomandat)

        Wamp Server / Xampp

Cum instalez sistemul?

1. Adaugati

#include <A_BanSys>
2.
#define BAN_LIST " " /* Tabelul cu lista banurilor */
3. Daca le aveti deja definite, va rugam sa le redefiniti prin SQL_
#define SQL_HOST " " /* IP-ul serverului*/
#define SQL_USER " " /* Utilizatorul serverului*/
#define SQL_PASS "" /* Parola serverului (deobicei nul) */
#define SQL_DB " " /* Tabelul serverului */
4. Importati acest .sql in data de baze. Army Ban Functions A_DeleteBanIP()
A_DeleteBanIP( ip[] )  - Selecteaza 'IP' din banlist si sterge acel ban
A_DeteleBan()
A_DeteleBan( name[] ) - Selecteaza un 'name' din banlist si sterge acel ban
A_OfflineBan()
A_OfflineBan( name[], ip[], year, month, day, hour, min, sec, reason[], author[]) - Adauga in 'name' si 'ip' in ban list, "year, month, day, hour, min, sec" (Cand expira banul)
A_Ban()
A_Ban(playerid, year, month, day, hour, min, sec, reason[], author[]) - Acesta este cand jucatorul este in joc
A_CheckIPIsBanned()
A_CheckIPIsBanned( ip[] ) - Verifica daca 'ip' exista in banlist si returneaza cu un numar
A_CheckNameIsBanned()
A_CheckNameIsBanned( name[] ) - Verifica daca 'name' exista in banlist si returneaza cu un numar
A_BanExpired()
A_BanExpired(playerid) - se verifica daca 'playerid' este in banlist si verifica daca i-a expirat banul returnand  cu un numar
A_BanIPExpired()
A_BanIPExpired( ip[] ) - Se verifica daca 'ip' este in banlist si verifica daca i-a expirat banul returnand cu un numar
Cum folosesc sistemul? 1. DeleteBanIP + CheckIPIsBanned
YCMD:unbanip(playerid, params[], help)
{
    new
        giveip            [ 16 ];

    if ( sscanf ( params, "s[16]", giveip) ) return SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Te rog scrie un IP.");
    if ( A_CheckIPIsBanned( giveip ) == 0 ) { // Se verifica daca este banat

        A_DeleteBanIP( giveip ); // Daca este ii sterge banul
        return 1;

    } else { SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, dar jucatorul nu are ban."); } // In caz ca nu este banat
    return 1;
}
2. DeleteBan + CheckNameIsBanned
YCMD:unban(playerid, params[], help)
{
    new
        givename            [ 20 ];

    if ( sscanf ( params, "s[20]", givename) ) return SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Te rog scrie un nume.");
    if ( A_CheckNameIsBanned( givename ) == 0 ) { // Verifica daca este banat

        A_DeteleBan( givename ); // Daca este ii sterge banul
        return 1;

    } else { SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, dar jucatorul nu are ban."); } // In caz ca nu este banat
    return 1;
}
3. A_CheckNameIsBanned + A_Ban
YCMD:banoneyear(playerid, params[], help)
{
	new
	    giveplayerid,
	    reason[ 30 ];
	    
	if ( sscanf(params, "us[30]", giveplayerid, reason) ) return SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, nu ai scris corect comanda.");
	if (A_CheckNameIsBanned(GetName(giveplayerid) ) == 1) { //  Se verifica daca jucatorul are ban

		A_Ban(giveplayerid, 2013, 4, 10, 12, 17, 30, reason, GetName(playerid) ); // Daca nu are ban, il baneaza.
		Kick(giveplayerid);


	} else { SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, dar jucatorul are deja ban."); } // In caz ca are ban
	return 1;
}
4. A_CheckNameIsBanned + A_OfflineBan
YCMD:banoffponeyear(playerid, params[], help)
{
	new
	    givename[ 16 ],
	    reason	[ 30 ];

	if ( sscanf(params, "s[16]s[30]", givename, reason) ) return SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, nu ai scris corect comanda.");
	if (A_CheckNameIsBanned( givename ) == 1) { // Il verifica daca are ban

		A_OfflineBan(givename, "NO-IP", 2013, 4, 10, 12, 21, 30, reason, GetName(playerid)); // Daca nu are il baneaza


	} else { SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Scuze, dar jucatorul are deja ban."); } // In caz ca este deja banat
	return 1;
}
5. A_BanExpired
public OnPlayerConnect(playerid)
{
    if( A_BanExpired ( playerid ) == 0 ) // Verifica daca i-a expirat banul
    {
		SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Welcome}"); // In caz ca i-a expirat banul
	}
	else
	{
		Kick(playerid); // In caz ca nu i-a expirat banul
	}
	return 1;
}
6. A_BanIPExpired
public OnPlayerConnect(playerid)
{
	new
		pIP     [ 16 ];

	GetPlayerIp(playerid, pIP, 16);
	if( A_BanIPExpired ( pIP ) == 0 ) // Verifica daca i-a expirat banul
    {
		SendClientMessage(playerid, 0xFFFFFFAA, "{C8C8C8}Welcome}"); // In caz ca i-a expirat
	}
	else
	{
		Kick(playerid); // In caz ca nu i-a expirat
	}
	return 1;
}
Download: Click Buguri:
Eu nu am gasit.
Va rog sa postati imediat daca gasiti un bug, multumesc.

Va multumesc:

    WizzeY - Testare

    SpeeDy - Testare

    Opptur - Testare

    Y_Less - Pentru sscanf plugin

    BlueG - Pentru MySQL Plugin.

Banner_2.png
Link to comment
Share on other sites

ma army,lasa ma paranoicii in pace,nu vezi cum sufera?

Man poti sa spui orice stiu ca nu e al tau..miam dat seama ca nu e facut de tine numai dupa nume..

si pentru ca am mai gasit un inc de genu asta chiar nu cred ca e facut de tn

Si nu cred eu ca stii tu mysql

Massari e curva mea

Link to comment
Share on other sites

Man poti sa spui orice stiu ca nu e al tau..miam dat seama ca nu e facut de tine numai dupa nume..

si pentru ca am mai gasit un inc de genu asta chiar nu cred ca e facut de tn

Si nu cred eu ca stii tu mysql

Sincer ma amuzi ingrozitor de tare xD.

1. Scriptez de 4 ani.

2. Functiile nu au nici macar un fir de par furat din alt script.

EDIT: M-am uitat la jBan, este frumos, dar tu faci putin diferenta /:)?

stock jBan(player_banned, player_banner, reason[], time = 0)
{
	if(strlen(reason) > MAX_REASON_LENGTH) return SendClientMessage(player_banner, 0xFFFFFF, "[jBan]: Sorry, the maximum reason length is "#MAX_REASON_LENGTH" characters!");

	format(jQuery, MAX_QUERY_LENGTH, "INSERT INTO `"#J_TABLE"` (user_banned, user_banned_ip, user_banner, ban_reason, ban_timestamp, ban_time) VALUES ('%s', '%s', '%s', '%s', CURRENT_TIMESTAMP, %d)", jNames[player_banned], jIP[player_banned], jNames[player_banner], reason, time);
	mysql_query(jQuery, QUERY_BAN, player_banned, jban_connection);

	Kick(player_banned);

	#if J_LOGGING == 1
		printf("[jBan]: Player \"%s\" (%s) banned by \"%s\" with reason \"%s\" for %d minutes", jNames[player_banned], jIP[player_banned], jNames[player_banner], reason, time);
	#endif
	return 1;
}
Si
stock A_Ban(playerid, year, month, day, hour, min, sec, reason[], author[])
{
	new
	    nY,     nM,     nD,
	    nH,     nMin,   nS,
		str [ STRING_MAX ],
		ip      [ IP_MAX ];

	GetPlayerIp ( playerid , ip , IP_MAX ),getdate ( nY , nM , nD ), gettime ( nH , nMin , nS );
	format ( str , STRING_MAX, "INSERT INTO `"#BAN_LIST"`(`username`, `ip`) VALUES ('%s','%s')", GetName(playerid), ip);
	mysql_query ( str );
	format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `actyear` = '%d', `actmonth` = '%d', `actday` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nY , nM , nD , GetName(playerid) , ip );
    mysql_query ( str );
	format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `acthour` = '%d', `actmin` = '%d', `actsec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", nH , nMin , nS , GetName(playerid) , ip );
    mysql_query ( str );
	format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `year` = '%d', `month` = '%d', `day` = '%d' WHERE `username` ='%s' AND `ip` ='%s'" , year , month , day , GetName(playerid) , ip );
    mysql_query ( str );
	format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `hour` = '%d', `min` = '%d', `sec` = '%d' WHERE `username` ='%s' AND `ip` ='%s'", hour , min , sec , GetName(playerid) , ip );
    mysql_query ( str );
	format ( str , STRING_MAX , "UPDATE `"#BAN_LIST"` SET `reason` = '%s', `autor` = '%s' WHERE `username` ='%s' AND `ip` ='%s'" , reason , author , GetName(playerid) , ip );
    mysql_query ( str );
	return 1;
}

Si eu as zice ca sunt exact la fel ^_^

Ce e asa de greu sa stii MySQL /:)?

Banner_2.png
Link to comment
Share on other sites

4 ani??:))

Ia zi cum se face un dialog sau un format da fara sa te uiti pe wiki

Te anunt ca esti un ^_^, ma pui sa-ti fac un Dialog, wtf? ce e asa de greu in asta?

Tu ai o problema grava, daca cineva face ceva, sa se oftice unul repede.

Sincer, nici nu trebuia sa-l pun aici, pacat ca am ban pe .com, mai era unu acum 2 ani ca tine care a comentat despre INC'ul meu ca l-a facut farse :).

Banner_2.png
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.