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

Ilość osób z danej rangi?


Rekomendowane odpowiedzi

Opublikowano

Witam, tak jak w temacie.

Tylko nie proszę nie pisać że kupić czy coś poszukuje darmowego rozwiązania lub skryptu.

­

Opublikowano

Okej, a więc napiszę Ci 25 kroków. Trzeba je wykonać aby napisać takowego bota.

 

Zaczynamy przed wypisaniem kroków wejdź tutaj i pobierz najnowszą klasę.

 

 

Konfiguracja:

$config = array();

$config['host'] = 'ip';
$config['tcp'] = 'port query';
$config['udp'] = 9987;
$config['login'] = 'login';
$config['haslo'] = 'haslo';
$config['channel'] = 1011; //Id kanału
$config['groups'] = array(); //Tutaj wpisujemy grupy, które ma sprawdzać

Funkcja:

function isClientInGroup($group,$clientGroups) {
        foreach ($clientGroups as $checkGroup) {
            if ($group == $checkGroup) {
                return $group;
            }            
        }
        return false;
    }	

Zaczynamy:

  1. Pierwszym co musisz zrobić jest zaincludowanie naszej klasy poleceniem: include 'ts3admin.class.php'.
  2. Zaraz po tym stwórzmy sobie konfigurację typu $config = array(); $config['host'] = 'ip'; itp.
  3. Gdy już to zrobimy tworzymy nowy obiekt z klasy teamspeaka wpisując np. $tsAdmin = new ts3admin($config['host'], $config['tcp']);
  4. Teraz sprawdzamy czy pomyślnie nasza aplikacja się połączyła z serwerem if($tsAdmin->getElement('success', $tsAdmin->connect()))
  5. Teraz przyszedł czas na zalogowanie się loginem i hasłem do serverquery wpisujemy  $tsAdmin->login($config['login'],$config['password']);
  6. Następnie wybieramy serwer na podstawie portu logowania  $tsAdmin->selectServer($config['udp']);
  7. Teraz tworzymy pętle while, dzięki której nasza aplikacja się nie wyłączy: while(true)
  8. Teraz tworzymy zmienną $admins = array();, gdy już ją stworzyliśmy przyszedł czas na pobranie aktualnej listy grup i użytkowników.
  9. Teraz tworzymy pętle foreach, która służy do przeglądania zawartości foreach($clients as $client),
  10. Następnie w naszej pętli od każdego użytkownika, którego będziemy przeglądać musimy pobrać aktualną listę grup wpisujemy $clientGroups= explode(",", $client['client_server_groups'];
  11. Teraz przyszedł czas na stworzenie kolejnej pęli w pętli, dzięki której przeglądaliśmy zawartość każdego użytkownika wpisujemy foreach($config['groups'] as $checkThisGroup)
  12. Teraz musimy zrobić prostą funkcję, która będzie nam sprawdzała czy dany użytkownik znajduje się w grupie masz powyżej

  13. Teraz przyszedł czas na sprawdzenie czy użytkownik jest w grupie naszą funkcją $group = isClientInGroup($checkThisGroup,$clientGroups);

  14. Gdy już to wykonaliśmy musimy sprawdzić czy rzeczywisty użytkownik się znajduje się w niej in_array($group,$config['groups']) == true)

  15. Teraz musimy stworzyć u góry naszej aplikacji zmienną nazwiemy ją $userInGroup  = array();
  16. W momencie kiedy mamy to gotowe i rzeczywiście klient znajduje się w naszej grupie wrzucamy go w tablicę $userInGroup[$client['client_nickname']] = array('group' => $group, 'cid' => $client['cid'], 'clid' => $client['clid'], 'unique_id' => $client['client_unique_identifier']); przy okazji pobieramy trochę informacji o danym użytkowniku.
  17. Teraz przyszedł czas na wykorzystanie zmiennej, dzięki której pobieraliśmy aktualną listę grup na serwerze teraz tworzymy pętlę foreach, dzięki której przejrzymy zawartość wpisujemy foreach($serverGroups as $group)
  18.  Sprawdzamy czy, któraś z grup serwerowych jest w grupach, które mamy zdefiniowane w zmiennej $config['groups'] wpisujemy if(in_array($group, $config['groups']) == true) 
  19. Teraz pójdzmy dalej tworzymy kolejną pętle foreach, która będzie służyła do zwracania nam określonych foreach($userInGroup as $nickname => $values), zapytasz akurat dlaczego tak? Głównie dlatego, że w tym wypadku zmienna $values będzie znam zwracała zawartość z tablicy np $values['group'].
  20. Teraz sprawdzamy czy dany użytkownik znajduje się w grupie wpisujemy in_array($values['group'], $group['sgid'])
  21.  W momencie kiedy dany użytkownik będzie w grupie przystępujemy do wyświetlania informacji o tym, że jest dostępny.
  22. Tworzymy teraz zmienną $output = ''; najlepiej u góry naszej aplikacji, będzie ona nam służyła do wpisywania tam użytkowników.
  23. Wracając po sprawdzeniu naszego klienta w zmienną $output .= ''; - wpisujemy sobie wybrane informację np $values['clid']
  24. Dobrze teraz możemy przystąpić do wyświetlania zawartości na kanale $ts->channelEdit($config['channel'], array(
                    'channel_description' => $output
                )
            );
  25.  Gratulacje napisałeś aplikację, którą potrzebujesz.
Myślę, że chociaż trochę przedstawiłem Ci jak to napisać, pozdrawiam.
Opublikowano
$ilosc = count($ts->serverGroupClientList($idgrupy)['data']);

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...