←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jakie cvar'y lepsze oraz jak nie pokaz...

  • +
  • -
Lacostii's Photo Lacostii 12.12.2012

Witam, mam do was 2 dość łatwe pytania:

1. Słyszałem, że jak zbyt duża ilość cvarów na serwerze to tym gorzej, bo może to negatywnie wpływać na jego działanie.
Wtedy do was pytanie, lepiej jest nasze wartości dla pluginów umieszczać jako domyślne w kodzie sma i kompilować niż dawać je do amxx.cfg, jest różnica ? A może lepiej w ogóle usunąć cvary i w kodzie pluginu umieścić wartości ?

2. Na serwerze chcąc uniknąć spamu zbindowanymi /sklep , /menu itp. co zrobić w kodzie pluginu, ażeby działał on dalej poprawnie, ale w czacie nie wyświetlał żadnych wiadomości o wpisywanym poleceniu.

Na przykład gdy jest tak, to wyświetla. Trzeba coś tu dopisać lub coś innego zrobić by nie pokazywało ich ?

register_clcmd("say /sklep", "Sklep");
register_clcmd("say /shop", "Sklep");
register_clcmd("say_team /sklep", "Sklep");
register_clcmd("say_team /shop", "Sklep");


Czekam na odpowiedzi.
Pozdrawiam
Quote

  • +
  • -
K!113r's Photo K!113r 12.12.2012

2.
http://darkgl.amxx.p...rywanie-komend/
lub zwracasz na końcu tej funkcji PLUGIN_HANDLED (lecz w tym rozwiązaniu blokujesz komendę dla innych pluginów) lub PLUGIN_HANDLED_MAIN (nie blokuje komendy dla innych pluginów)
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 13.12.2012

1. nie słyszałem, żeby nadmierna ilość cvarów wpływała negatywnie na serwer. No chyba, że naprawdę dużo ich jest (w setkach liczone). Ale jak Cię tak to przeraża, zawsze możesz tworzyć własne pliki konfiguracyjne, np typu .ini, sam tak robię gdyż nie lubię CVARów.
Quote

AztekHQS's Photo AztekHQS 13.12.2012

Ustawienia cvarów w pluginie wczytują się szybciej niż z amxx.cfg, ale wygodniej jest jednak do amxx.cfg czy tam inny plik.
Quote

  • +
  • -
Lacostii's Photo Lacostii 13.12.2012

1. O cvar'ach wyczytałem raczej tu: http://help.ownserve...-overflow-on/p1

Błąd pojawia się gdy serwer operuje zbyt dużą ilością CVARów (są one tworzone przez pluginy, im więcej pluginów bądź im bardziej rozwinięte/ciężkie pluginy) .

A ten błąd mi się właśnie pojawia.
Quote

  • +
  • -
K!113r's Photo K!113r 13.12.2012

Tak jak wyżej zostało napisane, w takim wypadku korzystaj z własnego pliku konfiguracyjnego.
Quote

Gość_21977_* 15.12.2012

A2S_RULES nie zawsze jest pojedynczym zapytaniem i w przypadku większej liczby cvarów, należy wysłać kolejne zapytania, ale to odsyłam na oficjalną stronę Valve
Nie uwzględnia tego dość sporo monitorów serwerów, czy list serwerów, przez co dochodzi do zapytań, które nie mają końca, co skutkuje zawieszeniem się aplikacji, tudzież forum czy serwera.

Dlatego nie istnieje "nadmierna liczba cvarów", lecz nieumiejętne pozyskiwanie informacji o nich.
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 15.12.2012

Benio, nigdzie nie wyczytałem jak i w jakich sytuacjach wysyłać żądanie o więcej cvarów... Mógłbyś podać bardziej precyzyjnie źródło tej informacji?
Quote

Gość_21977_* 15.12.2012

Bardziej precyzyjne źródło, niż oficjalna strona developerska Valve dot. Server queries?

@edit:

Steam uses a packet size of 1400 bytes + IP/UDP headers. If a request or response needs more packets for the data it starts the packets with an additional header in the following format:

valve jednoznacznie wskazuje na możliwość wystąpienia konieczności wysłania kojejnych żądań, ponadto

The challenge number can either be set to -1 (0xFF FF FF FF) to have the server reply with S2C_CHALLENGE, or use the value from a previous A2S_SERVERQUERY_GETCHALLENGE request.

oraz

Challenge values are required for A2S_PLAYER and A2S_RULES requests, you can use this request to get one.

z

Note: You can also send A2S_PLAYER and A2S_RULES queries with a challenge value of -1 (0xFF FF FF FF) and they will respond with a challenge value to use (using the reply format below).


Edited by benio101, 15.12.2012 10:40.
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 16.12.2012

Pierwszy wpis dotyczy tego, że cvary mogą przyjść w kilku częściach, odpowiednio podzielonych paczkach, ewentualnie skompresowanych, ale przychodzą one po JEDNYM żądaniu, nie trzeba wysyłać następnych. Nie powoduje to też zawieszenia serwera czy skryptu, jeśli tego nie przewidzimy w kodzie. Zwykle po prostu paczki nieznane są ignorowane albo błędnie przetwarzane, przez co zamiast cvarów pojawią się bzdury. Tak samo zresztą może przyjść lista graczy.

Dalej jest informacja o challenge number, czyli konieczność pobrania ID, a następnie wysłania go z żądaniem konkretnego statusu (bądź statusów, challenge może być użyty kilka razy, jest to coś takiego jak sesja w przeglądarce...).

Nie widzę więc tu nigdzie mowy o konieczności wysyłania kolejnego zapytania. Nigdy się nie spotkałem z tym, żeby przyszła mi część cvarów i musiałbym wysłać jeszcze jedno żądanie, żeby reszta przyszła. Zawsze przychodzą wszystkie, ewentualnie pocięte na kawałki i czasem spakowane (raz w serwerze source spotkałem się z kompresją).
Quote

  • +
  • -
Lacostii's Photo Lacostii 17.12.2012

Ja jestem prosty człowiek i prawie nic nie rozumiem o czym mówicie :/ .
Chciałbym jedynie uzyskać najlepszą odpowiedź na pytanie pierwsze, jak najlepiej korzystać z cvarów?
a) mieć je w amxx.cfg
B) mieć je w innym pliku z konfiguracjami
c) w pluginie ustawić domyślne cvary
d) pozbyć się w ogóle cvarów i w pluginie ustawić bezpośrednio wartości
e) Nie ma różnicy

Możecie ponumerować odpowiedzi od najlepszej do najgorszej :)
Po udzieleniu odpowiedzi można zamknąć temat,
dziękuję.
Quote

Gość_21977_* 18.12.2012

Niesprawdzanie challenge number (S2C_CHALLENGE) pomiędzy pakietami przychodzącymi,
może w przypadku jego zmiany pomiędzy kolejnymi paczkami danych rozmiaru 1400 bajtów + headersy,
powodować dla listy graczy (A2S_PLAYER) bądź cvarów (A2S_RULES0 (w praktyce CS na HLDS tylko dla cvarów),
zapytanie błędne (czyt. z nieaktualnym challenge number). Wtedy, oczekując danych, a niektóre popularne
pluginy, bądź serwery / fora, czekają na uzyskanie odpowiedzi bez timeouta, co spowodować może
crash serwera, bądź nieskończone ładowanie się strony, tudzież forum danej serwerowni.
I zwróciłem na to uwagę, bo przyglądałem się niedawno temu problemowi.

@edit:
Dla algorytmów z zaimplementowanym timeoutem, otrzymamy
wynik false positive, wskazujący na niedostępność serwera HLDS.

Dla algorytmów bez timeouta, otrzymamy wspomniany błąd trzeciego rodzaju.
Edited by benio101, 18.12.2012 04:48.
Quote