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

Konta dla zmiennych IP - brak infa w konsoliplugin blokujacy dane host na bazie netdb


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

#1 Turtle

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:74
  • Imię:Jarek
  • Lokalizacja:kraków
Offline

Napisano 19.03.2012 20:45

Witam serdecznie,
mam problem z wyświetleniem infa w konsoli po otrzymaniu kicka z serwera,
próbowałem już wiele opcji jednak nadal nic,
dlatego prosiłbym was o drobną pomoc.


#include <amxmodx>
#include <amxmisc>
#include <netdb>
#define PLUGIN "Konta IP"
#define VERSION "2.0"
#define AUTHOR "Sn!ff3r"
public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("amx_konto_msg", "Zablokowane IP - sprawdz konsole! ")
}

public client_authorized(id)
{
	   
	    if(get_user_flags(id) & ADMIN_RESERVATION) return PLUGIN_CONTINUE
	   
	    if(access(id,ADMIN_LEVEL_H) && access(id,ADMIN_USER))
	    {
	    remove_user_flags(id,ADMIN_LEVEL_H)
	    return PLUGIN_CONTINUE
	    }
	    new authid[32]
	    get_user_authid(id, authid, 35)
	    if(have_user_nonsteam(authid))
	    {
	    new ip[16], host[50]  
	    get_user_ip(id,ip , 15 , 1)  
	    netdb_gethostbyaddr(ip,host,49)
	   
	    if( ( contain(host,"adsl") != -1 || contain(host,"dynamic") != -1  && contain(host,"dynamic.chello") == -1 )	  
			    {
			    new kickmsg[512]
			    get_cvar_string("amx_konto_msg", kickmsg, 512)
	  client_print(id, print_console, "* * * Masz zmienne IP !")
			    server_cmd("wait;wait;wait;wait;wait;kick #%d ^"%s^"", get_user_userid(id), kickmsg)
			    }
	    }
	    return PLUGIN_CONTINUE
}
stock have_user_nonsteam(authid[])
{
	    if(containi(authid, "VALVE_ID") != -1
	    || containi(authid, "STEAM_ID") != -1
	    || containi(authid, "STEAM_0:3") != -1
	    || containi(authid, "STEAM_0:4") != -1
	    || containi(authid, "VALVE_0:") != -1)
		  return 1;
		 
	    return 0;
}

Chodzi o to że nie ukazuję się w konsoli napis "* * * Masz zmienne IP !"
Reszta działa jak należy.

Z góry dziękuje za okazaną pomoc
  • +
  • -
  • 0

cs.UMRZYJ.com - Odwiedź nas!
 


#2 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 19.03.2012 21:41

Można prosić netdb.inl / netdb.inc ? Bo tak to nawet nie skompiluje by sprawdzić swoje postępy w pomocy ; d
  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 19.03.2012 21:51

Nie wyświetlisz graczowi czegoś w konsoli dopóki nie wybierze on jakiejś drużyny, czy tam dopóki nie zniknie mu powitalne motd, dokładnie nie wiem jak to jest, ale w każdym razie najlepszym sposobem będzie tutaj task.
#include <amxmodx>
#include <amxmisc>
#include <netdb>

#define PLUGIN "Konta IP"
#define VERSION "2.0"
#define AUTHOR "Sn!ff3r"

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar("amx_konto_msg", "Zablokowane IP - sprawdz konsole!");
}

public client_putinserver(id) {
set_task(5.0, "sprawdz_gracza", id);
}

public sprawdz_gracza(id) {
if(!is_user_connected(id) || get_user_flags(id) & ADMIN_RESERVATION)
return PLUGIN_CONTINUE;

if(access(id,ADMIN_LEVEL_H) && access(id,ADMIN_USER)) {
remove_user_flags(id, ADMIN_LEVEL_H);
return PLUGIN_CONTINUE;
}

new authid[32]; get_user_authid(id, authid, 31);
if(!is_steam(authid)) {
new ip[16], host[50];
get_user_ip(id,ip , 15 , 1);
netdb_gethostbyaddr(ip, host, 49);

if((contain(host, "adsl") != -1 || contain(host, "dynamic") != -1) && contain(host, "dynamic.chello") == -1) {
new kickmsg[512];
get_cvar_string("amx_konto_msg", kickmsg, 511);
console_print(id, "* * * Masz zmienne IP !");
server_cmd("wait;wait;wait;wait;wait;kick #%d %s", get_user_userid(id), kickmsg);
}
}

return PLUGIN_CONTINUE;
}

stock bool:is_steam(auth[]) {
if(contain(auth, "STEAM_0:0:") != -1 || contain(auth, "STEAM_0:1:") != -1)
return true;

return false;
}

Zamieniłem też stock odpowiedzialny za sprawdzanie, czy gracz posiada steama.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 Turtle

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:74
  • Imię:Jarek
  • Lokalizacja:kraków
Offline

Napisano 19.03.2012 22:26

netdb pobrałem już skompilowane, więc nie mam tej wersji bibliotek.

powyższe rozwiązanie działa w 100% dzięki wielkie!

mam jeszcze jedno pytanie, bo czasem zdarzają się ISP którzy nie mają hostów,
więc rodzi się pytanie czy dało by rade dopisać dane pule adresowe, aby były także blokowane poza tymi hostami co są teraz?
np 83.9.0.0-83.9.255.255 ??

Użytkownik Turtle edytował ten post 19.03.2012 22:28

  • +
  • -
  • 0

cs.UMRZYJ.com - Odwiedź nas!
 


#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 19.03.2012 22:57

W sumie jeden warunek dla mnie jest tutaj trochę dziwny, "dynamic.chello" należy do stałych ip? Spróbuj może zamienić
if((contain(host, "adsl") != -1 || contain(host, "dynamic") != -1) && contain(host, "dynamic.chello") == -1) {

na
if(containi(host, "adsl") != -1 || containi(host, "dynamic") != -1) {

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 Turtle

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:74
  • Imię:Jarek
  • Lokalizacja:kraków
Offline

Napisano 20.03.2012 15:23

jest dobrze, dynamic chello jest zmieniane raz na rok, lub poprzez jedną wymuszoną próbę pobierając nowy adres przez modem.

a da rade blokować zakresy?
  • +
  • -
  • 0

cs.UMRZYJ.com - Odwiedź nas!
 





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

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