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

Problem z przerobieniem blokady ip


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

#1 bisser

    Profesjonalista

  • Użytkownik

Reputacja: 7
Nowy

  • Postów:177
  • Lokalizacja:Zachód
Offline

Napisano 04.12.2009 18:35

Przerabiałem plugin hugeban.amxx który blokuje określone zakresy ip (w pliku ban.txt) i mam problem ponieważ jak wprowadzam zmiany
typu:
public client_connect(id)
{ 
             new authid[32]
             get_user_authid(id, authid, 31)
             if( equali("VALVE_ID_PENDING", authid) || equali ("VALVE_ID_LAN", authid))
             return PLUGIN_CONTINUE

            new ip[16],ip1[16],ip2[16],ip3[16],ip4[16]
            new ipA[16],ipB[16],a1[16],a2[16],a3[16],a4[16],b1[16],b2[16],b3[16],b4[16]
             new czas[20],a,index,i,plik[100],len,nieban,c
             new tmp[100],aq1,aq2,aq3,aq4,bq1,bq2,bq3,bq4,iq1,iq2,iq3,iq4
             new CurrentTime[25],iplog[16],name[50]
             new ipLarge,aLarge,bLarge
             CurrentTime=""
             get_time("%Y.%d.%m - %H:%M:%S - ",CurrentTime,25)
              if(file_exists("addons/amxmodx/configs/ban.txt")!=0)
             get_user_ip(id,ip,16,1)
              while( contain ( ip, "." ) > -1 )
              replace( ip, 16, ".", " " )

Plugin się kompiluje z błędem : /groups/amxmodx/tmp3/textdMvFQZ.sma(116) : warning 209: function "client_connect" should return a value

I działa z tym że wpuszcza na serwer graczy z authid "VALVE_ID_PENDING" i "VALVE_ID_LAN" zaś blokuje ze STEAM_, a powinien robić odwrotnie.

Próbowałem też z return PLUGIN_HANDLED i było tak samo, zaś jak dawałem w kodzie "if( equali("STEAM_", authid))" to blokowało wszystkich.

Może macie jakieś pomysły na przeróbkę tego pluga.
Plik .sma w załączniku.

Załączone pliki


  • +
  • -
  • 0

#2 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 06.12.2009 08:34

if( equali("VALVE_ID_PENDING", authid) || equali ("VALVE_ID_LAN", authid)) 
             return PLUGIN_CONTINUE

Jesli Pending lub lan, to zakoncz wywolywanie funkcji (czyt. return). Co sie dziwic ze nie sprawdza czy sa zbanowani ;>

Dobra a co wazniejsze, to funkcja equali zwraca pozycje w ciagu w ktorym znalazl pasujacy tekst - czyli jak oba sie zaczynaja od STEAM to zwroci wartość 0 - od pierwszego znaku, a nastepnie warunek IF interpretuje wartosc 0 jako FAłSZ. Gdy w danym ciagu nie wystepuje w ogóle dany ciag, to zwraca -1, a warunek IF interpretuje wszysto poza 0 jako true.
  • +
  • -
  • 0

#3 bisser

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:177
  • Lokalizacja:Zachód
Offline

Napisano 06.12.2009 12:03

Dżisas Miczu zrobiłeś taki wykład że aż mi się mózg zlasował.

Czyli jaki ma być wpis kodzie żeby nie blokował graczy ze STEAM ?
  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 06.12.2009 12:52

Funkwiki nie dzialala i nie moglem tego sprawdzic... to co pisalem to bylo o funkcji containi... Ale i tak ona powinna byc uzyta, bo nie znasz calego steam_id...
if(containi(authid, "STEAM_")==0)   return PLUGIN_CONTINUE

To nie pozwoli by byli sprawdzani gracze ze steamem(?)... ...

Zapomnialem o kolejnej sprawie, gracze przy connecie nie musza miec koniecznie ustalonego steamu... od tego mamy event:

public  client_authorized ( id )
gracze steam od czasu polaczenia do czasu tego eventu za get_user_authid maja STEAM_ID_PENDING. Nie wiem jak to sie ma do nonsteam...
  • +
  • -
  • 0

#5 bisser

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 7
Nowy

  • Postów:177
  • Lokalizacja:Zachód
Offline

Napisano 08.12.2009 10:56

Plugin z tym wpisem kompiluje się z znowu z błędem
/groups/amxmodx/tmp3/textmduvuZ.sma(117) : warning 209: function "client_connect" should return a value

Ale z tego co widzę to chyba działa, czyli wpuszcza graczy ze STEAM_ a pozostałych blokuje.
  • +
  • -
  • 0

#6 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 08.12.2009 13:19

bi$$er, jak uzywasz w srodku return PLUGIN_CONTINUE to na koncu calego kodu tez musi sie znalezc cos w rodzaju return PLUGIN_*** - to powinno naprawic warninga.
  • +
  • -
  • 0




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

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