Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

AddonsTools


icreator

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

AddonsTools

Просмотреть файл

VIDEO DnD Enable - r77

VIDEO FB Panel ver 3

obsolete:

VIDEO here

VIDEO - as set SKINS

как сообщать об ошибке

при установке на экране появляются часы:

post-3-0-64326700-1357574701_thumb.jpg

теперь с иконками и панелью быстрых клавиш это выглядит так:

post-3-0-95705700-1357636248_thumb.jpg

AddonsMenu - краткая инструкция пользователя

двойной клик мышкой по часам - вызов меню AddonsMenu (см. рисунок внизу темы)

--- пользовательские аддоны ---

0. сдвиг часов для разных часовых поясов - в "Параметры" (часть меню "КОМАНДЫ")

1. вызов меню аддонов - клик мышкой по пункту меню с именем аддона

2. вызов меню для аддона и некоторых действий аддонов - правый клик мышкой по пункту меню

3. выгрузить/загрузить аддон - shift+правая мышка

4. сохранить/загрузить настройки аддона в глобальную секцию. То есть чрезе глобальную секцию можно для всех персонажей одинаковые настройки передать

5. очистить настройки любого аддона. Например если вы хотите отказаться от использования какого-либо адона, рекомендую сначала удалить его настройки - чтобы они место не занимали в user.cfg Делаем это так:

Для сброса настроек любого аддона (убиения его секции в User.cfg) до настроек записанных в config.txt:

1. выгружаем аддон НужныйАддон с помощью AddonsMenu

2. там же жмем правую кнопку и выбирает Очистить настройки аддона

3. загружаем НужныйАддон - он при запуске возьмет настройки пустые из User.cfg

post-3-0-60182700-1359648651_thumb.jpg

6. Запрещает/разрешает ДнД для аддонов - можно как для отдельного аддона (правая мышка по аддону) так и для всех аддонов разом: "Полный запрет DnD" - это задается в параметрах АТ

--------- Системные аддоны -------

1. Клик мышкой по пункту меню с именем аддона - поменять режим - ВКЛ/ВЫКЛ/АВТО. Режим АВТО - значит AddonsMenu ничего с этим аддоном не делает. Но его могут выгрузить другие аддоны. ВКЛ - загрузить - даже если его выгрузили. ВЫКЛ - выгрузить, даже если его загрузили

2. Правый клик - временно загрузить/выгрузить аддон

Настройки нужно сохранить через меню - чтобы они потом восстановились

AT-AM-sys1.jpg

Информация для программистов

Отличие AddonsMenu от AddonsMeneger в том что меню выбора аддонов проще, к тому же аддоны, которые используют библиотеку от AddonsMenu (AddonsMenuClient.lua и AddonsTools_Support.lua), не будут вообще загружаться без вашего разрешения. В то время как обычные аддоны, выгружаемые через AddonManager, сначала полностью загружаются и выполняются, а потом начинают выгружаться, хотя уже успевают сделать нежелательные действия, например выгрузить другой нужный вам (пользовательский или системный) аддон.

Еще AddonsMenu может менять локализацию всех поддерживающих его аддонов "на лету". Это удобно для того чтобы можно было посмотреть как ваш аддон будет выглядеть, например на европейских серверах или на японском сервере. Или если вы играете на европейском, то можете задать для аддонов русскую локализацию и они в нее переключатся.

так же из AddonsMenu можно вызвать основное меню аддонов поддерживающих AOPANEL вызовы, а сам аддон AOPANEL при этом не нужен.

Еще ваш аддон получает текущее значение локализации через SetGameLocalization, которая описана в

<Item href="/Mods/Addons/AddonsTools/Scripts/LocalesLIB.luac" />

В добавок при использовании AddonsMenu вы получаете набор готовых виджетов (содержащихся в глобальной переменной dsc), благодаря чему можно создавать новые виджеты "на лету" по их описаниям, например такой командой:

--- описание функции (ScriptLIB): w = WCD(descr, name, parent, place, show )

n = WCD( dsc.Text, "Text1_txt", wParent, { alignX = 0, alignY = 0, sizeX = 200, }, true )

Еще задавать параметры для аддонов прямо из контекстного меню AddonsMenu, пример использования см. в Example2.zip. Тоесть ваш аддон может вообще не иметь ни одной формы или меню, а все настройки задавать через AddonsMenu. Например так:

Amenu3.jpg

Пример (шаблон аддона) с использованием AddonsMenu и AddonsTools находится в архиве Example1.zip и Example2.zip (более свежая версия)

AddonsMenu вызывается двойным кликом мышки по часам, которые я заимствовала из аддона PhanTime (автор Phantasmagor)

