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

Схема "Компаньоны"


Гость TAYLI

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

Схема "Компаньоны"


Описание мода:

-- 2010 © Алексей "KamikaZze", реанимация схемы "Компаньоны" версия 1.8A
-- отзывы шлите на е-мейл: kamikazze-ru@yandex.ru
------------------------------------------------------------------

Сразу предупреждая вопросы, скажу следующее:

Это не клон мода "Напарники", и не его переделка, схема писалась практически с ноля, однако в схеме используется один из её алгоритмов (переход между локациями) Дмитрия Рощина aka Red75, за что ему огромное спасибо. Идея оказалась удобной и очень жизнеспособной. В свою очередь я чуть поправил внедрение его метода так, чтобы его применение не мешало нормальной работе обычных неписей в смартеррейнах. Эта схема основана на небольшой схеме xr_companion, оригинальной, Сергея Винниченко. Эта схема работала в билде 2205 но затем была отключена. За ненадобностью видимо.

Итак, компаньоны. Эта схема позволяет вам пригласить непися в компаньоны и вместе с ним осваивать Зону. Родилась эта схема когда я увидел её изначальную в 2205 и решил реанимировать для нашего глобального мода - OGSE. При этом я постарался придать ей максимальную гибкость и как можно большую функциональность, при этом постарался избежать возможные проблемы - так, чтобы игроку не нужно было няньчить своего напарника, вытаскивая его из всяких неприятностей, на которые его задница так и пытается самонаводиться. :)


Версия игры: Сталкер ТЧ 1.004
Автор мода:Алексей "KamikaZze"
Размер: 385 Кб Мб
Список изменений/нововведений:


1. Напарник следует за вами с умом - не увлекается погоней за шальными собаками и кабанами, не пытается гнаться за ними через всю локацию, не впадает в панику.
2. Если вы решите сбежать - напарник будет убегать с вами, не реагируя на врагов. Это позволяет выйти из под огня, не рискуя лишний раз принимать бой с превосходящими силами противника.
3. С напарником возможен прямой обмен вещами - через интерфейс торговли. Обмен бесплатен, что удобно.
4. Все настройки схемы сохраняются в особом хранилище в самом напарнике - для этого использованы служебные функции из библиотеки утилит для работы с нетпакетами m_net_utils (SIMBION:SHOC mod), автор Artos. Библиотека прилагается.
5. Напарник может переодевать броню при использовании вместе со схемой xrs_armor, автор xStream. Модифицированная для этих целей схема xrs_armor прилагается.
6. С целью использования модов, в которых ГГ может вступать в группировки, схема поддерживает следующие коммунити напарников: одиночка, долговец, свободовец, бандит, зомбированный (последнее экспериментально, не проверял ещё). При этом для каждой группировки у схемы есть свои стилистически выдержанные диалоги. Для интеграции схемы в такие моды следует проверить идентификаторы коммунити, в функции community_by_actor(actor_comm) и если нужно, переписать. Напарников можно набирать только из того коммунити, к которому главгерой сейчас принадлежит. Кроме того в биндер схемы сразу вписаны эвалуаторы от схем xrs_grenade, xrs_medic, rx_bandage, rx_facer, rx_reload и anomaly_evader, для того чтобы её можно было с минимальными корректировками использовать вместе с обходом аномалий, паками логики и менеджером вооружений.
7. На набор напарников налагаются следующие ограничения:
1) Нельзя брать квестовых неписей (по понятным причинам). Единственное исключение - Волк после прихода на АС.
2) У ГГ хреновая репутация в коммунити
3) Это Толик или кто-то из пленников
4) ГГ ниже опытом чем непись
5) ГГ значительно опытнее непися (новички опасаются идти с опытными сталкерам, опасаясь что их используют как "отмычку")
6) У ГГ уже есть напарник (при небольшой доработке можно было бы и больше одного напарника набирать, но для меня это не было целесообразно, поэтому я этого не сделал)
7) ГГ из другой группировки (отключаемо при необходимости - измените в заголовке xr_companions.script параметр other_factions_switch)
8) с ГГ погибло слишком много народу
8. Да, в схеме ведётся учёт "загубленных душ". Если с вами не вернулось более 4 человек, неписи откажутся идти с вами. Поправить ситуацию можно леча аптечками раненых сталкеров. За каждого с вас спишется один погибший.
9. В схеме реализованы следующие типы поведения:
1) Следуй за мной
2) Жди здесь
3) Крадись за мной
4) Спрячься здесь
При этом для каждой из них предусмотрено три режима агрессивности:
1) Нормальный
2) Пониженной агрессивности (подпускает врагов ближе)
3) Низкий. (прячет оружие и не вступает в бой до получения повреждений)
Подобный набор функций позволяет использовать напарника в случаях когда необходимо устроить засаду или скрытно сменить позицию. Кроме того, его можно спрятать в безопасности так, чтобы он не привлекал внимания.
10. Специально для напарника прописаны дополнительные состояния на основе панического бега, чтобы он не отставал от ГГ, когда он двигается быстрым бегом.
11. Можно использовать рацию для отдачи указаний напарнику в пределах радиуса алайфа (около 150 метров)

