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

Podgląd czy mapy nie zachodzą na siebie na globalnych koordach


baran860

Rekomendowane odpowiedzi

Opublikowano

Skrypcik został napisany w php pobiera on dane z atlasinfo.txt następnie tworzy z nich grafikę wraz z legendą.

Przykładowo wygrenerowany plik:

56111141271843281780.jpeg

 

Jak widać mapa 81 nakłada się na inną, a 78 jest całkowicie gdzieś z boku ;)

 

Generatorek był pisany na szybko a co za tym idzie nie jest "zabezpieczony" przed błędami i nie posiada super mega funkcji (ma działać).

 

Kod:

 

<?php
header('Content-Type: image/jpeg');
$skala = 10;
$wysokosc = 3846*1; #Wielkość obrazu roboczego (zależy od ilości pamięci na serwerze)
$szerokosc = 3846*1;#Wielkość obrazu roboczego (zależy od ilości pamięci na serwerze)


$obrazek = ImageCreateTrueColor($szerokosc, $wysokosc);
ImageFill($obrazek, 0, 0, ImageColorAllocate($obrazek, 225, 225, 225));

$plik= file("atlasinfo.txt"); 
$i=1;
foreach($plik as $linijka) { 
 if ($i >= 1 && $i <= count($plik))
 {
	$dane = explode("\t",$linijka);
	$startX = ($dane[1]/100)/$skala;
	$startY = ($dane[2]/100)/$skala;
	$koniecX = $startX+((256 *$dane[3])/$skala);
	$koniecY = $startY+((256*$dane[4])/$skala);
	#ImageRectangle($obrazek, $startX, $startY, $koniecX, $koniecY, ImageColorAllocate($obrazek, 0, 0, 0)); #Obramówka
	ImageFilledRectangle($obrazek, $startX, $startY, $koniecX, $koniecY, ImageColorAllocate($obrazek, rand(0,255), rand(0,255), rand(0,255)));
	ImageString($obrazek, 11, $startX+(($koniecX-$startX)/2), $startY+(($koniecY-$startY)/2), $i, ImageColorAllocate($obrazek, 0, 0, 0));
	$stack[] = $i." ".$dane[0];
 }
 $i++;
}

for ($i=0; $i<count($stack) ; $i++){
	ImageString($obrazek, 11, 20, $wysokosc-((15*$i)-count($stack)+100), $stack[count($stack)-$i-1], ImageColorAllocate($obrazek, 0, 0, 0));
}

#imagejpeg($obrazek, "hehe.jpg", 100); //zapisujemy obrazek do pliku
imagejpeg($obrazek);
?>

 

 

 

 

 

 

 

Na pomysł jako pierwszy wpadł JachuPL!!!

8910814572903361049127.png

Opublikowano

Fajny pomyśł i kod nawet na "ok" poziomie chociaż da się go trochę skrócić : > xD

A MÓWILI MI ŻE WARTO W TO GRAĆ,MÓWILI MI ŻE WARTO STĄD BRAĆ

Opublikowano

Pomysł ciekawy bez zbędnych bajerów i działa więc czego więcej trzeba? ;D zostawiam + i dz za udostępnienie 

nieregulaminowa sygnatura - zawarty odnośnik do fanpage'a


Opublikowano

Poprawilem kod z racji tego iz jeden segment mapy ma rozmiar 256x256 a nie 255x255 jak sądziłem ~dzięki Jachu ;)

 

Powinno być:

(256*$dane[4]) i (256*$dane[3])

A nie:

(255*$dane[4])

 

Koordynaty na segmencie są od 0 do 255, co daje 256. By the way, wiem że w dungeonach koordynaty są mniej więcej *100 albo *1000 (?), jak to się ma do nachodzenia na siebie map? Mam na myśli czy gdyby nasz dungeon był na mapie o małych x,y, a mniej więcej na tych koordynatach *1000 znajdowała by się zwykła mapa - jak zachowa się gra?

sygnatura2.png


Opublikowano

Koordynaty na segmencie są od 0 do 255, co daje 256. By the way, wiem że w dungeonach koordynaty są mniej więcej *100 albo *1000 (?), jak to się ma do nachodzenia na siebie map? Mam na myśli czy gdyby nasz dungeon był na mapie o małych x,y, a mniej więcej na tych koordynatach *1000 znajdowała by się zwykła mapa - jak zachowa się gra?

