Zmiana hasła rcon
Snickers
18.02.2010
Witam. Chciałem napisać plugin, który co dwie godziny ustawia losowe hasło rcon do serwera. No i niby coś tam napisałem, niby się skompilowało ale nie wiem czy takie coś przejdzie 
I mam kilka pytań. Czy taki plugin będzie działał skutecznie ? Czy da radę zrobić, by plugin zmieniał to hasło o pełnych godzinach (0:00, 2:00 itd.), albo np. gdy ktoś wpisze komendę "rcon rcon_password "jakies haslo"" to zaczyna odliczać 2 h i po tym czasie zmienia. I czy da radę, by aktualne hasło było wyświetlane na stronie www i ile do następnej zmiany hasła
Trochę to pokomplikowane, ale chce po prostu wynajmować serwer, a ustawienie jednego hasła i wypożyczanie pod warunkiem zmiany na ustalone hasło po mixie raczej nie przejdzie, bo jak ktos nie zmieni to będzie miał serwer na cały dzień, a wpisanie do cfg to wyobraźcie sobie, że ktoś gra dwie mapy, zmienia mapę, cfg się wczytuje wchodzi ktoś obcy zmienia hasło i pograne
P.S. Tylko prosiłbym by wytłumaczyć mi to jak najprościej, bo nigdy nie pisałem pluginów, tylko je edytowałem
Użytkownik Snickers edytował ten post 18.02.2010 22:00

#include <amxmodx> new const duza[][] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","Q","U","W","V","X","Y","Z"} new const mala[][] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","q","u","w","v","x","y","z"} new const cyfra[][] = {"1","2","3","4","5","6","7","8","9","0"} public plugin_init() { register_plugin("HasloRcon","1.0","Snickers"); set_task ( 7200.0, "rcon", _, _, _, "b"); } public rcon() { server_cmd("rcon_password ^"%s%s%s%s%s%s^"", mala[random_num(0,26)],duza[random_num(0,26)],mala[random_num(0,26)],mala[random_num(0,26)],cyfra[random_num(0,10)],duza[random_num(0,26)]); }
I mam kilka pytań. Czy taki plugin będzie działał skutecznie ? Czy da radę zrobić, by plugin zmieniał to hasło o pełnych godzinach (0:00, 2:00 itd.), albo np. gdy ktoś wpisze komendę "rcon rcon_password "jakies haslo"" to zaczyna odliczać 2 h i po tym czasie zmienia. I czy da radę, by aktualne hasło było wyświetlane na stronie www i ile do następnej zmiany hasła

Trochę to pokomplikowane, ale chce po prostu wynajmować serwer, a ustawienie jednego hasła i wypożyczanie pod warunkiem zmiany na ustalone hasło po mixie raczej nie przejdzie, bo jak ktos nie zmieni to będzie miał serwer na cały dzień, a wpisanie do cfg to wyobraźcie sobie, że ktoś gra dwie mapy, zmienia mapę, cfg się wczytuje wchodzi ktoś obcy zmienia hasło i pograne

P.S. Tylko prosiłbym by wytłumaczyć mi to jak najprościej, bo nigdy nie pisałem pluginów, tylko je edytowałem

Użytkownik Snickers edytował ten post 18.02.2010 22:00
mgr inż. Pavulon
18.02.2010
Kod który dałeś wygląda sensownie, powinien działać.
O pełnych godzinach może zmieniać. Wystarczy w task'u dać sprawdzanie godziny: Nieoficjalny polski support AMX Mod X -> Dokumentacja :: AMXX > Core > core >> time
Przechwycenie wpisania komendy "rcon rcon_password" było by truuudne jak nie niemożliwe.
Żeby wyświetlić na stronie rcon_password musiałbyś znać... rcon_password
Więc żeby to było możliwe to mógłbyś korzystać np z bazy danych mysql.
O pełnych godzinach może zmieniać. Wystarczy w task'u dać sprawdzanie godziny: Nieoficjalny polski support AMX Mod X -> Dokumentacja :: AMXX > Core > core >> time
Przechwycenie wpisania komendy "rcon rcon_password" było by truuudne jak nie niemożliwe.
Żeby wyświetlić na stronie rcon_password musiałbyś znać... rcon_password

Więc żeby to było możliwe to mógłbyś korzystać np z bazy danych mysql.
R3X
18.02.2010
set_task rusza od początku mapy po 7200s wykona funkcję = zadziała tylko pod warunkiem, że ustawisz czas mapy na 2h i 1s
sprawa dość skomplikowana i pewnie nie obędzie się bez MySQLa, kiedyś chyba zacząłem pisać coś podobnego, ale nie pamiętam czy wypaliło; jak znajdę źródła to podrzucę potem