Кроме того будьте в курсе - если вы оставили напарника ждать и ушли за радиус алайфа (около 150 метров) - он скорее всего пойдёт в ближайший лагерь.


Совместимость и возможные проблемы:
Модификация заточена под чистую игру, версия патча может быть любой.

Текущая версия: 1.9С
-------------------------
Ссылки на скачивание:

 

Перед установкой не забудьте прочесть описание под спойлером.
ВНИМАТЕЛЬНО ПРОЧТИТЕ!
В этом пакете содержится поправленный мной специально для мода "Компаньоны" геймграф оригинальной игры - в нём длина всех переходов между локациями сокращена до минимальной, и в итоге ваш напарник преодолевает переходы между локациями практически моментально, в течении 10-20 игровых минут.
ВНИМАНИЕ! ИСПОЛЬЗОВАТЬ ЭТОТ ПАКЕТ МОЖНО ТОЛЬКО НА МОДАХ, В КОТОРЫХ НЕТ НОВЫХ ЛОКАЦИЙ!
Т.е. на OGSE, OGSM и на АМК тоже, насколько я помню, можно использовать совершенно безболезненно, так как в них геймграф не менялся. Если же установить его на мод, где уже был отредактирован геймграф игра поведёт себя непредсказуемо, либо новые локации отвалятся, либо сейвы станут незагружаемыми, поэтому с ними даже не экспериментируйте.
НОВАЯ ИГРА НЕ ТРЕБУЕТСЯ!
Все изменения заработают сразу, так как в геймграфе только изменилась дистанция между точками связи локаций, не более того.



Версия с адаптированным AI Additions bu Хемуль04 Для чистой игры v1.004 (вылеты и замечания в личку автору)




http://www.youtube.com/user/KamikazzeRu#p/u/8/rUKe1kM4YVE
http://www.youtube.com/user/KamikazzeRu#p/u/7/ciA1igwg26g
http://www.youtube.com/user/KamikazzeRu#p/u/6/brmOOzefSaY


[spoiler=Как адаптировать схему для новых локаций]

Цитата(kamikazze)
Я для работы с графом использовал скрипт gg_cdc_x4 от Xiani. На Stalker Inside он есть, пользоваться им достаточно просто. Кто распаковывал хотя бы раз аллспавн с помощью ACDC, разберётся без проблем. Нужно распаковать геймграф, получится огромная груда конфигов... находим там справочный конфиг game.graph.info.cross_edges.ltx - в нём перечислены все точки переходов, которые были при распаковке найдены в графе. Все эти точки надо найти в основных конфигах - game.graph.edges.<id_локации>.ltx, искать по параметру edge_offset. После того как нашли, надо у данной связи вертексов поменять параметр distance (расстояние между вертексами в условных игровых метрах) на какое-либо небольшое число. Я лично поставил 5. Далее, обработав все переходы подобным образом, собрать геймграф из конфига обратно и пользоваться.

