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

Скриптование


Svoboда

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

Создал отряд военных, заспавнил их, прописал им логику:

[logic]
active = remark1
danger = danger_ignore

[danger_ignore]
ignore_distance = 5

[remark1]
no_move = true

По идеи он должен стоять на месте, но в игре он всё равно гуляет свободно по зоне. Как это исправить, помоги пожалуйста.

 

Покажи секцию спавна полностью (под спойлером).

ColR_iT

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

Не соответствует правилам.

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


Ссылка на сообщение

[military_camp_npc_1]:stalker

$spawn = "respawn\military_camp_npc_1"

character_profile = military_camp_npc_1

spec_rank = master

community = army

custom_data = scripts\escape\esc_military_camp_npc_logic_1.ltx

 

 

 

С этим разобрался, спасибо losiara за помощь.

 

Такая беда еще, спавн осуществляю через скрипт

function start_add_spawn()--\\

--\\

--

spawn_military_camp_npc_1()

spawn_military_camp_npc_2()

spawn_military_camp_npc_3()

spawn_military_camp_npc_4()

end

 

function spawn_military_camp_npc_1()

local x= -158.419006

local y= -30.450201

local z= -348.824280

local level_vertex= 92764

local game_vertex_id= 1026

alife():create("military_camp_npc_1",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function spawn_military_camp_npc_2()

local x= -151.983821

local y= -30.513784

local z= -348.483551

local level_vertex= 100292

local game_vertex_id= 1026

alife():create("military_camp_npc_1",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function spawn_military_camp_npc_3()

local x= -168.470001

local y= -25.435743

local z= -354.477600

local level_vertex= 80827

local game_vertex_id= 1021

alife():create("military_camp_npc_1",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function spawn_military_camp_npc_4()

local x= -156.043976

local y= -30.033550

local z= -360.914581

local level_vertex= 95263

local game_vertex_id= 1026

alife():create("military_camp_npc_1",vector():set(x,y,z),level_vertex,game_vertex_id)

end

 

function save_variable(variable_name, value)

xr_logic.pstor_store(db.actor, variable_name, value)

end

function load_variable(variable_name, value_if_not_found)

return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)

end

 

 

 

Проблема вот в чем, три нпс на охране лагеря, четвертый снайпер на башне. Снайпер (spawn_military_camp_npc_3) да и сами нпс спавнятся, так сказать они меняются координатами что ли, вообщем снайпер появляется то на башне (там где он должен быть), то на месте нпс_1, то на месте нпс_2 или нпс_4. Вот так кто где, постоянно меняются местами при запуске игры.

Так вот, это проблема в скрипте?

Работаю на ЗП 1.6.02.

 

Добавлено через 17 мин.:

if spawn_escape.load_variable("spawn_military_camp_npc",false)==false then

spawn_escape.start_add_spawn()

spawn_escape.save_variable("spawn_military_camp_npc",true)

end

 

 

 

Также спавняться, то два снайпера и два рядовых, то так то сяк :huh: вообще непонятно :wacko:

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

Не соответствует правилам.

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


Ссылка на сообщение

Artos, Viнt@rь да, я что-то на это подозревал, но таки не смог разобраться. Заспавнил всех через all.spawn, сейчас все в норме :good2:

 

Еще вот вопросы:

Заспавнил я этот отряд сталкеров, нужно написать им логику чтоб они сидели у костра (болтали, играли, ели, пили и тд и тп чем они там занимаются на досуге :beach::-) )

Кто-нибудь может подробно объяснить как это реализовать?

Помочь с написанием логики для нпс, с созданием смарт_террейна и по моему, как-то еще .way файл из all.spawn'а в этом как-то участвует. Буду примного благодарен! :ny_z_1:

 

То что нахожу по этому вопросу, то всё делается на Тени Чернобыля, а в Зове Припяти это походу реализуется немного по иному. Разобраться у меня не получилось.

 

Сначала создаем в алл.спавн smart terrain

Например

[833]

; cse_abstract properties

section_name = smart_terrain

name = lager_new_npc --Название смарта

position = -49.742325,-10.038876,-64.088760

direction = 0.975047,0.000000,-0.221997

 

; cse_alife_object properties

game_vertex_id = 77

distance = 4.19999980926514

level_vertex_id = 229856

object_flags = 0xffffffbe

custom_data = <<END

[smart_terrain]

type = lager_new_npc

capacity = 5 ----- по моему здесь кол-во НПС которое бут сидеть у костра

squad = 1

groups = 3

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 2.0

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

Далее создаем НПС, тоже в алл.спавн

[834]

; cse_abstract properties

section_name = stalker

name = lager_pod_most00

position = -50.338428,-10.038231,-65.516136

direction = -0.327957,0.000000,0.944693

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = esc_stalker_novice

 

; cse_alife_object properties

game_vertex_id = 77

distance = 4.19999980926514

level_vertex_id = 229162

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

lager_new_npc = true --Название созданного мной смарт террейна

END

 

; cse_visual properties

visual_name = actors\novice\green_stalker_2

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 1

g_group = 3

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -50.338428,-10.038231,-65.516136

upd:o_model = 0

upd:o_torso = 0.533530831336975,-0.000744261255022138,0

upd:g_team = 0

upd:g_squad = 1

upd:g_group = 3

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 1,0,0,2,1

predicate4 = 1,1,0,1

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

дальше идем в gulag_escape.script можнои свой создать но пока сойдет и стандарт

нужно прописать

работу НПС в трёх местах

1:)function load_job(sj, gname, type, squad, groups)

