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

Pobieranie danych z pliku gracza


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

#1 csMaster

    Wszechwiedzący

  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 03.12.2020 13:33

Sprawa wygląda tak, że chce utworzyć u gracza plik przez motd_write, a następnie odczytać przez połączenie exec register_clcmd(). Kod wykonuje się po wejściu gracza na serwer.

U mnie za każdym razem wszystko działa poprawnie. Tworzony jest u mnie plik, a następnie za każdym kolejnym razem odczytywany. Ale u innych graczy tak to nie działa. Z tego co zauważyłem, zmiany mapy nie mają na ten kod wpływu. To bardziej wina po stronie gracza. Wnioskuje to po tym że w logach z odczytu tego pliku widać jak gracz kilka razy wchodzi na serwer, i odczyt jest poprawny, ale po jakimś dłuższym czasie np. 30 minut, logi pokazują, że utworzony plik już nie istnieje u gracza. Tak jakby włączył grę jeszcze raz. Gracze spędzający dużo czasu na serwerze, którzy na pewno nie wyłączają gry co chwile, u takich osób przez wiele godzin zawartość pliku jest odczytywana poprawnie.

 

Wie ktoś co może być tego powodem ? Myślałem nad różnymi rzeczami. Że coś typu cl_filterstuffcmd blokuje wykonanie komend u innych graczy, ale nie wiem czy na nonsteam istnieje coś takiego nie licząc CSXGuard. Że gracz nie ma uprawnień do lokalizacji w której ma zainstalowaną grę. Że ma ustawione pliki tylko do odczytu. Albo że jeśli exec jest wykonywane przez serwer to nie można zarejestrować wykonania się komendy u gracza która pochodzi z pliku pod exec. Ale wszystkie te wyjaśnienia wydają mi się absurdalne.

Czy wie ktoś co może powodować usunięcie pliku u gracza, utworzonego przez motd_write, po ponownym włączeniu gry ? Byłbym wdzięczny za wyjaśnienie, albo przynajmniej odpowiedź że niczego takiego nie ma jeśli ktoś wie coś na ten temat.

 

Dodatkowo chciałbym zauważyć że nie jest to modyfikowanie plików gracza. Plik który chce utworzyć domyślnie na pewno nie istnieje w plikach gry. Więc nie uważam żeby można było to nazwać "modyfikowaniem". Przecież to nie to samo co wysłanie graczowi pliku TrackerUI.DLL. Plik który chce utworzyć u gracza, jest nieszkodliwy i służy tylko odczytaniu u gracza ustawień na serwerze.


  • +
  • -
  • 0

#2 TafiT

    Zaawansowany

  • Użytkownik

Reputacja: 19
Początkujący

  • Postów:80
  • Imię:Dawid
  • Lokalizacja:Trzebnica
Offline

Napisano 03.12.2020 13:45

Rozumiem co chcesz zrobić aczkolwiek spróbujmy inaczej zamiast iść drogą naokoło. Co powiesz na skorzystanie z funkcji:
get_user_info
set_user_info

zapisywać się wszystko będzie w configu gracza, możesz graczom edytować to z poziomu pluginu, pobierać, plik na pewno będzie miał każdy gracz i będzie prościej.
Do tego chcesz zapisywać ustawienia gracza więc myślę, że rozwiązanie jest po prostu najlepsze w Twoim przypadku.

Możesz użyć setinfo _options "312314"
i przykładowo
pierwsza cyfra odpowiada za zapisywanie czy gracz chce mieć hud oraz czy ma być to hud,dhud czy StatusText i kolejno cyferki odpowiadać beda za inne ustawienie bądź
setinfo _hud "1"
setinfo _ustawieniekolejne "0"
aczkolwiek pamietaj, że z linijkami od setinfo nie należy też przesadzać dlatego radziłbym użyć tej pierwszej opcji.


Użytkownik TafiT edytował ten post 03.12.2020 13:46

  • +
  • -
  • 0

Pomogłem?

Daj +

ponieważ walczę ze znikającą reputacją na tym forum!


#3 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 03.12.2020 13:48

Ja mam setinfo zapełnione kompletnie. Tak jak i wiele innych graczy, którzy piszą mi że po kupieniu vipa nie mogą wpisać hasła z powodu błędu:

 

Info string length exceeded

 

Wiec rozumiesz dlaczego nie chce korzystać z setinfo. Po prostu niepotrzebnie będę kolejnym graczom robił problemy zapełniając im setinfo.


  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 03.12.2020 14:44

Sprawdź jakiej wersji CS'a używają użytkownicy u których jest problem


  • +
  • -
  • 0

#5 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 03.12.2020 14:58

Spytałem się jednego z takich graczy, odpowiedział v43. O to ci chodziło tak ? Z tym że też mam wersję v43 i u mnie wszystko działa.


  • +
  • -
  • 0




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

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