[XNova Addon] BasherBaniak
by jmail on wrz.06, 2009, under jFancy / XNova / UGamela / jDrag, PHP / CF / .NET / Java, SQL
AUTOR ZABRANIA PUBLIKOWANIA INFORMACJI O TYM DODATKU NA FORUM XNOVA-SUPPORT.PL
Basher Baniak to dodatek do XNovy zdejmujący kawałek pracy administratora. Postaram się w niniejszym artykule delikatnie przybliżyć działanie, oraz w szczątkowy sposób udokumentować dodatek. Do uruchomienia dodatku jest niezbędna minimalna wiedza z zakresu SQL’a PHP no i oczywiście XNovy.
Najaktualniejszą wersję dodatku znajdziesz pod adresem http://www.jmail.pl/XNova/BasherBaniak/install.zip
Podstawa:
BasherBaniak to dodatek, który automatycznie zlicza, oraz banuje użytkowników, którzy popełnili wykroczenie bashu.
Dokumentacja:
Lista plików:
BasherBaniak.php – zawiera plik php dołączany do skryptu XNova
func_.sql – zawiera funkcję SQL zliczającą bash
fun2_.sql – zawiera funkcję SQL banującą użytkowników
mod_.sql – zawiera zapytania SQL dodające niezbędne dane do tabeli konfiguracyjnej
table_.sql – zawiera zapytanie do utworzenia tabeli przechowującej wpisy o bashu
Logika:
W odpowiednio dodanym miejscu wywołanie funkcji licz_bash_func() powoduje dopisanie lub uaktualnienie jednego wiersza tabeli bash, w której zawierają się informacje o agresorze, dacie ataku, docelowej planecie (rozróżniane po id z tabeli planets), oraz informacje pomocne przy rozróżnianiu juz pozpatrzonych ataków.
W pliku BasherBaniak.php zawiera się logika po stronie php. Zablokowano możliwość wywołania banowania przez dwóch użytkowników poprzez zastosowanie blokady – rozpoznawanie id połączenia z MySQL. Jeżeli na serwerze używamy persistance connection należałoby to zastąpić informacją o id sesji użytkownika, który wywołuje przetwarzanie. Obecnie w tym pliku jest również zaszyte zabezpieczenie, które uniemożliwia wywołanie tego przetwarzania cześciej niż raz na 24 godziny. Inne działanie nie ma sensu, gdyż blokowanie na przykład po 12 godzinach może nie spełniać swoich założeń.
Funkcja licz_bash_fun() przyjmuje jako parametry wejściowe:
id floty agresora (id_floty – fleet_id) w postaci int
gakatykę (galaktyka – fleet_end_galaxy) w postaci int
system (systemm – fleet_end_system) w postaci int
planetę (planeta – fleet_end_planet) w postaci int
typ planety (typ_planety – fleet_end_type) w postaci int
Wszystkie te dane są do pobrania z tabeli prefix_fleets
Funkcja przelicza bash w następujący sposób.
wyciągane jest id agresora -> wyciągane jest id atakowanej planety -> sprawdzamy czy ta planeta już była przez tego agresora atakowana i jeżeli
tak
wtedy uaktualniamy wpis
nie
dodajemy nowy wpis
Funkcja zwraca character varying w postaci ‘ok’ – można wykorzystać do dodatkowej weryfikacji.
Funkcja BaniakBasherCore() wywoływana jest w celu zbanowania użytkowników, którzy popełnili przestepstwo bashu i przyjmuje parametry:
ilosc atakow (iloscAtakow) w formie int jest to liczba ataków OD KTÓREJ liczony jest bash
ilość dni nieaktywności (iloscDni) w formie int jest to liczba dni jakie muszą upłynąć, żeby gracz został uznany za nieaktywnego w sensie bash’u
ilość dni bana (iloscDniKary) w formie int oznacza liczbę dni na jakąs zostanie nałożony ban
czy ban ma być z urlopem (zUrlopem) w formie int; 0 – brak urlopu, 1 – z urlopem
Funkcja banuje w następujący sposób.
sprawdzamy czy do WCZORAJ zostały popełnione wykroczenia bash -> jeżeli tak to w pętli po cursorze:
dodajemy wpis o banie do tabeli prefix_banned ->aktualizujemy tabelę prefix_users nadając bana -> oznaczamy ataki konkretnego gracza jako obsłużone
koniec pętli po cursorze
Na koniec usuwamy zbędne wpisy (liczba ataków nie przekroczyła limitu ataków), uaktualniamy konfigurację gry aktualizując wpis o ostatnim czasie uruchomienia, aktualizujemy tabelę konfiguracyjną usuwając identyfikator połączenia.
Koniec dokumentacji
Informacje dodatkowe:
- autor dodatku życzy sobie, żeby informacja o dodatku znalazła się w changelogu gry w postaci nazwa dodatku, autor, oraz link do tej strony
- proszę o dopisywanie się do tego postu w której grze dodatek został wykorzystany – linki będą w formie linków – wspierajmy się nawzajem SEO
- proszę o dodanie komentarzy czy dodatek jest przydatny i jeżeli
tak to czy go rozbudowywać lub tworzyć inne dodatki z serii banujemy automatem
nie to jakim dodatkiem byłbyś zainteresowany
Miłego życzę
jmail