Адаптировать же схему для новых локаций вообще предельно просто. Главное - чтобы новая локация была уже как положено прописана в геймграфе, и на неё там же были прописаны переходы (переходы ГГ непригодны для неписей, они ходят только по связям в геймграфе). Если всё это уже сделано, и NPC могут беспрепятственно посещать локацию, нам достаточно в основном скрипте напарников xr_companion.script поправить табличку offline_dest_table - она находится практически в самом конце модуля. В ней вписаны смарты, в которые компаньон отправляется для того чтобы перейти между локациями. Записи выглядят следующим образом:

l07_military = {
none="mil_dolg_ambush_walk1"
}

Т.е. это тоже таблички, ключом которых являются идентификационные имена локаций, в которых перечисляются имена смартов, как они заданы в аллспавне, обычно по одному на локацию. Предположим у нас локация Генераторы с именем l13_generators и смарт называется gen_last_hope_smart4. Тогда запись будет выглядеть так:

l13_generators = {
none="gen_last_hope_smart4"
}


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

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

1. На ней должна быть корректно работающая АИ-сетка.
2. Вертексы сетки локации должны быть корректно зарегистрированы в геймграфе.
3. У пары вертексов локации в геймграфе должны быть прописаны связи с вертексами соседних локаций - они работают как переходы для неписей.
4. На локации должен быть хотя бы один смарттеррейн, способный принять NPC любого коммунити.
5. В xr_companion.script в табличке offline_dest_table должна быть сделана запись для этой локации с именем этого смарта.

Фактически, все пункты, кроме 5-го, к напарникам не относятся непосредственно. То что описано в п. 1-4 должно быть сделано ещё изначально маппером при подключении локации к моду, иначе это бессмысленная трата времени, так как не подключенной таким образом локацией никакие NPC пользоваться не смогут. Зато если это всё было уже сделано при подключении локации, то вам останется только 5-й пункт выполнить.

 

 

Изменено пользователем HellRatz
Ссылка на комментарий

Мод отличный, "выкладчику" плюс. Теперь начинаешь по-настоящему ценить жизнь каждого сталкера :) .

Просьба: адаптируйте кто-нибудь сие чудо на Народную Солянку от 21.04. Я бы сам хотел, но там такое обилие различий, что аж голова закружилась...

Мне "Винторез" - единственный друг, надежда, опора и сила.
Уродов сегодня так много вокруг, патронов бы только хватило. (с)

Официальный Discord-сервер по NS OGSR. 
Неофициальный филиал "У Костра", но тоже Discord-сервер.

Ссылка на комментарий

Заметил то ли баг то что-то непонятное.

Вобщем так запускаю игру - подхожу к одному из новичков делаю его напарником - выдаю ему АК и комбез Сева. АК новичек сразу взял, а вот комбез одивать незахотел. Я подумал что возможно надо отойти на растояние. Мол "стесняется" переодеватся. Выбераю в диалогах оставайся на месте и будь на стрёме. - Отхожу от него на большое растояние. Он в лагере новичков я возле АТП. - Возвращаюсь. Новичка напарника нету. Смотрю в бинокль рамка под землёй, метки на мини карте нету. И соответственно взять еще одного новичка в компаньоны нельзя. :unsure:

Ссылка на комментарий

Виталий Зверь karavan так написал потому что он наверное увидел что в скриптах этого мода есть файл xrs_armor.script

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

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

karavan, Неписи не переходят на новые локи, и не пользуются переходами Мастера Сяка по причине отсутствия АИ связей между переходами в гейм графе. Костя V выкладывал вместе со своим паком локаций одну очень полезную программку за авторством Kolmogorа Эта програмка умеет патчить гейм граф на предмет добавления АИ связей между переходами. Вот она: "Добавление АИ переходов" Глюк с неписем у вас был на чистой игре? Или уже к чему то адаптировали?

