Перейти к контенту

Рекомендуемые сообщения

Если у Вас случился вылет, возможно, здесь есть описание его причины, и как это исправить.

Если он здесь еще не описан, и Вы нашли его причину, опишите это здесь, по аналогии с имеющимся. Самое главное в описании: платформа (ТЧ, ЧН, ЗП), строка line : xxx, причина.

 

Все вылеты из этой темы собраны ЗДЕСЬ.

 

Поскольку публикаций по ПРИЧИНАМ вылетов я давно уже не вижу, а вижу исключительно флуд, тема закрыта. Если Вы обнаружили вылет, который здесь не описан, и знаете, как его лечить - напишите модераторам в л/c.

Изменено пользователем Dennis_Chikin

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
proper70   

Людмила, есть запрет)) вот его логика:

 

[smart_terrains]
none = true

[logic]
active = mob_home
on_death = death
on_hit = hit

[mob_home]
path_home = yantar_kontroller_yazva_walk
home_min_radius = 15
home_max_radius = 20
aggressive_home
on_signal = sig_attacked | mob_combat

[mob_combat]
on_timer = 30000 | mob_home

[death]
on_info = {=killed_by_actor_eagle} %=arhara_dialog.fotka_kont_yazva_have%

[hit]
on_info = {=hit_by_actor_eagle} %=arhara_dialog.fotka_kont_yazva_have%

 

То, что запрет стоит не в алспауне а вынесен в cfg файл, ничего не меняет - все работает в обоих вариантах. Вот скрипт из xr_logic, обрабатывающий этот момент:

 

local filename = utils.cfg_get_string(ini, section_logic, "cfg", npc, false, "")
if filename then
printf("_bp: enable_scripts: object '%s' has external configuration file '%s'", npc:name(), filename)
-- Рекурсивно обработать конфигурационный файл, на который ссылается поле cfg
actual_ini_filename = filename
actual_ini = ini_file(filename)
return configure_schemes(npc, actual_ini, actual_ini_filename, stype, section_logic, gulag_name)

 

тут просто рекурсивно вызывается чтение схем уже из другого ini файла. И запрет по смартам также читается) проблема именно в том, что я написал) Если ему поставить walker - то сразу вылет по путям. И я спавнил его, находясь в туннеле рядом с ним, т.е. он сразу был в онлайне. А в гулаги объект с логикой движок затягивает, мне думается, только если он находится в оффлайне. Сам лично с этим столкнулся, когда начинал спавнить неписей, и забыл прописать запрет на смарт) Непись четко был на месте и отыгрывал логику, пока он был в онлайне. Но стоило мне уйти с локи и вернуться, как он пропадал) А здесь контрик сразу выходил из-под логики home, сразу после спавна, находясь в онлайне. И вылет по путям сразу после спавна при прописывании схемы walker также говорит об этом, ибо ему просто некуда идти - все пути отрезаны рестрикторами) А если бы не было запрета на смарт, то ничего бы не вылетало - он просто уходил бы в гулаг и все. А когда я прописал ему этот рестриктор, то все - и вылет по walkery пропал - он стоял в точке, и home заработал - он никуда не уходит) Так что проблема была именно в этом)

 

ЗЫ: а насчет прописывания запрета на смарты в алспауне, а не в конфигурационном файле я тоже сначала думал, что не будет работать) но потом покопался в алспауне и увидел, что так (запрет стоит в cfg)  стоит в Соли у Молнии в МГ - dead_city_molniy. А также у некоторых ООПшных персонажей. И никто ни разу не жаловался, что они куда-то пропадают)

Изменено пользователем proper70

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@proper70,
А почему ты цитируешь скрипт из xr_logic, а не из se_monster/smart_terrain, в которых собственно и происходит вычитывание секции smart_terrains? :)
Оригинал не читает секцию smart_terrains из внешних файлов, только из кастомдаты.

 

И это действительно так.

ColR_iT

Изменено пользователем ColR_iT

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Artos   

Справедливости ради (и не только) замечу, что 'оригинал' (ТЧ) все же читает из сторонних файлов секцию 'smart_terrains', что видно, например, в se_respawn.script, где вычитываются настройки респавна и все неписи/монстры (не)ищут работу в гулагах. Также, в секциях спавна (см. в папке creatures) движок читает строку с указанным парамером 'custom_data' и соответственно внешний файл... так что все же можно задавать игнорирование гулагов (и не только) не только в алл.спавне. ;-)

