Anti Fake Players

Pluginuri facute de utilizatorii forumului eXtream.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
zw0w # ROMANIA !
Fost moderator
Fost moderator
Posts: 1318
Joined: 16 Jul 2009, 23:29
Detinator Steam: Da
SteamID: roby93_extream
Reputatie: Fost moderator ajutator
Nume anterior: Roby93
Location: Piteşti
Has thanked: 165 times
Been thanked: 101 times

24 Jun 2015, 22:47

Cu placere, Cosmin.
Ti-am zis si pe PM, eu o sa folosesc pluginul pe un server, daca mai detectez buguri, te anunt.

Multumesc inca o data pentru ajutor.
RoyalServer 2
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

25 Jun 2015, 14:35

scosmynnnn wrote:V5.0
| Afiseaza codul
#include <amxmodx>

new const
	PLUGIN[] = "Anti FakePlayers",
	VERSION[] = "5.0",
	AUTHOR[] = "scosmyn";

new Count[33],Args[33][192],bool:bCount[33] = false,bool:bCount2[33] = false
new pcvar_count_command,pcvar_ban_time,pcvar_numar_caractere

#define LOG	"addons/amxmodx/configs/player_info.txt"

public plugin_init() {
	register_plugin(PLUGIN,VERSION,AUTHOR)

	register_clcmd("say","cmdSay")
	register_clcmd("say_team","cmdSay")

	pcvar_count_command = register_cvar("cvar_count_command","3")
	pcvar_ban_time = register_cvar("cvar_ban_time","120")
	pcvar_numar_caractere = register_cvar("cvar_numar_caractere","15")
}

public cmdSay(id) {
	new szArgs[192],cvarr
	read_args(szArgs,charsmax(szArgs))
	remove_quotes(szArgs)
	trim(szArgs)
	trim(Args[id])
	cvarr = get_pcvar_num(pcvar_numar_caractere)
	if(!bCount[id] && strlen(szArgs) > cvarr && !is_admin(id))
	{
		bCount[id] = true
		copy(Args[id],charsmax(Args[]),szArgs)
	}
	if(equal(szArgs,Args[id]) && strlen(szArgs) > cvarr && !is_admin(id))
	{
		bCount2[id] = true
		Count[id]++
		if(Count[id] == get_pcvar_num(pcvar_count_command))
			set_task(0.1,"add_player",id)
		if(Count[id] > 1)
		{
			copy(Args[id],charsmax(Args[]),szArgs)
			color(id,"!g***!teamRECLAMA!g***")
			return 1
		}
	}
	else
	{
		if(bCount2[id] && Count[id] > 1)
		{
			Count[id] = 1
			bCount[id] = true
			bCount2[id] = false
		}
	}
	if(!is_admin(id))
		copy(Args[id],charsmax(Args[]),szArgs)
	return 0
}
public add_player(id) {
	new name[32],ip[32]
	new szReason[32] = "FakePlayers/Reclama"
	get_user_name(id,name,charsmax(name))
	get_user_ip(id,ip,charsmax(ip),1)
	server_cmd("amx_banip ^"%s^" ^"%i^" ^"%s^"",name,get_pcvar_num(pcvar_ban_time),szReason)
	log_to_file(LOG,"Jucator-ul cu numele: %s IP: %s a primit ban %i minute,motiv: %s^n%s : %s",name,ip,get_pcvar_num(pcvar_ban_time),szReason,name,Args[id])
	Count[id] = 0
	bCount[id] = false
}

public client_putinserver(id) {
	bCount[id] = false
	bCount2[id] = false
	Count[id] = 0
}

public client_disconnect(id) {
	if(task_exists(id))
		remove_task(id)
}
stock bool:is_admin(id) {
	if(get_user_flags(id) & read_flags("c"))
		return true
	return false
}
stock color(const id,const input[],any:...) {
	new count = 1,players[32]

	static msg[191]
	vformat(msg,190,input,3)

	replace_all(msg,190,"!g","^4")	//verde
	replace_all(msg,190,"!y","^1") //- galben
	replace_all(msg,190,"!team","^3") //- echipa
	replace_all(msg,190,"!n","^0") //- normal

	if(id) players[0] = id; else get_players(players,count,"ch")
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}