sprawa dość skomplikowana i pewnie nie obędzie się bez MySQLa, kiedyś chyba zacząłem pisać coś podobnego, ale nie pamiętam czy wypaliło; jak znajdę źródła to podrzucę potem
G[o]Q
18.02.2010
nie jestem pewien ale czy co mape nie bedzie odliczac tych 2h ?? wiec tak w nieskonczonosc
a co do godziny mozesz dac tak jak pav w new year coutdown tylko pominac date
@up szybszy byles
EDIT a czy w php pav nie da sie odczytac pliku? wiec mozna chyba zrobic odczyt rcon_password z server.cfg
EDIT 2
z dokumentacji
wiec mozna chyba sprawdzac co jakis czas czy godzin==23 i wtedy o 23 bedzie sie wykonywal cod
Użytkownik G[o]Q edytował ten post 18.02.2010 22:16

@up szybszy byles

EDIT a czy w php pav nie da sie odczytac pliku? wiec mozna chyba zrobic odczyt rcon_password z server.cfg
EDIT 2
z dokumentacji
new godzin, minut, sekund
new unix = time(godzin, minut, sekund)
client_print(0, print_chat, "Od poczatku epoki Linux'owej minelo %d sekund", unix)
client_print(0, print_chat, "Aktualnie mamy: %d godzine, %d minute, %d sekunde", godzin, minut, sekund)
wiec mozna chyba sprawdzac co jakis czas czy godzin==23 i wtedy o 23 bedzie sie wykonywal cod
Użytkownik G[o]Q edytował ten post 18.02.2010 22:16
mgr inż. Pavulon
18.02.2010
Jest jeszcze opcja że masz ten serwer na własnym dedyku lub vps'ie. Wtedy możesz połączyć się po ssh i zmieniać/pobierać rcon_password.
A skąd ten plik ma się znaleźć na serwerze z PHP ?EDIT a czy w php pav nie da sie odczytac pliku? wiec mozna chyba zrobic odczyt rcon_password z server.cfg
Snickers
18.02.2010
Nie mam serwera na dedyku, a co do tego że trzeba użyć MySQL podejrzewałem 
Więc jakby coś to czekam na konkrety

Więc jakby coś to czekam na konkrety

G[o]Q
18.02.2010
zgodnie z tym co napisalem wczesniej masz takie cos
w tych 3 define ustawiasz kiedy ma zmieniac haslo tzn o ktorej godzinie
ewentualnie mozesz zrobic tak ze co 1 sekunde sprawdzasz reszte z dzielenia czasu od poczatku unixa przez 3600 jesli jest 0 to wykonujesz instrukcje wtedy haslo bedzie sie zmieniac co godzine o ile jest tak jak w c++ to operatorem reszty z dzielenia jest %
#include <amxmodx> #define godziny 23 #define minuty 00 #define sekundy 00 new const duza[][] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","Q","U","W","V","X","Y","Z"} new const mala[][] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","r","s","t","q","u","w","v","x","y","z"} new const cyfra[][] = {"1","2","3","4","5","6","7","8","9","0"} public plugin_init() { register_plugin("HasloRcon","1.0","Snickers"); set_task ( 1.0, "rcon", _, _, _, "b"); register_clcmd("say czas","rcon") } public rcon() { new godzin, minut, sekund new unix = time(godzin, minut, sekund) if ((godzin==godziny)&&(minut==minuty)&&(sekund==sekundy) server_cmd("rcon_password ^"%s%s%s%s%s%s^"", mala[random_num(0,26)],duza[random_num(0,26)],mala[random_num(0,26)],mala[random_num(0,26)],cyfra[random_num(0,10)],duza[random_num(0,26)]); }
w tych 3 define ustawiasz kiedy ma zmieniac haslo tzn o ktorej godzinie
ewentualnie mozesz zrobic tak ze co 1 sekunde sprawdzasz reszte z dzielenia czasu od poczatku unixa przez 3600 jesli jest 0 to wykonujesz instrukcje wtedy haslo bedzie sie zmieniac co godzine o ile jest tak jak w c++ to operatorem reszty z dzielenia jest %
Snickers
19.02.2010
Wiedziałem że tak będzie, musiało coś być. Bo szczerze mówiąc to nie rozumiem co do mnie rozmawiasz
Myślałem, że to wszystko będzie takie proste jak napisanie tego co ja tam u góry nabazgrałem
Ten kod nie chce się skompilować, a jakby się dał to mam rozumieć że wtedy codziennie o 23 zmieniałby się rcon, czy raczej co 23 godziny ? ;]
P.S. Oporny jestem w tych sprawach, więc jeżeli jest to a wykonalne, lub zbyt trudne dla mnie, to może ktoś z Was by się połakomił ? A jak nie to dajmy sobie spokój. Oczywiście chciałbym próbować zrobić coś sam i się nauczyć, ale rozumiem, że cierpliwość ludzka ma granice

Myślałem, że to wszystko będzie takie proste jak napisanie tego co ja tam u góry nabazgrałem

