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
Edycja Pluginu

[ROZWIĄZANE] DSI reklamowanie stron www / pl

edycja pluginu

Najlepsza odpowiedź kukla1910, 09.04.2014 23:24

spróbuj:

#include <amxmodx>
#include <regex>

new pCvar[5], iCvar[5], zareklamowal[33]
new Powod[64], Flagi[12], Domyslnie[128]

new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini";
new NazwySlow[192][32]
new IloscDozwolonych

public plugin_init() {
    register_plugin("Don't say IPs", "1.0", "naXe")

    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")

    pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1))
    pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame
    pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde"
    pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame
    pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame

    if(!file_exists(PlikAllowed)) {
        log_message("Plik %s nie zostal odnaleziony", PlikAllowed)
        return
    }
    new iLen
    while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) {
        if(NazwySlow[IloscDozwolonych][0] == ';') continue

        NazwySlow[IloscDozwolonych][0] = iLen
        ++IloscDozwolonych
    }
}

public plugin_cfg() {
    iCvar[0] = get_pcvar_num(pCvar[0])
    iCvar[1] = get_pcvar_num(pCvar[1])

    get_pcvar_string(pCvar[2], Flagi, 11)
    get_pcvar_string(pCvar[3], Powod, 63)
    get_pcvar_string(pCvar[4], Domyslnie, 127)
}

public hook_say(id) {
    new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i
    read_args(said, 1023)
    read_argv(0, cmd, 31)

    while(i < IloscDozwolonych) {
        if((pos = containi(said, NazwySlow[i][1])) != -1) {
            new len = NazwySlow[i][0]
            while(len--) said[pos++] = '*'
            znalaziono = true
            continue
        }
        ++i
    }
    new Regex:g_result = regex_match(said, "(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][pl]?)", zwrocona_wartosc, g_blad, 63)
    switch(g_result) {
        case REGEX_MATCH_FAIL: {
            log_amx("REGEX_MATCH_FAIL! %s", g_blad)
            return 0
        }
        case REGEX_PATTERN_FAIL: {
            log_amx("REGEX_PATTERN_FAIL! %s", g_blad)
            return 0
        }
        case REGEX_NO_MATCH: return 0
        default: {
            if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0
            else {
                if(++zareklamowal[id] > iCvar[0]) {
                    engclient_cmd(id, cmd, "%s", Domyslnie)
                    server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod)
                    return 1
                }
                regex_free(g_result)
            }
            return 1
        }
    }
    return 0
}
  Przejdź do postu


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 Shaxu

    Zaawansowany

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:89
  • Imię:Adam
  • Lokalizacja:Olsztyn
Offline

Napisano 07.04.2014 12:22

Witam Serdecznie wszystkich.

Mam następujący problem ze swoim pluginem, problem polega na tym że gracze mogą reklamować swoje strony internetowe.

Chciałbym prosić aby ktoś mi pomógł w edycji tego pluginu i dodał funkcję blokującą poszczególnych fraz takich jak www / eu / pl itp.

#include <amxmodx>
#include <regex>

new pCvar[5], iCvar[5], zareklamowal[33]
new Powod[64], Flagi[12], Domyslnie[128]

new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini";
new NazwySlow[192][32]
new IloscDozwolonych

public plugin_init() {
	register_plugin("Don't say IPs", "1.0", "naXe")

	register_clcmd("say", "hook_say")
	register_clcmd("say_team", "hook_say")

	pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1))
	pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame
	pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde"
	pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame
	pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame

	if(!file_exists(PlikAllowed)) {
		log_message("Plik %s nie zostal odnaleziony", PlikAllowed)
		return
	} 
	new iLen 
	while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) { 
		if(NazwySlow[IloscDozwolonych][0] == ';') continue

		NazwySlow[IloscDozwolonych][0] = iLen
		++IloscDozwolonych
	}
}

public plugin_cfg() {
	iCvar[0] = get_pcvar_num(pCvar[0])
	iCvar[1] = get_pcvar_num(pCvar[1])

	get_pcvar_string(pCvar[2], Flagi, 11)
	get_pcvar_string(pCvar[3], Powod, 63)
	get_pcvar_string(pCvar[4], Domyslnie, 127)
}

