Wookie 7 Опубликовано 7 Октября 2011 Собственно делая условно чит-мод а-ля The Darkness. Собственно есть спавн дружеских кабанов с группировкой arena_monstr. Переделывал отношения арена-монстров с эктором. они все-равно атакуют. В чем дело? https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 7 Октября 2011 Не весь [monster_relations] ; [1] друг, [0] нейтрал, [-1] враг, [-2] злейший враг ; actor,human,arena_monstr, boar, bloodsucker, flesh, dog, pseudodog, cat, chimera, giant, zombie, burer, controller, poltergeist, snork, fracture, bird, rat, tushkano ;=============================================================================== ================================================================================= ========== actor = 1, 1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1 human = 0 1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1 arena_monstr = 0, 3, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 boar = -2, -2, 0, 1, -1, 0, -1, -1, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0 bloodsucker = -2, -2, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 flesh = -2, -1, 0, 0, -1, 1, -1, -1, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0 dog = -2, -1, 0, -1, 0, -1, 1, 0, 0, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0 pseudodog = -2, -1, 0, -1, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0 cat = -2, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 chimera = -2, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 giant = -2, -1, 0, -1, 0, -1, -1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 zombie = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 burer = -2, -2, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 controller = -2, -2, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 poltergeist = -2, -1, 0, -1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 snork = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0 fracture = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 bird = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 rat = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 tushkano = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 31 Октября 2011 Есть вот такой диалог. <dialog id="wookie_barter_quest"> <phrase_list> <phrase id="0"> <text>wookie_barter_quest_0</text> <next>1</next> </phrase> <phrase id="1"> <text>wookie_barter_quest_1</text> <next>2</next>> </phrase> <phrase id="2"> <text>wookie_barter_quest_2</text> <next>5</next> </phrase> <phrase id="5"> <text>wookie_barter_quest_5</text> <next>7</next> <next>8</next> <next>9</next> <next>10</next> </phrase> <phrase id="7"> <text>wookie_barter_quest_7</text> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art1</action> </phrase> <phrase id="8"> <text>wookie_barter_quest_8</text> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art2</action> </phrase> <phrase id="9"> <text>wookie_barter_quest_9</text> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art3</action> </phrase> <phrase id="10"> <text>wookie_barter_quest_10</text> <precondition>wookie_trader_status.if_give_art4</precondition> <action>wookie_trader_status.gave_art4</action> </phrase> </phrase_list> </dialog> При его активации а точнее когда доходишь до phrase=2 происходит вылет - Expression : !phrase_dialog->m_PhraseVector.empty() Function : CPhraseDialog::SayPhrase File : E:\stalker\patch_1_0004\xr_3da\xrGame\PhraseDialog.cpp Line : 140 Description : No available phrase to say, dialog[wookie_barter_quest] https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 1 Ноября 2011 Это из-за прекондишнов, они не активируются (а > я заметил и удалил, все-равно вылетало) https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 1 Ноября 2011 Valerich, я хотел сделать проверку на арты у ГГ (На каждую ветку по арту - Медуза, Кровь камня, Выверт и Ломоть мяса). Как я понял, вылетало из-за отсутсвия вариантов диалога. -- Проверки на арты у Сидора function if_give_art1(task, objective) if db.actor ~= nil then return db.actor:object("af_medusa") ~= nil end return false end function if_give_art2(task, objective) if db.actor ~= nil then return db.actor:object("af_blood") ~= nil end return false end function if_give_art3(task, objective) if db.actor ~= nil then return db.actor:object("af_mincer_meat") ~= nil end return false end function if_give_art4(task, objective) if db.actor ~= nil then return db.actor:object("af_vyvert") ~= nil end return false end -- Проверки на части монстров у Сидора function if_give_booty1() return booty_task_sidor=="mutant_flesh_eye" and db.actor:object("mutant_flesh_eye") end function if_give_booty2() return booty_task_sidor=="mutant_boar_leg" and db.actor:object("mutant_boar_leg") end function if_give_booty3() return booty_task_sidor=="mutant_dog_tail" and db.actor:object("mutant_dog_tail") end -- Убор артов у ГГ и добавление к личной сумме нужных УЕ function gave_art1(actor, npc) dialogs.relocate_item_section(npc, "af_medusa", "out") art_task_sidor = nil this.add_money(500, sidor) end function gave_art2(actor, npc) dialogs.relocate_item_section(npc, "af_blood", "out") art_task_sidor = nil this.add_money(300, sidor) end function gave_art3(actor, npc) dialogs.relocate_item_section(npc, "af_mincer_meat", "out") art_task_sidor = nil this.add_money(800, sidor) end function gave_art4(actor, npc) dialogs.relocate_item_section(npc, "af_vyvert", "out") art_task_sidor = nil this.add_money(600, sidor) end Добавил еще один вариант ответа (ничего не достал, пойду опять искать) вылетать перестало, но арты не проверяются. Точнее - хоть есть, хоть нет арта - диалога нет. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 1 Ноября 2011 Кстати в чем ошибка этой ф-ии? function add_money(trader_money, trader) trader = trader + trader_money end function hate_money(trader_money, trader) trader = trader - trader_money end -- Применение function add_mon() this.add_money(600, sidor) end -- Local (в начале скрипта) local sidor = 0 -- Что делает функция - у нас есть условный счет у Сидора, и мы добавляем деньги - сначала пишем сколько надо, потом название торговца (ссылка на переменную с баблом у сидора) Добавлено через 1 мин.: Galil, это я делал для теста, т.к. выдавал себе "ломоть мяса" в начале. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 1 Ноября 2011 Desertir, art_task_sidor и booty_task это квесты соответственно на арты и на части монстров, но они не отображаются в инвентаре. Идет все так - выбирается один из случайных артов\конечностей, записанных в таблицу, потом идет проверка на соответствующий арт и выдача через amk.send_tip нового сообщения. Вот весь скрипт - ------------------------------------- --- Статусы торговцев --- copyright © Wookie, 2011 ------------------------------------- local sidor = 0 -- Стартовое кол-во денег за квесты у Сидора local barman = 0 -- Стартовое кол-во денег за квесты у Бармена -- Остальных оставим, так как Артем Кулинар бармен, Сахаров ученый а не барыга, с Вороном думаю -- Переменные квестов local art_task_sidor local art_task_barmen local booty_task_sidor local booty_task_barmen -- Переменные квестов -- Артефакты которые нужны Сидору (Подогнаны под Кордон) local sidor_arts={ "af_medusa", "af_blood", "af_mincer_meat", "af_vyvert" } -- Артефакты нужные Бармену (Подогнаны под Бар и окрестности) local barmen_arts={ "af_fireball", "af_electra_moonlight", "af_cristall_flower", "af_soul", "af_ameba_slug" } -- Части монстров нужные Сидору (Подогнаны под Кордон) local sidor_booty={ "mutant_flesh_eye", "mutant_boar_leg", "mutant_dog_tail" } -- Части монстров нужные Бармену (Подогнаны под Бар и окрестности) local barmen_booty={ "mutant_psevdodog_tail", "mutant_krovosos_jaw", "mutant_burer_hand", "mutant_snork_leg", "mutant_chimera_cogot" } function add_money(trader_money, trader) trader = trader + trader_money end function hate_money(trader_money, trader) trader = trader - trader_money end function give_sidor_task_arts() art_task_sidor = sidor_arts[math.random(4)] if art_task_sidor=="af_medusa" then amk.send_tip("Твоя цель - артефакт Медуза, найдешь и принесешь - запишу 500 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_blood" then amk.send_tip("Твоя цель - артефакт Кровь камня, найдешь и принесешь - запишу 300 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_mincer_meat" then amk.send_tip("Твоя цель - артефакт Ломоть Мяса, найдешь и принесешь - запишу 800 рублей на твой счет", "Сидорович") end if art_task_sidor=="af_vyvert" then amk.send_tip("Твоя цель - артефакт Выверт, найдешь и принесешь - запишу 600 рублей на твой счет", "Сидорович") end end function give_sidor_task_booty() booty_task_sidor = sidor_booty[math.random(3)] if booty_task_sidor=="mutant_flesh_eye" then amk.send_tip("Твоя цель - глаз плоти, найдешь и принесешь - запишу 200 рублей на твой счет", "Сидорович") end if booty_task_sidor=="mutant_boar_leg" then amk.send_tip("Твоя цель - копыто кабана, найдешь и принесешь - запишу 600 рублей на твой счет", "Сидорович") end if booty_task_sidor=="mutant_dog_tail" then amk.send_tip("Твоя цель - хвост слепого пса, найдешь и принесешь - запишу 100 рублей на твой счет", "Сидорович") end end function sidor_private_count() news_manager.send_tip(db.actor, "Сидорович:\\nТвой счет: " ..(sidor), nil, nil, 3000) end ------------------------------------------------------------------------------------------------------------------------------------------- -- Диалоги -- ------------------------------------------------------------------------------------------------------------------------------------------- -- Проверки на арты у Сидора function if_give_art1(task, objective) if db.actor ~= nil then return db.actor:object("af_medusa") ~= nil end return false end function if_give_art2(task, objective) if db.actor ~= nil then return db.actor:object("af_blood") ~= nil end return false end function if_give_art3(task, objective) if db.actor ~= nil then return db.actor:object("af_mincer_meat") ~= nil end return false end function if_give_art4(task, objective) if db.actor ~= nil then return db.actor:object("af_vyvert") ~= nil end return false end -- Проверки на части монстров у Сидора function if_give_booty1() return booty_task_sidor=="mutant_flesh_eye" and db.actor:object("mutant_flesh_eye") end function if_give_booty2() return booty_task_sidor=="mutant_boar_leg" and db.actor:object("mutant_boar_leg") end function if_give_booty3() return booty_task_sidor=="mutant_dog_tail" and db.actor:object("mutant_dog_tail") end -- Убор артов у ГГ и добавление к личной сумме нужных УЕ function gave_art1(actor, npc) dialogs.relocate_item_section(npc, "af_medusa", "out") art_task_sidor = nil this.add_money(500, sidor) end function gave_art2(actor, npc) dialogs.relocate_item_section(npc, "af_blood", "out") art_task_sidor = nil this.add_money(300, sidor) end function gave_art3(actor, npc) dialogs.relocate_item_section(npc, "af_mincer_meat", "out") art_task_sidor = nil this.add_money(800, sidor) end function gave_art4(actor, npc) dialogs.relocate_item_section(npc, "af_vyvert", "out") art_task_sidor = nil this.add_money(600, sidor) end -- Торговля -- Проверки на бабло function if_give_800_money() return sidor >= 800 end Ну после выдачи сообщения надо искать арт, потом отдавать его сидору (проблему решил кстати) хотел в прекондишне ставить - return db.actor:object("af_medusa") and art_task_sidor=="af_medusa" , но не знаю, будет так работать или нет. Ну и если все условия прекондишна выполнены - отдаем арт сидору, тот записывает нам на счет *** денег (не обычных). https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 1 Ноября 2011 ну он у меня там онулялся и вроде все вот так все выглядело - art_task_sidor = nil https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 3 Декабря 2011 (изменено) подскажите, как изменить силу гравипушки Malandrius'a и Kirag'a? Сообщение от модератора ColR_iT А почему бы не спросить у них самих? Изменено 3 Декабря 2011 пользователем ColR_iT https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 11 Декабря 2011 Подскажите, в чем дело? Сделал такой скрипт дин. новостей - local freedom_list = { "%c[255,0,255,0]\"Свобода\"\\n%c[default]Да здравствует \"Свобода\"! Сделаем мир при помощи Зоны лучше!", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Вступайте в \"Свободу\"! Сделаем Зону по-настоящему свободной!", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Нужны опытные сталкеры для рейда за хабаром. С нас причитается.", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Чуваки, подсобите! Мы тут еле справляемся!", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Что-то слишком тихо. Ушами чую, не к добру это...", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Тааак! Опять по общей связи базарим! Щас Чехову скажу, будете знать! И на этот раз ящиком водяры не отделаться!", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Народ! В Темной Долине замечено большое скопление монстров! Всем быть начеку!", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Чуваки! Прикинь, трава, шо возле Трамплина - торкает нехило! Ха-ха-ха!!!\nСовсем сдурел? Какая трава?", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Океюшки, вас понял.", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Эх возьму я шашку в руки...", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Пацаны, где этот зеленый, по имени Макс?", "%c[255,0,255,0]\"Свобода\"\\n%c[default]Блин, пиплы, занесите на блокпост нашим батарейки для рации, они что-то долго не отвечают..." } local stalker_list = { "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Сучья Зона...", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Мужики, помогите!Мутанты прут со всех сторон! бля, да есть тут кто нибудь!!!! мы тут ща все поляжем!!", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Че то воронье раскаркалось. Не к добру это...", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Куплю артефакт \"Душа\", предложения - в личку.", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Мужики, я слышал, что Сидорович цены сбросил, вроде как на большой Земле, это... как ево.. кризис, во! Надо будет заглянуть.", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Ребят, кто с нами за хабаром? Мы тут группу собираем.", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Сталкеры! Заходите к нам в бар, поговорим, пообщаемся!", "%c[255,160,160,160]СТАЛКЕРЫ:\\n%c[default]Я где то слышал, что сталкер один нашелся, Стрелок кличка. Вроде как к центру Зоны собирается. Кто информацию про него какую знает, скиньте в личку." } local dolg_list = { "%c[255,0,255,0]\"Долг\"\\n%c[default]Пятый квад, отзовитесь! Хмурый, для вас есть задание - нужно сопроводить ученых на Янтарь.", "%c[255,0,255,0]\"Долг\"\\n%c[default]Всем постам на Свалке! Появилась информация, что бандюки готовят рейд! Всем быть на готове!", "%c[255,0,255,0]\"Долг\"\\n%c[default]Сталкеры, вступайте в \"Долг\". Защитим планету от заразы Зоны!", "%c[255,0,255,0]\"Долг\"\\n%c[default]Сталкеры! нужна помощь на Янтаре! Зомби прут со всех сторон, мы не справляемся! Быстрей!.", "%c[255,0,255,0]\"Долг\"\\n%c[default]Черт, ну что за день сегодня такой, ни хабара, ни какого придатка, только пуль чуть в лоб не схлопотал....", "%c[255,0,255,0]\"Долг\"\\n%c[default]Нужны опытные сталкеры для рейда на мутантское отродье. С нас хабар.", "%c[255,0,0,0]\"Долг\"\\n%c[default]Петренко, а ну отвечай, мать твою! Что у вас с приватным каналом?! Опять упал?" } local time_res ={ 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000 } time_news = 0 function show_news() local time = time_global() if db.actor:has_info("din_news_active") then if time_news < time then time_news = time + time_res[math.random(9)] update() end end end function update() local communites = math.random(1,3) local texture = "ui_icons_obsh_chanel" if communites==1 then freedom() end if communites==2 then duty() end if communites==3 then stalker() end end function freedom() db.actor:give_game_news("Сообщение", freedom_list[math.random(12)], texture, 15*1000, 15*1000) communites = math.random(1,3) end function duty() db.actor:give_game_news("Сообщение", dolg_list[math.random(7)], texture, 15*1000, 15*1000) communites = math.random(1,3) end function stalker() db.actor:give_game_news("Сообщение", dolg_list[math.random(8)], texture, 15*1000, 15*1000) communites = math.random(1,3) end поставил на апдейт в бинд_сталкер функцию show_news() . Вылетает с логом - Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: .... - Shadow of Chernobyl\gamedata\scripts\bind_stalker.script:527: attempt to concatenate field '?' (a nil value) https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 14 Декабря 2011 как можно динамически менять иконку ГГ? (не анимация SEQ, а как реализовано например в FS) https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 7 Февраля 2012 Можно поверх иконки "выведенной движком" выводить свою скриптово. По каким вздумается условиям, хотите такую же, хотите - другую. В помощь - любой мод где производятся скриптовые манипуляции с текстурами на худе. В FS это совершенно по другому. Там происходит подмена профиля ГГ, так можно и сделать смену имени ГГ. А у меня такой вопрос - как пользоваться едитбоксом? Что я хочу сделать - некое подобие отсыла сообщений по алгоритму - нажимаешь на ТАВ, появляется окошко, вводишь надпись, нажимаешь "отправить" - с помощью сенд_тип выводиться сообщение с нашим набранным текстом. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 10 Февраля 2012 Можете подсказать, как увеличить радиус при котором можно говорить с НПС? Просто я сделал такой скрипт - --[[ Свистоперделки. Скрипт: Wookie Спасибо: AMK, Stalk15 ]] -- Общаемся с Волком на расстоянии -- Прикольно, но работает только прямо перед Волком function wookie_radio_talk() local npc = level_object_by_sid(006) db.actor:run_talk_dialog(npc) end function use(obj) local obj_sect = obj:section() if obj_sect == "racia" then this.wookie_radio_talk() this.create_item("racia") end end function create_item(spawn_item, npc) if npc==nil then npc=db.actor end return alife():create(spawn_item, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end function give_racia() this.create_item("racia") end Сделал биндер юзанья в bind_stalker. Когда просто используешь рацию - ничего не происходит, а когда в зоне диалога - отлично работает. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 10 Февраля 2012 _Призрак_, был бы рад. https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 12 Февраля 2012 Как можно заспавнить инв_бокс с присовением стори ид'а? https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 26 Мая 2012 (изменено) Какой рестриктор отвечает за сообщение от Кепа на Милитари? О каком конкретно сообщении идёт речь? ColR_iT Добавлено через 66 мин.: Когда подходишь к переходу на Радар. Изменено 26 Мая 2012 пользователем ColR_iT https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение
Wookie 7 Опубликовано 3 Июня 2012 (изменено) Делаю функцию смены часа. Был такой код - local hour = level.get_time_hours() function time() hour = 5 end Функция конечно не рабочая. Возможно ли сделать смену часа по скрипту? Нет, сменить скриптом время(час) в игре невозможно, только "перемотать". --/Artos Изменено 3 Июня 2012 пользователем Artos https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Поделиться этим сообщением Ссылка на сообщение