Loken, Подобного в планах у KamikaZze кажется нету, да и сам ЗП (как по мне) весьма куцый вышел. Некоторые вещи, что можно моддить в ТЧ, в ЗП уже порезаны, или сделаны через одно место, в которое хоть залазь, хоть не залазь, а конфетку не добудеш. :D

2 ALL, добавил в шапку дополнительную информацию, советую ознакомится - отпадут некоторые вопросы.

Изменено пользователем TAYLI
Ссылка на комментарий

Надо попросить Колмогора поделиться наработками из АМК2 по адекватному переходу неписей с локи на локу. Слышал, что такое было сделано, но не знаю, завазано ли это было на АИ-переходах....

Рома, сорри... :rolleyes:

Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка

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

 

Не парься, возьми _g.script из этого мода, и добавь из вертолетного вот это:

function qqq(n,o)
    local scr = true
    local con = true
    if o then
        if o == 1 or o == 0 then
            scr = false
        end
        if o == 2 or o == 0 then
            con = false
        end
    end
    local k = "debug data QQQ "..tostring(n)
    if scr then
        if db.actor then
            news_manager.send_tip(db.actor, k, nil, nil, 5000) 
        end
    end
    if con then
        get_console():execute    ("load "..k)    
        get_console():execute    ("flush")    
    end
end

function parse_data(str)
    local string_parts = {}
    if str == nil then
        string_parts[1] = nil
        return string_parts
    end
    local str_beg,str_end
    str_end = str
    local split_pos = find_split_pos(str_end)
    while split_pos ~= nil do
        str_beg, str_end = split_string(str_end,split_pos)
        table.insert(string_parts,str_beg)
        split_pos = find_split_pos(str_end)
    end
    table.insert(string_parts,str_end)
    return string_parts
end

function find_split_pos(str)
    local split_pos = string.find(str,",")
    if split_pos == nil then
        return nil
    end
    local br1_pos = string.find(str,"(",1,true)
    local br2_pos = string.find(str,")",1,true)
    if br1_pos ~= nil and br2_pos ~= nil and br1_pos < br2_pos and split_pos > br1_pos then
        local str_end1 = string.sub(str,(br2_pos +1),string.len(str))
        if string.find(str_end1,",") ~= nil then
            split_pos = br2_pos + string.find(str_end1,",")
        else
            split_pos = nil
        end
    end
    return split_pos
end

function split_string(str,split_pos)
    local str_beg = (string.sub(str,1,split_pos-1))
    local str_end = string.sub(str,(split_pos+1),string.len(str))
    return str_beg,str_end
end

 

 

Никакие существующие функции не правил, только добавил свое.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

Ссылка на комментарий

TAYLI

Значит так.

Тестил мод на чистой игре.

 

По поводу вопросов про переход НПС на локации мап пака. Я не знаю есть связь между графами в мап паке или нету. Тестил напарников 0,3 исключительно на чистом Мап паке от Кости В. Все что нужно было добавить на локации это по одной аномалии и указать Way как точку перехода. После перехода ГГ на локацию НПС появлялись через час и более игрового времени.

 

И опять таки баг остается багом. После передачи НПС компаньону костюма и отдачи приказа "стоять здесь" и отдалившись в офлайн от этого товарища в онлайн он уже не переходит. :blink: Впрочем при желании это указание можно просто убрать.

 

Возник вопрос, а можно ли с помощью этой схемы заспавнить НПС уже с логикой компаньона? Или компаньоном он становится только после диалога и не как иначе?

Ссылка на комментарий

TAYLI, возможно ли реализовать "целеуказание" неписю во время боя? Как непись выбирает опасность цели?

Например, в третьем видео были и зомби, и псевдособака.

 

-------

