NFK Map Viewer
ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° .mapa ΠΈΠ³ΡΡ Need For Kill, (*1)
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΈΠΏΡΠ°: http://harpywar.com/test/nfkmap/, (*2)
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
PHP >= 5.3 Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ php_gd2 ΠΈ php_bz2, (*3)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π· Composer
ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Composer ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΠΊΡΠΈΠΏΡΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ½ ΡΠ°ΠΌ Π·Π°Π³ΡΡΠ·ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΈΡ
Π² vendor/autoload.php, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π°ΡΠ°Π»Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°., (*4)
-
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ NFK Map Viewer, ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π² Π½Π΅ΠΉ ΡΠ°ΠΉΠ» composer.json ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:, (*5)
{
"minimum-stability": "dev",
"require": {
"nfk/mapviewer":"dev-master"
}
}
-
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π² ΡΡΡ ΠΏΠ°ΠΏΠΊΡ ΡΠ°ΠΉΠ» http://getcomposer.org/composer.phar ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:, (*6)
php composer.phar install
-
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΏΠ°ΠΏΠΊΠ° vendor, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° composer'a, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ MapViewer., (*7)
-
Π’Π΅ΠΏΠ΅ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MapViewer:, (*8)
include "vendor/autoload.php";
ΠΠ±ΡΡΠ½Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Composer, ΡΠΎ Π² Π½Π°ΡΠ°Π»Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ²:, (*9)
include("lib/autoloader.php");
Autoloader::register();
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² examples):
Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠ°ΡΡΡ:, (*10)
use NFK\MapViewer\MapViewer;
$nmap = new MapViewer("tourney4.mapa");
$nmap->LoadMap();
$im = $nmap->DrawMap();
imagepng($im, $nmap->GetFileName() . '.png');
, (*11)
ΠΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΡ ΠΊΠ°ΡΡΡ, ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ:, (*12)
// Ρ
Π΅Π»ΠΏΠ΅ΡΡ Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
use NFK\MapViewer\MapObject\SimpleObject
use NFK\MapViewer\MapObject\SpecialObject
$nmap = new MapViewer("test.mapa");
// ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ Π±ΡΠΈΠΊΠ°ΠΌΠΈ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΡΡ
for ($x = 0; $x < $nmap->Header->MapSizeX; $x++)
for ($y = 0; $y < $nmap->Header->MapSizeY; $y++)
if ($x == 0 || $x == $nmap->Header->MapSizeX - 1 || $y == 0 || $y == $nmap->Header->MapSizeY - 1)
$nmap->Bricks[$x][$y] = 228;
// ΡΠ΅ΡΠΏΠ°Π²Π½ Π² Π»Π΅Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ³Π»Ρ
$nmap->Bricks[1][$nmap->Header->MapSizeY - 2] = SimpleObject::Respawn();
// ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ³Π»Ρ ΠΏΠΎΡΡΠ°Π», Ρ ΡΠ΅Π»Π΅ΠΏΠΎΡΡΠΎΠΌ Π² Π»Π΅Π²ΡΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ³ΠΎΠ»
$obj = SpecialObject::Teleport
(
$nmap->Header->MapSizeX - 2, // x
$nmap->Header->MapSizeY - 2, // y
2, // goto x
$nmap->Header->MapSizeY - 2 // goto y
);
$nmap->Objects[] = $obj; // Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΡΡΠ°Π» Π² ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
$nmap->SaveMap();
, (*13)
ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΡΡ .mapa ΠΈΠ· Π΄Π΅ΠΌΠΊΠΈ:, (*14)
$nmap = new NFKMap("demo.ndm");
$nmap->LoadMap();
// Ρ
Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΡΡ
$filename = md5( $nmap->GetMapBytes() );
$nmap->SaveMap($filename);
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ° ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠ°ΡΡΠ°Ρ
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΡΠΎΠΌΡ, Π² ΡΠΊΡΠΈΠΏΡΠ΅ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ±ΡΠ°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:, (*15)
ini_set('memory_limit', '-1');
ini_set('memory_limit', '256M');
Π Π°ΡΡ
ΠΎΠ΄ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠ°ΡΡΡ http://ge.tt/5uyLLIW/v/0
* 0.7 ΠΌΠ± Π΄ΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΡΡΡ
* 5.7 ΠΌΠ± ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠ°ΡΡΡ Π² ΠΏΠ°ΠΌΡΡΡ
* 6.7 ΠΌΠ± ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² (ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΏΠ°Π»ΠΈΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²)
* 151 ΠΌΠ± ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΡ ΠΊΠ°ΡΡΡ ΡΠ΅ΡΠ΅Π· imagecreatetruecolor ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 7776Ρ
3888 px
* 151 ΠΌΠ± ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
* 237 ΠΌΠ± ΠΏΠΎΡΠ»Π΅ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠ΅ΡΠ΅Π· imagepng, (*16)
ΠΠ°ΠΌΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ memory_get_peak_usage, (*17)
, (*18)
Π Π°Π·Π±ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠ°ΡΡΡ