Однако это не относится к тому, о чем говорит @proper70, т.к. в его случае речь идет только о логике, т.е. 'xr_logic' читает из внешнего файла только секцию [logic], игнорируя все другое. Соответственно как раз запрет на гулаги в его случае и не работает...

(однако все это уже для топиков "ковырялок", и не имеет отношения к данному топику)


  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

так что все же можно задавать игнорирование гулагов (и не только) не только в алл.спавне. ;-)

Ну про алл.спавн речь и не шла, речь шла про кастомдату :) Изменено пользователем abramcumner

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Artos   

@abramcumner, а вот это про что(?):

 

..запрет стоит не в алспауне а вынесен в cfg файл...

 

К сожалению, многими слово "кастомдата" ассоциируется именно со строками из распакованного алл.спавна и они не подозревают о существовании иного...

"Кастомдата" (aka customdata) существует в трех ипостасях: в виде параметра в секции спавна, в виде расписанного конфига в соотв.секции в all.spawn'е (который перебивает/подменяет параметр в секции спавна) и уже в игре в виде данных самого объекта.

И то, что именно в "кастомдате" в алл.спавне нередко видят перенаправление логики во внешний файл, приводит к путанице, что воспринимают этот файл не как внешний конфиг именно логики, а как внешнюю "кастомдату". Что и произошло в рассматриваемом случае, кто-то когда-то вместо только логики указал все, что относится к кастомдате и это пошло гулять далее, в надежде что это работает...

 

Иными словами, параметры, относящиеся именно к 'customdata' объектов следует задавать или в all.spawn'е или в соотв.параметре секции объекта (т.н. секции спавна), тогда и будут читаться и запреты на гулаги и иные условия. А то, что прописано в [logic] cfg = "внешний_файл" - это вынеcенный конфиг логики и не более.

 

Примечание: в se_monster/smart_terrain  тоже нет чтения внешних файлов, в них читаются параметры из того, что вернет движок: 'obj:spawn_ini()' - т.е. то, что он (движок) ранее прочитал из секции спавна перед моментом спавна объекта и запомнил в кастомдате заспавненного объекта.

Изменено пользователем Artos

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лог:

stack trace:

