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

Teamspeak 3 Banner - Jak dodać nową rzecz np UPTIME


Rekomendowane odpowiedzi

Opublikowano

Mam problem ponieważ uczę się php ale jako samouk w pewnym stopniu i chciałem wiedzieć jak zrobić coś takiego że w moim banerze na teamspeak3 pokazuje up time mam taki banner ale w nim nie ma up time jest taki kod

<?php

header('Content-type: image-png; charset=utf-8');
error_reporting(E_ALL);
require_once('ts3admin.class.php');
//require_once('takietam.php');
require_once('TeamSpeak3/TeamSpeak3.php');

$ayarlar = array();
$resimler = array();
$ayarlar['host'] = ''; //Server IP (recommended localserver)
$ayarlar['queryAdi'] = 'serveradmin'; //Query Name
$ayarlar['querySifre'] = ''; //Query Password
$ayarlar['queryPort'] = 10011; //Query Port
$ayarlar['sunucuPort'] = 9987; //Server Port
$ayarlar['botAdi'] = 'GKBOT @ BANNER'; //Bot Name
$ayarlar['apiKey'] = 'c1d44151225c49e4a85152531172212&q=Paris'; // "apixu.com" Api Key
$ayarlar['dil'] = 'polish'; // Language ("turkish", "english") etc..
$ayarlar['ipApi'] = 'apixu'; // Api ("blazinglayer", "apixu") support ip api. (If blazinglayer api don't work, change to apixu.)
$ayarlar['ipApiKey'] = 'free'; // Ip api key
$resimler = ['arkaplan.png']; // Background's

setlocale(LC_ALL, $ayarlar['dil']);
$ts3Baglan = TeamSpeak3::factory('serverquery://'.$ayarlar['queryAdi'].':'.$ayarlar['querySifre'].'@'.$ayarlar['host'].':'.$ayarlar['queryPort'].'/?server_port='.$ayarlar['sunucuPort'].'&blocking=0&nickname='.urlencode($ayarlar['botAdi']));
$clientListe = $ts3Baglan->clientList(array('connection_client_ip' => $_SERVER['REMOTE_ADDR']));

foreach($clientListe as $clientListeYaz)
{
  $clientAdYaz = $clientListeYaz['client_nickname'];
}

function rastgeleSec($x) {
 return $x[rand(0, sizeof($x)-1)];
}
function ipAdresindenSehir($ip = null){

    if($ip == null){
        if(getenv('HTTP_CLIENT_IP')){
            $ip = getenv('HTTP_CLIENT_IP');
        }elseif(getenv('HTTP_X_FORWARDED_FOR')){
            $ip = getenv('HTTP_X_FORWARDED_FOR');
            if(strstr($ip, ',')){
                $gec = explode (',', $ip);
                $ip = trim($gec[0]);
            }
        }else{
            $ip = getenv('REMOTE_ADDR');
        }
    }
	$apiUrl = ($ayarlar['ipApi'] == 'blazinglayer') ? $apiUrl = 'http://api.blazinglayer.co.uk/ip/json/'.$ip.'/'.$ayarlar['ipApiKey'] : $apiUrl = 'http://ipinfo.io/'.$ip ; 
    $json = file_get_contents($apiUrl);
    $detaylar = json_decode($json);
    return $detaylar;
}

$resim = imagecreatefrompng(rastgeleSec($resimler));
$gri = imagecolorallocate($resim, 82, 82, 82);
$beyaz = imagecolorallocate($resim, 255, 255, 255);
$query = new ts3admin($ayarlar['host'], $ayarlar['queryPort']);
$ip = ipAdresindenSehir(null);

$url = file_get_contents('http://api.apixu.com/v1/current.json?key='.$ayarlar['apiKey'].'&q='.$ip->city);
$json = json_decode($url, true);
date_default_timezone_set($json['location']['tz_id']);