nic sie nei dzieje zlego

  • 2 tygodnie później...
Opublikowano
Gratuluję pomysłu i wykonania.
 
 
Ma ktoś jakiś pomysł dotyczący tego błędu?
2014/10/21 21:02:16 [error] 1705#0: *6 FastCGI sent in stderr: "PHP Notice:  Undefined offset: 1 in /var/www/atlasinfo.php on line 24
PHP Notice:  Undefined offset: 2 in /var/www/atlasinfo.php on line 25
PHP Notice:  Undefined offset: 3 in /var/www/atlasinfo.php on line 26
PHP Notice:  Undefined offset: 4 in /var/www/atlasinfo.php on line 27" while reading response header from upstream, client: XXX.XXX.XXX.XXX, server: XXXXXXXXXXX, request: "GET /aXXXfX.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "XXX.XXX.XXX.XXX"

 W kodzie źródłowym zmieniłem tylko w 41 linijce na imagejpeg($obrazek, "mapy.jpg");

 

Konfiguracja w skrócie to debian 7 64bit +nginx+php-fastcgi, oprócz domyślnej konfiguracji ze względu na ImageCreateTrueColor  specjalnie zainstalowałem php5-gd.

 

Sam plik jpg tworzy się. 

Opublikowano

Zainstaluj sb wamp serwer na winndowsie i będzie git. Ogólnie miałem to pisać w c# ale już uporządkowalem mapki więc teraz mi się nie chce ale może ktoś połapie pomysl i to zrobi.

8910814572903361049127.png

Opublikowano

Bardzo dobry pomysł. Pamiętam jak kiedyś trzeba było robić to na wyczucie. Ten skrypt znacznie to ułatwia.

Opublikowano

ja ogólnie pisałem swoje wersje dwa dni, jeden dzień przeznaczyłem na jedną, drugi na drugą, bo miałem dwie świetne koncepcje i chciałem zobaczyć która spodoba mi się bardziej :D  U mnie generuje bitmapę w skali 1:2, oczywiście mogę wygenerować mniejsze, żeby pokazać dalsze koordy (Baranowi generowałem w 1:8 bo mu mapki spierdoliły gdzieś daleko). Jest jedna wada - wygenerowany obraz waży 20mb, ale tak na dobrą sprawę to c**j mnie to boli. Pojedyncza kratka na moim obrazku to sekcja 1x1. Zasada działania programu jest prosta: czyta atlasinfo, szuka pliku z mapą w atlas/NAZWAMAPY_atlas.png i nanosi go na obraz wynikowy. Jeśli nie może znaleźć mapki to po prostu rysuje pomarańczowy kwadracik.


WpvWCY1.jpg
UfIxBpP.jpg
6DIlYcX.jpg

 

57199140501148694665.png

Opublikowano

ja ogólnie pisałem swoje wersje dwa dni, jeden dzień przeznaczyłem na jedną, drugi na drugą, bo miałem dwie świetne koncepcje i chciałem zobaczyć która spodoba mi się bardziej :D  U mnie generuje bitmapę w skali 1:2, oczywiście mogę wygenerować mniejsze, żeby pokazać dalsze koordy (Baranowi generowałem w 1:8 bo mu mapki spierdoliły gdzieś daleko). Jest jedna wada - wygenerowany obraz waży 20mb, ale tak na dobrą sprawę to c**j mnie to boli. Pojedyncza kratka na moim obrazku to sekcja 1x1. Zasada działania programu jest prosta: czyta atlasinfo, szuka pliku z mapą w atlas/NAZWAMAPY_atlas.png i nanosi go na obraz wynikowy. Jeśli nie może znaleźć mapki to po prostu rysuje pomarańczowy kwadracik.

 

 

14934141413474694665.jpg

50067141413474694665.jpg

38501141413474794665.jpg

 

 

No, i to jest full profeszynal z bajerami :P

8910814572903361049127.png

  • 4 miesiące temu...
Opublikowano

Witam

Jestem osobą która dopiero zaczyna zabawę z światem tworzenia serwerów może ktoś powie jak utworzyć ten skrypt i gdzie ??

 

Odpowiedź masz w samym temacie - cytuję: "skrypt php". Użyj xamppa do wyemulowania środowiska serwera www i odpal ten skrypt.

57199140501148694665.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...