Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Создание и редактирование локаций
denis2000Дата: Пн, 10.10.2011, 21:29 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Создание, редактирование, перенос локаций и добавление в игру

Работа с SDK и дополнительными программами для создания, редактирования и добовления локаций

Если у вас появились вопросы по созданию, редактированию, переносу локаций, а так же по добавлению их в игру. Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]

[cut=Декомпиляция уровней в формат SDK. Спасибо VERvolF]Для декомпиляции игровых карт в формат LevelEditor'a используется консольная утилита converter.exe, входящая в пакет X-ray Game asset tools pack или X-ray Engine Tools (converter). Последнюю версию искать на сайте

Настройка Конвертера.

Открываем любым текстовым редакором файл converter.ini, в нем находим строки:
Code
; 2947+ (финалка включая обновления)
[2947_config]:2945_config
$game_data$ = c:\temp\1\gamedata.3312\
$game_levels$ = c:\temp\1\gamedata.3312\levels\

; 3456+ (Clear Sky включая обновления)
[3456_config]:2947_config
$game_data$ = c:\temp\1\gamedata.3502\
$game_levels$ = c:\temp\1\gamedata.3502\levels\
fake_mu_gamemtls = 34xx_fake_mu_gamemtls
fake_gamemtls = 34xx_fake_gamemtls

Здесь $game_data$ - путь до папки gamedata с распаковаными ресурсами игры, $game_levels$ - до папки levels в gamedata соответственно. Необходимо указать полные пути.

В файле fsconverter.ltx находим следующую строку:
Code
$sdk_root$ = false| false| c:\program files\x-ray sdk\level_editor\

Здесь $sdk_root$ - путь до полного SDK (русифицированный не работает нормально с converter.exe). Правим путь на свой, не забывая поставить слэш в конце.

Более конкретная настройка СДК см. Ссылки.

Декомпиляция.

Конвертер полностью настроен, теперь нужно создать .bat-файл для конвертирования в формат SDK. Для этого создаем текстовой файл, пишем внутри команду и меняем формат файла с .txt на .bat:
Code
converter -level <имя_карты> -out <имя_сцены> -mode maya|le|le2 -with_lods
pause

Здесь <имя_карты> - имя папки с картой в каталоге gamedata\levels\, например l08_yantar (локация Янтарь из ТЧ), <имя_сцены> - имя карты после декомпиляции, можно не писать, в этом случае имя карты после декомпиляции не изменится.
Далее выдержка из docs\converter.txt:

Quote
Ключ -mode задаёт режим работы:
maya - декомпилировать только геометрию карты.
le - декомпилировать в формат LE.
le2 - декомпилировать в формат LE (для l12_stancia_2).
raw - декомпилировать в формат LE (отладочный режим).


Ключ -with_lods обрабатывается в зависимости от значения -mode. Если он задан совместно с -mode maya, программа выдаст ещё и MU-модели. С остальными
режимами его наличие заставляет converter разбивать LOD-текстуры, что
необходимо для полной пересборки. Также ключ ''-with_lods'' следует использовать
если планируется дальнейшая перекомпиляция уровня.

Отладочные параметры: -dbgcfrm, -dbgmrg.

То есть команда для декомпиляции в формат SDK, например, уровня l08_yantar будет выглядеть так:
Code
converter -level l08_yantar -out l08_yantar_decompiled -mode le -with_lods

Если все сделано правильно, то после запуска батника пойдет процесс декомпиляции.

Найти декомпилированную карту можно будет в каталоге $sdk_root$\maps (файл, читаемый SDK) и $sdk_root$\rawdata\objects\levels (обьекты, используемые данным уровнем). Ну а далее думаю всё и так понятно - в ЛЕ жмём File -> Open и открываем нашу карту. [/cut][cut=Создание LOD-текстур]Изначально в пакете SDK отсутствуют LOD'ы. Их придется создать самостоятельно.
В свитке Scene Level Editor'a кликаем Objects-->Library Editor (Объекты-->Библиотека объектов). В открывшемся диалоговом окне выбираем нужный объект, ставим флажок Preview (Предпросмотр). Нажатием кнопки Make LOD (High Quality) или Make LOD (Low Quality) запускаем процесс создания LOD-текстур соответственно в высоком или низком качестве. Созданные LOD'ы можно найти в \rawdata\textures\lod\ (.tga) и \gamedata\textures\lod\ (.dds и .thm).

Если у объекта отсутствует .thm-файл с картинкой-превьюшкой, то можно создать его нажатием кнопки Make Thumbnail (Создать миниатюру), выбрав перед этим удобный ракурс для "съемки". [/cut]