в параметрах используется (возвращаются из setAMSupport():

desc = L("описание этого аддона"),

on_click_hide = true, -- hide AddonsMenu when to show me - скрывать ли меню аддонов при нажатии на пункт меню

AT-am1.jpg

DnD for old versions

ДнД для старых версий

Теперь можно взять файл библиотеки для ДнД из \Scripts\LibDnD.lua и скопировать его в папку вашего или старого аддона - тогда станет работать событие по запрету ДнД из настроек АТ для этого аддона


 

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

Теперь аддон включает в себя класс menu (menuCls.lua) - для конструирования собственных меню в ваших аддонах на лету, то есть без описания множества файлов .xdb

Так же аддон включает:

+ библиотеку (LibDnD_ic.lua) для Drag'n'Drop с автоматическим назначением уникального номера для окна

+ библиотеку полезных функций (ScriptLIB.lua), часто используемых в аддонах

При инициализации описаний виджетов, попутно все описания из menuCls становятся вам доступны:

Code:

dsc = menuDscInit(wAddonsTools)

в переменной dsc содержатся описания виджетов. Можно создать виджет кнопки например так:

Code:

n = mainForm:CreateWidgetByDesc( dsc.Button ); n:SetName( "Main_btn" )

wtSetVal( n, "iM") wtSetPlace(n, { sizeX= 60 } )

n:Show( true )

DnD:Init( n, n, true )

Пример использования в файле Example1.zip - тут готовый аддон, который вы можете взять как шаблон для своего аддона.

Все значения из меню возвращаются как строковые, поэтому если вам наlо сохранять в параметры числовые значения то делайте преобразование

_PS = tonumber( value)
 

Дополнительное описание тут

 

 

пример как создать свою меню.

Для создания меню в вашем аддоне:

1. вставьте ссылки на файлы menuCls.lua, ScriptLIB.lua и LibDnD_ic.lua в ваш AddonDesc.(UIAddon).xdb например так:

Code:

    <Item href="/Mods/Addons/AddonsTools/Scripts/ScriptLIB.lua" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/LibDnD_ic.lua" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/menuCls.lua" />

2. задайте структуру будущего меню, например так:

Code:
local strucMenu = { 

 [1]  = { name = "ex1", label = "Simple Example"},

 [2]  = { token = "1", label = "-----"},

 [3]  = { name = "ex2", label = "Complex Example"},

   }

3. Инициализируйте виджеты и их описания - когда аватар уже загружен:

Code:
local wAddonsTools = stateMainForm:GetChildUnchecked("AddonsTools", false)

if wAddonsTools then

--- exist

mainForm:GetChildUnchecked("ErrorText", false):Show(false)

--- set widgets descriprions for menu class and get its:

dsc = menuDscInit(wAddonsTools)

else

--- not exist

return

end

--- continue if AddonsTools is loaded:

3.1. создайте новый объект меню:

Code:
m1 = menu{ name="menu1", strucMenu = strucMenu }

4. инициируйте его:

Code:
m1:init({

mouse_left_click = FUNC_m1,

mouse_overRun = true,

 })

5. и теперь можно его использовать, например показать:

Code:
m1:Show ( true )

пример и описание есть в http://ui9.ru/forum/menuclasslib

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

новый параметр пункта меню - tip - вызывает подсказку при наведении мышкой на пункт

Code:
local strucMenu = { 

  [1]   = { name = "ex1", label = "Simple Example", tip="Sinple Example.."},

  [2]   = { token = "1", label = "-----"},

  [3]   = { name = "ex2", label = "Complex Example"},

   }

tips.jpg
Ссылка на комментарий
Поделиться на другие сайты

AddonsTools

Просмотр файла

VIDEO DnD Enable - r77

VIDEO FB Panel ver 3

obsolete:

VIDEO here

VIDEO - as set SKINS

как сообщать об ошибке

при установке на экране появляются часы:

post-3-0-64326700-1357574701_thumb.jpg

теперь с иконками и панелью быстрых клавиш это выглядит так:

post-3-0-95705700-1357636248_thumb.jpg

AddonsMenu - краткая инструкция пользователя

двойной клик мышкой по часам - вызов меню AddonsMenu (см. рисунок внизу темы)

--- пользовательские аддоны ---

0. сдвиг часов для разных часовых поясов - в "Параметры" (часть меню "КОМАНДЫ")

1. вызов меню аддонов - клик мышкой по пункту меню с именем аддона

2. вызов меню для аддона и некоторых действий аддонов - правый клик мышкой по пункту меню

3. выгрузить/загрузить аддон - shift+правая мышка

4. сохранить/загрузить настройки аддона в глобальную секцию. То есть чрезе глобальную секцию можно для всех персонажей одинаковые настройки передать

5. очистить настройки любого аддона. Например если вы хотите отказаться от использования какого-либо адона, рекомендую сначала удалить его настройки - чтобы они место не занимали в user.cfg Делаем это так:

Для сброса настроек любого аддона (убиения его секции в User.cfg) до настроек записанных в config.txt:

1. выгружаем аддон НужныйАддон с помощью AddonsMenu

2. там же жмем правую кнопку и выбирает Очистить настройки аддона

3. загружаем НужныйАддон - он при запуске возьмет настройки пустые из User.cfg

post-3-0-60182700-1359648651_thumb.jpg

6. Запрещает/разрешает ДнД для аддонов - можно как для отдельного аддона (правая мышка по аддону) так и для всех аддонов разом: "Полный запрет DnD" - это задается в параметрах АТ

--------- Системные аддоны -------

1. Клик мышкой по пункту меню с именем аддона - поменять режим - ВКЛ/ВЫКЛ/АВТО. Режим АВТО - значит AddonsMenu ничего с этим аддоном не делает. Но его могут выгрузить другие аддоны. ВКЛ - загрузить - даже если его выгрузили. ВЫКЛ - выгрузить, даже если его загрузили

2. Правый клик - временно загрузить/выгрузить аддон

Настройки нужно сохранить через меню - чтобы они потом восстановились

AT-AM-sys1.jpg

Информация для программистов

Отличие AddonsMenu от AddonsMeneger в том что меню выбора аддонов проще, к тому же аддоны, которые используют библиотеку от AddonsMenu (AddonsMenuClient.lua и AddonsTools_Support.lua), не будут вообще загружаться без вашего разрешения. В то время как обычные аддоны, выгружаемые через AddonManager, сначала полностью загружаются и выполняются, а потом начинают выгружаться, хотя уже успевают сделать нежелательные действия, например выгрузить другой нужный вам (пользовательский или системный) аддон.

Еще AddonsMenu может менять локализацию всех поддерживающих его аддонов "на лету". Это удобно для того чтобы можно было посмотреть как ваш аддон будет выглядеть, например на европейских серверах или на японском сервере. Или если вы играете на европейском, то можете задать для аддонов русскую локализацию и они в нее переключатся.

так же из AddonsMenu можно вызвать основное меню аддонов поддерживающих AOPANEL вызовы, а сам аддон AOPANEL при этом не нужен.

Еще ваш аддон получает текущее значение локализации через SetGameLocalization, которая описана в

<Item href="/Mods/Addons/AddonsTools/Scripts/LocalesLIB.luac" />

В добавок при использовании AddonsMenu вы получаете набор готовых виджетов (содержащихся в глобальной переменной dsc), благодаря чему можно создавать новые виджеты "на лету" по их описаниям, например такой командой:

--- описание функции (ScriptLIB): w = WCD(descr, name, parent, place, show )

n = WCD( dsc.Text, "Text1_txt", wParent, { alignX = 0, alignY = 0, sizeX = 200, }, true )

Еще задавать параметры для аддонов прямо из контекстного меню AddonsMenu, пример использования см. в Example2.zip. Тоесть ваш аддон может вообще не иметь ни одной формы или меню, а все настройки задавать через AddonsMenu. Например так:

Amenu3.jpg

Пример (шаблон аддона) с использованием AddonsMenu и AddonsTools находится в архиве Example1.zip и Example2.zip (более свежая версия)

AddonsMenu вызывается двойным кликом мышки по часам, которые я заимствовала из аддона PhanTime (автор Phantasmagor)

в параметрах используется (возвращаются из setAMSupport():

desc = L("описание этого аддона"),

on_click_hide = true, -- hide AddonsMenu when to show me - скрывать ли меню аддонов при нажатии на пункт меню

AT-am1.jpg

DnD for old versions

ДнД для старых версий

Теперь можно взять файл библиотеки для ДнД из \Scripts\LibDnD.lua и скопировать его в папку вашего или старого аддона - тогда станет работать событие по запрету ДнД из настроек АТ для этого аддона


 

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

вот так выглядит меню AddonsMenu

через него можно управлять аддонами

AT-am2.jpg
Ссылка на комментарий
Поделиться на другие сайты

Для работы с AT вашему аддону нужны файлы:

ScriptLIB.luac - библиотека. Этот файл уже расположен в папке АТ, просто указать на него путь. Там много полезных функци, которые вы тоже можете с успехом использовать в своем аддоне.

AddonsMenuClient.lua - клиент для AddonsMenu. Этот файл уже расположен в папке АТ, просто указать на него путь.

LocalesLIB.luac - функция для переключения локализаций. Этот файл уже расположен в папке АТ, просто указать на него путь.

Locales.lua - здесь должны быть ваши локализации. Если локализаций нету - то возьмите шаблон из Example1

AddonsTools_Support.lua - взаимодействие с АТ - настройка вызовов функций вашего аддона и информация об вашем аддоне

Дополнительно можно использовать:

LibDnD_ic.luac - DnD библиотека - отличие от LibDnD.lua в том что вам не нужно задавать уникальный номер виджета при вызове DnD:Init(...) - библиотека сама его создаст. Этот файл уже расположен в папке АТ, просто указать на него путь.

menuCls2.luac - библиотека для созданий Меню в ваших аддонах (смотри Example1,2) - упрощает создание своих собственных меню с настройками или просто выбором. Этот файл уже расположен в папке АТ, просто указать на него путь.

Для подключения модулей, описанных выше, в AddonDesc.(UIAddon).xdb нужно вставить:

Code:
    <Item href="/Mods/Addons/AddonsTools/Scripts/ScriptLIB.luac" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/LibDnD_ic.luac" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/menuCls2.luac" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/LocalesLIB.luac" />

    <Item href="Scripts/AddonsTools_Support.lua" />

    <Item href="/Mods/Addons/AddonsTools/Scripts/AddonsMenuClient.luac" />

    <!-- your scripts here -->

    <Item href="Locales/Locales.lua" />

Для упрощения встраивания взаимодействий с АТ в ваш аддон, файл AddonsTools_Support.lua содержит только вызовы ваших функций, описание вашего аддона и включение отладочного режима. Просто задайте соответствующие переменные как показано ниже:

Code:
function getAM_log()

return false  ---- false or true:: log events|handlers in chat or not

end

function setAMSupport()

LogToChat("setAMSupport")

return { 

-----------------------------------------------------------

------------------------------------------------- EDIT HERE:

-----------------------------------------------------------

--- Insert here Your own functions

-- initialize this addon when confirmed start:

ThisAddonInit = choice.Init,

-- save a settings if need before unload:

SaveToConfig = nil,

-- if this addon unload any others addons then load they:

LoadAllUnloadedAddons = nil,

-- when clicked on a "Addons Menu" item - to show the mainForm

---  pars = { sender = item.name, wBase = item.widgets ["mnu_"]  } : 

AOBClick = MainShowToggle,

-- when right mouse clicked on a "Addons Menu" item:

---  pars = { sender = item.name, wBase = item.widgets ["mnu_"]  } : 

AOBRightClick = LogShowToggle, --function() LogToChat(common.GetAddonName().." Right Click") end,

-- when double clicked on a "Addons Menu" item:

---  pars = { sender = item.name, wBase = item.widgets ["mnu_"]  } : 

AOBDoubleClick = nil, --function() LogToChat(common.GetAddonName().." Double Click") end,

},

-- [[ DESCRIBE Your addon here.

parameters:

sender = common.GetAddonName() -- addon name

desc - addon description

showSettingsButton

showDNDButton 

] ]

  {

desc = L("Loot Manager - automatic make choice when roll loot and ect."),

showSettingsButton = false, showDNDButton = false

}

end

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

так же ваш аддон должен содержать файлы:

ErrorText.(WidgetTextView).xdb и ErrorText.txt

в

MainForm.(WidgetForm).xdb

Code:
<Children>

<Item href="ErrorText.(WidgetTextView).xdb#xpointer(/WidgetTextView)" />

это нужно чтобы пользователь у которого не установлен AddonsTools смог это разу понять по надписи на экране

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

В правом верхнем углу появилась кнопка с крестиком, закрывающая собой индикатор сети... Не сдвигается, функционала на себе не несет...

20.09.jpg
Ссылка на комментарий
Поделиться на другие сайты

Пример ( шаблон ) в архиве Example1.zip

на его основе очень просто создать свой аддон с меню и полным взаимодействием с AddonsTools

1. Распакуйте Example1.zip в папку /Mods (или /Addons) так чтобы папка Example1 появилась в паке /Addons. Должно получиться так:

C:\Program Files\Games\Allods Online\data\Mods\Addons\Example1

1а. Затем переименуйте паку Example1 в новое имя.

2. Переименуйте название аддона в новое. Это делается изменением тега Name в файле AddonDesc.(UIAddon).xdb:

Code:
 <Name>Example1</Name>

- просто поставьте вместо Example1 имя своего аддона - оно должно совпадать с именем папки

3. откройте файл MainForm.(WidgetForm).xdb в папке GUI и переименуйте его так же - оно должно совпадать с именем папки

Code:
<Name>Example1</Name>

4. запустите игру и откройте окно нового вашего аддона через AddonsMenu

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

спасибо - просто забыла в описание виджета dscButtonCornerCross.(WidgetButton).xdb

<Visible>false</Visible>

вставить

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

далее см описание класса Меню

menuCls

и библиотеки ScriptLIB

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

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

Allods_110921_225154.jpg
Ссылка на комментарий
Поделиться на другие сайты

добавила DnD к меню - таскать можно за заголовки и края.

раскрасила чуток

AT-AM-4.jpg
Ссылка на комментарий
Поделиться на другие сайты

подсказки теперь можно делать форматируемыми. Для этого параметр tip должен содержать таблицу параметрами:

Code:
{ format = WString-- формат,

 values = {}, -- таблица поле=значение

 len = N -- добавочная длина строки - если в формате есть символы

 }

Пример:

Code:
local tipFrmt = "<html alignx='left' aligny='middle' fontsize='14' shadow='1'><log_dark_white>"..

"<tip_blue><r name='memTxt'/></tip_blue> <tip_golden><r name='memVal'/></tip_golden>K. <r name='descr'/></log_dark_white></html>"

...

tip = { format = tipFrmt, values = { memTxt = L("Used memory:"), memVal = mem.."", descr = descr }, len = 4 }

результат выглядит так:

AT-AM-4.jpg

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

добавила параметры к меню - сдвиг часовой зоны - для часов там

AT-AM-p.jpg
Ссылка на комментарий
Поделиться на другие сайты

новая версия класса menuCls для быстрого создания меню в ваших аддонах и пример ее использования в Example2.zip - меню2 отличается более понятной структурой, в своих аддонах лучше пользуйтесь 2й версией

в примере показано как осуществлять локализацию "на лету" - как значений полей так и наклеек пунктов меню

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

пример использования находится в Example2.zip

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

Code:
заначение поля хранится в:

.value

получить данные - при начальном создании меню или когда делается показ меню - Update():

.valGet = function(item) or table [item.name] 

- результат будет записан в .value

при изменении данных пользователем:

.valOnSet = function(item)

функция вызываемая после изменения данных в меню ( после нажатия на пункт меню)

.onSet = function(item)

для показа значения в поле меню:

1. изменение значениея до форматировани - наклейки для значений

.valLabels = function(item) or table [item.name] 

- результат запишется в локальную

VAL = 

2. выбираем формат для показа данных по VAL для SetFormat():

.valFormats = table [VAL] 

3. изменяем занчениие еще раз (Обычно это для локализации нужно):

.valShapes = function(VAL) or table [VAL] 

- результат выводится в поле по :SetVal()

для ярлыкоа пунктов меню:

.label - тектовое значение

.labelShapes = function(label) or table [label] 

- меняет ярлык - обычно для локализации

если у поля нет своей функции то она берется общая из самого меню:

if item.valGet then

elseif item.parent.valGet then

end

if item.labelShapes then

elseif item.parent.labelShapes then

end

если это пункт без значений - как оманда то функция по клику хранится в:

.onClick = function( item )

--- порядок вызова внешних функций при нажатии на пункт меню / изменении данных 

local onClick = item.onClick or item.valOnSet or obj.valOnSet or obj.onClick

if onClick then onClick( item, pars ) end

]]

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

  • 2 недели спустя...

после ресайза окна - часы теряются, а меню показывается вообще за пределами экрана :)

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

добавлены быстрые кнопки для аддонов - настроить можно по контекстному меню (правя кнопка на пункте меню)

AT-fb.jpg
Ссылка на комментарий
Поделиться на другие сайты

с этим думаю у всех аддонов проблемы

надо событие ловить и все перерисовывать (

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

Кнопки работают только с совместимыми аддонами я так полагаю? Потому что для FittingRoom кнопка появляется, но она не работает.

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

если вы не используете

AddonsMenuClient.lua и menuCls.lua

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

файл приложен тут

File: Z1JHbe0edcoli4J.zip

какие параметры передаются по событиям можно глянуть в файле AddonsMenuClient.lua

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

ВНИМАНИЕ!
Обязательна информация из \Personal\Logs\mods.txt для диагностики ошибки.
Иначе вам не помочь.
В игре включите в Меню → Интерфейс → Общие настройки → Запись ошибок пользовательских дополнений. Затем запустите аддон в игре.
Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования