Panowie odbiegamy od tematu
Powiedzmy że będę chciał zapisywać poziom gracza do pliku (w config/lvl.ini). Taki mały przykład:
"Sniper Elite" "13" "14440" "statystyka1" "statystyka2"...
"sebul" "15" "18888" "statystyka1" "statystyka2"...
"Seba" "11" "10000" "statystyka1" "statystyka2"...
Da się później z tego pliku odwołać do określonego nicku? Sprawdzić czy dany nick w nim widnieje?
Chciałem zrobić tak, że po wbiciu na serwer i odczytaniu lvl z bazy będzie on zapisywany w takim pliku i aktualizowany gdy dostaniemy expa.
Następnie taskiem będę sprawdzać czy gracz na serwerze jeszcze jest, jeżeli nie zapisze dane do bazy a wpis usunę.
Jeżeli takie operacje są możliwe poproszę o jakiś poradnik z dokładnym opisem jak takie zapisywanie do pliku działa (zapis wartości, sprawdzanie czy w dokumencie istnieje dana wartość (nick), usuwanie wpisów z tego pliku oraz może ilość graczy zapisanych w tym pliku).
Jeżeli nie to pomysł GwynBleidD też jest spoko:
Zapisywać dane możesz w zmiennej, tworzysz zmienną globalną o takiej długości, aby pomieściła zapytanie zapisujące 32 graczy na raz, wypełniasz ją początkiem zapytania insert, gdy gracz wyjdzie z serwera (client_disconnect) dopisujesz do zmiennej dane gracza do zapisania. Co jakiś czas (np 60 sekund), gdy dopiszesz już 32 graczy i w plugin_end dopisujesz do zapytania jego koniec, wykonujesz je, czyścisz zmienną i wpisujesz znów początek. Z tym wyjątkiem, że w plugin_end nie używasz ThreadQuery, ale metody "blokującej" (przy plugin_end tego "blokowania" nie widać, a ThreadQuery może powodować błędy)
Przed zmianą mapy zapisujesz dane użytkownika w jakimś pliku, po zmianie po 60 sekundach czyścisz plik. Wygodnie jest sobie utworzyć folder w data i w osobnych plikach trzymać dla każdego gracza dane, pliki nazywając ID gracza (nick, steamid czy ip w zależności od tego po czym sprawdzasz) + czas utworzenia pliku (wtedy wiesz kiedy go usunąć) i odpowiednio sprawdzać, czy plik istnieje gdy gracz wchodzi na serwer.
tylko ciut skomplikowany. Nie mam pomysłu jak ta duża zmienna globalna miałaby wyglądać.
Edited by Sniper Elite, 27.03.2014 12:25.