наш

if type == "lager_new_npc" then

t = { section = "logic@lager_new_npc_men_kamp1",

idle = 0,

prior = 5, state = {0, 1},

online = true,

in_rest = "", out_rest = "",

}

table.insert(sj, t)

end

Ещё один "end" в конце скрипта

 

2:)function load_states(gname, type)

 

if type == "lager_new_npc" then

return function (gulag)

return 0

end

end

Третий "end" в конце скрипта.И в третьем месте указываем группировку непися:

 

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

 

if gulag_type == "lager_new_npc" then

return npc_community == "stalker" ---Здесь ставим группировку НПС которую будет принимать гулаг

end

 

Потом прописываем логику в файле:config\misc\gulag_escape

здесь НПС будут сидеть у костра

[logic@lager_new_npc_men_kamp1]

active = kamp@lager_new_npc_men_kamp1

 

[kamp@lager_new_npc_men_kamp1]

center_point = kamp

 

Ипоследнее,снова алл.спавн way escape

[lager_new_npc_kamp]

points = p0

p0:name = wp00|s=state

p0:position = -49.742325,-10.038876,-64.088760

p0:game_vertex_id = 77

p0:level_vertex_id = 229856

 

lager_new_npc - название смарта.Оно у нас везде.В скриптах:

if type == "lager_new_npc" then --здесь

