System Rezerwacji Nicków
mgr inż. Pavulon
18.10.2009
Autor: Pavulon
Wersja: 1.1 beta
Opis
Rezerwacje nicków znajdują się w bazie MYSQL dzięki czemu kilka serwerów może mieć te same rezerwacje bez dodatkowego ustawiania.
Admin przez www ma możliwość akceptowania rezerwacji (tj. nick po amx_resnick nie jest od razu zarezerwowany żeby uniknąć nieporozumień), usuwania próśb o rezerwacje, usuwania rezerwacji lub dodawania nowych oraz edytowania aktualnych.
Rezerwacja ta nie koliduje z adminami i rezerwacjami slotów gdyż bazuje na innych danych i haśle zapisanym w
a nie standardowo _pw.setinfo _res twoje_haslo
Jest to dopiero wczesna wersja BETA, ale już powinna spełniać wszystkie wymogi. Z czasem czekają ją poprawki oraz dodatkowe funkcjonalności.
Instalacja
Zawartość folderu hlds kopiujemy/przenosimy do katalogu cstrike w naszym serwerze CS.
Zawartość folderu www kopiujemy/przenosimy do katalogu głównego(dowolnego) na naszym serwerze WWW.
Zawartość pliku srn.sql można wkleić do phpMyAdmin'a, lecz nie jest to obowiązkowe gdyż tak plugin jak i skrypt .php powinny stworzyć odpowiednie tabele.
Wymagane
serwer WWW (nie jest wymagany do końca bo i bez niego główne funkcje będą zachowane)
serwer MYSQL
odblokowany moduł mysql
Dalsza instalacja i Konfiguracja
HLDS - Cvary:
srn_sql_host "localhost" //adres Bazy Danych
srn_sql_user "user" //uzytkownik BD
srn_sql_pass "password" //haslo uzytkownika BD
srn_sql_db "database" //nazwa BD
srn_res_time "2592000" //czas rezerwacji 2592000s = 30*24*60*60 = 30 dni
srn_spam_delay "60" //czas po jakim jest info o rezerwacji 60 s
srn_maxres "1" //maksymalna liczba zarezerwowanych nickow na osobe
Jeżeli chcemy wyłączyć rezerwacje z poziomu CS'a ustawiamy srn_maxres "0"
WWW:
Po wrzuceniu wszystkich plików na serwer i przejściu do katalogu SRN (przykladowy_host.pl/SRN ) powinniśmy zostać automatycznie przekierowani na stronę SRN/setup.php która przeprowadzi nas przez konfigurację serwera mysql, tworzenie tabel i dodanie admina.
Jeżeli instalacje przejdzie pomyślnie to powinien zostać stworzony plik config.php o treści podobnej do tego:
<?php
$db_host = "ip.serwera";
$db_name = "nazwa_bazydanych";
$db_username = "uzytkownik_bazydanych";
$db_passwd = "haslo_bazydanych";
$maxres = "1";
$regactive = "1";
$captcha = "1";
$publickey = "klucz_publiczny_recaptcha";
$privatekey = "klucz_prywatny_recaptcha";
$mail = "2";
$smtphost = "adres.serwera.smtp";
$smtpport = "portserwerasmtp";
$smtpuser = "[email protected]";
$smtppass = "haslo_smtp";
?>
Jeżeli po instalacji chcemy zmienić maksymalną ilość rezerwacji na osobę to zmieniamy wartość
$maxres = "1";natomiast jeżeli chcemy wyłączyć rezerwacje z poziomu WWW (admini nadal będą mogli je dodawać) to ustawiamy:
$maxres = "0";Jeżeli chcemy wyłączyć możliwość rejestracji nowych kont to ustawiamy:
$regactive = "0";
Admini:
Innych adminów jak i użytkowników można dodawać z panelu lub po zarejestrowaniu się użytkownika możemy zmienić jego poziom.
Dostępne poziomy to:
HEAD ADMIN => może dodawać/edytować/usuwać użytkowników i przeglądać historie
ADMIN => może dodawać/edytować/usuwać rezerwacje użytkowników
USER => może dodawać/usuwać prośby i usuwać rezerwacje
Autoryzacja:
Istnieje możliwość zmiany powiązania rezerwacji z danym graczem.
Żeby zmienić zapis należy w kodzie zmienić linijkę:
//0 - automatycznie, 1 - steamid, 2 - ip #define auth 0
0: standardowo zapisuje na SteamID, ale jeżeli SteamID to STEAM_ID_LAN, STEAM_ID_PENDING itd to zapisuje na IP
1: zawsze zapisuje na SteamID
2: zawsze zapisuje na IP
Po tej zmianie kod należy ponownie skompilować.
WAŻNE !!
Jeżeli posiadamy serwer NS+S (Dproto) to koniecznie musimy edytować plik dproto.cfg i do pola ValidInfoFields_Engine dodać \_res czyli przykładowo musimy otrzymać:
(Tylko w starszych wersjach dproto o ile w dproto.cfg znajduje się wpis ValidInfoFields_Engine)ValidInfoFields_Engine = \name\bottomcolor\topcolor\model\cl_lc\cl_lw\cl_updaterate\cl_dlmax\rate\_pw\*hltv\password\_res
Komendy:
Aby wejść w menu wystarczy wpisać na chacie "rezerwacja"