$havaDurumuResimUrl = $json['current']['condition']['icon'];
$havaDurumuResimUrl = str_replace('//', 'http://', $havaDurumuResimUrl);
$fligram = imagecreatefrompng($havaDurumuResimUrl);

$konum_x = imagesx($fligram);
$konum_y = imagesy($fligram);


if($query->getElement('success', $query->connect()))
{

	$query->login($ayarlar['queryAdi'],$ayarlar['querySifre']);
    $query->selectServer($ayarlar['sunucuPort']);
	$query->setName($ayarlar['botAdi']);

    $sunucuBilgi = $query->getElement('data', $query->serverInfo());
    $queryClient = $sunucuBilgi['virtualserver_queryclientsonline'];
	$normalClient = $sunucuBilgi['virtualserver_clientsonline'];
	$sunucuAdi = $sunucuBilgi['virtualserver_name'];
	$sehirAdi = $json['location']['name'];
	$sehirKacDerece = $json['current']['temp_c'];
	$max_urzytkownikow = $sunucuBilgi['virtualserver_maxclients'];
	$aktywni_urzytkownicy = ($normalClient - $queryClient);
	$serverUptime = ($serverInfo ['virtualserver_uptime']);
	
	imagettftext($resim, 50, 0, 285, 85, $beyaz, 'CaviarDreams_Bold.ttf', $sunucuAdi);
	imagettftext($resim, 35, 0, 135, 87, $beyaz, './CaviarDreams_Bold.ttf', 'Witaj '.$clientAdYaz.'!');
	//imagettftext($resim, 35, 0, 650, 300, $beyaz, './CaviarDreams.ttf', 'Chcesz darmowy kanał, lub informacjie o administacji? ');
	//imagettftext($resim, 35, 0, 650, 375, $beyaz, './CaviarDreams.ttf', 'A może potrzebujesz pomocy, sprawdz góre Teamspeaka !');
	//imagettftext($resim, 35, 0, 650, 450, $beyaz, './CaviarDreams.ttf', 'Jeżeli nie chcesz czekać na administrację, a chcesz rangę');
	//imagettftext($resim, 35, 0, 650, 525, $beyaz, './CaviarDreams.ttf', 'Odwiedzić naszą stronę (Kliknij w Banner)');
	imagettftext($resim, 35, 0, 650, 525, $beyaz, './CaviarDreams.ttf', $serverUptime);
	imagettftext($resim, 45, 0, 1095, 95, $beyaz, './CaviarDreams_Bold.ttf', date("d.m.Y"));
	imagettftext($resim, 45, 0, 1283, 252, $beyaz, './CaviarDreams_Bold.ttf', date('H:i'));
	imagettftext($resim, 45, 0, 131, 252, $beyaz, './CaviarDreams_Bold.ttf', ''.$aktywni_urzytkownicy.'/'.$max_urzytkownikow);
	imagettftext($resim, 15, 0, 690, 240, $beyaz, './CaviarDreams.ttf', $sehirAdi);
	imagettftext($resim, 10, 0, 765, 220, $beyaz, './CaviarDreams.ttf', $sehirKacDerece.'°');
	imagecopy($resim, $fligram, imagesx($resim) - $konum_x - 35, imagesy($resim) - $konum_y - 25, 0, 0, imagesx($fligram), imagesy($fligram));
}
imagepng($resim);
imagedestroy($resim);
?>

Jak teraz dodać up time ? bo ta linijka co dodałem nie działa i do banera też to dodałem

$serverUptime = ($serverInfo ['virtualserver_uptime']); 

imagettftext($resim, 35, 0, 650, 525, $beyaz, './CaviarDreams.ttf', $serverUptime);

Opublikowano

Jakby to powiedzieć MrSanten ten cytat zmienił wiele we mnie naprawdę i oczywiście kod działa taka mała poprawka miało być

$serverUptime = $sunucuBilgi['virtualserver_uptime'];

zapomniał pan dodać przed sunucuBilgi znaczku $ co nie mogło szczytać Query.

