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
 

GwynBleidD - zdjęcie

GwynBleidD

Rejestracja: 23.05.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 05.08.2023 01:26
*****

#726649 [KOSZ] Paczka Sklep SMS

Napisane przez GwynBleidD w 27.05.2016 21:21

Złamanie regulaminu forum.
Przeczytaj go, zastosuj się do niego a następnie załóż nowy temat.

Regulamin forum dostępny jest pod adresem AMXX.pl/topic/3-regulamin-forum
Ten temat w ciągu 24 godzin zostanie przeniesiony do kosza.
  • +
  • -
  • 2


#726336 [CS 1.6 GO MOD] Idealna modyfikacja czy wielka ściema?

Napisane przez GwynBleidD w 18.05.2016 20:55

Temat muszę przyznać bardzo ciekawy i gratuluję autorowi postępów. Tego typu machlojki powinny być jak najbardziej ujawniane.

 

Ze swojej strony dodam jedną rzecz do tematu: Licencja AMXModX wymaga od autorów pluginów stosowania licencji GPL, co oznacza, że MUSZĄ oni ujawniać źródła swoich pluginów (pliki sma). Dotyczy to każdego pluginu, nie ważne czy go od kogoś kupujecie czy jest dostępny publicznie, macie dostać razem z nim źródła. Dlatego polecam każdemu, kto od kogokolwiek kiedykolwiek kupił lub ma zamiar kupić plugin, wymaganie źródeł, podpierając się licencją AMXModX. Jeśli nie dostaniecie źródeł - nie kupujcie.

 

Są od tego pewne wyjątki - np plugin, który jest w stanie skutecznie banować osoby ze zmiennym adresem IP, jednak poza tą funkcją nie powinno w pluginie znajdować się nic innego. Na takie wyjątki możemy przymykać oko.

 

Swoją drogą, jeśli ten plugin był dostępny na tej stronie: http://csgomods.pl/to autor chyba się już ogarnął - w paczce jest adnotacja, aby zmienić wszystkie hasła.


  • +
  • -
  • 2


#712588 revEmu - jak to dokładnie działa?

Napisane przez GwynBleidD w 01.10.2015 11:58

RevEMU działa następująco:

1. klient łączy się z serwerem
2. Serwer sprawdza, czy klient używa RevEmu, jeśli tak, odpytuje o Hardware ID
3. Klient zwraca Hardware ID
4. Serwer na podstawie Hardware ID generuje SteamID, dokładny proces generowania konfigurujesz w dproto.

Sam proces generowania bierze Hardware ID gracza oraz tajny klucz z serwera i mixuje je dzięki czemu wygenerowane SteamID jest nieprzewidywalne. Hardware ID da się zmienić i oszukać tym samym serwer, zmieniając tym samym wygenerowane przez serwer ID.

Pamiętajmy też, że mam tu na myśli wyłącznie ostatni człon (człon C) SteamID. Pozostałe człony są stałe dla każdego gracza i ustawiasz je w dproto. Jeśli zmienisz konfigurację dproto, te człony też się zmienią.

Jako, że tajny klucz serwera jest tajny, bez jego znajomości nie da się przewidzieć jakie dokładnie Hardware ID należy serwerowi podać by uzyskać odpowiednie SteamID. Formalnie więc nie da się celowo pod kogoś podszyć...

Formalnie... bo w praktyce każda instalacja dproto domyślnie korzysta z tego samego sekretnego klucza! A ten klucz jest bardzo łatwo pozyskać! Mając go możemy sobie wygenerować dokładnie takie SteamID jakie chcemy (no ostatni człon).

za ustawienie tego klucza odpowiada config SteamIdHashSalt w dproto, nie jestem pewien w której wersji dproto go wprowadzili. Po jego zmianie, wszystkie SteamID z emulatorów ulegną zmianie. Ustaw jego wartość na coś unikalnego i będziesz miał pewność, że ktoś się celowo pod konkretny SteamID nie podszyje :)
  • +
  • -
  • 3


#711773 Zmiana prędkości graczy

Napisane przez GwynBleidD w 14.09.2015 08:53

No to krótkie wyjaśnienie, skoro nie rozumiesz:

 

silnik HLDS ustala prędkość bazową gracza na podstawie kilku kryteriów, jednym z nich jest trzymana w ręce broń. Silnik pobiera przy każdej zmianie broni (lub innym evencie) prędkość dla tej broni i ustala ją graczowi.

 

