Autor | Zpráva | ||
---|---|---|---|
okolojsoucí Profil |
#1 · Zasláno: 8. 12. 2013, 18:47:08
Anonymní:
3D herní engine je trochu moc. Spíše bych začal 2D aby vůbec pochopil jak udělat když vrazí do bedny, aby se zastavil. |
||
Amunak Profil |
#2 · Zasláno: 8. 12. 2013, 18:56:00
Anonymní:
Víš o nějaké kvalitní, aktuální publikaci? Mně přijde pořád nejlepší tutoriál na Linuxsoftu, plus to, co je sepsané z učebnice PHP. |
||
Anonymní Profil * |
#3 · Zasláno: 8. 12. 2013, 19:01:19
Amunak:
Nevím, nedělám v PHP, ale dobré publikace pro některé ostatní jazyky rozhodně jsou a i některé jsou i v českém jazyce :D Doporučuji cpress dost často je tam i ukázková kapitola a prostě na té si můžeš zkusit jestli ti knížka vyhovuje/nevyhovuje. |
||
okolojsoucí Profil |
Amunak, Anonymní:
A proč tu řešíte publikaci která je úplně mimo téma? |
||
Amunak Profil |
#5 · Zasláno: 8. 12. 2013, 19:35:17
okolojsoucí:
Protože je zbytečné, aby si sitole kupoval knihu o PHP, která nejspíš bude špatně napsaná a bude se zabývat nějakou verzí 4.x. Tedy ne, že by se mi ten váš předchozí dialog zdál užitečnější. Navíc jak psal Alphard, doporučovat ImageMagick (navíc začátečníkovi, který v životě neviděl OOP), taky není úplně dobré. Já doteď pořádně nepochopil, o co sitolemu vlastně jde, ale jsem přesvědčený, že by na to knihovna GD bohatě stačila. |
||
Alphard Profil |
Tato diskuse je mimo téma dávno. Snaha okolojsoucí učit tazatele nepřináší viditelné výsledky a zřejmě se nenajde nikdo, kdo by sem dal hotové řešení. Takže si nemyslím, že pár příspěvků mimo téma neubliží a nechávám tomuto vláknu docela volný průběh. Jestli přijdete s nápadem na dobrou literaturu o PHP nebo něčím jiným hodnotným, vyčlením to jinam. Jinak to promaži/nechám usnout, ještě nevím.
okolojsoucí: Jestli už máte hotový kód částečně řešící problém a nechcete ho sem dávat komplet celý, můžete sem dát kostru s pár vynechanými částmi. To je podle mě dobrá metoda, jak někoho učit programovat. |
||
okolojsoucí Profil |
#7 · Zasláno: 8. 12. 2013, 20:28:05
Vložím tedy kostru
<?php // Začátek scriptu require 'status.php'; $status = new MinecraftServerStatus(); /** Zde si načtěte IP adresu pomocí GET, a pokud není za : prázdno, zkontrolujte zda-li se jedná o číslo, a pokud ano, je to port. Tak že konstrukce bude vypadat: pokud (neníPrázdno(port) a jeCislo(port)) $responde = $status->getStatus(ip, port); ne $responde = $status->getStatus(ip); */ $chyba = new ImagickDraw(); $popis = new ImagickDraw(); $cerna = new ImagickPixel('black'); /** Zde ověřte zda-li server odpovídá a pokud ano, tak na větvi if vytvořte obrázek s pozadím pomocí inicializace $image->new Imagick('pozdadi.png'); a pokud ne tak na větvi else vytvořte obrázek s pevně danými rozměry pomocí $image->new Imagick(); $image->newImage(x, y, barva); */ $chyba->setFillColor('green'); $chyba->setFontSize(25); $popis->setFillColor('green'); $popis->setFontSize(20); /** Zde si pomocí podmínky ověřte zda-li server odpovídá, a pokud ne tak na větvi else vypište co chcete, a na větvi if vypište informace o serveru pomocí $image->annotateImage(); */ $image->setImageFormat('png'); header('Content-type: image/png'); echo $image; /** * Script není ukončen, aby nevznikaly bílé znaky */ |
||
sitole Profil |
#8 · Zasláno: 8. 12. 2013, 21:39:32
Takže...
Již mám obrázek.. Jeho script <?php header('Content-type: image/png'); $image = new Imagick('signa2.png'); // If 0 is provided as a width or height parameter, // aspect ratio is maintained $image->thumbnailImage(500, 135); echo $image; $bg = imagecolorallocate($im, 255, 255, 255); $textcolor = imagecolorallocate($im, 0, 0, 255); // Write the string at the top left imagestring($im, 5, 0, 0, 'Hello world!', $textcolor); ?> Ale nevím jak je možné že se tam nezorazuje ani to "Hello world!" Stránka zde http://sitole.707.cz/c/w.php |
||
Alphard Profil |
#9 · Zasláno: 8. 12. 2013, 21:51:57
|
||
sitole Profil |
#10 · Zasláno: 8. 12. 2013, 22:01:04 · Upravil/a: sitole
Já tochápu že to není pro mě. Dříve jsem také nedokázal napsat ani . z toho Minecraft online statusu ted ho napíšu i se zavřenejma očima..
Není tedy možné mě to ukázat..? Každý se to musí někdy naučit a neříkejte že ste se na kole naučili jen když víte co je křeslo.. To je stejné semnou.. Když uvidím script dokážu ho příště jednoduše napsat jak říkám i zpaměti.. |
||
DarkMeni Profil |
#11 · Zasláno: 8. 12. 2013, 22:07:08
Co všechno se může na tom obrázků měnit? (jen počet hráčů nebo ještě něco?)
Jakej je limit hráčů na ten server? (je proměnlivej nebo ne?) |
||
sitole Profil |
#12 · Zasláno: 8. 12. 2013, 22:13:08
No, server potřebuju že se bude měnit online offline také hráči těch je na serveru je 20 slotů a pozadí se jmenuj signa2.png
Má velikost: 500x135 Pokud to opravdu chcete udělat děkuji! |
||
Anonymní Profil * |
#13 · Zasláno: 8. 12. 2013, 22:24:47
sitole:
„Každý se to musí někdy naučit a neříkejte že ste se na kole naučili jen když víte co je křeslo..“ Ale takhle se to nenaučíš. Naučíš se to tak, že si to prostě vyzkoušíš a jak jsi psal s tím kolem, tak si na kole parkrát rozbiješ držku než se to naučíš. To je stejné i u tohodle. Nic víc. Kdybys místo řečnění a zkoušení jestli to někdo nenapíše za tebe ses radši koukl na nějaký tutoriál PHP tak si to napíšeš sám a máš z toho dobrý pocit. A pokud teda potřebuješ aby ti to někdo celé napsal popř. naučil/vysvětlil tak si napiš práce a zakázky a řekni částku co za to nabízíš(ano nebude to zadarmo, ale v dnešním světě nedostaneš zadarmo nic), tahle diskuze slouží k tomu, aby ti někdo poradil či popostrčil ne aby ti tady zadarmo někdo udělal práci :) |
||
DarkMeni Profil |
Spíš to nechám udělat tebe, jen tě zkusim navést jak na to
Myslim si že nejlepší asi bude, když to zatim uděláš přes těch 21 předgenerovaných obrázků (zas až tak přehnaně moc to neni), protože programovat vykreslování obrázku v php je docela složitý a chce to už mít nějaký zkušenosti z jednodušších věcí (nebo aspoň znát syntaxi jazyka a vědět co která funkce dělá - to de zjistit v manuálu, ale je to tam anglicky) U těch předgenerovaných obrázků je to docela jednoduchý, stačí pár podmínek a funkce na přečtení a vypsání souboru, něco jako: <?php include "status.class.php"; $status = new MinecraftServerStatus(); $response = $status->getStatus("mc27.crew.sk", 25580); $folder = "status_images/"; if($response){ $image = "online".$response["players"].".jpg"; }else{ $image = "offline.jpg"; } if(!file_exists($folder.$image)){ $image = "out-of-range.jpg"; } header("Content-Type: image/jpeg"); readfile($folder.$image); ?> S tim že si to ještě nějak uprav podle sebe (ty hodnoty sem tam dal z jednoho z předchozích témat co si řešil, takže nemusí být aktuální) a do složky třeba status_images - nebo je na tobě jak si ji pojmenuješ - pak dej obrázky online0.jpg až online20.jpg a offline.jpg (takže vlastně 22 obrázků a ne 21, sorry)
Teoreticky ty obrázky můžeš vytvořit i v jiným formátu, ale pak budeš muset upravit koncovky a HTTP header Jo a vlastně se ještě může stát, že by někdo rozšířil počet hráčů a pak by tam bylo třeba 21 hráčů a obrázek online21.jpg by neexistoval, pak by ten skript vypsal chybu a prohlížeč by z toho udělal něco jako rozbitej obrázek Takže by bylo dobrý to nějak ošetřit, třeba udělat ještě obrázek out-of-range.jpg nebo něco takovýho a ten vykreslit v případě že by požadovanej obrázek neexistoval (de o to přidat ještě jednu podmínku, zkusim to upravit v tom kódě) |
||
sitole Profil |
#15 · Zasláno: 9. 12. 2013, 14:10:32
Takže.. hápu to dobře pro každý slot udělám obrázek tedy..
Na serveru bude 1 online tak to bude třeba 1online.png - to už si změním že? |
||
Amunak Profil |
#16 · Zasláno: 9. 12. 2013, 15:31:10
DarkMeni:
Nebylo by lepší použít text, než 20 různých obrázků? Nemyslím, že to chce mít tak "fancy", aby nemohl použít vykreslování textu, které má GD. Co kdyby bylo těch slotů/hráčů 200? |
||
okolojsoucí Profil |
#17 · Zasláno: 9. 12. 2013, 17:01:07
sitole:
Dal jsem ti kostru [#7]. Co je problém nahradit poznámky kódem, který ještě k tomu je popsán v poznámce? |
||
Fisir Profil |
#18 · Zasláno: 9. 12. 2013, 18:13:00
Jde to i za pomocí GD knihovny napsat asi na patnáct řádků:
• vytvoříme obrázek ( imagecreatetruecolor() )
• nastavíme si barvy pro pozadí a text ( imagecolorallocate() )
• vyplníme obrázek nějakou barvou ( imagefill() )
• vypíšeme požadované údaje ( imagestring() )
• odešleme příslušnou hlavičku ( header() )
• vykreslíme obrázek ( imagepng() , imagejpeg() )
|
||
DarkMeni Profil |
#19 · Zasláno: 9. 12. 2013, 19:03:32
sitole:
Jj, akorát jak je ten kód teď napsanej, tak spíš online1.png než 1online.png Amunak: „Co kdyby bylo těch slotů/hráčů 200?“ Pak by bylo lepší použít GD knihovnu a ten obrázek vykreslit přes ní (Právě proto sem se ptal jakej je limit hráčů) Neříkal sem, že by neměl používat GD knihovnu, jen že na použití takový knihovny to už chce mít nějaký zkušenosti s programováním v php Ale jestli by tam měl být i ping a ták, tak pak už by to chtělo udělat přes GD |
||
sitole Profil |
#20 · Zasláno: 9. 12. 2013, 19:39:46
Já to nechápu!
Ale! Script <?php include "status.class.php"; $status = new MinecraftServerStatus(); $response = $status->getStatus("mc27.crew.sk", 25580); $folder = "status/"; if($response){ $image = "online".$response["players"].".jpg"; }else{ $image = "offline.jpg"; } if(!file_exists($folder.$image)){ $image = "out-of-range.jpg"; } header("Content-Type: image/jpeg"); readfile($folder.$image); ?> A nic to neukazuje.. http://sitole.707.cz/c/status.php?d A pro kontrolu! http://sitole.707.cz/banner/status.php?d Kde je problém? |
||
Amunak Profil |
DarkMeni:
Ale on už s GD zkušenosti má. Navíc jsme ho tu teď ke GD celou dobu vedli, asi nemá smysl, aby se veškeré snažení zahodilo a dělalo se to znova (horší) cestou. Fisir v [#18] snad dostatečně popsal, jak to jde udělat. Já doteď nechápu rozdíl, mezi tím, co sitole požeduje teď, a mezi tím, co vzniklo ve zmiňovaném vlákně. Skoro mám pocit, že hledá jen nějaké <img src="banner.php"> , a jen neví, jak se na to zeptat.
|
||
Fisir Profil |
Reaguji na sitole:
„Kde je problém?“ Pravděpodobně v tom, že server je skutečně offline: Funguje ti server 81.201.56.15 , port 25565 ?
Jinak tu máš popsané řešení od DarkMeniho, ode mně, okolojsoucího a od tebe. Kde je problém? A prosím konkrétně. Chybové hlášky? Kde jsi se zasekl? |
||
DarkMeni Profil |
#23 · Zasláno: 9. 12. 2013, 20:05:27
sitole:
„A nic to neukazuje..“ Diď ti to vykreslí obrázek že je server offline „Kde je problém?“ Ale jestli ve skutečnosti offline neni tak buď ve třídě MinecraftServerStatus nebo v hodnotách zadaných pro získání statusu (IP a port) a nebo myslim že kdysi ti to nefungovalo kvůli tomu že na serveru kde si to měl neměli povolenou funkci na navázání spojení s tou IP (nějak fsockopen nebo tak něco) Amunak: V tom vlákně to bylo nakonec taky vyřešený tak, že se GD knihovna vynechala a výstup byl udělanej jednoduše přes HTML |
||
sitole Profil |
#24 · Zasláno: 9. 12. 2013, 20:06:15
Ja tu jsem.. :)
To je jedno Amunak Hned vysvětlím.. No, v tom starém vláknu jsem potřeboval banner prostě online status.. Ale ted jsem byl požádán majitelem serveru GaMmA o obrázek.. Protože to chce vkládat na forum.. Takže co? 1 vlákno.. Normální status v HTML, CSS, PHP.. 2 vlákno (toto) stejné.. akoráde je to obrázek.. Ještě potřebuju tu [#20] |
||
Fisir Profil |
#25 · Zasláno: 9. 12. 2013, 20:10:56
Reaguji na sitole:
Skript v [#20] pravděpodobně funguje. Rozhodně ti správně vypsal, že server je offline. |
||
okolojsoucí Profil |
#26 · Zasláno: 9. 12. 2013, 20:13:41
Obrázek se normálně vykresluje, tak v čem je problém.?
|
||
sitole Profil |
#27 · Zasláno: 9. 12. 2013, 20:17:35
Ano obrázek offline ale ne kolik je na serveru lidí chápu to dobře?
$image = "online".$response["players"].".jpg"; Když bude na serveru třeba 10 lidí zobrazí se 10.jpg ? |
||
DarkMeni Profil |
#28 · Zasláno: 9. 12. 2013, 20:18:04
sitole:
„Ale ted jsem byl požádán majitelem serveru GaMmA o obrázek..“ Aha, to si neřek, tak jestli to děláš pro někoho, tak si rači dej tu práci, podívej se na GD knihovnu nebo Imagick a udělej to přes to (kdyby sis to dělal pro sebe, tak v případě, že si tam přidáš pár slotů, tak jen dokreslíš pár obrázků - ale když to děláš pro někoho, a on by pak přidal pár slotů, tak by se divil proč mu to nefunguje) |
||
Fisir Profil |
#29 · Zasláno: 9. 12. 2013, 20:20:28
Reaguji na sitole:
Počet lidí se bude zobrazovat pouze tehdy, když bude server online. „Když bude na serveru třeba 10 lidí zobrazí se 10.jpg ?“ Ne, online10.jpg .
Ale radši to udělej přes tu GD knihovnu, sice je to těžší, ale univerzální a nebudeš mít bůhvíkolik souborů pro všechny možné počty hráčů. Takhle můžeš zobrazovat další proměnlivé údaje. |
||
sitole Profil |
#30 · Zasláno: 9. 12. 2013, 20:51:19
No, tak vše asi funguje..
Prosím nezavírejte ještě toto vlákno.. Pokud budou problémky nechci zakládat nové.. |
||
Téma pokračuje na další straně.
|
0