Mam że tak powiem kolejny problem jak to zrobić żeby to pokazywało w taki sposob np. 7Dni 24Minuty 23Sekundy

bo aktualnie jest tak np. 46232532

 

Opera Zdjęcie_2017-12-23_181427_77.55.215.245.png

Opublikowano

Nie za bardzo rozumiem jak trzeba to zrobić, Mogłbyś wziąść mój kod i mi wkleić to co trzeba do tego?

I mam jeszcze takie pytanie jak ograniczyć ilość liter lub cyfer np. jest ping serwera i jest np 65.5765 i jak to zrobić żeby było tylko 65.57? 
Znalazłem coś takiego 

<?php
function ciach($tresc,$ile)
{
    // obliczamy ilość znaków w tekscie
    $licz = strlen($tresc);
    // sprawdzamy, czy ilość znaków w tekscie jest większa
    // lub równa liczbie znaków po jakiej tekst ma być obcięty
    if ($licz>=$ile)
    {
        // obcinamy tekst o określoną ilośc znaków
        $tnij = substr($tresc,0,$ile);
        // dodajemy kropeczki (...)
        $txt = $tnij."...";
    }
    else
    {
        // jeżeli warunek nie jest spełniony pozostawiamy tekst bez zmian
        $txt = $tresc;
    }
    // zwracamy wynik działania funkcji
    return $txt;
}
// przykładowy tekst
$tresc = "Co potrafi PHP? Wszystko. PHP jest rozwijane pod kątem pisania skryptów server-side, więc możesz zrobić wszystko co potrafią inne programy CGI, jak na przykład odbierać dane z formularzy, generować dynamicznie zawartość strony, lub odbierać i wysyłać ciasteczka.";
// ilość znaków - po tej ilości tekst zostanie obcięty
$ile = 100;
// wywołujemy funkcję
echo ciach($tresc,$ile);

?>

ale nie wiem jak dodać to do kodu mojego baneru bo jak robie coś tegiego

$serverPing = $sunucuBilgi['virtualserver_total_ping'];

$tresc = "$serverPing";

$ile = 4;

I teraz nie wiem jak dodać to tutaj

imagettftext($resim, 35, 0, 1250, 525, $beyaz, './CaviarDreams.ttf', $serverPing);

Opublikowano

Dodajesz:
 

function secondsToTime($seconds) {
    $dtF = new \DateTime('@0');
    $dtT = new \DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%a dni, %h godzin, %i minut i %s sekund');
}
$uptimedate = secondsToTime($serverUptime);

I zamiast
 

imagettftext($resim, 35, 0, 650, 525, $beyaz, './CaviarDreams.ttf', $serverUptime);

Dodajesz
 

imagettftext($resim, 35, 0, 650, 525, $beyaz, './CaviarDreams.ttf', $uptimedate);

 

(')(.)(;)

Opublikowano

Dziekuje panu pan chyba bardzo dobrze zna php i wie jak działa a mam jeszcze taki jedno pytanie odnośnie tego pingu

poniważ na serwerze w bannere mam ping np (58.5322)

i jakim sposobem to skrócić do (58.53) mam coś takiego w bannerze i oprócz tego mam wersje Linux np 3.0.13.8 [Build 1.51212.3421412] i da rade jakoś tak to skrócic żeby było samo 3.0.13.8? czy to działa na takiej samej zasadzie jak ping?

$serverPing = $sunucuBilgi['virtualserver_total_ping'];

imagettftext($resim, 35, 0, 1250, 525, $beyaz, './CaviarDreams.ttf', $serverPing);

 

Opera Zdjęcie_2017-12-24_132547_77.55.215.245.png

Opublikowano

W przypadku ping 

 

$serverPing = round($sunucuBilgi['virtualserver_total_ping']);

 

Jeżeli masz więcej pytań wejdź do mnie na ts ( strike-ts3.pl ) :D

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...