2017 © Pedro PelΓ‘ez
 

library mapviewer

NFK Map Viewer

image

nfk/mapviewer

NFK Map Viewer

  • Saturday, October 18, 2014
  • by HarpyWar
  • Repository
  • 1 Watchers
  • 1 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

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)

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ NFK Map Viewer, ΠΈ создайтС Π² Π½Π΅ΠΉ Ρ„Π°ΠΉΠ» composer.json со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:, (*5)

    {
        "minimum-stability": "dev",
        "require": {
            "nfk/mapviewer":"dev-master"
        }
    }
  2. ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅ Π² эту ΠΏΠ°ΠΏΠΊΡƒ Ρ„Π°ΠΉΠ» http://getcomposer.org/composer.phar ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:, (*6)

    php composer.phar install
  3. ПослС установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠ°ΠΏΠΊΠ° vendor, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π°Π²Ρ‚ΠΎΠ·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° composer'a, располоТСны исходники MapViewer., (*7)

  4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ вашСго скрипта достаточно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 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)

Π Π°Π·Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Ρ‹

The Versions

18/10 2014

dev-master

9999999-dev http://needforkill.com

NFK Map Viewer

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-bz2 *
  • ext-gd *

 

by Avatar HarpyWar

library

07/02 2013

1.0.10

1.0.10.0 http://needforkill.com

NFK Map Viewer

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-gd *
  • ext-bz2 *

 

by Avatar HarpyWar

library

04/02 2013

1.0.9

1.0.9.0 http://needforkill.com

NFK Map Viewer

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-gd *
  • ext-bz2 *

 

by Avatar HarpyWar

library

29/01 2013

1.0.8

1.0.8.0 http://needforkill.com

NFK Map Viewer

  Sources   Download

MIT

The Requires

  • php >=5.3.3
  • ext-gd *
  • ext-bz2 *

 

by Avatar HarpyWar

library