Да, скажем напарник видит нападение на ГГ зомби и псевдопса. Логика его заставит их произвольно замочить,

или начав с самого опасного (псевдопес)? То же при выборе непися-врага - если есть выбор - стрелять по тому, что с АКСУ,

или по тому что с обрезом?

(Извиняюсь за оффтоп)

Изменено пользователем AK-103

Intel Centrino Mobile (Dual-core) T2700 2,328 GHz, Intel GMA 945GM, 2x1024 MB DDR2-667, WD Scorpio 1200BEVS

Microsoft Windows 7 Professional N + Novell Linux 11.2 (OpenSUSE) Dual boot

S.T.A.L.K.E.R. SHOC 1.0004 + AMK 1.4.1 + NS3 + NLC3 + Arsenal + Arsenal beta +New weapons

 

Опытный американский дробовик XM1014 =O

Хозяйке на заметку: Не спешите выбрасывать чеку от использованной гранаты Ф-1 или РГД-5 - с её помощью можно легко и удобно прикрепить игрушечного пингвинчика к своему рюкзаку. © not me

Ссылка на комментарий

karavan, Прошу прощения, не совсем понял предидущий вопрос, если касается именно схемы перехода между локами, смотрите непосредственно в скрипте xr_companion. По поводу переодевания, спрошу у автора... Хотя - 3 часа пытался воспроизвести вашу ситуацию, и не смог. Новички не переодеваются, да и не должны наверное, так как их ранг тогда повысится, а ГГ не может нанимать неписей с рангом выше чем у него самого. Единственный раз, у меня непись сбегал из лагеря новичков (где я его оставил) на элеватор рядом с мостом. Но ни разу, ни один, не переодевался и не "проваливался под землю"

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

AK-103, То есть указать ему, какого мутанта мочить первым? Нет. Непись реагирует на любого опасного для ГГ противника, и даже на любого непися вообще, посмевшего причинить ГГ вред. (вчера сам тестил версию для чистой игры - у меня напарничек Лиса завалил, за то, что тот случайно в меня пальнул.)

Изменено пользователем TAYLI
Ссылка на комментарий

TAYLI, игра была чистая пропатченная до 1004, причем первый вылет был с другими краказябрами, как будто со шрифтом проблемы хотя тоже с [error]File : e:\stalker\patch_1_0004\xr_3da\xrgame\trade_parameters_inline.h

А теперь попробую совместить с (амк 141+аи пак для 141). У меня не выходит. Может у кого вышло? Выложите сюда.

Изменено пользователем igor822605
Ссылка на комментарий

Господа, подскажите как убрать проверку на группировку? Допустим ситуация: ГГ нанимает НПС из дружественной группировки в которой не состоит...

Изменено пользователем Injener
Старый%20Опытный%20Камикадзе.gif
Ссылка на комментарий

Очень интересно.

А при выборе уровня сложности игры это как-то сказывается на напарнике?

То есть ему тоже "сложнее" или ему всё равно, что ГГ на Новичке, что на Мастере?

И патроны: они у напарника бесконечные или играет роль их количество?

И переносимый вес: у напарника есть такие же ограничения, как у ГГ? не получится, что напарник - это просто носильщик, такой "ходячий рюкзак"?

 

==========================

Ещё есть крамольная мысль:

можно ли сделать так, чтобы компаньоном была псевдособачка? Команды соответственно поменять на собачьи - фас, рядом, место и т.д. Тогда такой "компаньон" не будет простым носильщиком и не будет стрелять бесконечно.

(если нет, значит нет).

 

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

Мысли, написанные с грамматическими ошибками, невозможно воспринимать как умные.

Ссылка на комментарий

mikelik

 