[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Code
function abort(fmt, ...)
                         local reason = string.format(fmt, ...)
                         error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Code
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Code
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
rex44Дата: Чт, 17.04.2014, 18:13 | Сообщение # 376
Гражданский
Пользователи
Сообщений: 18
Награды: 0
Репутация: [ 0 ]

Нет,никак в толк не возьму,почему текстура так сползает при наложении.((
 
denis2000Дата: Чт, 17.04.2014, 22:00 | Сообщение # 377
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

rex44, Выложите модель террейна, текстуру террейна и текстуру маски детал-объектов - если хотите через личку.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Пт, 25.04.2014, 21:13 | Сообщение # 378
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

rex44 добрый вечер, у меня бывало такое , если понимаю суть вашей проблемы , деревья не просвечивают?? У вас слетели шейдеры текстуры деревьев переназначте их, в sdk все должно пройти, надо по моему текстура деревьев хранится trees, поменяйте их из игры с оригинала, мне помогло!!и мало того в равдате, и так же в текстурес!!Надеюсь поможет



Сообщение отредактировал alex_xp_77 - Пт, 25.04.2014, 21:15
 
rex44Дата: Сб, 26.04.2014, 09:33 | Сообщение # 379
Гражданский
Пользователи
Сообщений: 18
Награды: 0
Репутация: [ 0 ]

Alex_xp_77 у меня на статике все отлично работает,не просвечиваются деревья только на динамике
 
alex_xp_77Дата: Вс, 04.05.2014, 13:28 | Сообщение # 380
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый день всем!! Подскажите люди добрые, с чем связан этот лог при компиляции;
Expression : assertion failed
Function : b_BuildTexture::Vflip
File : i:\xray-svn\xrlc\build.h
Line : 30
Description : pSurface

stack trace:

мне бы узнать что править надо, как бы, лог сам собой появился, вылетает, последняя фраза в компиляции тут:
http://SSMaker.ru/e74bb965/

Вобщем решил вопрос, дело в том что не хватает thm файла, вобщем все пошло, пишу на будущее, может у кого вылезет!!




Сообщение отредактировал alex_xp_77 - Вс, 04.05.2014, 15:55
 
sergej5500Дата: Вс, 04.05.2014, 18:54 | Сообщение # 381
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый день.

Прикрутил к СГМ 2.1 для ЗП локацию Рыжий Лес из ЧН. Создал левел-чендер.

При попытке зайти на локацию имею лог.

[cut=Лог]c:\program files 1\Зов Припяти\bin\xrengine.exe"
! Player name in registry is empty! (InstallUserName)
* phase time: 140 ms
* phase cmem: 353298 K
* phase time: 11 ms
* phase cmem: 353298 K
* Loading spawn registry...
* 13304 spawn points are successfully loaded
* Loading objects...
* 18800 objects are successfully loaded
* Game Сергей - autosave is successfully loaded from file 'c:\users\public\documents\Сталкер\Зов Припяти\savedgames\Сергей - autosave.scop' (1.731s)
* phase time: 1731 ms
* phase cmem: 359876 K
* phase time: 16 ms
* phase cmem: 359879 K
* phase time: 12 ms
* phase cmem: 359879 K
* WARNING: player not logged in
* client : connection accepted - <All Ok>
* phase time: 12 ms
* phase cmem: 359911 K
* phase time: 11 ms
* phase cmem: 359911 K
* phase time: 1957 ms
* phase cmem: 426545 K
compiling shader deffer_base_bump_d-hq
compiling shader deffer_base_bump
compiling shader shadow_direct_base
compiling shader deffer_base_flat
compiling shader shadow_direct_base_aref
compiling shader deffer_base_bump-hq
compiling shader vert
compiling shader vert
compiling shader base_lplanes
compiling shader deffer_base_flat_d
compiling shader water_soft
compiling shader water_soft
compiling shader waterd_soft
compiling shader waterd_soft
compiling shader simple
compiling shader wmark
compiling shader deffer_base_lmh_steep_db-hq
compiling shader deffer_base_lmh_bump_d-hq
compiling shader deffer_base_lmh_bump
compiling shader deffer_base_lmh_bump
compiling shader deffer_base_lmh_bump_db-hq
compiling shader deffer_base_lmh_flat_d
compiling shader deffer_base_lmh_flat_d
compiling shader deffer_base_lmh_flat
compiling shader deffer_base_lmh_flat
compiling shader deffer_base_lmh_bump-hq
compiling shader deffer_base_lmh_bump-hq
compiling shader deffer_base_lmh_aref_bump_db-hq
compiling shader deffer_base_lmh_aref_bump
compiling shader deffer_base_lmh_aref_bump-hq
compiling shader lmapE
compiling shader lmapE
compiling shader deffer_base_lmh_bump_d-hq
compiling shader deffer_impl_flat_d
compiling shader deffer_impl_flat_d
compiling shader deffer_impl_flat
compiling shader deffer_tree_s_bump_d-hq
compiling shader deffer_tree_s_bump
compiling shader shadow_direct_base
compiling shader shadow_direct_tree_s
compiling shader lod
compiling shader lod
compiling shader deffer_tree_s_flat_d
compiling shader deffer_tree_s_flat
compiling shader deffer_tree_flat
compiling shader shadow_direct_tree
compiling shader deffer_tree_bump_d-hq
compiling shader deffer_tree_bump
compiling shader deffer_tree_bump-hq
compiling shader deffer_tree_s_bump-hq
* phase time: 67 ms
* phase cmem: 427236 K
* [Loading VB] 65529 verts, 2047 Kb
* [Loading VB] 65534 verts, 2047 Kb
* [Loading VB] 65533 verts, 2047 Kb
* [Loading VB] 64110 verts, 2003 Kb
* [Loading VB] 26096 verts, 815 Kb
* [Loading VB] 65531 verts, 2047 Kb
* [Loading VB] 65535 verts, 2047 Kb
* [Loading VB] 65524 verts, 2047 Kb
* [Loading VB] 65534 verts, 2047 Kb
* [Loading VB] 65530 verts, 2047 Kb
* [Loading VB] 65533 verts, 2047 Kb
* [Loading VB] 65532 verts, 2047 Kb
* [Loading VB] 65513 verts, 2047 Kb
* [Loading VB] 65535 verts, 2047 Kb
* [Loading VB] 65534 verts, 2047 Kb
* [Loading VB] 15473 verts, 483 Kb
* [Loading VB] 65535 verts, 2047 Kb
* [Loading VB] 57946 verts, 1810 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 786576 indices, 1536 Kb
* [Loading VB] 65535 verts, 767 Kb
* [Loading VB] 65533 verts, 767 Kb
* [Loading VB] 65535 verts, 767 Kb
* [Loading VB] 65534 verts, 767 Kb
* [Loading VB] 65533 verts, 767 Kb
* [Loading VB] 65531 verts, 767 Kb
* [Loading VB] 16541 verts, 193 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 1048572 indices, 2047 Kb
* [Loading IB] 1048575 indices, 2047 Kb
* [Loading IB] 276162 indices, 539 Kb
* phase time: 53 ms
* phase cmem: 427443 K
* phase time: 61 ms
* phase cmem: 431206 K
compiling shader deffer_detail_w_flat
compiling shader deffer_detail_s_flat
* [DETAILS] VertexConsts(256), Batch(61)
* [DETAILS] 11590 v(20), 6100 p
* [DETAILS] Batch(61), VB(226K), IB(35K)
* phase time: 16 ms
* phase cmem: 431206 K
* Loading HOM: c:\program files 1\Зов Припяти\gamedata\levels\red_forest\level.hom
* phase time: 16 ms
* phase cmem: 431326 K
* phase time: 12 ms
* phase cmem: 431326 K
* phase time: 11 ms
* phase cmem: 431326 K
* t-report - base: 1923, 978408 K
* t-report - lmap: 4, 4096 K
* WARNING: player not logged in
! default LevelMap used for level[digger_stash]
! default LevelMap used for level[l04u_labx18]
* phase time: 1806 ms
* phase cmem: 443094 K
* phase time: 12 ms
* phase cmem: 443094 K
* [win32]: free[1710360 K], reserved[289076 K], committed[2194804 K]
* [ D3D ]: textures[1040657 K]
* [x-ray]: crt heap[442982 K], process heap[10832 K], game lua[74046 K], render[4545 K]
* [x-ray]: economy: strings[64876 K], smem[11654 K]
compiling shader model_env_lq_1

FATAL ERROR

[error]Expression : BI_NONE!=f_bones.back()
[error]Function : P_build_Shell
[error]File : D:\prog_repository\sources\trunk\xrPhysics\PhysicsShell.cpp
[error]Line : 147
[error]Description : wrong fixed bone


stack trace:[/cut]

Видимо, у какого-то предмета некорректная фиксация. Как-нибудь можно определить, какой предмет глючит?
 
FantomICWДата: Вс, 04.05.2014, 19:55 | Сообщение # 382
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

sergej5500, похоже, нужно открывать спавн, смотреть все динамические объекты, в частности те, у которых есть параметр fixed_bone. Хотя, может быть какие-то расширения лога помогут...


 
denis2000Дата: Вс, 04.05.2014, 21:14 | Сообщение # 383
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, FantomICW, Для объекта указан несуществующий сустав для фиксации. К сожалению придется перебирать все объекты возможно даже он не один такой.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ДизельДата: Чт, 29.05.2014, 21:40 | Сообщение # 384
Сталкер
Разработчики
Сообщений: 260
Награды: 1
Репутация: [ 136 ]

Make sound occluder? Закинул в новую локу копированием из существующей. Но после сборки, звуки один черт проникают в подземелье. Как правильно создать защиту от звуков? Ткните статьёй в мои глаза пожалуста.

andreyholkin

Сообщение отредактировал Дизель - Пт, 30.05.2014, 12:44
 
denis2000Дата: Пт, 30.05.2014, 09:32 | Сообщение # 385
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Дизель, Так вроде ничего сложного:
1. Создать объект ограничивающий своей поверхностью зону в которую не должны проникать внешние звуки, лицевые стороны полигонов обращены наружу (по хорошему создают два объекта для изоляции звука изнутри - полигонами внутрь, для изоляции звукаов снаружи - полигонами наружу) или двусторонний объект.
2. Назначить Object Type - Sound Occluder
3. Назначить текстуру prop_fake_kollision (какая именно текстура не так важно, но я рекомендую эту)
4. Назначить Shader и Compile - default
5. Назначить Game Mtl - вот тут внимательно разные материалы согласно пресетам взаимодействуют со звуком по разному, например earth полностью поглощает звук, concreat лиш частично (Параметр Sound Occlusion у них разный чем ближе к 1 тем слабее поглощение)


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Сб, 31.05.2014, 14:04 | Сообщение # 386
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

И снова добрый день, наконец то вырвал себе выходной, ну наверно без проблем sdk, жизнь станет чуточку скучнее, у меня есть пак локации с уже подключенными уровнями, плавными переходами между ними, НПС, монстры, все спавниться аномалии, в целом жизнь бурлит на 4 ех террейнах, тут подготовил еще одну , более совершенную, с жд путями, станцией, вобщем чуть больше болот чн получилась, создал переходы, в обе стороны, одна локация именуется база сталкеров, вторая северное плато, откампилировал при запуске игры, как только запускается игра, ловлю лог тут: http://SSMaker.ru/8965d68f/ , хорошо, откориктировал way, путь, точнее как откоректировал сдвинул точки с место на место, лог передвинулся на шаг следующий тоесть если stalker_02 , то следующий snalker_03, если карту компилить без переходов на другие террейны, то все работает как часы, но стоит подрубить остальные , тут же происходит при запуске игры вылет, вот в чем у меня к достопочнтенной публике вопрос, возможно ли, что ругается на то что точки пути на других локациях как бы сказать повторяются , точнее на двух и более террейнах есть одинаковые way: stalker_1_walk, или кто нибудь может советом выручит, в чем может быть проблема?? Сам решал по всякому, есть вариант продолжить нумерацию way, то есть на одном террейне 32 НПС на другом 21 то есть на том террейне в сумме получается stalker_53_walk, не знаю что еще и придумать,наверно написал не по теме, если не сложно перенесите пожалуста мой пост в нужный раздел.Заранее Спасибо!!



Сообщение отредактировал alex_xp_77 - Сб, 31.05.2014, 14:27
 
denis2000Дата: Сб, 31.05.2014, 16:10 | Сообщение # 387
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, Точки путей не лежат на АИ-сетке! При установке точек пути в SDK обязательно включайте привязку к сетке. Имена путей должны быть уникальными.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
alex_xp_77Дата: Сб, 31.05.2014, 17:30 | Сообщение # 388
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Наверно все таки придется редактировать все точки пути, как я и писал свое опасение выше, потому что навязчиво, все что я ни делаю, упирается в то, что повторение путей, например (stalker_04_walk) на двух локациях не критично, но на 3-4 террейнах, приводит к краху!! Очень благодарен Денис!!



Сообщение отредактировал alex_xp_77 - Сб, 31.05.2014, 17:38
 
denis2000Дата: Сб, 31.05.2014, 17:40 | Сообщение # 389
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77
Имена путей или вообще любых других объектов на всех локациях должны быть уникальными. Совпадение недопустимо! Если движок стоически перенес совпадение имен путей, это еще не значит, что это не вылезет боком совершенно необъяснимыми вылетами впоследствии.
Уникальность имен достигается двумя факторами:
1. Автоматически добавляемый префикс к имени, который задается в настройках сцены в SDK сразу при ее создании (позволяет добиться уникальности имен на разных локациях)
2. Проверка уникальности имен при билде локациии (позволяет добиться уникальности имен в пределах одной локации)


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
ДизельДата: Сб, 31.05.2014, 19:52 | Сообщение # 390
Сталкер
Разработчики
Сообщений: 260
Награды: 1
Репутация: [ 136 ]

denis2000, точки путей можно и не привязывать к сетке. Я пока не встречал вылетов. У меня вообще точки иногда находятся выше чем надо над сеткой. А у вертолёта так вообще точки находятся за картой.

andreyholkin

Сообщение отредактировал Дизель - Сб, 31.05.2014, 19:55
 
Поиск: