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

Opublikowano

Funkcje :
 

function licznik_login()
game.mysql_query("UPDATE "..locale.db_site..".online SET online = online + '1';")
end
 
function licznik_logout()
game.mysql_query("UPDATE "..locale.db_site..".online SET online = online - '1';")
end
 
function licznik_online()
local asd = game.mysql_query("SELECT online FROM "..locale.db_site..".online;")
local asdasd = game.mysql_query("SELECT online_dodaj FROM "..locale.db_site..".online;")
local ilosc = math.floor(asd.online*asdasd.online_dodaj/100)
return ilosc
end

Locale : 

-- MYSQL CFG
locale.db_prefix = "nazwa_serwera_"
locale.db_account = ""..locale.db_prefix.."account"
locale.db_common = ""..locale.db_prefix.."common"
locale.db_log = ""..locale.db_prefix.."log"
locale.db_player = ""..locale.db_prefix.."player"
locale.db_site = ""..locale.db_prefix.."site"

Quest : 

quest online begin
state start begin
when login begin
licznik_login()
end
when logout begin
licznik_logout()
end
when login or enter or levelup begin
cmdchat("online "..licznik_online())
end
end
end

 
SQL :
 

DROP TABLE IF EXISTS `online`;
CREATE TABLE `online` (
  `online` int(5) DEFAULT NULL,
  `online_dodaj` int(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `online` VALUES ('1', '100');

 
liczę na like bo dokładniejszego nie ma :)

  • Odpowiedzi 108
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

ten licznik jest bardzo nie dokładny :

jesli ktoś zamknie clienta w menadżer zadań , lub gdy wywali jakiś błąd i client sie zamknie  to nie odliczy 1 gracza 

więc jeśli tak stanie się średnio 15 osobą na dzień to mamy w 10 dni masz 150 graczy na plusie i to będzie rosnąć    

Opublikowano

ten licznik jest bardzo nie dokładny :

jesli ktoś zamknie clienta w menadżer zadań , lub gdy wywali jakiś błąd i client sie zamknie  to nie odliczy 1 gracza 

więc jeśli tak stanie się średnio 15 osobą na dzień to mamy w 10 dni masz 150 graczy na plusie i to będzie rosnąć    

dokladnie, dokladny licznik mozna zrobic opierajac sie na configu kazdego channelu i socketach

Opublikowano

ten licznik jest bardzo nie dokładny :

jesli ktoś zamknie clienta w menadżer zadań , lub gdy wywali jakiś błąd i client sie zamknie  to nie odliczy 1 gracza 

więc jeśli tak stanie się średnio 15 osobą na dzień to mamy w 10 dni masz 150 graczy na plusie i to będzie rosnąć    

 

niestety nie masz racji :)

sprawdź a potem pisz 

 

ps. nie testowałem na game >= 34k 

 

 

a najdokładniejszy to by był po api z game i wykonywaniu komendy :)

 

pozdro :)

Opublikowano

niestety nie masz racji :)

sprawdź a potem pisz 

 

ps. nie testowałem na game >= 34k 

 

 

a najdokładniejszy to by był po api z game i wykonywaniu komendy :)

 

pozdro :)

gowno prawda, jedyny dokladny licznik jest z wykorzystaniem socketow od game i tyle w temacie.

Opublikowano

Nie rozumiem po co tutaj tyle funkcji i odwołań do tablicy locale. Dlaczego do int dodajesz string?

 

gowno prawda, jedyny dokladny licznik jest z wykorzystaniem socketow od game i tyle w temacie.

 

To też nie zadziała, bo kiedy postać nic nie robi przez pewien okres czasu jest usuwana z user_count.

Opublikowano

Nie rozumiem po co tutaj tyle funkcji i odwołań do tablicy locale. Dlaczego do int dodajesz string?

 

// a nie wiem jakoś tak xD

 

 

To też nie zadziała, bo kiedy postać nic nie robi przez pewien okres czasu jest usuwana z user_count.

 

// to co dałem mam na swoim byłym serwerze i nie miałem jedynie problem jak cały chanel padł ale 1 raz mi się to zdarzyło przez miesiąc testowania więc to jest bardzo dobre :) co dałem :)

Opublikowano

ehhh...

int game_get_player_num(lua_State* L)
    {
       int iTotal; 
       int * paiEmpireUserCount;
       int iLocal;
       DESC_MANAGER::instance().GetUserCount(iTotal, &paiEmpireUserCount, iLocal);
       lua_pushnumber(L, iTotal);
       return 1;
    }