P.S. Oporny jestem w tych sprawach, więc jeżeli jest to a wykonalne, lub zbyt trudne dla mnie, to może ktoś z Was by się połakomił ? A jak nie to dajmy sobie spokój. Oczywiście chciałbym próbować zrobić coś sam i się nauczyć, ale rozumiem, że cierpliwość ludzka ma granice

Vertricus
19.02.2010
Napisałem ci plugin nie testowałem go bo nie mam czasu :F w końcu 3 dobija 
Jakby nie działał napisz postaram się poprawić i resztę ludzi którzy zajrzą do sma o ew. poprawki ;]
Edit:
rcon.sma 4,47 KB
79 Ilość pobrań
Zmieniłem że ma sprawdzać co 1min a nie 2 razy na mapę.

Jakby nie działał napisz postaram się poprawić i resztę ludzi którzy zajrzą do sma o ew. poprawki ;]
Edit:

Zmieniłem że ma sprawdzać co 1min a nie 2 razy na mapę.
G[o]Q
19.02.2010
mozesz tak jak wyzej albo tak jak ja czyli przy standardowych ustawieniach o 23 kazego dnia zmieni sie rcon pass

Vertricus
19.02.2010
GoQ myślenie boli :F
Powiedz jak u ciebie ten rcon pobierze?:F
Hmm?:F Do mojego musi sobie skrypt php skołować ;]I czy da radę, by aktualne hasło było wyświetlane na stronie www
Powiedz jak u ciebie ten rcon pobierze?:F
G[o]Q
19.02.2010
serwer gry jest dalej serverem ftp wiec teoretycznie mozna sie polaczyc chociaz nie wiem bo sie nie znam na tym
a pozatym ja robilem losowanie hasla o danej godzinie bo o to tez prosil pozatym twoj kod bedzie zmieniac co mape rcona
a pozatym ja robilem losowanie hasla o danej godzinie bo o to tez prosil pozatym twoj kod bedzie zmieniac co mape rcona
Snickers
20.02.2010
Vertricus, plugin tworzy tabele w bazie danych, ale w tej tabeli nie ma nic, co więcej plugin nie zmienia hasła.
Miczu
20.02.2010
A nie lepiej zrobic funkcje co "generuje" haslo od godziny, w sposób dość mało jasny dla użytkownika i zaopatrzyć skrypt php w ten sam algorytm generujący?
Moge napisać funkcje generatora i opcjonalnie dodać go do pluga, ale musiał byś znaleźć kogoś od php'a...
Moge napisać funkcje generatora i opcjonalnie dodać go do pluga, ale musiał byś znaleźć kogoś od php'a...
Portek
20.02.2010
Jak wytłumaczysz tok myślenia to może Ci pomogę
W zasadzie chyba najprościej i najelastyczniej było by zwyczajnie w PHP napisać skrypt który powiedzmy co 12 h zmienia hasło rcon na losowe + aktualizuje rekord w bazie. Potem na serwerze napisać plugin który z bazy pobierze owy rekord i niech sobie wymusza powiedzmy co 10min to hasło rcon. Funkcja generująca ograniczy się do wylosowania tak jak mamy w pierwszym pluginie wartości z pośród 3 tablic, w postaci powiedzmy 9 znaków - operacja powtórzy się 3x.

mgr inż. Pavulon
20.02.2010
Ale wersja miczu jest też całkiem dobra. Wystarczy jakiś algorytm zamiany godz+dzien+miesiac+rok na rcon_password
Opracowanie takiego samego algorytmu dla php i amxx nie będzie problemem, wystarczy tylko wymyślić zasadę.
Opracowanie takiego samego algorytmu dla php i amxx nie będzie problemem, wystarczy tylko wymyślić zasadę.
Miczu
20.02.2010
Pavulon php ma opcje zmieniania liczb na kod ASCII? Jesli tak, to moge wymyslic dosc skuteczna metode + liczby w cvarach/define by nawet obecnosc na forum dawala pełne bezpieczenstwo 
Hmm... tylko moze, jak ktos zna godzine i haslo to moze na twardo szukac, kombinacji ktora da taki wynik... O ale wiem juz jak to omine

Hmm... tylko moze, jak ktos zna godzine i haslo to moze na twardo szukac, kombinacji ktora da taki wynik... O ale wiem juz jak to omine

mgr inż. Pavulon
20.02.2010
php ma wszystko czego człowiek może potrzebować i jeszcze trochę więcej.
tylko wiesz, taki mix typu przesunięcia, mnożenie itp
tylko wiesz, taki mix typu przesunięcia, mnożenie itp

G[o]Q
20.02.2010
mozna zrobic tablice 24 elementowa liczb oraz 60 elementowa roznych slowek,zbitek literowych i potem np liczby[godzina]+slowka[minuta] +np liczby[godzina/4] itd. takiego czegos nie odgadnie nikt bez dostepu do sma/php