Am rezolvat un bug destul de mare,multumesc lui zW0w pentru detectarea lui.

Acum functioneaza bine,l-am testat din toate punctele de vedere.

Cu format ai încercat?
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

25 Jun 2015, 15:07

La ce te referi ?
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

25 Jun 2015, 15:10

FaTzZu wrote:
scosmynnnn wrote:V5.0
| Afiseaza codul
#include <amxmodx>

new const
	PLUGIN[] = "Anti FakePlayers",
	VERSION[] = "5.0",
	AUTHOR[] = "scosmyn";

new Count[33],Args[33][192],bool:bCount[33] = false,bool:bCount2[33] = false
new pcvar_count_command,pcvar_ban_time

#define LOG	"addons/amxmodx/configs/player_info.txt"

public plugin_init() {
	register_plugin(PLUGIN,VERSION,AUTHOR)

	register_clcmd("say","cmdSay")
	register_clcmd("say_team","cmdSay")

	pcvar_count_command = register_cvar("cvar_count_command","3")
	pcvar_ban_time = register_cvar("cvar_ban_time","120")
}

public cmdSay(id) {
	new szArgs[192]
	read_args(szArgs,charsmax(szArgs))
	remove_quotes(szArgs)
	trim(szArgs)
	trim(Args[id])
	if(!bCount[id] && strlen(szArgs) > 15 && !is_admin(id))
	{
		bCount[id] = true
		Args[id] = szArgs
	}
	server_print("%s cel copiat",Args[id])
	server_print("%s",szArgs)
	if(equal(szArgs,Args[id]) && strlen(szArgs) > 15 && !is_admin(id))
	{
		bCount2[id] = true
		Count[id]++
		if(Count[id] == get_pcvar_num(pcvar_count_command))
			set_task(0.1,"add_player",id)
		if(Count[id] > 1)
		{
			//copy(Args[id],charsmax(Args),szArgs)
			Args[id] = szArgs
			color(id,"!g***!teamRECLAMA!g***")
			return 1
		}
	}
	else
	{
		if(bCount2[id] && Count[id] > 1)
		{
			Count[id] = 1
			bCount[id] = true
			bCount2[id] = false
		}
	}
	if(!is_admin(id))
		Args[id] = szArgs
		//copy(Args[id],charsmax(Args),szArgs)
	return 0
}
public add_player(id) {
	new name[32],ip[32]
	new szReason[32] = "FakePlayers/Reclama"
	get_user_name(id,name,charsmax(name))
	get_user_ip(id,ip,charsmax(ip),1)
	server_cmd("amx_banip ^"%s^" ^"%i^" ^"%s^"",name,get_pcvar_num(pcvar_ban_time),szReason)
	log_to_file(LOG,"Jucator-ul cu numele: %s IP: %s a primit ban %i minute,motiv: %s^n%s : %s",name,ip,get_pcvar_num(pcvar_ban_time),szReason,name,Args[id])
	Count[id] = 0
	bCount[id] = false
}

public client_putinserver(id) {
	bCount[id] = false
	bCount2[id] = false
	Count[id] = 0
}