t = { section = "logic@lager_new_npc_men_kamp1", --здесь

в логике и в путях:

[lager_new_npc_kamp] --название смарта + логика "kamp"

 

Ну все вроде.

 

 

 

 

 

И есть еще вопрос, заспавнил я вот всё тот же отряд. Вот, в этом так сказать коде есть пункт

direction = 0,0,0 -// направление взгляда

Направление это я узнал с помощью скрипта определения координат ГГ. Прописал его, но нпс один * смотрит строго на север.

Как это исправить?

 

Выражаемся? Cyclone

Не соответствует правилам.

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


Ссылка на сообщение

Добрый вечер!

У меня проблема с моими неписями, Спавн НПС проимходит через smart_terrain, они не работают по логике что я им пишу, а тупо сидят на карточках периодически вставая (при этом странно подергиваясь) и потом снова садятся.

Когда спавнил через all.spawn все работало.

[smart_terrains]

none = true

 

[logic]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

 

 

Может в конфигах у меня ошибка, посмотрите пожалуйста.

Вот конфиг одного из нпс:

[escape_187]

; cse_abstract properties

section_name = smart_terrain

name = esc_blokpost_soldier1_smart

position = -131.503113,-30.139643,-382.223450

direction = -0.991485774517059,0,-0.130215004086494

 

; cse_alife_object properties

game_vertex_id = 951

distance = 9.80000019073486

level_vertex_id = 123660

object_flags = 0xffffff3e

custom_data = <<END

[smart_terrain]

cfg = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Здесь же файл с логикой непися нужно прописать?

END

 

; cse_shape properties

shapes = shape0

shape0:type = sphere

shape0:offset = 0,0,0

shape0:radius = 5

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; se_smart_terrain properties

 

 

[esc_blokpost_soldier1]:stalker

$spawn = "respawn\esc_blokpost_soldier1"

character_profile = esc_blokpost_soldier1

spec_rank = regular

community = army

story_id = esc_blokpost_soldier1

custom_data = scripts\escape\smart\esc_blokpost_soldier1.ltx -----Позже, мне подсказали и вписал сюда. Все ровно не работает

 

 

[esc_blokpost_soldier1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_soldier1

target_smart = esc_blokpost_soldier1_smart

story_id = esc_blokpost_soldier1_squad

 

 

 

И еще вот вопрос, для ЗП будет работать такое? С этим я пока еще не очень дружу, но попробывал написать, получилось вот это :blush: (Проверить просто не получается, т.к. неписи не слушается, сидят только на корточках .):

 

Пример:

[esc_blokpost_sniper1]
points = p0,p1
p0:name = wp00 
p0:flags = 0x1      
p0:position = -169.194595,-25.436274,-353.493927
p0:game_vertex_id = 1021
p0:level_vertex_id = 79995
p0:links = p1(1) 

p1:name = wp01 
p1:flags = 0x2            
p1:position = -166.526138,-25.435808,-355.219055
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

Логика НПС:

[logic] 
active = walker 

[walker] 
path_walk = esc_blokpost_sniper1

 

 

Не соответствует правилам.

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


Ссылка на сообщение

Доброго времени суток!

Работаю на Зов Припяти 1.6.02.

Хочу сделать снайпера часового (я в этом полным нуб), вот, начеркал для него базовую схему walker.

* phase time: 16935 ms

* phase cmem: 350251 K

* phase time: 27 ms

* phase cmem: 350251 K

* [win32]: free[1918640 K], reserved[188516 K], committed[2087084 K]

* [ D3D ]: textures[1149492 K]

* [x-ray]: crt heap[350251 K], process heap[13906 K], game lua[36780 K], render[114 K]

* [x-ray]: economy: strings[25402 K], smem[10192 K]

compiling shader model_env_lq

compiling shader model_env_lq_2

compiling shader model_distort4glass_2

compiling shader model_def_lplanes_0

compiling shader model_def_lplanes_1

compiling shader deffer_model_bump_d-hq_1

! Unknown command: dump_infos

! Cannot find saved game ~abort-raw:there is no patrol path %s

* Log file has been saved successfully!

! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_walk

* Log file has been saved successfully!

stack trace:

 

0023:0844E8B3 xrGame.dll, CDialogHolder::CDialogHolder()

0023:0844FB45 xrGame.dll, CDialogHolder::CDialogHolder()

0023:055F2EA3 lua.JIT.1.1.4.dll, luaopen_io()

 

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

 

 

 

Вот конфиги схемы.

[escape_blokpost_chasovoy_look]
points = p0,p1
p0:name = name00|a=guard_chasovoy
p0:flags = 0x2
p0:position = -158.486877,-30.824171,-286.253876
p0:game_vertex_id = 1091
p0:level_vertex_id = 92831

p1:name = name01|a=guard_chasovoy
p1:flags = 0x1
p1:position = -149.406265,-29.899168,-363.256896
p1:game_vertex_id = 1026
p1:level_vertex_id = 103521


[escape_blokpost_chasovoy_walk]
points = p0,p1
p0:name = name00
p0:flags = 0x1
p0:position = -168.318710,-25.436260,-353.395844
p0:game_vertex_id = 1021
p0:level_vertex_id = 80829
p0:links = p1(1)

p1:name = name01
p1:flags = 0x2
p1:position = -166.309357,-25.436119,-354.571533
p1:game_vertex_id = 1021
p1:level_vertex_id = 83334
p1:links = p0(1)

 

 

 

[smart_terrains]
none = true

[logic@esc_blokpost_sniper1]
active = walker1
danger = danger_ignore 

[danger_ignore] 
ignore_distance = 5 

[walker1] 
path_walk = escape_blokpost_chasovoy_walk
path_look = escape_blokpost_chasovoy_look
team = escape_blocpost

 

 

 

Посмотрите пожалуйста, что тут не так? Что нужно добавить, изменить. Два дня мучаюсь с этим :(

 

 

[esc_blokpost_sniper1]:stalker

$spawn = "respawn\esc_blokpost_sniper1"

character_profile = esc_blokpost_sniper1

spec_rank = regular

community = army

story_id = esc_blokpost_sniper1

 

 

<specific_character id="esc_blokpost_sniper1" team_default = "1">

<name>Солдат</name>

<icon>ui_inGame2_Soldier_2</icon>

<map_icon x="1" y="0"></map_icon>

<bio>Рядовой. Детальная информация отсутствует.</bio>

 

<class>Sniper</class>

<community>army</community>

<terrain_sect>stalker_terrain</terrain_sect>

<snd_config>characters_voice\human_01\military\</snd_config>

 

<rank>40</rank>

<reputation>0</reputation>

 

<visual>actors\stalker_soldier\stalker_soldier_2</visual>

<supplies>

 

[spawn] \n

wpn_svd \n

ammo_7.62x54_7h1 = 2 \n

wpn_pm \n

ammo_9x18_fmj = 1 \n

grenade_rgd5 = 2 \n

 

#include "gameplay\character_items_2.xml"

#include "gameplay\character_food.xml"

#include "gameplay\character_drugs_2.xml"

</supplies>

#include "gameplay\character_criticals_4.xml"

#include "gameplay\character_dialogs.xml"

</specific_character>

 

 

<character id="esc_blokpost_sniper1">

<class>Sniper</class>

</character>

 

 

[start_position_escape]

esc_blokpost_sniper1_squad = esc_blokpost_sniper1_smart

 

 

[esc_blokpost_sniper1_squad]:default_squad

sim_avail = false

 

 

[esc_blokpost_sniper1_squad]:online_offline_group

faction = stalker

npc = esc_blokpost_sniper1

target_smart = esc_blokpost_sniper1_smart

story_id = esc_blokpost_sniper1_squad

 

 

[smart_terrain];esc_blokpost_sniper1

squad_id = 1

max_population = 1

 

[exclusive]

esc_blokpost_sniper1 = escape\esc_blokpost_sniper1_logic.ltx

 

 

 

 

Не соответствует правилам.

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


Ссылка на сообщение

_Призрак_, что значит "сувал под гулаг непися"? :unsure:

Если ты имеешь ввиду, писал ли я что-то в gulag_ххх.script, то нет. Пути прописал в way_xxx.ltx, логику в файл с логикой непися - esc_blokpost_sniper1_logic.ltx и всё.

[escape_blokpost_chasovoy_look]

points = p0,p1

p0:name = name00|a=guard_chasovoy

p0:flags = 0x2

p0:position = -158.486877,-30.824171,-286.253876

p0:game_vertex_id = 1091

p0:level_vertex_id = 92831

 

p1:name = name01|a=guard_chasovoy

p1:flags = 0x1

p1:position = -149.406265,-29.899168,-363.256896

p1:game_vertex_id = 1026

p1:level_vertex_id = 103521

 

 

[escape_blokpost_chasovoy_walk]

points = p0,p1

p0:name = name00

p0:flags = 0x1

p0:position = -168.318710,-25.436260,-353.395844

p0:game_vertex_id = 1021

p0:level_vertex_id = 80829

p0:links = p1(1)

 

p1:name = name01

p1:flags = 0x2

p1:position = -166.309357,-25.436119,-354.571533

p1:game_vertex_id = 1021

p1:level_vertex_id = 83334

p1:links = p0(1)

 

 

[smart_terrains]

none = true

 

[logic@esc_blokpost_sniper1]

active = walker1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[walker1]

path_walk = escape_blokpost_chasovoy_walk

path_look = escape_blokpost_chasovoy_look

team = escape_blocpost

 

 

 

Переименовал пути: имя_смарта_имя_пути

esc_blokpost_sniper1_smart - имя_смарта

escape_blokpost_chasovoy_walk - имя_пути

! Unknown command:  dump_infos
! Cannot find saved game ~abort-raw:there is no patrol path %s
* Log file has been saved successfully!
! Cannot find saved game ~abort:there is no patrol path esc_blokpost_sniper1_smart_esc_blokpost_sniper1_smart_escape_blokpost_chasovoy_w
alk
* Log file has been saved successfully!
stack trace:

0023:0826E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0826FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:05772EA3 lua.JIT.1.1.4.dll, luaopen_io()

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

 

 

 

Не соответствует правилам.

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


Ссылка на сообщение

Здравствуйте! Снова я с логикой непися.

С предыдущим вопросом разобрался наконец. Заспавнил пару нпс, задал им пути. Все хорошо.

 

Заспавнил сейчас нпс, хочу сделать его что-то типа Волка из ТЧ в начале игры. При появлении ГГ, нпс махает рукой и говорит "подходи пообщаемся".

Заставляем NPC здороваться и прощаться голосом

Отредактировать секцию meet в логике:

[meet_guide]

close_snd_hello = rolan_hello_snd

close_snd_bye = rolan_hello_snd_bye

abuse = false

use = true

allow_break = false

meet_on_talking = false

В файле configs\misc\script_sound_xxx.ltx создать секции Rolan_hello_snd и

rolan_hello_snd_bye по аналогии с др.(разобраться легко)

 

 

 

[smart_terrains]

none = true

 

[logic@widmore_mercenaries1]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

no_move = true

anim = hello_wpn <--- Анимация - НПС с оружием в одной руке, машет другой

target = story | actor <--- НПС смотрит только на ГГ

on_signal = anim_end | remark@wait <--- По окончании проигрывания анимации, нпс переходит на схему remark@wait

meet = meet_guide

 

[remark@wait]

no_move = true

anim = guard <--- Анимация - НПС стоит с оружием в руках

target = story | actor

 

[meet_guide]

close_snd_hello = widmore_mercenaries_hello <--- Как я понял вызов звука

abuse = false

use = true

allow_break = false

meet_on_talking = false

 

 

 

В игре, он только машет рукой, на схему remark@wait не переходит и звук не проигрывается.

 

[remark]

anim = анимация

snd = звук

snd_anim_sync = true

on_signal = action_end | следующая схема

 

Происходит тоже самое, он машет только рукой, на следующею схему не переходит и звук не проигрывается.

 

 

 

Сам звук "widmore_mercenaries_hello" взял из ТЧ.

В script_sound.ltx добавил

#include "script_sound_escape.ltx"

Создал файл "script_sound_escape.ltx в нём прописал

[list_script_sound_escape]
widmore_mercenaries_hello

[widmore_mercenaries_hello]
type = npc
path = scenario\escape\widmore_mercenaries_hello
shuffle = seq
idle = 1,1,100

 

 

 

Помогите пожалуйста с этим разобраться. :unsure: Где я опять накосячил?

Работаю на ЗП 1.6.02

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

Не соответствует правилам.

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


Ссылка на сообщение

Добрый вечер!

Работаю на ЗП. Такой вопрос.

Мне нужно сделать так, чтобы при получении инфопоршня, выводилось сообщение на экран.

Как вывести сообщение на экран я нашел, но вывести при получении инфопоршня я не смог.

Не соответствует правилам.

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


Ссылка на сообщение

Здравствуйте!

А можно ли зделать так, чтобы ГГ (на ЗП) при старте игры, был раненым? Ну как нпс'ы раненные валяются, просят аптечку, чтобы так же ГГ лежал.))

Не соответствует правилам.

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


Ссылка на сообщение

Вампир35, через health в all.spawn я пробовал)) поставил health = 0.1, при старте игры у гг просто меньше здоровья.

А мне нужно так, чтобы ГГ при старте игры именно лежал на полу как раненный нпс.

 

Править следует два параметра: health и upd:health ... важен имменно второй. --/Artos

 

Добавлено через 29 мин.:

Даже просто сделать так, чтобы при старте игры, такая скриптовая сцена (или как она там называется=)), ГГ лежит на полу без сознания и потом типо очнулся и встает... Как это реализовать на ЗП. Подскажите пожалуйста.

