PHPackages                             nfk/mapviewer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nfk/mapviewer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nfk/mapviewer
=============

NFK Map Viewer

1.0.10(13y ago)1131MITPHPPHP &gt;=5.3.3

Since Jan 29Pushed 6y ago1 watchersCompare

[ Source](https://github.com/HarpyWar/nfkmap-viewer)[ Packagist](https://packagist.org/packages/nfk/mapviewer)[ Docs](http://needforkill.com)[ RSS](/packages/nfk-mapviewer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

NFK Map Viewer
==============

[](#nfk-map-viewer)

Генерирует изображение карты из файла `.mapa` игры [Need For Kill](http://needforkill.ru)

Пример работы скрипта:

### Требования

[](#требования)

PHP &gt;= 5.3 с включенными расширениями `php_gd2` и `php_bz2`

### Установка через Composer

[](#установка-через-composer)

Менеджер пакетов [Composer](http://getcomposer.org) упрощает установку сторонних скриптов в вашем проекте. Он сам загрузит необходимые файлы и добавит их в `vendor/autoload.php`, который будет достаточно включить в начале вашего скрипта.

1. Откройте папку, где будет размещен NFK Map Viewer, и создайте в ней файл `composer.json` со следующим содержимым:

    ```
     {
         "minimum-stability": "dev",
         "require": {
             "nfk/mapviewer":"dev-master"
         }
     }

    ```
2. Положите в эту папку файл  и выполните команду:

    ```
     php composer.phar install

    ```
3. После установки пакета должна появиться папка `vendor`, внутри которой, помимо автозагрузчика composer'a, расположены исходники MapViewer.
4. Теперь в начале вашего скрипта достаточно включить загрузочный файл, после чего можно использовать MapViewer:

    ```
     include "vendor/autoload.php";

    ```

### Обычная установка

[](#обычная-установка)

Если вы не используете Composer, то в начале своего скрипта добавьте встроенный автозагрузчик классов:

```
include("lib/autoloader.php");
Autoloader::register();

```

### Примеры использования (более подробно в examples):

[](#примеры-использования-более-подробно-в-examples)

Сохранение полноразмерного изображения из существующей карты:

```
use NFK\MapViewer\MapViewer;

$nmap = new MapViewer("tourney4.mapa");
$nmap->LoadMap();
$im = $nmap->DrawMap();
imagepng($im, $nmap->GetFileName() . '.png');

```

[![](https://camo.githubusercontent.com/0162f9e42b721d2ea86c81f13a9e3c5b09bf096e908a85dd3120a1747201739b/687474703a2f2f686162726173746f726167652e6f72672f73746f72616765322f3865382f3865652f3838632f38653838656538386361636463383533306162353330623034343339613365352e706e67)](https://camo.githubusercontent.com/0162f9e42b721d2ea86c81f13a9e3c5b09bf096e908a85dd3120a1747201739b/687474703a2f2f686162726173746f726167652e6f72672f73746f72616765322f3865382f3865652f3838632f38653838656538386361636463383533306162353330623034343339613365352e706e67)

Можно создать свою карту, или изменить существующую:

```
// хелперы для удобного создания объектов
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();

```

[![](https://camo.githubusercontent.com/bda4edcd8b16870c25844f7ac76ffd08f3e18a9354f3c9d8d205f9b5af082438/687474703a2f2f686162726173746f726167652e6f72672f73746f72616765322f3135382f3337322f3836332f31353833373238363364316235303433363563363831613864316462393765652e706e67)](https://camo.githubusercontent.com/bda4edcd8b16870c25844f7ac76ffd08f3e18a9354f3c9d8d205f9b5af082438/687474703a2f2f686162726173746f726167652e6f72672f73746f72616765322f3135382f3337322f3836332f31353833373238363364316235303433363563363831613864316462393765652e706e67)

Можно извлечь и сохранить карту `.mapa` из демки:

```
$nmap = new NFKMap("demo.ndm");
$nmap->LoadMap();

// хеш содержимого карты
$filename = md5( $nmap->GetMapBytes() );

$nmap->SaveMap($filename);

```

### Использование памяти

[](#использование-памяти)

На очень больших картах может потребоваться большое количество памяти для создания изображения. Поэтому, в скрипте желательно убрать ограничение памяти, или установить его до максимально возможного значения:

```
ini_set('memory_limit', '-1');
ini_set('memory_limit', '256M');

```

Расход памяти на примере большой карты

- 0.7 мб до загрузки карты
- 5.7 мб после загрузки карты в память
- 6.7 мб после загрузки ресурсов (картинки палитры и объектов)
- 151 мб после создания слоя карты через `imagecreatetruecolor` размером 7776х3888 px
- 151 мб после рисования всех объектов
- 237 мб после сохранения картинки через `imagepng`

Замер производился функцией `memory_get_peak_usage`

### Разбор формата карты

[](#разбор-формата-карты)

- [Специальные объекты на карте](https://github.com/HarpyWar/nfkmap-viewer/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B-%D0%BD%D0%B0-%D0%BA%D0%B0%D1%80%D1%82%D0%B5)
- \[Структура карты NFK MAP\]([https://github.com/HarpyWar/nfkmap-viewer/wiki/Структура](https://github.com/HarpyWar/nfkmap-viewer/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0) карты NFK MAP)
- \[Файл карты в демке NFK DEMO\]([https://github.com/HarpyWar/nfkmap-viewer/wiki/Структура](https://github.com/HarpyWar/nfkmap-viewer/wiki/%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0) демки NFK DEMO)
- [BMP картинка палитры](https://github.com/HarpyWar/nfkmap-viewer/wiki/BMP-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0-%D0%BF%D0%B0%D0%BB%D0%B8%D1%82%D1%80%D1%8B)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

3

Last Release

4848d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6aa211e0d2449926edbd8418d2a825e10a86c5b5cf168de8d7aafee7abc08fa6?d=identicon)[HarpyWar](/maintainers/HarpyWar)

---

Top Contributors

[![HarpyWar](https://avatars.githubusercontent.com/u/1132835?v=4)](https://github.com/HarpyWar "HarpyWar (63 commits)")

---

Tags

library

### Embed Badge

![Health badge](/badges/nfk-mapviewer/health.svg)

```
[![Health](https://phpackages.com/badges/nfk-mapviewer/health.svg)](https://phpackages.com/packages/nfk-mapviewer)
```

###  Alternatives

[league/iso3166

ISO 3166-1 PHP Library

70036.3M116](/packages/league-iso3166)[league/statsd

A simple library for working with StatsD in PHP.

3514.3M12](/packages/league-statsd)[payum/iso4217

ISO 4217 PHP Library

16312.1M5](/packages/payum-iso4217)[lambdish/phunctional

λ PHP functional library

3612.0M23](/packages/lambdish-phunctional)[dekor/php-array-table

PHP Library for printing associative arrays as text table (similar to mysql terminal console)

296.6M2](/packages/dekor-php-array-table)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