say rezerwacja

Gdzie mamy możliwość I.1. Dodania, I.2. Edytowania, I.3. Usuwania, I.4. Listingowania rezerwacji, I.5. wyświetlenia informacji o SRN, I.6. adminowania
Edytować możemy I.2.a login i/lub I.2.b hasło
W menu adminowania możemy II.1. Przeładować, II.2. Usuwać rezerwacje, II.3. Zarządzać prośbami
Prośby możemy II.3.a Akceptować i II.3.b Odrzucać
Wszystko z menu.

Podczas dodawania mamy wyświetlony nick i hasło, więc w razie potrzeby możemy poprawić dane.

Podczas edytowania wyświetlony zostaje nick oraz gwiazdki zamiast hasła. W przypadku gdy zmieniliśmy hasło to do czasu akceptacji będzie ono wyświetlane.

Po dodaniu rezerwacji lub zmianie hasła do konsoli wysyłana jest automatycznie komenda setinfo z odpowiednimi danymi, lecz jeżeli gracz posiada config tylko do odczytu to musi również zapisać ją do pliku ręcznie.
Nie ma możliwości przypomnienia hasła. Wszystkie są kodowane algorytmem md5.
Póki co dostępny jest tylko język polski gdyż ta aktualizacja sprawiła że słownik rozrósł się i tłumaczenie zeszło na dalszy plan.
Wszystko co jest wyświetlane od menu przez chat do konsoli jest edytowalne w słowniku, więc każdy wybierze coś dla siebie.


Obsługa WWW:
Obsługa powinna być intuicyjna. Zaczynamy od wejścia do katalogu głównego SRN(http:// przykladowy_host.pl/SRN ) lub pliku SRN/srn.php(http:// przykladowy_host.pl/SRN/srn.php).
Tam logujemy się używając loginu i hasła podanego przy instalacji lub rejestracji.
Po poprawnym zalogowaniu się mamy dostęp do wszystkich właściwych dla naszego poziomu funkcji.

Przy każdej opcji wyświetlana jest ilość rekordów (np. rezerwacji oczekujących czy użytkowników).
Jeżeli nick rezerwuje zwykły użytkownik to musi być on zaakceptowany przez admina, natomiast jeżeli admin rezerwuje to jest on automatycznie akceptowany.

W wersji 1.1 pojawiło się wsparcie reCAPTCHA i maili.
reCAPTCHA jest wykorzystyna do operacji na użytkownikach a konkretniej do rejestracji i odzyskiwania hasła, zapewnia ochronę przed robotami.

1. Korzystamy z wewnętrznego serwera dostępnego w naszym hostingu.
2. Korzystamy z zewnętrznego serwera SMTP (np. gmail)
Jeżeli zostanie włączona jedna z opcji maila to podczas zakładania konta na adres email zostanie wysłane losowe hasło,

oraz istnieje możliwość odzyskania zapomnianego hasła(zmiany na nowe).

p.s.
Kolejnych aktualizacji nie przewiduje.
Załączone pliki
per_b.
18.10.2009
natomiast mam jedno pytanko, widzę żę skrypt i plugin uwzględniają steamID
czyli gracz każdy gracz może mieć 1 zarejestrowany nick ? czy to tylko zapisuje steamID a go nie bierze pod uwagę podczas rejestracji nowych kont ?
mgr inż. Pavulon
18.10.2009
jeden gracz może zarezerwować sobie jeden nick...natomiast mam jedno pytanko, widzę żę skrypt i plugin uwzględniają steamID
czyli gracz każdy gracz może mieć 1 zarejestrowany nick ? czy to tylko zapisuje steamID a go nie bierze pod uwagę podczas rejestracji nowych kont ?
...ale admin ze stronki może dodać dowolną liczbę rezerwacji.
i wtedy można dowolne SteamID wpisać.
znając życie ten temat mnie do tego zmotywujeNo no kawał dobrej roboty
mam nadzieje że będziesz ulepszał ;]

dezmontnikus
18.10.2009
znaczy co mam zrobić ?odblokowany moduł sqlx

PS. dodaj plik srn.amxx bo go nie ma w paczce
mgr inż. Pavulon
18.10.2009
w modules.ini musisz mieć wpis:Cytat:
odblokowany moduł sqlx
znaczy co mam zrobić ?
mysqli nie może być w nim średnika na początku
i musisz mieć plik mysql_amxx_i386.so(dla linux'a) lub mysql_amxx_i386.dll(dla windows'a)
per_b.
18.10.2009
szkoda że nie działa ;/
Pavulon testowałeś przed publikacją?
moduł odblokowany dane do bazy mysql w cfg na serwerze i w pliku php są poprawne ..tabele w sql stworzyłem ... zalogowac sie da do panelu administracyjnego, dodawać kasować, itd.. to ok
ale na serwerze nie da sie zarejestrować nicku
kazda próba zwraca komunikat Rezerwacja nieudana
jak dodam konto przez panel www to i tak nie działa... moge wejsc na zarejestrowanym nicku nawet bez wpisywania setinfo _res "haslo"
dalej..
mam wszystkie flagi (rcon potrzebna) > a komendy amx_resreload i amx_rescheck nie działają
EDIT:
serwer oczywiście STEAM
testowałem z kolegą, ktory nie miał żadnych flag ... ani on ani ja nie moglismy zarejestrować nicku
mgr inż. Pavulon
18.10.2009
testowałem przed, testowałem w trakcie i cały czas testuje bo korzystam z tego pluginu od miesięcyPavulon testowałeś przed publikacją?