Есть же такое в ТЧ, когда ГГ теряет сознание и падает..потом ролик.. а после он очнулся и встает. Только это нужно на ЗП.

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

Не соответствует правилам.

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


Ссылка на сообщение

Добрый день!

Как активировать скрипт через логику нпс в ЗП?

Поподробней расскажите пожалуйста.

 

Не соответствует правилам.

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


Ссылка на сообщение

Добрый день!

Как заспавнить монстра через скрипт в ЗП?

Это не хочет работать:

function spawn_snork()
alife():create("snork_indoor_normal",vector():set(-94.063316,-16.243137,-42.022018),2014,650)
end

Не соответствует правилам.

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


Ссылка на сообщение

KD87, вообще мне нужно вызвать эту самую функцию через логику нпс. ins33 мне подсказал так:

[logic]
active = sr_idle@one

[sr_idle@one]
on_actor_inside = {+поршень} nil %=имя_скрипта.функция()%

Но у меня что-то не получилось ничего. Убежал на ДР. Как буду дома, конечно, перепроверю все еще раз. Написал так, для подстраховки.

Не соответствует правилам.

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


Ссылка на сообщение

Вот мой кусок из логики нпс, как видно при получении поршня {+hunter_talk_6}, проигрывается звук =play_sound(alex_54), далее он ждет 5 сек. и переходит на схему remark@suhoi_alarm_1.

[remark@hunter_4]
anim = wait
on_info = {+hunter_talk_6} %-hunter_talk_6 =play_sound(alex_54)%, %+new_restriktor%
on_timer = 5000 | remark@suhoi_alarm_1
meet = no_meet

Тут у меня проблемка, за эти 5 секунд, он проигрывает этот звук 2 раза, а то и 3 (т.к. продолжительтность его всего 1 сек.). Как сделать чтобы он проговорил его только один раз, а потом ждал 5 сек., а не повторял его в течении 5 секунд.

Делаю на Зов Припяти.

Не соответствует правилам.

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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