Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dokładny licznik online


Funky ™

Rekomendowane odpowiedzi

  • Odpowiedzi 108
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Jakie masz zastrzeżenia?

Wiemy że jesteś mistrzem PHP i Twój skrypt to 8 cud świata ale niestety nie będzie on działał prawidłowo. Samo użycie

exec()

Już wyklucza możliwość używania ze względów bezpieczeństwa.

EmEryT 

 

PetardaStudia Official!

Opublikowano

Wydawało mi się ze ta liczba z nawiasu pobiera ilość graczy na całym serwerze. Testowalem to wtedy kiedy jedna postać była na dungeonie (zupełnie inny kanał) i liczba w nawiasie to 2, a reszta miała wartość 0 (pomijając królestwo w którym miałem postać, tam było 1).

Może to jakoś inaczej działało.

To źle Ci się wydawało.

50596142255057180250.png

Opublikowano

Wiemy że jesteś mistrzem PHP i Twój skrypt to 8 cud świata ale niestety nie będzie on działał prawidłowo. Samo użycie

exec()

Już wyklucza możliwość używania ze względów bezpieczeństwa.

 

W takim razie jak masz zastrzeżenia dotyczące bezpieczeństwa, to zamiast exec() używasz escapeshellcmd().

Opublikowano

W takim razie jak masz zastrzeżenia dotyczące bezpieczeństwa, to zamiast exec() używasz escapeshellcmd().

Teraz już nie mam żadnych zastrzeżeń, tylko używać ! :D

EmEryT 

 

PetardaStudia Official!

Opublikowano

>netstat dokładny xD

Czasem będą mogli się chwalić "10k online"  xD

 

Ps. dla wszystkich mówiących, że po zamknięciu procesu clienta nie wykona się "logout" - jebnijcie się w łeb.

Opublikowano

Czasem będą mogli się chwalić "10k online"  xD

 

Ps. dla wszystkich mówiących, że po zamknięciu procesu clienta nie wykona się "logout" - jebnijcie się w łeb.

Logout to pojęcie względne więc tak nie wyskakuj. Jeżeli mowa o questowym "logout" to się nie wykona. Jeżeli chodzi o logout z P2P_MANAGER to owszem, zaktualizuje się po chwili od momentu przerwania połączenia, serwer sobie czeka w jakimś tam instance i pozamyka wszystkie procesy związane z ślubem,party,gildią itd..

50596142255057180250.png

Opublikowano

 

Najdokładniejszy licznik czasu rzeczywistego w PHP:
<?PHP
$ch1 = exec("netstat -an | grep 13000| wc -l") - 2;
$ch2 = exec("netstat -an | grep 16000| wc -l") - 2;
$ch3 = exec("netstat -an | grep 19000| wc -l") - 2;
$ch4 = exec("netstat -an | grep 22000| wc -l") - 2; 
$ch99 = exec("netstat -an | grep 13099| wc -l") - 2;
 
 
$suma = $ch1 + $ch2 + $ch3 + $ch4 + $ch99;
echo 'Graczy online:<br />';
echo '<b>'.$suma.'</b>' ;
?>
Jak ktoś chce mieć to w quescie to wystarczy użyć funkcji wykonującej zewnętrzny skrypt.

 

 

 

Logout to pojęcie względne więc tak nie wyskakuj. Jeżeli mowa o questowym "logout" to się nie wykona. Jeżeli chodzi o logout z P2P_MANAGER to owszem, zaktualizuje się po chwili od momentu przerwania połączenia, serwer sobie czeka w jakimś tam instance i pozamyka wszystkie procesy związane z ślubem,party,gildią itd..

Jest do tego gotowe "zdarzenie", które wykorzystujemy w queście i załatwia problemy z zamknięciem aplikacji przez proces.

Opublikowano

 

 

 

 

Jest do tego gotowe "zdarzenie", które wykorzystujemy w queście i załatwia problemy z zamknięciem aplikacji przez proces.

 

QUEST_CLICK_EVENT
QUEST_KILL_EVENT
QUEST_TIMER_EVENT
QUEST_LEVELUP_EVENT
QUEST_LOGIN_EVENT
QUEST_LOGOUT_EVENT
QUEST_BUTTON_EVENT
QUEST_INFO_EVENT
QUEST_CHAT_EVENT
QUEST_ATTR_IN_EVENT
QUEST_ATTR_OUT_EVENT
QUEST_ITEM_USE_EVENT
QUEST_SERVER_TIMER_EVENT
QUEST_ENTER_STATE_EVENT
QUEST_LEAVE_STATE_EVENT
QUEST_LETTER_EVENT
QUEST_ITEM_TAKE_EVENT
QUEST_TARGET_EVENT
QUEST_PARTY_KILL_EVENT
QUEST_UNMOUNT_EVENT
QUEST_ITEM_PICK_EVENT
QUEST_SIG_USE_EVENT
QUEST_ITEM_INFORMER_EVENT
QUEST_EVENT_COUNT
Niby które, że tak zapytam? Bo widziałem niemieckie questy z wydarzeniem "disconnect" or "shutdown", to trochę mi się chciało śmiać :P

50596142255057180250.png

Opublikowano
QUEST_CLICK_EVENT
QUEST_KILL_EVENT
QUEST_TIMER_EVENT
QUEST_LEVELUP_EVENT
QUEST_LOGIN_EVENT
QUEST_LOGOUT_EVENT
QUEST_BUTTON_EVENT
QUEST_INFO_EVENT
QUEST_CHAT_EVENT
QUEST_ATTR_IN_EVENT
QUEST_ATTR_OUT_EVENT
QUEST_ITEM_USE_EVENT
QUEST_SERVER_TIMER_EVENT
QUEST_ENTER_STATE_EVENT
QUEST_LEAVE_STATE_EVENT
QUEST_LETTER_EVENT
QUEST_ITEM_TAKE_EVENT
QUEST_TARGET_EVENT
QUEST_PARTY_KILL_EVENT
QUEST_UNMOUNT_EVENT
QUEST_ITEM_PICK_EVENT
QUEST_SIG_USE_EVENT
QUEST_ITEM_INFORMER_EVENT
QUEST_EVENT_COUNT
Niby które, że tak zapytam? Bo widziałem niemieckie questy z wydarzeniem "disconnect" or "shutdown", to trochę mi się chciało śmiać :P

 

 

Powiem Ci tak. U siebie mam system sprawdzania czy gracz jest online czy offline co wyrzucam do rankingu. Odpowiada za to ten fragment questa, tylko zamiast komunikatów w przypadku błędu pojawia się wpis do logów. Nigdy nawet po zamknięciu aplikacji przez task manager graczowi po ponownym zalogowaniu nie wyrzuciło błędu, a więc poprawnie status "zalogowany" został usunięty po zamknięciu clienta. Nawet minutę temu sprawdziłem to dla pewności i po zamknięciu aplikacji przez menadżer i ponownym zalogowaniu się na postać pojawił się komunikat "Zmiana na status zalogowany." - czyli wszystko poszło jak powinno. Fakt, że mam bibliotekę, która dodaje mi kilka funkcji questowych np. do wylogowania gracza i jeśli to ona odpowiada za to, że mi "disconnect" działa prawidłowo to zwracam honor.

 

 

		when login begin
			if pc.getqf("zalogowany")==0 then
				pc.setqf("zalogowany", 1)
				chat("Zmiana na status zalogowany.")
			else
				chat("BŁĄD")
			end
		end
		when logout or disconnect with pc.getqf("zalogowany")==1 begin
			pc.delqf("zalogowany")
		end

 

 

Opublikowano

Logout to pojęcie względne więc tak nie wyskakuj. Jeżeli mowa o questowym "logout" to się nie wykona. Jeżeli chodzi o logout z P2P_MANAGER to owszem, zaktualizuje się po chwili od momentu przerwania połączenia, serwer sobie czeka w jakimś tam instance i pozamyka wszystkie procesy związane z ślubem,party,gildią itd..

Logout to żadne pojęcie względne. Disconnect w char wykonuje się od razu, ono wysyła sygnał do p2p a p2p do questnpc, wniosek? Logout wykona się zawsze od razu po każdorazowym wyjściu serwera, nawet telepocie. A jeżeli to nie wystarcza to zróbcie sobie questa z eventem logout po którym wykona się query, wylogujcie się i od razu odświeżcie bazę, albo zalogujcie dwie postacie, w queście pod logout notice_all i sprawdzajcie na drugiej czy w którymś przypadku wykona się z opóźnieniem. Tyle lat minęło a Wy nadal ten sam problem macie.

Opublikowano

Logout to żadne pojęcie względne. Disconnect w char wykonuje się od razu, ono wysyła sygnał do p2p a p2p do questnpc, wniosek? Logout wykona się zawsze od razu po każdorazowym wyjściu serwera, nawet telepocie. A jeżeli to nie wystarcza to zróbcie sobie questa z eventem logout po którym wykona się query, wylogujcie się i od razu odświeżcie bazę, albo zalogujcie dwie postacie, w queście pod logout notice_all i sprawdzajcie na drugiej czy w którymś przypadku wykona się z opóźnieniem. Tyle lat minęło a Wy nadal ten sam problem macie.

Pierdol ten logout! Się czepiłeś, source wyszło to teraz wielce oczytany. Zdziwisz się jak będzie na serwerze nie 2 graczy a 2k graczy(o ile będzie ale życzę Ci by było, bo chujem nie jestem).

 