a masz pewność że połączyło z bazą danych ? looknij logi, coś na pewno w nich pisze.ale na serwerze nie da sie zarejestrować nicku
kazda próba zwraca komunikat Rezerwacja nieudana
jak dodam konto przez panel www to i tak nie działa...
dezmontnikus
18.10.2009
mgr inż. Pavulon
18.10.2009

Już załącznik jest i nawet z jedną drobną poprawką

per_b.
19.10.2009
pisałeś że adm moze przez panel dodać rezerwacje nawet na uzyty juz steamid - ale to bedzie wiecej problemow dla adm ;] a tam gracz by sobie zarejestrował te nicki ktorych uzywa
albo ewentualnie wskaz funkcje w pluginie, ktorra jest odpowiedzialna za sprawdzanie czy steamid juz jest zarejestrowany ... to sobie sam sproboje to przerobić
odnosnie ns ... Wujek jak czujesz sie na siłach to przerób na ip albo dynamiczne steamID ... a nie rzucasz hasła jakby każdy znał się swietnie na scriptingu
mgr inż. Pavulon
19.10.2009
zamień na:SQL_ThreadQuery(sql_handle, "setuppass1", query, data, 1)
SQL_ThreadQuery(sql_handle, "setuppass2", query, data, 1)i:
na np:new time = get_systime(0)
if (!SQL_NumResults(query))
new time = get_systime(0) if (time)
A może zadziała, ale nie obiecuje.
Jak coś to w scripting'u pisz(cie) o zmiany.
dezmontnikus
19.10.2009
mgr inż. Pavulon
19.10.2009
Nie, nie może. Bez OT mi w tym temacie.Wujek możesz opisać bardziej co masz na myśli? co to dproto? Proszę cie bardzo o odpowiedz.
mgr inż. Pavulon
23.10.2009
Dla gracza: dodanie rezerwacji, edycja, usuniecie oraz pokazanie wszystkich jego rezerwacji(na steamid)
Dla admina: Przeładowanie rezerwacji, usuwanie aktualnych rezerwacji i akceptowanie/odrzucanie próśb(tego jeszcze brakuje).
Czyli została jedna(a właściwie 2) pozycja, drobne poprawki, opis i wydanie.
Jutro może nie, ale w sobotę a najpóźniej w niedziele będzie.
p.s.
najbliższy update dotyczy tylko serwera CS. Menu WWW zajmę się w późniejszym terminie.
Edit:
No i jest(a przynajmniej tak mi się wydaje)
SRN 1.0 Beta
W tej wersji wszysto się uprościło.
Aby wejść w menu wystarczy wpisać na chacie "rezerwacja"
say rezerwacjaGdzie mamy możliwość I.1. Dodania, I.2. Edytowania, I.3. Usuwania, I.4. Listingowania rezerwacji, I.5. wyświetlenia informacji o SRN, I.6. adminowania
Edytować możemy I.2.a login i/lub I.2.b hasło
W menu adminowania możemy II.1. Przeładować, II.2. Usuwać rezerwacje, II.3. Zarządzać prośbami
Prośby możemy II.3.a Akceptować i II.3.b Odrzucać
Wszystko z menu.
Podczas dodawania mamy wyświetlony nick i hasło, więc w razie potrzeby możemy poprawić dane.
Podczas edytowania wyświetlony zostaje nick oraz gwiazdki zamiast hasła. W przypadku gdy zmieniliśmy hasło to do czasu akceptacji będzie ono wyświetlane.
Nie ma możliwości przypomnienia hasła. Wszystkie są kodowane algorytmem md5.
Nie ma nawet potrzeby ręcznego tworzenia tabel w bazie danych gdyż gdy plugin ich nie wykryje to je sam stowrzy.
Póki co dostępny jest tylko język polski gdyż ta aktualizacja sprawiła że słownik rozrósł się do 48 linijek i tłumaczenie zeszło na dalszy plan.
Wszystko co jest wyświetlane od menu przez chat do konsoli jest edytowalne w słowniku, więc każdy wybierze coś dla siebie.
Dochodzi też cvar srn_maxres określający ile rezerwacji może przypadać na jedno konto steam

! ZAŁĄCZNIK W PIERWSZYM POŚCIE TEGO TEMATU !
p.p.s.
Obsługa WWW czeka na swoją kolej i chyba sobie jeszcze poczeka gdyż nie jest już niezbędna

dezmontnikus
25.10.2009