Klasyczne podejście do tematu polegało na podmianie prędkości gracza po tym, jak silnik mu ją nada. Podejście  przedstawione przez BlackPerfum polega na podmianie prędkości broni, którą gracz trzyma. Dzięki temu zostanie ustawiona graczowi nasza nowa prędkość. Sposób ten praktycznie nie posiada wad, ponieważ nadal zlecamy ustawienie prędkości silnikowi gry, który wie kiedy ta prędkość powinna wynosić zero (podczas freeze time lub podkładania paki), kiedy należy ją z jakiegoś powodu zredukować itp. Prędkość zwracana przez broń jest w każdym przypadku w normalnych warunkach stała i zależy wyłącznie od broni.

 

Dodatkowo w ten sposób możemy przypisać własne prędkości dla podanych broni, dzięki czemu możemy podwyższyć ogólną prędkość gracza ale nadal będzie zależała ona od broni.


  • +
  • -
  • 1


#711583 Dodanie możliwości kupna dodatkowej broni.

Napisane przez GwynBleidD w 09.09.2015 09:19

A czy plugin GHW Weapon Pickup nie rozwiązuje Twojego problemu? Wprowadza on możliwość kupienia kilku sztuk broni poprzez menu kupowania. Ma kilka błędów (m.in problemy z amunicją, gdy podniesiemy broń z ziemii, którą już w ekwipunku mamy - amunicja w magazynku zamienia się na amunicję tej broni podniesionej, przez co czasem nam może jej ubyć), ale działa całkiem dobrze i poprawienie tych błędów nie byłoby wcale tak ciężkie.

 

Jeśli chcesz ograniczyć wyłącznie do kupowania (czyli nie możemy podnieść 2 broni) to wystarczy właściwie wywalić z kodu jedną funkcję (albo wyrejestrować od niej event).

 

// edit

 

tak teraz przyszło mi do głowy: jeśli chcesz ograniczyć możliwość kupna 2 broni do kilku modeli, np możesz mieć jako 2 broń MP5, ale AK-47 już nie, to GHW Weapon Pickup dobrym rozwiązaniem nie będzie.

 

Wtedy po prostu stwórz zwykłe menu, wywoływane komendą lub np podmieniające buymenu (nie polecam - ludzie będą bardzo na to narzekać gdy będą chcieli zamienić broń znajdującą się już w ekwipunku) i po wybraniu pozycji po prostu zabierz graczowi kasę i dodaj mu broń. Nie spowoduje to wyrzucenia broni, którą już posiada - o to byś musiał sam zadbać :)


  • +
  • -
  • 1


#710756 Trzęsienie ekranem gracza - inaczej niż ScreenShake

Napisane przez GwynBleidD w 26.08.2015 10:51

Zainstaluj graczowi silnik wibracyjny z tyłu monitora i uruchamiaj zdalnie z AMXX :)

 

Nie, nie da się.


  • +
  • -
  • 3


#709665 Na co najlepiej banować?

Napisane przez GwynBleidD w 15.08.2015 12:47

Jedyną skuteczną metodą banowania graczy jest ban na steam - ale to dotyczy wyłącznie graczy steam.

 

Gracze non-steam mogą posiadać wygenerowane ID, ale... to ID generowane jest albo na komputerze gracza, co da się oszukać, albo na serwerze, który nie jest w stanie zidentyfikować gracza bez jakiegoś typu autoryzacji (którą dostarcza wyłącznie steam).

 

Można wyszukiwać nowe metody bana, konfigurować dproto żeby generowało steam na podstawie adresu IP ale to wszystko da się obejść/ominąć. Krótko mówiąc: nie ma i nie będzie skutecznego sposobu na banowanie graczy non-steam.


  • +
  • -
  • 3


#709037 Ban przez komendę addip - gdzie się zapisuje? Banowanie zakresu

Napisane przez GwynBleidD w 09.08.2015 14:39

Bany na serwerze HLDS są przechowywane w pamięci serwera - tj znikają gdy serwer zostanie wyłączony. Dodatkowo jednak serwer dłuższe bany (nie wiem czy tylko permy, czy bany powyżej pewnego czasu) zapisuje w pliku listip.cfg, dzięki czemu po restarcie serwera są one wczytywane ponownie.

 

Tak samo jest z banami na Steam ID, różni się tylko plik, bo w tym przypadku jest to banned.cfg

 

Dodatkowo istnieją komendy writeid oraz writeip, którymi możemy wymusić zapisanie banów odpowiednio do banned.cfg i do listip.cfg (wszystkich banów, które są w pamięci serwera i mają większą długość).


  • +
  • -
  • 2


