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

Don't say IPs nie banuje


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 L0rdS^P0l4K

    Profesjonalista

  • Użytkownik

Reputacja: 117
Zaawansowany

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Denis
  • Lokalizacja:Tarnowskie Góry
Offline

Napisano 07.03.2009 18:06

Witam. Otóż mam mały problem [kolejny] z pluginem który za zadanie ma banować/ukrywać wypowiedź lub ją zamienić jeżeli ktoś na SAY'u poda IP. Problem polega na tym iż plugin nie banuje :-). W cvarach ustawiłem wszystko ładnie więc wszystko powinno być ok. Po moich próbach wychodzi że plugin ukrywa wiadomość z IP i playerowi który to zrobił daje jedynie KICK'a.
Dodam może że serwer jest STEAM i banowane powinno być na Steam ID

Proszę o szybką pomoc z tym. Niżej daje pełny SMA.

#define PLUGINNAME	"Don't say IPs"
#define VERSION		"0.1"
#define AUTHOR		"JGHG"
/*
Copyleft 2005
Plugin topic: http://www.amxmodx.org/forums/viewtopic.php?p=90172


Don't say IPs
=============
Messages like "hey join my server 213.34.231.23" are automatically blocked... and another message is printed instead. :-P
Or, you can choose to just ban violators by setting cvar ip_banviolators to 1 and ip_banminutes to how many minutes the violator should be banned. 0 is permanent, 5 is default.

/JGHG


VERSIONS
========
050204	0.1	First version


CREDITS
=======
Requested by lord_inuyasha88.
*/

#include <amxmodx>
#include <regex>

#define PATTERN				"(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" // b
#define REASON				"IP advertising"
#define CVAR_BANMINUTES		"ip_banminutes"
#define CVAR_BANVIOLATORS	"ip_banviolators"

// Globals below
new Regex:g_result
new g_returnvalue
new g_error[64]
new g_allArgs[1024]
// Globals above

public plugin_modules() {
	require_module("regex")
}

public hook_say(id, level, cid) {
	read_args(g_allArgs, 1023)
	g_result = regex_match(g_allArgs, PATTERN, g_returnvalue, g_error, 63)
	switch (g_result) {
		case REGEX_MATCH_FAIL: {
			log_amx("REGEX_MATCH_FAIL! %s", g_error)
			return PLUGIN_CONTINUE
		}
		case REGEX_PATTERN_FAIL: {
			log_amx("REGEX_PATTERN_FAIL! %s", g_error)
			return PLUGIN_CONTINUE
		}
		case REGEX_NO_MATCH: {
			return PLUGIN_CONTINUE
		}
		default: {
			if (get_cvar_num(CVAR_BANVIOLATORS)) {
				new userid = get_user_userid(id)
				new minutesString[10]
				get_cvar_string(CVAR_BANMINUTES, minutesString, 9)
				new temp[64], banned[16], minutes = get_cvar_num(CVAR_BANMINUTES)
	
				if (minutes)
					format(temp, 63, "%L", id, "FOR_MIN", minutesString)
				else
					format(temp, 63, "%L", id, "PERM")
				
				format(banned, 15, "%L", id, "BANNED")
	
				new authid[32]
				get_user_authid(id, authid, 31)
	
				new name[32]
				get_user_name(id, name, 31)
				log_amx("%s (%s), %s %s because of advertising an IP address. This was written: ^"%s^"", name, authid, banned, temp, g_allArgs)
	
				server_cmd("kick #%d ^"%s (%s %s)^";wait;banid ^"%d^" ^"%s^";wait;writeid", userid, REASON, banned, temp, minutes, authid)				
			}
			else {
				client_cmd(id, "say ^"I must say.... This server ROCKS!^"")
			}
			regex_free(g_result)
			return PLUGIN_HANDLED // block msg
		}
	}
	
	return PLUGIN_CONTINUE
}



public plugin_init() {
	register_plugin(PLUGINNAME, VERSION, AUTHOR)
	
	register_clcmd("say", "hook_say")
	register_cvar(CVAR_BANVIOLATORS, "0")
	register_cvar(CVAR_BANMINUTES, "30")
	
	register_dictionary("admincmd.txt")
}

  • +
  • -
  • 0

#2 bakul. <3

    Wszechmogący

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:612
  • GG:
  • Imię:Przemek
  • Lokalizacja:Warszawa
Offline

Napisano 07.03.2009 20:23

Podaj cvar`y, które wpisałeś w amxx.cfg.
  • +
  • -
  • 0

#3 L0rdS^P0l4K

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 117
Zaawansowany

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Denis
  • Lokalizacja:Tarnowskie Góry
Offline

Napisano 07.03.2009 22:03

ip_banviolators 1 // 1 - banowanie, 0 - sama podmiana tekstu
ip_banminutes 60 // czas BAN'a w minutach, 0 = perm.

Czyli powinien banować na 60min. I niby realizuje tę linijkę gdzie jest banowanie... tylko z tego wszystkiego wychodzi jedynie kick.
  • +
  • -
  • 0

#4 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 07.03.2009 22:08

a ogólnie bany ci działają ? bo jeśli nie to ten plugin nic nie zrobi.
  • +
  • -
  • 0

#5 L0rdS^P0l4K

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 117
Zaawansowany

  • Postów:197
  • GG:
  • Steam:steam
  • Imię:Denis
  • Lokalizacja:Tarnowskie Góry
Offline

Napisano 07.03.2009 23:16

Jakby mi bany nie działały to pewnie wśród moich postów tutaj ten problem znalazłby się przed tym problemem. Tak bany działają... i w sumie nie wiem czemu tego na początku nie napisałem. Używam minibans od seby [sniffera].

Odświeżam...

Serwer teraz wykorzystuje amxbans i banowanie poprawnie wychodzi... jednak nie w wykonaniu "don't say IPs"
  • +
  • -
  • 0




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

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