0023:00445A0D xrEngine.exe, CGameFont::SizeOf_()
0023:03986109 xrGame.dll
0023:004193C1 xrEngine.exe, CEffectorPP::CEffectorPP()
0023:03BFDDA8 xrGame.dll, CxImage::`copy constructor closure'()
0023:03C81F74 xrGame.dll

Причина:

"Неправильный" объект в all.spawn. Что значит "Неправильный"? В моем случае это была летающая аномалия, при компиляции спавна локации с ней, xr_AI ругнулся: space restrictor has no border (В стиле fatal error, однако спавн собрался). Всего на локации у меня штук 10 летающих аномалий, но вылет был из за этой.

 

Лечение:

Как я уже сказал нужно найти "неправильный" объект в all.spawn, однако если это невозможно, то советую выводить в лог всю инфу, и перед ошибкой мы увидим: 

! Unknown command:  adding_object_*

Причем проблемный объект не тот, что из лога, а тот, какой идет следом в all.spawn Ну а дальше, просто удаляем его.

 

P.S. Поискав во всем рунете, нашел что такой же вылет был только у Хемуль36рус.


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
[error]Expression : ai().level_graph().valid_vertex_id(vertex->data().level_vertex_id())
[error]Function : CPatrolPathManager::select_point
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\patrol_path_manager.cpp
[error]Line : 164
[error]Description : patrol path[имя_пути], point on path [имя_точки_пути],object [объект_использующий_этот_путь]

Причина: указанная точка пути имеет недопустимый (чаще всего отрицательный) level_vertex_id.

Лечение: распаковать all.spawn, найти этот путь и отредактировать либо удалить эту точку пути так, чтобы level_vertex_id.для нее был задан правильно. Правильность level_vertex_id имеет значение для всех путей, по которым кто-то передвигается (за исключением вертолетов).


  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
*Shoker*   

[error]Expression    : error handler is invoked!
[error]Function      : invalid_parameter_handler
[error]File          : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line          : 815
[error]Description   : 
 

Причина: вылет скорее всего связан с функцией формирования лога игры, и может возникать по разным причинам, но чаще всего 

когда в какую то движковую функцию был передан nil или же когда в конфиге указаны пустые значения.

 

Пример #1: Вызвать движковую функцию установки метки на карту, и забыть этой функции передать текст с описанием (nil)

Пример #2: В конфиге предмета указать пустое имя "inv_name = " - при попытке взять предмет появиться вылет.

Лечение: найти источник вылета и устранить его.

Изменено пользователем *Shoker*

  • http://www.amk-team.ru/forum/uploads//ratings/bf.gif × 1
  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лог:

FATAL ERROR

[error]Expression : source
[error]Function : CPHSkeleton::Spawn
[error]File : E:\priquel\sources\engine\xrGame\PHSkeleton.cpp
[error]Line : 80
[error]Description : no source

Причина: свойства cse_ph_skeleton properties у НПС в all.spawn

Лечение: нпс взят из all.spawn gsc, после редактирования локации (изменение геометрии и АИ-сетки) в собранном спавне, нпс заспавненные GSC оказались проблемными, т.к. вызывали вылет. У всех у них было: (значения могут отличаться)

; cse_ph_skeleton properties
skeleton_name = 5
skeleton_flags = 2
source_id = 0x2

А у новых, заспавненых мной нпс этого не было. Поэтому просто удалите эти строчки.


  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
lafugix   

Есть один лог...

 

Expression    : Ran out of memory
Function      : CRender::texture_load
File          : D:\prog_repository\sources\trunk\Layers\xrRenderDX10\dx10Texture.cpp
Line          : 493
Description   : D3DX11CreateTextureFromMemory ( HW.pDevice,S->pointer(),S->length(), &LoadInfo, 0, &pTexture2D, 0 )
Arguments     : d:\s.t.a.l.k.e.r. - Зов Припяти\gamedata\textures\veh\veh_gaz_22.dds

 


Возникает рандомно и жалуется на любые текстуры, то бишь не на какую-нибудь конкретную свежедобавленную, а вообще на любые. Он внешне очень похож на один из вылетов из шапки, но я не совсем уверен в причине. Собственно, подскажите, причина та же или что-то другое стоит за этим?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лог:

001B:0040D025 XR_3DA.exe, IBlender::operator=()

Причина:
Появляется из-за того, что в секции погоды прописан env_ambient, которого не существует.
Лечение:
Замена секции на существующую либо создание несуществующей секции.


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
deadzone   
ЧН 1.5.10

stack trace:

 

001B:0244105B lua.JIT.1.1.4.dll

 

Появляется когда отсутствует скрипт ui_wpn_params.script или содержит ошибки!

Изменено пользователем deadzone

  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
dimos   
Description   : D3DX11CreateTextureFromMemory ( HW.pDevice,S->pointer(),S->length(), &LoadInfo, 0, &pTexture2D, 0 ) 

@lafugix

Есть подозрение, что движок вылетает при построении мипмапов (mipmaps - масштабных копий) текстур. Чтобы уменьшить кол-во занимаемой видеопамяти (и нагрузку на движок в целом) крайне рекомендуется делать текстуры с мипмапами. Даже если текстура одной размерности (н-р 512*512) без них, все равно движок строит масштабные копии сам (256*256 ... и вплоть до 1*1). Попытки оптимизации текстур без учета этого, приводят к существенному росту нагрузки, вплоть до вылетов...

Изменено пользователем dimos

  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделал офлайн версию хелпа в формате chm, туда же добавил вылеты по сдк. 

 

HELP_FATAL_ERR​OR.rar


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
_Val_   

 

 


Появляется из-за того, что в секции погоды прописан env_ambient, которого не существует.

Первый раз вижу такой лог в этом случае. Зато насмотрелся на такой:

0023:0040BA85 XR_3DA.exe, CEnvAmbient::get_rnd_sound_time() 

И именно в этом случае.


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Clayman   

Лог:

child registered but not found [разные числа]

 

Причина: ошибки в custom data логики физ. объектов в all.spawn (во всяком случае у меня так было).

 

Лечение: соответственно, исправлять логику.


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
h0N0r   

 

Вот ещё несколько вылетов, некоторые в теме присутствуют (но по другой причине):

[error]Expression : error handler is invoked!
[error]Function : invalid_parameter_handler
[error]File : E:\stalker\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line : 804
[error]Description :

Если выставить костру (zone_flame_small) тип рестриктора "in"

---

[error]Expression : error handler is invoked!
[error]Function : handler_base
[error]File : E:\priquel\sources\engine\xrCore\xrDebugNew.cpp
[error]Line : 742
[error]Description : application is aborting

При добавлении нового визуала нпс, если данной модели не прописать соответствующие анимации ЧН:
actors\stalker_smart_cover_animation
actors\stalker_scripts_animation
actors\stalker_animation

а для ЗП ещё и:
actors\stalker_scenario_animation

---

001B:035B04A3 xrRender_R2.dll

Если модель нпс содержит 45 костей (формат ТЧ), а не 47 (root_stalker>bip01>-default bones)

---

stack trace:

001B:1001DDD0 xrCore.dll, str_container::dock()

Если объект из all.spawn содержал запись:
custom_data = <<END
story_id = 606

Удалить custom_data = <<END, либо дописать END в новой строке перед story_id

---

[error]Expression : error handler is invoked!
[error]Function : handler_base
[error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp
[error]Line : 764
[error]Description : pure virtual function call

При удалении трупа, если в данный момент гг его обыскивает (открыт инвентарь)

---

stack trace:

001B:04782D99 ODE.dll, dDQfromW()
001B:04761A25 ODE.dll

[error][ 87] : Параметр задан неверно.

При застревании гг в геометрии уровня

---

[error]Expression : 0
[error]Function : ErrorLog
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
[error]Line : 49
[error]Description : Illegal call of add animation. Weapon is strapping now!!! sim_default_stalker_360228

Очень редко бывает в ЗП при загрузке сейва в лагере сталкеров (Скадовск, Янов), в момент когда нпс хочет занять какой-то анимпойнт (скажем место за столом), он должен подойти к нему без оружия (в логике как reach_movement = walk_noweap) и срабатывает исключение из state_mgr_animation.script, function animation:add_anim

if not (npc:weapon_unstrapped() or npc:weapon_strapped()) then
abort("Illegal call of add animation. Weapon is strapping now!!! %s", npc:name())
end

Возможно исчезнет при повторной загрузке, или в файле state_lib.script найти блок walk_noweap и в строке weapon = "none" изменить на weapon = "strapped"

---

[error]Expression : !m_error_code
[error]Function : raii_guard::~raii_guard
[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line : 748
[error]Description : ...games\stk_cop\gamedata\scripts\ui_load_dialog.script:230: attempt to index local 'item' (a nil value)

В меню загрузке сейвов, выбираешь любой - нажимаешь удалить, затем опять удалить и происходит вылет (Чистый ЗП 1.6.02)

---

stack trace:

001B:04220CC3 xrGame.dll, CDialogHolder::CDialogHolder()

или

stack trace:

0023:06408050 xrGame.dll, CDialogHolder::CDialogHolder()

[error][ 183] : Невозможно создать файл, так как он уже существует.

Весьма редкий вылет, в моём случае предпоследний (как и последний) раз был связан с объектом psy_dog_phantom (фантом пси-пса), который обычно создаётся и исчезает через некоторое время, но в данном случае остался и при переходе в онлайн - вызывал вылет. Причём на локациях их может быть много, скажем встретили пси-собаку (она конечно наплодила фантомы) и убежали от неё (она перешла в оффлайн, игрок может на другую локу). Конечно по возвращению на прежнем месте её не будет (под симуляцией уйдёт в смарт) но фантомы остаются, мгновенно удаляющиеся при переходе в онлайн, что и не срабатывает иногда. Такой вылет не удалось воспроизвести целенаправленно, заселяя локации (многократно переходя между ними) одними пси-псами.
Решением будет пара строк кода от толкового скриптера, удаляющие все фантомы при переходе в оффлайн.

---

Недостатки некоторых анимаций, лог вылета может отсутствовать или будет достаточно информативен (в какую сторону копать для исправления):

часть из state_mgr_animation_list.script,

help_agr = {
...
into = {[3] = {"help_3_idle_0",{s="agr_stalker_help_2"},"help_3_idle_1"}},
...

[3] - анимация работает только для оружия, где animation_slot = 3 (обрез и тоз), в игре используется для сталкера, который просит помочь при первом заходе на Агропром (ТЧ), если вооружить этого сталкера другим оружием, не с animation_slot = 3, то его логика зависнет. В ЧН есть подобная анимация, прыгающие монолитовцы в госпитале, только под animation_slot = 2, с любым другим игра будет вылетать.

---

Несколько способов, чтобы часть игровой логики повисла без последующего вылета и с возможностью сохранения\загрузки:

проигрывание партиклов, строка path (вейпоинт просто отсутствовал)

[sr_particle]
...
path = esc_test_particle

а также, когда изменение регистра всего одной буквы, alife.ltx:
_G.start_game_callback на _g.start_game_callback

---

Добавлю по вылету типа: D3DXCreateTextureFromFileInMemoryEx ( HW.pDevice,S->pointer(),S->length()...

Текстуры для сталкера по высоте\ширине должны быть кратны 2-м: 1024х512, но не 1025х513

---

Отсутствие знаков комментарий ; в файлах .ltx (может привести к вылету или нет). Для всех частей сталкера с последними патчами, необходим в

m_dog.ltx, после [m_dog_step_params]
m_poltergeist.ltx, [m_poltergeist_step_params]
m_pseudodog.ltx, [m_pseudodog_step_params]

---

Небольшой баг с wpn_rg-6, точнее если в секции оружия будет дефис и нпс вооружённый им умрёт, то патроны не создаются - даже если они привязаны в death_generic.ltx, а в death_items_by_communities.ltx имеют шанс спавна 100%

---

И напоследок, как вынести всю custom data объекта из all.spawn:

Для примера, некий нпс:

custom_data = <<END
[smart_terrains]
esc_lager = true

[spawner]
cond = {+test_info}

[logic]
cfg = scripts\esc\esc_test.ltx

если перенести (не скопировать) в данный ltx, секции [smart_terrains], [spawner] - работать они небудут, но если изменить custom_data = <<END на custom_data = #include "scripts\esc\esc_test.ltx"<<END - всё будет работать, проверено на ТЧ, вынесена custom data всех объектов (для динамического изменения параметров рестрикторов и прочего, без пересборки спавна и начала новой игры)

 

В читабельный вид привести пост не судьба было?

ColR_iT

Изменено пользователем ColR_iT

  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

[error]File : E:\stalker\sources\trunk\xrCore\Xr_ini.cpp

[error]Line : 352

[error]Description : <no expression>

[error]Arguments : Can't find variable строка in [секция]

 

Здесь есть, но в виде частного случая.

 

Попытка чтения несуществующей переменной вида ini:r_string( секция, строка ) (или r_float, r_bool и т.д.)

 

1. Убедиться, что переменная действительно зачем-то нужна.

2. Исправить код на

local v -- или иное

if ini:section_exist( секция ) and ini:line_exist( секция, строка ) then

v = ini:r_string( секция, строка )

else более вменяемая диагностика

end

 

3. Поправить конфиг при необходимости (см. п1)


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нашел вылет кто знает решение?

* phase time: 249 ms


* phase cmem: 251871 K

FATAL ERROR

[error]Expression : fatal error
[error]Function : CRender::LoadBuffers
[error]File : D:\prog_repository\sources\trunk\Layers\xrRenderPC_R1\FStaticRender_Loader.cpp
[error]Line : 218
[error]Description :
[error]Arguments : DX7-style FVFs unsupported


stack trace:

 

И ещё один

 

Решение проверить файл level.geom

 

* phase time: 228 ms
* phase cmem: 251871 K

FATAL ERROR

[error]Expression : fs
[error]Function : CRender::LoadBuffers
[error]File : D:\prog_repository\sources\trunk\Layers\xrRenderPC_R2\r2_loader.cpp
[error]Line : 212
[error]Description : Could not load geometry. File 'level.geom?' corrupted.


stack trace:

 

Изменено пользователем nikita_nz1986

  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вылет из ЗП.

 

stack trace:

0023:05B0D6B8 xrRender_R2.dll
0023:09595712 xrGame.dll, CDialogHolder::CDialogHolder()

 

Причина: Неправильно настроенные динамические элементы освещения (вшитые в all.spawn), например, нет визуала, нет анимации света и в таком духе.

Лечение: Удалить секции без визуалов и настроек анимации света, либо настроить их заново.

 

Я наткнулся на такой вылет, как скомпилировал Кордон с несколькими новыми источниками света, созданные мной. Мало опыта, либо просто забыли их настроить - вот результат. Поэтому, если будете искать подобное у себя в спавне, то в первую очередь, проверьте источники освещения, которые делали сами.


  • http://www.amk-team.ru/forum/uploads//ratings/grey_square.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

×