#709035 HLTV czy jest możliwość aby nagrywało dźwięk graczy

Napisane przez GwynBleidD w 09.08.2015 14:32

Tak, może. HLTV nagra wszystko, co usłyszy. Musisz tylko ustawić taki sam kodek dźwięku na HLTV, jaki jest na właściwym serwerze, inaczej usłyszysz coś dziwnie zniekształconego.

 

No właśnie tu trwi haczyk: to, co usłyszy! Jeśli masz wyłączony alltallk to HLTV nie nagra nic, bo nic nie usłyszy! No chyba, że ktoś będzie siedział na specu. Można to obejść pisząc prosty plugin, który da HLTV możliwość słyszenia wszystkiego.


  • +
  • -
  • 3


#709030 Boty reklamujące

Napisane przez GwynBleidD w 09.08.2015 14:02

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

 i

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

to dokładnie to samo, tylko inaczej zapisane.

 

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

i

[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]{1,3}.{1,3}[0-9]

również, jednak 2 wersji AMXX może nie obsłużyć, wtedy nie będzie łapało żadnego IP albo będzie wysypywało błędy. Jednak jest wydajniejszą wersją, więc musicie sprawdzić czy zadziała czy nie, jeśli zadziała to użyć, jeśli nie to 1 wersji która zadziała na 100%.

 


  • +
  • -
  • 2


#709018 Boty reklamujące

Napisane przez GwynBleidD w 09.08.2015 11:25

Drobna analiza wyrażenia regularnego, umieszczonego w w/w temacie:

([0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9].*[qwertyuiopasdfghjklzxcvbnm`,./;'-= ].*[0-9])

Widać, że tworzył go ktoś kto nie zna się na wyrażeniach regularnych, bo po 1. można go zapisać prościej:

([0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9].*[a-z`,./;'-= ].*[0-9])

a dwa: mały przykład tego, co ten regex złapie:

12 groszy za 3 modele w wersji 2 wiec naprawdę sie oplaca 1!!!

Dlaczego? bo łapie:

dowolną cyfrę, po niej dowolny ciąg znaków, po niej znak z dość szerokiej grupy, następnie znów dowolny ciąg znaków, znów cyfrę... i tak 4 razy (znaczy do złapania 4 cyr). Jaki to ma sens? kto umieszcza IP w ten sposób?

 

A czego nie złapie?

5X12X23X1

Co już może być zinterpretowane jako adres IP.

 

Sens ma łapanie: ciągu cyfr (max do 3ch, adres IP nie może posiadać więcej w 1 segmencie)) poprzedzonego max 3 dowolnymi znakami (po wpisaniu większej ilości znaków nie wygląda to już jak adres IP) i tak 4 razy, gdzie po ostatniej cyfrze już nie łapiemy dowolnych 3ch znaków.

 

Regex:

[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?..?.?[0-9][0-9]?[0-9]?

(zapisane bez użycia notacji {1,3} bo nie wiem, czy amxx to obsługuje)

 

Tutaj już się trzeba natrudzić, żeby znaleźć normalnie wyglądającą wypowiedź, która zostanie wyłapana. I nie znalazłem niczego, co by wyglądało jak adres IP chociaż troszkę, a by nie było łapane.

 

 


  • +
  • -
  • 1


#708478 Mocne trzęsienie ekranem - jak to ustawić?

Napisane przez GwynBleidD w 03.08.2015 12:58

10 sekund to nie będzie trwało, w shorcie możesz zapisać maksymalnie 15 bitów (short ma 16 bitów, ale 1 jest zarezerwowany na znak). Maksymalnie więc możesz w parametrze umieścić 32767 tych śmiesznych unitów, co daje ciut mniej niż 8 sekund (czyli (1<<12) * 8 już jest za dużo, ale (1<<12) * 8 - 1 się jeszcze zmieści).

 

Co się stanie gdy spróbujesz ustalić 10 sekund? Ano zmienna się przekręci i wyjdzie Ci z tego coś ujemnego, jak to potraktuje HLDS? Nie wiem... Ale to:

write_short((1<<12) * 70)

już jest o wiele więcej niż w shorcie można schować i skurczy się do 6 sekund.

 

Chcesz "wygodnie" obliczyć ile Ci się zmieści, ile sekund jaka wartość da itp? Otwórz windowsowy kalkulator i przełącz go na tryb programisty (jeśli masz jeszcze windowsa XP to niestety tego trybu może nie być), masz tam mnożenie, dzielenie, przesunięcia bitowe itp. Dodatkowo zawsze jest wizualizacja w bitach :) Teraz każda zmienna, która Ci wyjdzie poza 32 bit, zostanie do 32 bitów ucięta, możesz sobie więc w prosty sposób sprawdzić jaki efekt da np (1<<12) * 144 (podpowiedź: da zero).

 

 


  • +
  • -
  • 2


#708109 Miejsce uderzenia nożem/trafienie w ścianę/gracza

Napisane przez GwynBleidD w 30.07.2015 08:37

Linux' jesteś pewien, że zadziała to również na nóż?


  • +
  • -
  • 1


#707511 NetBufExtender

Napisane przez GwynBleidD w 24.07.2015 09:06

Co to za błędy?



Błąd Reliable channel overflowed pojawia się, gdy do gracza wysyłanych jest zbyt dużo dodatkowych informacji w kanale Reliable. Tymi informacjami mogą być np wiadomości HUD, menu, informacja o zabiciu, zmiana modeli gracza itp, itd. Kanałów jest 2: Reliable i Unreliable, różnica między nimi jest dość prosta: przy zapełnieniu kanału Reliable gracz zostanie kicknięty, przy zapełnieniu kanału Unreliable, niektóre wiadomości przez niego wysyłane zaczną się gubić (np gracz nie będzie widział aktualnego HUDa).

 

Skąd się biorą?


Serwer sam z siebie wysyła dość sporo informacji do gracza. Szczególnie przy spawnie gracza wysyłanych jest sporo informacji o inicjującym się świecie - modele graczy spawnujących się na mapie, bronie itp. Domyślnie sam silnik HLDS nie zapełni tego kanału, jednak twórcy pluginów dodają własne informacje do tego kanału typu: informacje w HUD, liczniki, zmiana modeli itp. Jeśli robią to w niewłaściwym momencie i w zbyt dużej ilości, gracz zostanie kicknięty z serwera.

 

Jak rozwiązać problem?


Sposoby są 2: zmniejszenie ilości wysyłanych informacji przez pluginy (lub przesunięcie wysyłania informacji tak, żeby nie pokrywały się z dużą ilością rzeczy wysyłanych przez sam serwer) lub powiększenie bufora.

 

Plugin poniżej robi właśnie to drugie, powiększa domyślny rozmiar bufora, dzięki czemu trudniej jest go przepełnić.

 

Pamiętaj! to nie jest rozwiązanie na wszystkie Twoje problemy! Po 1. jeśli jakiś konkretny plugin powoduje częste wywalanie graczy z tym komunikatem, zoptymalizuj go odpowiednio, ogranicz korzystanie z kanału reliable, przesuń niektóre rzeczy (jak np licznik prędkości, informacja o statystykach odświeżana cały czas itp) do kanału unreliable, gdzie nie będą stanowić problemu. Głównie tyczy się to twórców pluginów: skupcie się na ich optymalizacji zamiast omijać problem dodając do swojego pluginu ten moduł, żeby zwiększyć kanał reliable!

 

Plugin prócz zwiększenia kanału reliable, powiększa również bufory spektatorów i bufor SignOn. Działa on zarówno po stronie klienta, jak i serwera. Jego użycie może spowodować lekkie opóźnienie w wyświetlaniu informacji po stronie gracza - paczki danych są dzielone jeśli zajdzie taka potrzeba.

 

Instalacja:


Standardowo instalujemy ten plugin, jak wszystkie pluginy metamoda. Rozpakuj paczkę do folderu cstrike (lub innego folderu moda, jeśli stawiasz np. serwer dod) tak, aby zawartość folderu addons została nadpisana. Następnie dodaj poniższe linie (nie jest błędem dodanie obu, chociaż wystarczy jedna - zgodna z systemem operacyjnym serwera) do plugins.ini metamoda (domyślnie: addons/metamod/plugins.ini):

; NetBufExtender
win32 addons\nbex\nbex.dll

linux addons/nbex/nbex.so

Pobieranie


Wersja 1.0: Załączony plik  NetBufExtender_1_0.zip   46,57 KB  581 Ilość pobrań

 

Źródło: http://cs.rin.ru/for...hp?f=10&t=66907


  • +
  • -
  • 9


#707329 Pytania dotyczące scriptingu.

Napisane przez GwynBleidD w 22.07.2015 17:41


give_him_200xp

a co zrobisz jeśli będziesz chciał użytkownikowi dać 201 expa? Stworzysz parę tysięcy takich funkcji, żeby każdy przypadek uwzględnić? raczej nie... dlatego funkcje mają parametry.


  • +
  • -
  • 2