Уровень сложности на нём никак не сказывается. Патроны: зависит от того, какое у него изначальное (заспавненное профилем) оружие. Обычно к этому оружию в профиле прописан спавн патронов нужного типа, и они ему по необходимости довыдаются. Т.е. если у него исходно есть АКСУ например, то ему можно дать любой автомат под тот же патрон - хоть Абакан, и патроны у него никогда не кончатся. А вот для тех стволов к которым у него нет спавна патронов надо боезапас выдавать отдельно. На переносимый вес нет ограничений, реализовать можно, но не имеет большого смысла как мне кажется. Про собаку думал уже, скорее всего можно, да, хотя и несколько нестандартно. Я в этом направлении работаю, если что-то получится, то выложу у нас на форуме OGSE обновлённую версию.

Отладчик и скриптер мода OGSE. Автор схемы "Компаньоны", стреляющего БТРа и многих других полезностей :wink:

Ссылка на комментарий

kamikazze

Что ж, так я и думал.

Достаточно выдать ему нужный один патрон и он будет стрелять его бесконечно.

Можно нагрузить его как вьючного мула, и он будет бегать за ГГ как автономный бесконечный рюкзак.

Фишка то очень хорошая, мне нравится, но вот эти 2 пункта её слегка портят. Потому и хотелось бы собачку на поводке, тем более этот "напарник" ведёт себя именно как бессловесная собачка :).

Drakoon

Спасибо за разъяснение по рюкзаку, я как-то не обратил на это внимание и упустил из виду.

А про поведение я имел в виду не их умение "говорить", а то что ведут они себя как-то не по людски что ли,как рабы. Ну да это не так и страшно, можно на это смотреть сквозь пальцы.

Изменено пользователем mikelik
  • Нравится 1

Мысли, написанные с грамматическими ошибками, невозможно воспринимать как умные.

Ссылка на комментарий

mikelik

При разработке схемы "компаньёны", напарники умели говорить - но они сильно раздражали этим постоянным 'флудёжем', вот их 'говорилку' и отключили.

А по поводу ходячего рюкзака - напарники берут всё у ГГ бесплатно, но вот обратно дают не всё и только за деньги (бесплатно у них можно взять только медикаменты).

Изменено пользователем Drakoon
Ссылка на комментарий

А нельзя сделать так, чтоб они разговаривали во время боя < Командир ! обходим их с лева ! > Или предупреждали об опасности ?

А будет под АМК 1.4.1 ?

 

Ссылка на комментарий

mikelik

 

Можно нагрузить его как вьючного мула, и он будет бегать за ГГ как автономный бесконечный рюкзак.

Фишка то очень хорошая, мне нравится, но вот эти 2 пункта её слегка портят. Потому и хотелось бы собачку на поводке, тем более этот "напарник" ведёт себя именно как бессловесная собачка.

 

Ну на деле это поправляется небольшой элементарной доводкой под себя. Для обмена с напарником используется отдельный конфиг торговли... так вот мы сделали у себя в ОГСЕ так, что с напарником бесплатно можно обменяться только патронами и лекарствами, ну и ещё подарить ему броню/оружие. Обратно он это оружие только за деньги отдаст. Как итог напарника как вьючное животное уже не использовать. В этой схеме, для чистой игры, я изначально этих ограничений не вводил, так как оно предназначено в первую очередь для включения в состав модовых сборок - а там в любом случае придётся этот конфиг править, ну и подгонять баланс под себя.

 

А как бессловесный - да, но изначально я делал его довольно общительным, и он так утомил тестеров, что эта функция была выключена :grin2:

 

Drakoon

 

Это у нас в ОГСЕ так, а тут схема лежит без ограничений, голая.

 

D.Kruger

 

В бою управление принимает боевая схема, и там они уже говорят стандартные фразы всех неписей в бою. Насчёт адаптации под АМК 1.4.1 - адаптировать можно, и не особо сложно. Я бы сам сделал, но мне честно говоря просто некогда... вообще я удивлён что ещё никто до сих пор её под АМК не адаптировал и под солянку... :huh:

Отладчик и скриптер мода OGSE. Автор схемы "Компаньоны", стреляющего БТРа и многих других полезностей :wink:

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

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

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