+

#include "desc_manager.h"

= game.get_player_num() =  3459714093361461136905.jpg (liczba w kwadratowym nawiasie) 

@topic

cycu.. za takie pierdoły raczej nie zdejmą 5%.

Opublikowano

ehhh...

int game_get_player_num(lua_State* L)
    {
       int iTotal; 
       int * paiEmpireUserCount;
       int iLocal;
       DESC_MANAGER::instance().GetUserCount(iTotal, &paiEmpireUserCount, iLocal);
       lua_pushnumber(L, iTotal);
       return 1;
    }

+

#include "desc_manager.h"

= game.get_player_num() =  3459714093361461136905.jpg (liczba w kwadratowym nawiasie) 

@topic

cycu.. za takie pierdoły raczej nie zdejmą 5%.

 

a ja nie mam % xD a daję to tak jak mam w profilu :)

 

"Nie ma za co dziękować udostępniam wam tylko syf  :) nie pomagam na pw jak jest robota pisać gg only zlecenia nie robię za bóg zapłać  :) pozdro 600"

Opublikowano
"Nie ma za co dziękować udostępniam wam tylko syf   :) nie pomagam na pw jak jest robota pisać gg only zlecenia nie robię za bóg zapłać   :) pozdro 600"

 

To że tak to pięknie ujmę "wypie*dalaj" z tego forum. ;)

Licznik gówno.

Opublikowano

a ja nie mam % xD a daję to tak jak mam w profilu :)

 

"Nie ma za co dziękować udostępniam wam tylko syf  :) nie pomagam na pw jak jest robota pisać gg only zlecenia nie robię za bóg zapłać  :) pozdro 600"

Tym licznikiem udowodniłeś jedynie, że z ciebie majster jak z misiej pizdy wór na mąkę.

784091427630431250239.png

Regulamin sygnatur

Opublikowano

Ten licznik dobra sprawa jest w grze lecz źle go że tak powiem poradziłeś, gdyż ten licznik na 100% sprawny i nie zlicza wszystkich graczy dokładnie w grze.

24790528697226300755.png

Opublikowano

Beka grana ;OO Wrzucasz jakiś syf i jeszcze piszesz że nie pomagasz w dodaniu tego.. haha tak jakby miał ktoś tego kiedyś użyć. Kto by od ciebie coś na zlecenie chciał jak ty nic nie potrafisz ? 

Wyjdź człowieku z tego forum i się już nie ośmieszaj bo jak zwykle dużo szczekasz mało robisz. Idź z true przenosić dreikona na src bo w końcu z ciebie taki DEVELOPER.

Opublikowano

Ten licznik będzie dobrze zliczał online jeśli się dokona małej poprawki. Natomiast jak już wcześniej zostało napisane lepiej jest używać socketów lub tak jak opisał @Evor.

 

@down.

I po co jak zwykle dawać gotowe na talerzu? :(

Opublikowano

Niestety ten licznik jest bardzo nie dokładny, jak ktoś potrzebuje bardzo dokładny, rzeczywisty licznik to zapraszam na PW.

Pozdrawiam.

Opublikowano

Ale to zadziała chyba tylko na jednym ch, nie? Można by coś z p2p pokombinować i z all ch sciągnąć.

Robisz warunki w queście do kazdego CH i wykorzystujesz tą funkcję (przykładowo przy zalogowaniu się osób z różnicą czasu co najmniej minuta), by przekazać wartość do MySQL. Później możesz sobie z tymi wartościami robić co chcesz przykładowo sumować i zwracać w queście sumę all CH. Można też online z każdego CH przetrzymywać w event flag i później je sobie sumować.

 

 

 

Jak dla mnie bez sensu tak się bawić, skoro można(chyba) to zrobić w game i po prostu użyć raz wywołania funkcji. :x

Przyzwyczajenie z pracy na game 2089M, gdzie jak się nie ma co się chce, to się cieszy z tego co się ma. Ten sposób jest dla osób pracujących na src, a tam wiadomo, że możliwości są dużo większe. Quest z tematu też będzie dobrze zliczał online jeśli się go trochę przerobi.

Opublikowano

Ale to zadziała chyba tylko na jednym ch, nie? Można by coś z p2p pokombinować i z all ch sciągnąć.

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.

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.

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.

 

 

ja p******e, serio?

Q4iKmxa.gif


Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...