[C#/.NET] System Zgłoszeń (report player)
Sniper Elite
27.11.2015
Witam.
Przedstawiam swój projekt systemu zgłoszeń póki co na serwery Cs 1.6 (ale wkrótce napiszę plugin pod CS GO).
Zainspirowany tym pluginem: http://amxx.pl/topic...-report-player/stworzyłem system zgłoszeń pod system Windows.
Kiedyś, kiedy miałem swoją własną sieć, a na serwerach siedziałem już rzadko bardzo mi się przydała podobna aplikacja pisana przez kolegę. Teraz przedstawiam wam ulepszoną tego wersję.
Działa to na zasadzie: gracz zgasza poprzez komendę /zglos gracza który łamie regulamin. Jeżeli mamy włączoną aplikację od zgłoszeń po chwili dostajemy powiadomienie dźwiękowe + chmurkę na pasku zadań. możemy za pomocą jednego klawisza wygodnie połączyć się z serwerem i sprawdzić co się dzieje.
Projekt jest w fazie beta i będzie rozbudowywany.
Wymagania:
- serwer cs 1.6.
- pusta baza danych MySQL.
- zainstalowany .NET framework w wersji min. 4.5.2 (do pobrania w tym miejscu)
Jak wygląda aplikacjia:
http://zgloszenia.csnajper.eu/1.jpg
http://zgloszenia.csnajper.eu/2.jpg
http://zgloszenia.csnajper.eu/3.jpg
http://zgloszenia.csnajper.eu/4.jpg
http://zgloszenia.csnajper.eu/5.jpg
http://zgloszenia.csnajper.eu/6.jpg
http://zgloszenia.csnajper.eu/7.jpg
http://zgloszenia.csnajper.eu/8.jpg
http://zgloszenia.csnajper.eu/9.jpg
http://zgloszenia.csnajper.eu/10.jpg
http://zgloszenia.csnajper.eu/11.jpg
Instrukcja instalacji:
1. Serwer:
- Wrzucamy na serwer pliki w folderu "Na serwer (cs 1.6)".
- dodajemy cvary do pliku amxx.cfg:
//system zgloszen by CSnajper report_host "" // host bazy danych report_user "" // uzytkownik bazy danych report_pass "" // haslo report_base "" // nazwa bazy danych report_check_server_name "0" // 1 - pobiera nazwe serwera, 0 - nazwa serwera jest odczytywana z cvaru "report_server_name" report_server_name "nazwa serwera" // nazwa serwera (tylko gdy "report_check_server_name" jest ustawiony na 0) report_check_admin "0" // 1-gdy na serwerze jest admin zgloszenie nie jest wysylane, a admin dostaje powiadomienie na U@, 0-zgloszenie zawsze jest wysylane report_own_reason "1" // 1-pozwala graczowi wpisac wlasny powdow, 0-tylko powody z powody_zgloszen.ini report_block_report_time "60.0" // na ile sekund blokowac osobie zglaszajacej kolejne zglaszenie report_block_report_same_person_time "180.0" // ile sekund trzeba czekac aby zglosic osobe juz zgloszona report_show_info "240.0" // okresla co ile ma wyswietlac sie informacja na say'u o mozliwosci zglaszania graczy, 0-nie wyswietla informacji
- dodajemy plugin do plugins.ini, resetujemy serwer i wywołujemy menu za pomocą komendy /zglos.
2. Aplikacja:
- Przy jej pierwszym uruchomieniu zostanie otwarte okno konfiguracyjne, w którym musimy uzupełnić podstawowe dane do bazy danych, utworzymy konto administratora itd.
Pamiętaj aby nie współdzielić bazy aplikacji z z innymi aplikacjami/skryptami, dane nie są najlepiej szyfrowane i mogą zostać wykradzione.
- w folderze System zgłoszeń/Zgłoszenia powinien pojawić się plik config.cz. Jeżeli się pojawił pakujemy cały folder Zgłoszenia i rozsyłamy aplikację naszym pomocnikom.
- następnie już w aplikacji tworzymy konta osobom, które będą zatwierdzały zgłoszenia.
Co jest jeszcze do zrobienia:
- poprawa szyfrowania danych oraz połączenia z bazą.
- automatyczne uaktualnianie aplikacji (w tej chwili musicie zaglądać do tematu aby pobrać aktualizacje).
- dodać opcję uruchamiania aplikacji wraz ze startem systemu (coś mi się z tym pierdzieliło).
- automatyczne wchodzenie na serwer w wersji NonSteam (póki co włącza się gra, ale nie łączy automatycznie z serwerem).
Miłego korzystania. Wszelkie bugi/błędy/propozycje zmian i dodatków można zgłaszać w tym temacie.
Załączone pliki
Kowalsky
27.11.2015
Przydałoby się coś takiego, że ten główny program pobiera Head Admin, wprowadza on sobie dane do MySQL i może wygenerować osobny plik (np. już skompilowany *.exe lub zakodowany plik konfiguracyjny) i podesłać adminom żeby sobie mieli program.
Co ile sprawdza nowe zgłoszenia?
Sniper Elite
28.11.2015
Przydałoby się coś takiego, że ten główny program pobiera Head Admin, wprowadza on sobie dane do MySQL i może wygenerować osobny plik (np. już skompilowany *.exe lub zakodowany plik konfiguracyjny) i podesłać adminom żeby sobie mieli program.
Co ile sprawdza nowe zgłoszenia?
Myślałem nad tym i może ukaże się jak będę bardziej .NET'a ogarniał . Zgłoszenia odświeżane są co 10 sekund.
Kowalsky
28.11.2015
Zgłoszenia odświeżane są co 10 sekund.
uuu to niezłe obciążenie dla MySQL jeżeli baza jest duża Wsadź tam przyciski na przykład "Pobierz 5 ostatnich" albo "Pobierz 10 aktywnych", bo domyślam się, że pobierze wszystkie zgłoszenia z bazy?
czekam na wersję CS:GO.
Toć wystarczy zrobić tylko plugin do SM
Sniper Elite
28.11.2015
Pobierze maksymalnie 20 zgłoszeń + dodatkowo zgłoszenia starsze niż 10 min są automatycznie oznaczane jako rozwiązane, bo większość zgłoszeń będzie przedawniona, a jak naprawdę ktoś będzie przeszkadzał będzie regularnie zgłaszany.
W przyszłości dodam więcej ustawień dla administratorów jak np. ile zgłoszeń ma pobierać i jakie ma automatycznie oznaczać jako rozwiązane.
Sofcik, dnia 28 List 2015 - 03:24, napisał:
czekam na wersję CS:GO.
Toć wystarczy zrobić tylko plugin do SM
Nom, ale teraz robie sobie małą przerwę
Engi
28.11.2015
Możesz dodać wyświetlanie ile razy ktoś był zgłoszony i wyświetlać jakąś ikonkę przed jego nickiem albo zaznaczać jakimś kolorem jeżeli był zgłoszony X razy np przez ostatni tydzień/miesiąc - wszystko do ustawienia w ustawieniach.
Sniper Elite
28.11.2015
Możesz dodać wyświetlanie ile razy ktoś był zgłoszony i wyświetlać jakąś ikonkę przed jego nickiem albo zaznaczać jakimś kolorem jeżeli był zgłoszony X razy np przez ostatni tydzień/miesiąc - wszystko do ustawienia w ustawieniach.
Trzeba by było pobrać wszystkie zgłoszenia z bazy (lub z danego okresu). Jak dla mnie zbędny bajer, ale może kiedyś
Engi
29.11.2015
A po co? Dodaj osobną kolumnę i gdy ktoś zgłasza kogoś to updejtuj ilość+1 i jeszcze w zapytaniu aktualny czas-604800 (tydzień) i masz ilość zgłoszeń gościa z ostatniego tygodnia.
bemben1997
15.12.2015
Znalazłem buga pokazuje ip zgłoszonego takie samo jak ip zgłaszającego