public client_disconnect(id) {
	if(task_exists(id))
		remove_task(id)
}
stock bool:is_admin(id) {
	if(get_user_flags(id) & read_flags("c"))
		return true
	return false
}
stock color(const id,const input[],any:...) {
	new count = 1,players[32]

	static msg[191]
	vformat(msg,190,input,3)

	replace_all(msg,190,"!g","^4")	//verde
	replace_all(msg,190,"!y","^1") //- galben
	replace_all(msg,190,"!team","^3") //- echipa
	replace_all(msg,190,"!n","^0") //- normal

	if(id) players[0] = id; else get_players(players,count,"ch")
	{
		for(new i = 0; i < count; i++)
		{
			if(is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}

Am rezolvat un bug destul de mare,multumesc lui zW0w pentru detectarea lui.
Acesta consta in spatii,daca scriai de exemplu: connect asdasdasdasdas asdasdasdasdasdas asdasdasdasdasda nu-l copia cum trebuie prin 'copy' datorita spatiilor,am observat ca,cu ,copy nu poti copia caractere aasa lungi care are mai mult de 2 spatii.

Acum functioneaza bine,l-am testat din toate punctele de vedere.

Cu format ai încercat?


a folosit operatorul= pentru atribuire
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

26 Jun 2015, 00:32

native format(output[], len, const format[], any:...);
Lux0R^
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1222
Joined: 13 Jul 2013, 16:31
Detinator Steam: Da
Reputatie: Scripter eXtreamCS
Moderator ajutator
Has thanked: 15 times
Been thanked: 12 times

26 Jun 2015, 00:41

FaTzZu wrote:native format(output[], len, const format[], any:...);
ce rost are sa formatezi un string cand poti sa copiezi direct prin copy ( a vazut cosmin unde era buba) sau cu operator= daca cstringurile au aceasi marime
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

26 Jun 2015, 01:15

Lux0R^ wrote:
FaTzZu wrote:native format(output[], len, const format[], any:...);
ce rost are sa formatezi un string cand poti sa copiezi direct prin copy ( a vazut cosmin unde era buba) sau cu operator= daca cstringurile au aceasi marime
A zis ca a avut probleme cu copy si i-am dat o idee ..
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

26 Jun 2015, 12:34

Si-a dat seama pana la urma lux0r care era problema cu copy,gresisem undeva dar oricum e bine si cu '=' acum las asa nu mai dau edit..
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

26 Jun 2015, 16:22

FaTzZu wrote:native format(output[], len, const format[], any:...);
formatex*

2 array-uri se pot egala doar atunci cand au aceeasi dimensiune, daca dimensiunile difera nu e sigur sa faci asta. Modul corect este prin copy.
User avatar
SkillartzHD
Membru, skill +3
Membru, skill +3
Posts: 1096
Joined: 08 Feb 2013, 19:43
Detinator Steam: Da
CS Status: HLDS Vulnerability
Detinator server CS: GoldSrc
SteamID: SkillartzHD_hlds
Reputatie: Fost Moderator ajutator
Location: Bucuresti
Has thanked: 14 times
Been thanked: 28 times
Contact:

27 Jun 2015, 13:50

Felicitari pentru aceasta metoda , nu e chiar cea mai bine gandita metoda dar ceea ce e important e ca functioneaza.
Mult mai simplu era daca filtrai acele tipuri de fake player si sa le analizezi cum trebui , sunt vreo 5-6 metode in care poti bloca acest tip de fake player doar prin conectarea lor pe server (doar a unui singur fake client generat) fara sa mai adaugi restrictii in chat . Marea problema a exploiturilor este ca este generat foarte bine (name,steamid,codul de client) si este foarte greu de recunoscut jucatorii falsi , daca ei sunt generatii prost pot fi blocati foarte usor daca "filtrezi" acel tip de fake player , mai greu de filtrat sunt cei care folosesc "dropfast" (itni 1.7 , 1.8 fvu xd list , itni 1.0) , eu pe hlds-shield am reusit sa filtrez orice tip de fake player inafara de itni 1.8 si fvu xd list , in concluzie ar mai bine sa analizatii acel tip de fakeplayer fara sa modificati modul de joc
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

27 Jun 2015, 15:42

@SkillartzHD eu nu prea stiu cum sta cu fakeplayers ca nu am server,asta am gandit-o asa peste noapte daca intelegi ce vreau sa spun.. :) ,mersi de sfat :)
User avatar
Madbrain
Membru, skill +1
Membru, skill +1
Posts: 259
Joined: 14 Aug 2009, 11:50
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com!
Detinator server CS: Da
Location: Birmingham

01 Jul 2015, 18:19

Si pentru asa ceva da ban?

Code: Select all

L 07/01/2015 - 12:19:17: Jucator-ul cu numele: Tatae IP: 86.107.253.178 a primit ban 1000 minute,motiv: FakePlayers/Reclama
Tatae : Nu mai tipa copile
Post Reply

Return to “Pluginuri eXtream”

  • Information
  • Who is online

    Users browsing this forum: Petal [Bot] and 9 guests