Skocz do zawartości

Ranking


Popularna zawartość

Treść z najwyższą reputacją w 08.06.2016 w Odpowiedzi

  1. 1 punkt
    Wint3R

    Opinia o serwerze

    Okej, to teraz ja. Założyciel serwera (Adik) w sumie jest spoko osobą, bardzo wyrozumiałą dla graczy i miłą. Spędziłem tutaj 5 lat i szczerze mogę polecić serwer. Co prawda teraz PF przechodzi kryzys, a ten nazwijmy go "bug" z zakładką network trafił się w najmniej odpowiednim momencie to naprawdę z graczami można porozmawiać. Od jednego typa usłyszałem, że w wakacje mają powrócić aktualizację gamemoda co mnie bardzo cieszy bo dzięki temu serwerowi poznałem tylu zajebistych ludzi, spędziłem tyle przyjemnych, jesiennych, długich wieczorów, że łezka się w oku kręci. Swoją drogą tak się do niego przyzwyczaiłem, że na innym po prostu nie mogę już grać. Jeżeli serwer postoi jeszcze trochę to zapraszam wszystkich graczy. Musicie mi zaufać, pozdrawiam AweSome:)
  2. 1 punkt
    PrzMas

    Prośby o skrypty

    Działa nawet na tego nowego SobFoX'a, którego podobno nie da się wykryć wózkiem golfowym (tak słyszałem) Niestety, mimo wszystko da się wejść niepostrzeżenie, niektórzy mogą wiedzieć jak, ale - jak każdego - da się przecież ich zbanować A na zmieniarki IP dobry jest filtr polskich IP + "biała lista" (w pliku) dla zweryfikowanych graczy zza granicy. Tutaj masz bazę adresów (ta z samymi państwami) - trzeba sobie wyfiltrować polskie
  3. 1 punkt
    CeKa

    Skrypt przybrał na wadze

    @DaGaXeR @CebulaPL, odpowiem obu: #include <a_samp> main() { } new tablica[500000] = {1,2,3,...}; new tablica2[500000] = {1,2,3,...}; new tablica3[500000] = {1,2,3,...}; new tablica4[500000] = {1,2,3,...}; new tablica5[500000] = {1,2,3,...}; new tablica6[500000] = {1,2,3,...}; public OnGameModeInit() { tablica[123] = 1; return 1; } .amx: 1457kb .pwn: 1kb
  4. 1 punkt
  5. 1 punkt
    PrzMas

    Wykrywanie s0beit'a (anty-s0beit 0.3.7-R2)

    W związku z tym, że przestało mi zależeć na przetrzymywaniu tego "wykrywacza" na własny użytek, toteż postanowiłem opublikować w miarodajnej postaci to co wydedukowałem. native SendClientCheck(clientid, actionid, arg1= 0x00000000, arg2= 0x0000, bytes= 0x0004); // int32, int8, int32, int16, int16 forward OnClientCheckResponse(clientid, actionid, checksum, crc); // int32, int8, int32, int8Deklaracja nagłówka funkcji i callback-a, należy je umieścić gdzieś w skrypcie, najlepiej w widocznym miejscu np. na górze. public OnPlayerConnect(playerid) { SendClientCheck(playerid, 0x47); return 1; }Zainicjowanie sprawdzania, które jest możliwe dopiero wtedy, gdy klasa gracza jest utworzona (oczywiście po stronie klienta) - akcja 0x47 to jest oczekiwanie na załadowanie tej klasy. public OnClientCheckResponse(clientid, actionid, checksum, crc) { switch(actionid) { case 0x47: SendClientCheck(clientid, 0x02); // klasa gracza załadowana, wysłanie zapytania o wygenerowanie checksum-u (akcja 0x02) case 0x02: if (checksum & 0x00ff0000 == 0x00300000) Kick(clientid); // mod-s0beit-sa } }Callback OnClientCheckResponse nie jest wykonywany (wywoływany) w skrypcie gamemode-a, dlatego należy go umieszczać w filtercript-ach. Wiadomo, że jeżeli w ciągu 1 sekundy (czas zależy m.in. od szybkości połączenia klient-serwer) od wywołania funkcji SendClientCheck dla akcji 0x47 (patrz: OnPlayerConnect) nie zostanie wywołany callback OnClientCheckResponse, to można takiego gracza wyrzucić, bo np. to może być RakSAMP albo ulepszony s0beit z pewnymi blokadami. W kwestii polityki proponuję nie chwalić się, że macie coś takiego w skrypcie, a jeśli już to lepiej rozpowszechnić plotkę, że to jest wózek golfowy, ponieważ z pewnego punktu widzenia powyższa metoda jest lepsza od tego wózka, choćby dlatego, że jest dyskretniejsza i prostsza w użyciu, a nawet daje kilka innych możliwości, dla których nie ma w SA-MP wbudowanych funkcji, natomiast (przy powyższej metodzie) łatwo można "zostać niewykrytym" podczas dołączania z s0beit-em na serwer. Co do tych kilku innych możliwości... Proponuję sprawdzić jakie checksum-y są generowane dla graczy znajdujących się w różnym stanie (pieszo, w powietrzu, w wodzie, w pojeździe, ...), którzy już dołączyli do gry, czyli mają już utworzoną klasę gracza (m.in. postać/skin). Do generowania tych checksum-ów wystarczy jedynie wywołanie dla akcji 0x02, natomiast do ich analizowania/porównywania będzie konieczna wiedza na temat operacji bitowych, więc jeżeli ktoś nie czuje się na siłach to może od razu sobie to odpuścić, choć na dobrą sprawę ta wiedza nie jest jakaś tajemna Oprócz akcji 0x47 i 0x02 są jeszcze takie akcje jak poniżej: 0x48: czas, jaki upłynął od momentu uruchomienia systemu operacyjnego klienta/gracza, wyrażony w ilości milisekund;0x46: ta akcja okaże się przydatna w połączeniu z parametrem 'crc', wówczas przekazany do funkcji argument 'arg1' jest zwracany (przez zmienną 'checksum') z niezmienioną wartością.Jeśli chodzi o zgodność klient/serwer dla powyższego kodu, to w/w akcje zostały dodane/odblokowane w wersji 0.3z-R4 i są dostępne do wersji 0.3.7-R2 dla serwera, natomiast dla klienta powyższy mechanizm na pewno jest efektywny od wersji 0.3z-R2 (nie sprawdzałem 0.3z-R1) do 0.3.7-R1. Tak wygląda sytuacja zgodności na chwilę obecną. Z uwagi na brak oficjalnej dokumentacji ze strony twórców nie napiszę nic więcej na temat przedmiotowego w temacie kodu, zresztą i tak już napisałem wystarczająco dużo. Pytania typu co jeszcze oprócz s0beit'a można wykryć są bezcelowe, ponieważ to zależy od pomysłowości tego, kto używa powyższego mechanizmu, no i od faktycznych jego możliwości.
×