public hook_say(id) {
	new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i
	read_args(said, 1023)
	read_argv(0, cmd, 31)

	while(i < IloscDozwolonych) {
		if((pos = containi(said, NazwySlow[i][1])) != -1) { 
			new len = NazwySlow[i][0]
			while(len--) said[pos++] = '*'
			znalaziono = true
			continue
		}
		++i
	}
	new Regex:g_result = regex_match(said, "(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]?)", zwrocona_wartosc, g_blad, 63)
	switch(g_result) {
		case REGEX_MATCH_FAIL: {
			log_amx("REGEX_MATCH_FAIL! %s", g_blad)
			return 0
		}
		case REGEX_PATTERN_FAIL: {
			log_amx("REGEX_PATTERN_FAIL! %s", g_blad)
			return 0
		}
		case REGEX_NO_MATCH: return 0
		default: {
			if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0
			else {
				if(++zareklamowal[id] > iCvar[0]) {
					engclient_cmd(id, cmd, "%s", Domyslnie)
					server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod)
					return 1
				}
				regex_free(g_result)
			}
			return 1
		}
	}
	return 0
} 

Za udzieloną pomoc serdecznie dziękuję, pozdrawiam !


  • +
  • -
  • 0

#2 kukla1910

    Profesjonalista

  • Przedstawiciel Firmy

Reputacja: 55
Pomocny

  • Postów:216
  • GG:
  • Imię:Darek
  • Lokalizacja:Łódź
Offline

Napisano 09.04.2014 23:24   Najlepsza odpowiedź

spróbuj:

#include <amxmodx>
#include <regex>

new pCvar[5], iCvar[5], zareklamowal[33]
new Powod[64], Flagi[12], Domyslnie[128]

new PlikAllowed[] = "addons/amxmodx/configs/allowed.ini";
new NazwySlow[192][32]
new IloscDozwolonych

public plugin_init() {
    register_plugin("Don't say IPs", "1.0", "naXe")

    register_clcmd("say", "hook_say")
    register_clcmd("say_team", "hook_say")

    pCvar[0] = register_cvar("dsi_check_times", "3") // po ilu reklamach ma banowac (w tym przypadku za 4 (+1))
    pCvar[1] = register_cvar("dsi_ban_time", "30") // czas bana za reklame
    pCvar[2] = register_cvar("dsi_immunitet_flags", "a") // mozna laczyc kilka flag np. "abcde"
    pCvar[3] = register_cvar("dsi_ban_reason", "Reklama IP") // powod bana za reklame
    pCvar[4] = register_cvar("dsi_default_say", "Musze to powiedziec... Ten serwer jest za***isty!") // na co zamieniac reklame

    if(!file_exists(PlikAllowed)) {
        log_message("Plik %s nie zostal odnaleziony", PlikAllowed)
        return
    }
    new iLen
    while(IloscDozwolonych < 192 && read_file(PlikAllowed, IloscDozwolonych, NazwySlow[IloscDozwolonych][1], 30, iLen)) {
        if(NazwySlow[IloscDozwolonych][0] == ';') continue

        NazwySlow[IloscDozwolonych][0] = iLen
        ++IloscDozwolonych
    }
}

public plugin_cfg() {
    iCvar[0] = get_pcvar_num(pCvar[0])
    iCvar[1] = get_pcvar_num(pCvar[1])

    get_pcvar_string(pCvar[2], Flagi, 11)
    get_pcvar_string(pCvar[3], Powod, 63)
    get_pcvar_string(pCvar[4], Domyslnie, 127)
}

public hook_say(id) {
    new said[1024], cmd[32], g_blad[64], zwrocona_wartosc, bool:znalaziono, pos, i
    read_args(said, 1023)
    read_argv(0, cmd, 31)

    while(i < IloscDozwolonych) {
        if((pos = containi(said, NazwySlow[i][1])) != -1) {
            new len = NazwySlow[i][0]
            while(len--) said[pos++] = '*'
            znalaziono = true
            continue
        }
        ++i
    }
    new Regex:g_result = regex_match(said, "(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][pl]?)", zwrocona_wartosc, g_blad, 63)
    switch(g_result) {
        case REGEX_MATCH_FAIL: {
            log_amx("REGEX_MATCH_FAIL! %s", g_blad)
            return 0
        }
        case REGEX_PATTERN_FAIL: {
            log_amx("REGEX_PATTERN_FAIL! %s", g_blad)
            return 0
        }
        case REGEX_NO_MATCH: return 0
        default: {
            if(znalaziono || get_user_flags(id) & read_flags(Flagi)) return 0
            else {
                if(++zareklamowal[id] > iCvar[0]) {
                    engclient_cmd(id, cmd, "%s", Domyslnie)
                    server_cmd("amx_ban %d #%d ^"%s^"", iCvar[1], get_user_userid(id), Powod)
                    return 1
                }
                regex_free(g_result)
            }
            return 1
        }
    }
    return 0
}
 
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: edycja pluginu

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

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