@topic

 

A co do liczniku już parę lat wstecz pisałem, że USER_COUNT na p2p załatwia wszystko.

50596142255057180250.png

Opublikowano

Pierdol ten logout! Się czepiłeś, source wyszło to teraz wielce oczytany. Zdziwisz się jak będzie na serwerze nie 2 graczy a 2k graczy(o ile będzie ale życzę Ci by było, bo chujem nie jestem).

Ale nie potrzeba do tego source, podałem dwa sposoby na sprawdzenie. W*****a mnie to że od 3 lat macie ten sam problem z logout zamiast poświęcić 2 minuty na sprawdzenie.

Opublikowano

Ale nie potrzeba do tego source, podałem dwa sposoby na sprawdzenie. W*****a mnie to że od 3 lat macie ten sam problem z logout zamiast poświęcić 2 minuty na sprawdzenie.

Macie, macie, macie.. Macie.. Co nam dajesz? Czy Macka wołasz? Twoją metodą sprawdzałem to ponad 6 lat temu na game_r404, a wiesz, że nie było source o.O? Okazało się tak jak wcześniej pisałem, że przy większej ilości graczy to nie wykonywało się poprawnie. Nie wiem co gubił, jak gubił, czy nie mógł pobrać vid postaci wylogowanej do usunięcia quest flaga. Dla paru osób to działało okej. :)

50596142255057180250.png

Opublikowano

Macie, macie, macie.. Macie.. Co nam dajesz? Czy Macka wołasz? Twoją metodą sprawdzałem to ponad 6 lat temu na game_r404, a wiesz, że nie było source o.O? Okazało się tak jak wcześniej pisałem, że przy większej ilości graczy to nie wykonywało się poprawnie. Nie wiem co gubił, jak gubił, czy nie mógł pobrać vid postaci wylogowanej do usunięcia quest flaga. Dla paru osób to działało okej. :)

Ty naprawdę jesteś tak głupi czy tylko udajesz?

 

 

Opublikowano

Macie user_count, które da najdokładniejszy wynik, a jebiecie się z jakimiś logout.

 

nie lubię cię boś frajer ale dobrze napisałeś ale to forum nie zasłuży na nic lepszego i tak ten licznik jest lepszy od standardowego 

 

$on = mysql_result(safe_sql("SELECT COUNT(*) FROM ".DBPLAYER.".player WHERE last_play > DATE_SUB(NOW(), INTERVAL 5 MINUTE)"), 0);

 

piss yo 

 

a taki licznik na bazie query ma 90% serwerów a ten licznik bym proponował 

 

$on = mysql_result(safe_sql("SELECT COUNT(*) FROM ".DBPLAYER.".player WHERE last_play > DATE_SUB(NOW(), INTERVAL 1440 MINUTE)"), 0);
$unline = $on * 0.8;

 

i tak będzie podkręcony zaobserwowane w okresie 2 mies :D 

Opublikowano

nie lubię cię boś frajer ale dobrze napisałeś ale to forum nie zasłuży na nic lepszego i tak ten licznik jest lepszy od standardowego 

$on = mysql_result(safe_sql("SELECT COUNT(*) FROM ".DBPLAYER.".player WHERE last_play > DATE_SUB(NOW(), INTERVAL 5 MINUTE)"), 0);

piss yo 

 

a taki licznik na bazie query ma 90% serwerów a ten licznik bym proponował 

$on = mysql_result(safe_sql("SELECT COUNT(*) FROM ".DBPLAYER.".player WHERE last_play > DATE_SUB(NOW(), INTERVAL 1440 MINUTE)"), 0);
$unline = $on * 0.8;

i tak będzie podkręcony zaobserwowane w okresie 2 mies :D

Ucz mnie.

Opublikowano

jak czytam te posty to mnie skreca co jeden to glupszy xD wy wszyscy jestescie tak pro elo zajebisci ze szkoda gadac a co drugi podpierdala skrypty itp z innych stron zmienia nazwy i sie tylko podpisuje ze wykonal to i tamto a tak naprawde nie wie dokladnie co dodal na forum xD lecz pozdro dla tych co naprawde robia cos swojego nie podpierdalajac nic od nikogo bo malo takich osob jest .

Opublikowano

A po starcie serwera, wg tego licznika: 'no.. ja to mam już 5493 graczy online, ale coś się nie zgadza, bo /w = 300' xD

Your superman is here, bitch!

Opublikowano

A po starcie serwera, wg tego licznika: 'no.. ja to mam już 5493 graczy online, ale coś się nie zgadza, bo /w = 300' xD

Ale wszystko się może zgadzać, bo /w = 1 channel ;-)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...