Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Dodanie warunku sprawdzania botów. Plugin Anty CT-Shield


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 MaxioR

    Wszechpomocny

  • Użytkownik

Reputacja: 83
Zaawansowany

  • Postów:352
  • Lokalizacja:Poland
Offline

Napisano 14.09.2015 18:54

Bardzo proszę o dodanie warunku aby omijało sprawdzanie botów mianowicie mam plugin http://amxx.pl/topic...e-team-bot-v13/i cały plik z logami jest zasypany 

 

L 09/14/2015 - 18:10:51: Wykryto uruchomione dodatkowe pliki .DLL u gracza CSONE CT [127.0.0.1] - kick...

 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "Anty CT-Shield"
#define VERSION "1.1"
#define AUTHOR "Sn!ff3r"

#define REVEMU        4
#define TASK        411

new bool:userCheck[33]

new dp_r_id_provider

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    RegisterHam(Ham_Spawn, "player", "client_spawn", 1)
    
    dp_r_id_provider = get_cvar_pointer ("dp_r_id_provider")
}

public client_connect(id) {
    userCheck[id] = false    
}

public client_spawn(id) {
    
    if(!is_user_alive(id) || !dp_r_id_provider || task_exists(TASK + id))
        return    
    
    server_cmd("dp_clientinfo %d", id)
    server_exec()    
        
    if(get_pcvar_num(dp_r_id_provider) == REVEMU && !userCheck[id]) {
        client_cmd(id, "echo ^"^";^"setinfo^" revemu 1")
        set_task(1.0,"client_check", TASK + id)        
    }
}

public client_check(TASKID) {
    
    new id = TASKID - TASK        
    if(!is_user_alive(id))
        return
    
    new tmp[2], reply
    get_user_info(id, "revemu", tmp, 1)
    reply = str_to_num(tmp)
    
    if(!reply) {
        // odpalony ct-shield albo inne *****
        new ip[16], name[33]
        get_user_ip(id, ip, 15, 1)
        get_user_name(id, name, 32)
        
        log_to_file("anty_ct_shield.log", "Wykryto uruchomione dodatkowe pliki .DLL u gracza %s [%s] - kick...", name, ip)
        server_cmd("kick #%d Usun pliki .asi oraz .dll!", get_user_userid(id))        
    }    
    userCheck[id] = true    
}

  • +
  • -
  • 0

#2 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 16.09.2015 18:16

Mozesz dodac warunek przed sprawdzaniem, czy gracz jest botem ale nie jestem pewien czy taka osoba nie bedzie wykrywana przez serwer jako bot. Proponuje przepuszczac osoby bez sprawdzania logujace sie z ip 127.0.0.1 czyli localhost. Nikt z tego ip nie wejdzie wiec to rozwiazuje problem.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "Anty CT-Shield"
#define VERSION "1.1"
#define AUTHOR "Sn!ff3r"

#define REVEMU        4
#define TASK        411

new bool:userCheck[33], bool:jest_botem[33];
new dp_r_id_provider

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

	RegisterHam(Ham_Spawn, "player", "client_spawn", 1)

	dp_r_id_provider = get_cvar_pointer ("dp_r_id_provider")
}
public client_connect(id)
{
	new ip[32];
	get_user_ip(id, ip,31);
	if(containi(ip, "127.0.0.1") != -1)
		jest_botem[id] = true;
	else
		jest_botem[id] = false;

	userCheck[id] = false    
}
public client_spawn(id)
{
	if(!is_user_alive(id) || jest_botem[id] || !dp_r_id_provider || task_exists(TASK + id))
		return;

	server_cmd("dp_clientinfo %d", id);
	server_exec();

	if(get_pcvar_num(dp_r_id_provider) == REVEMU && !userCheck[id])
	{
		client_cmd(id, "echo ^"^";^"setinfo^" revemu 1");
		set_task(1.0,"client_check", TASK + id);
	}
}
public client_check(TASKID)
{
	new id = TASKID - TASK
	if(!is_user_alive(id))
		return

	new tmp[2], reply
	get_user_info(id, "revemu", tmp, 1)
	reply = str_to_num(tmp)

	if(!reply)
	{
		new ip[16], name[33];
		get_user_ip(id, ip, 15, 1);
		get_user_name(id, name, 32);

		log_to_file("anty_ct_shield.log", "Wykryto uruchomione dodatkowe pliki .DLL u gracza %s [%s] - kick...", name, ip);
		server_cmd("kick #%d Usun pliki .asi oraz .dll!", get_user_userid(id));
	}

	userCheck[id] = true;
}

  • +
  • -
  • 0

b35020692_qesnxqa.png


#3 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 17.09.2015 13:58

jak juz to lepiej 

public client_authorized(id)
{
	jest_botem[id] = bool:is_user_bot(id);
	userCheck[id] = false    
}

  • +
  • -
  • 0

#4 Linux'

    Pan Pomocny

  • Power User

Reputacja: 549
Wszechwiedzący

  • Postów:1 501
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:AmxMod i SourceMod
Offline

Napisano 17.09.2015 14:14

 

jak juz to lepiej 

public client_authorized(id)
{
	jest_botem[id] = bool:is_user_bot(id);
	userCheck[id] = false    
}

 

Zjedz snikersa bo gwiazdorzysz. Przeczytalas w ogole poczatek mojego posta? Jak tak to po jakie licho sie wyrywasz. :nono: :##:


  • +
  • -
  • 0

b35020692_qesnxqa.png


#5 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 17.09.2015 14:19

	inline bool IsBot()
	{
		if ((pEdict->v.flags & FL_FAKECLIENT) == FL_FAKECLIENT)
		{
			return true;
		}
		
		const char *auth = GETPLAYERAUTHID(pEdict); 	 
		if (auth && (strcmp(auth, "BOT") == 0)) 	 
		{
			return true;
		}
		
		return false;
	}

  • +
  • -
  • 0

#6 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 17.09.2015 14:25

Wszyscy gwiazdorzycie. Użytkownik prosi o mega banalną modyfikację.

public client_spawn(id) {
    
    if(!is_user_alive(id) || !dp_r_id_provider || task_exists(TASK + id))
        return   

na

public client_spawn(id) {
    
    if(!is_user_alive(id) || !dp_r_id_provider || task_exists(TASK + id) || is_user_bot(id))
        return   

i będzie działać bez zająknięcia.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych