Sprawa wygląda tak, że chce utworzyć u gracza plik przez motd_write, a następnie odczytać przez połączenie exec i 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.