menu

Статус
В этой теме нельзя размещать новые ответы.

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
Сделал плагин меню всё отлично по коду! Но когда в консоле введу menu и появляется само меню но! но!, там только 1. и ! там где ! должно быть название но его нет, там где 1 там должет быть сам код case 1: spawn(id), Но там только 1 и 2 пункта нету
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "menu"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("menu", "menu1")
}

public menu1(id)
{
    new menu1 = menu_create("Меню звезды!", "menu_handled")
    menu_additem(menu1, "Возродится!", "1")
    menu_additem(menu1, "Грава", "2")
    
    menu_setprop(menu1, MPROP_EXITNAME, "Выход")
    
    menu_display(id, menu1, 0)
    
    return PLUGIN_HANDLED;
}
public menu_handled(id, menu1, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu1)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64], access, callback
    
    menu_item_getinfo(menu1, item, access, data, 5, iName, 63, callback);
    
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            spawn(id)   
        }
        case 2:
        {
            set_user_gravity(id, 0.3)
        }
    }
    return PLUGIN_HANDLED
}
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
Переделай в UTF-8 без BOM
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
3Be3Da, Значит не правильно делал. Проблема только в этом
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Сделал плагин меню всё отлично по коду! Но когда в консоле введу menu и появляется само меню но! но!, там только 1. и ! там где ! должно быть название но его нет, там где 1 там должет быть сам код case 1: spawn(id), Но там только 1 и 2 пункта нету
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>

#define PLUGIN "menu"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    register_clcmd("menu", "menu1")
}

public menu1(id)
{
    new menu1 = menu_create("Меню звезды!", "menu_handled")
    menu_additem(menu1, "Возродится!", "1")
    menu_additem(menu1, "Грава", "2")
   
    menu_setprop(menu1, MPROP_EXITNAME, "Выход")
   
    menu_display(id, menu1, 0)
   
    return PLUGIN_HANDLED;
}
public menu_handled(id, menu1, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu1)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64], access, callback
   
    menu_item_getinfo(menu1, item, access, data, 5, iName, 63, callback);
   
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            spawn(id)  
        }
        case 2:
        {
            set_user_gravity(id, 0.3)
        }
    }
    return PLUGIN_HANDLED
}
Чисто как пример.
Код:
#include <amxmodx>

new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2

public plugin_init()
{
    register_plugin("Menu", "1.0", "0l0l0")
    register_clcmd("say /menu", "menu")
    register_menucmd(register_menuid("Menu"), keys, "show_menu")
}

public menu(id)
{
    static menu[1024], len; len = 0
    client_cmd(id, "spk buttons/lightswitch2")
    len = formatex(menu[len], charsmax(menu) - len, "\r[\yServer Menu\r] \wМеню сервера^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r1. \wВозродится!^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r2. \wГравитация^n")
    len += formatex(menu[len], charsmax(menu) - len, "\r0. \wВыход")
    show_menu(id, keys, menu, -1, "Menu")
}

public show_menu(id, key)
{
    client_cmd(id, "spk buttons/lightswitch2")
    switch(key)
    {
        case 0: spawn(id)
        case 1: set_user_gravity(id, 0.3)
    }
}
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
Сделал своё первое вип меню. Не работает взять авп и взять м4а1 берётся дигл и гранаты...
код
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN "menu"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("vipmenu", "vipmenu")
    register_clcmd("say vipmenu", "vipmenu")
    register_clcmd("say /vipmenu", "vipmenu")
    register_clcmd("say мшзьутг", "vipmenu")
    register_clcmd("say /мшзьутг", "vipmenu")
}

public vipmenu(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    
    {
    new vipmenu = menu_create("\rВип Меню", "menu_handled")
    menu_additem(vipmenu, "\yВозродится!", "1")
    menu_additem(vipmenu, "\yВзять \rак", "2")
    menu_additem(vipmenu, "\yВзять \rM4A1", "3")
    menu_additem(vipmenu, "\yВзять \rAWP", "4")
    menu_additem(vipmenu, "\yВзять \r FAMAS", "5")

    menu_setprop(vipmenu, MPROP_EXITNAME, "Выход")
    
    menu_display(id, vipmenu, 0)
    
    return PLUGIN_HANDLED;
    }
}
public menu_handled(id, vipmenu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(vipmenu)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64], access, callback
    
    menu_item_getinfo(vipmenu, item, access, data, 5, iName, 63, callback);
    
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            if(!is_user_alive(id))
            spawn(id)
        }
        case 2:
        {
            if(!is_user_alive(id))
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)           
        }
        case 3:
        {
            if(!is_user_alive(id))
            give_item(id, "weapon_m4a1")
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_M4A1, 90)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 4:
        {
            if(!is_user_alive(id))
            give_item(id, "weapon_awp")
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_AWP, 20)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 5:
        {
            if(!is_user_alive(id))
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            give_item(id, "weapon_famas")
            cs_set_user_bpammo(id, CSW_FAMAS, 85)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
    }
    return PLUGIN_HANDLED
}
[DOUBLEPOST=1521655588][/DOUBLEPOST]И ещё кому не сложно кинь статью как прописать модельку! к оружию
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
3Be3Da, Если игрок мертв, выдать ему оружие. Как тебе это? Если условие больше 1 строчки, то его надо брать в такую хрень { }
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
Опишу один пример:
Код:
        case 3:
        {
            if(is_user_alive(id))
            {
                give_item(id, "weapon_m4a1")
                give_item(id, "weapon_deagle")
                give_item(id, "weapon_hegrenade")
                give_item(id, "weapon_flashbang")
                give_item(id, "weapon_flashbang")
                give_item(id, "weapon_smokegrenade")
                cs_set_user_bpammo(id, CSW_M4A1, 90)
                cs_set_user_bpammo(id, CSW_DEAGLE, 35)
            }
            else
            {
                client_print(id, print_chat, "Доступно только для живых игроков!")
            }
        }
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
Привет всем!) Мои дорогие скриптеры. Я сделал свой первый вип меню но хочу вписать модельку оружия в плагин. Вот как это сделать? вот стате мой випменю если можно код для приписки модельки отдельно написать
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN "menu"
#define VERSION "1.0"
#define AUTHOR "3Be3Da"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("vipmenu", "vipmenu")
    register_clcmd("say vipmenu", "vipmenu")
    register_clcmd("say /vipmenu", "vipmenu")
    register_clcmd("say мшзьутг", "vipmenu")
    register_clcmd("say /мшзьутг", "vipmenu")
}

public vipmenu(id)
{
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    
    {
    new vipmenu = menu_create("\rВип Меню", "menu_handled")
    menu_additem(vipmenu, "\yВозродится!", "1")
    menu_additem(vipmenu, "\yВзять \rак", "2")
    menu_additem(vipmenu, "\yВзять \rM4A1", "3")
    menu_additem(vipmenu, "\yВзять \rAWP", "4")
    menu_additem(vipmenu, "\yВзять \r FAMAS", "5")

    menu_setprop(vipmenu, MPROP_EXITNAME, "Выход")
    
    menu_display(id, vipmenu, 0)
    
    return PLUGIN_HANDLED;
    }
}
public menu_handled(id, vipmenu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(vipmenu)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64], access, callback
    
    menu_item_getinfo(vipmenu, item, access, data, 5, iName, 63, callback);
    
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            if(!is_user_alive(id))
            spawn(id)
        }
        case 2:
        {
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            give_item(id, "weapon_ak47")
            cs_set_user_bpammo(id, CSW_AK47, 90)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)           
        }
        case 3:
        {
            give_item(id, "weapon_m4a1")
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_M4A1, 90)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 4:
        {
            give_item(id, "weapon_awp")
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            cs_set_user_bpammo(id, CSW_AWP, 20)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
        case 5:
        {
            give_item(id, "weapon_deagle")
            give_item(id, "weapon_hegrenade")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_flashbang")
            give_item(id, "weapon_smokegrenade")
            give_item(id, "weapon_famas")
            cs_set_user_bpammo(id, CSW_FAMAS, 85)
            cs_set_user_bpammo(id, CSW_DEAGLE, 35)
        }
    }
    return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
C++:
   register_clcmd("say мшзьутг", "vipmenu")
   register_clcmd("say /мшзьутг", "vipmenu")
Я же тебе говорил, что просто это не сделать. Тебе нужно выдавать оружие, которое уже со скином, а не выдавать оружие и прикручивать к нему скин. Делать лучше нативом, иначе в сам вип плагин впихивать лишний код
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
Новый код,модели грузит но не заменяет. Меню беру ак он не заменён

Код:
/* Plugin generated by AMXX-Studio */



#include <amxmodx>

#include <fun>

#include <cstrike>

#include <hamsandwich>



#define PLUGIN "menu"

#define VERSION "1.0"

#define AUTHOR "3Be3Da"

#define models/vipmenu3Be3Da/v_ak473Be3Da.mdl

#define models/vipmenu3Be3Da/v_m4a13Be3Da.mdl

#define models/vipmenu3Be3Da/v_deagle3Be3da.mdl

#define models/vipmenu3Be3Da/v_awp3Be3Da.mdl





public plugin_init() {

    register_plugin(PLUGIN, VERSION, AUTHOR)

  

    register_clcmd("vipmenu", "vipmenu")

    register_clcmd("say vipmenu", "vipmenu")

    register_clcmd("say /vipmenu", "vipmenu")

    register_clcmd("say мшзьутг", "vipmenu")

    register_clcmd("say /мшзьутг", "vipmenu")

}

public plugin_precache()

{

    precache_model("models/vipmenu3Be3Da/v_ak473Be3Da.mdl")

    precache_model("models/vipmenu3Be3Da/v_m4a13Be3Da.mdl")

    precache_model("models/vipmenu3Be3Da/v_deagle3Be3da.mdl")

    precache_model("models/vipmenu3Be3Da/v_awp3Be3Da.mdl")

}

public vipmenu(id)

{

    if(get_user_flags(id) & ADMIN_LEVEL_H)

  

    {

    new vipmenu = menu_create("\rВип Меню", "menu_handled")

    menu_additem(vipmenu, "\yВозродится!", "1")

    menu_additem(vipmenu, "\yAk-47 \rак", "2")

    menu_additem(vipmenu, "\yВзять \rM4A1", "3")

    menu_additem(vipmenu, "\yВзять \rAWP", "4")

    menu_additem(vipmenu, "\yВзять \r FAMAS", "5")



    menu_setprop(vipmenu, MPROP_EXITNAME, "Выход")

  

    menu_display(id, vipmenu, 0)

  

    return PLUGIN_HANDLED;

    }

}

public menu_handled(id, vipmenu, item)

{

    if(item == MENU_EXIT)

    {

        menu_destroy(vipmenu)

        return PLUGIN_HANDLED

    }

    new data[6], iName[64], access, callback

  

    menu_item_getinfo(vipmenu, item, access, data, 5, iName, 63, callback);

  

    new key = str_to_num(data)

    switch(key)

    {

        case 1:

        {

            if(!is_user_alive(id))

            spawn(id)

        }

        case 2:

        {

            give_item(id, "weapon_deagle")

            give_item(id, "weapon_hegrenade")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_smokegrenade")

            give_item(id, "weapon_ak47")

            cs_set_user_bpammo(id, CSW_AK47, 90)

            cs_set_user_bpammo(id, CSW_DEAGLE, 35)           

        }

        case 3:

        {

            give_item(id, "weapon_m4a1")

            give_item(id, "weapon_deagle")

            give_item(id, "weapon_hegrenade")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_smokegrenade")

            cs_set_user_bpammo(id, CSW_M4A1, 90)

            cs_set_user_bpammo(id, CSW_DEAGLE, 35)

        }

        case 4:

        {

            give_item(id, "weapon_awp")

            give_item(id, "weapon_deagle")

            give_item(id, "weapon_hegrenade")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_smokegrenade")

            cs_set_user_bpammo(id, CSW_AWP, 20)

            cs_set_user_bpammo(id, CSW_DEAGLE, 35)

        }

        case 5:

        {

            give_item(id, "weapon_deagle")

            give_item(id, "weapon_hegrenade")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_flashbang")

            give_item(id, "weapon_smokegrenade")

            give_item(id, "weapon_famas")

            cs_set_user_bpammo(id, CSW_FAMAS, 85)

            cs_set_user_bpammo(id, CSW_DEAGLE, 35)

        }

    }

    return PLUGIN_HANDLED

}
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
3Be3Da, ты их просто подключил, но не использовал
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской

Fantomas17

Пользователь
Регистрация
11 Июл 2017
Сообщения
137
Симпатии
20
Пол
Мужской
точно ты плагин этот писал, судя по тому какие вопросы ты задаешь , складывается впечатление что ты плагин спер и просто прописал в нем свое авторство
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
точно ты плагин этот писал, судя по тому какие вопросы ты задаешь , складывается впечатление что ты плагин спер и просто прописал в нем свое авторство
Писал сам,но вписывать модель неумею
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
3Be3Da, Пример для смены модели ножа:
C++:
#include <amxmodx>
#include <fakemeta>

new VIEW_MODEL[]    = "models/v_newKnife.mdl"
new PLAYER_MODEL[]    = "models/p_newKnife.mdl"
new WORLD_MODEL[]    = "models/w_knife.mdl"

new OLDWORLD_MODEL[]    = "models/w_knife.mdl"

new PLUGIN_NAME[]        = "Custom Knife Model"
new PLUGIN_AUTHOR[]    = "Cheap_Suit"
new PLUGIN_VERSION[]     = "1.0"

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)     
    register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
    register_forward(FM_SetModel, "fw_SetModel")
}

public plugin_precache()
{   
    precache_model(VIEW_MODEL)     
    precache_model(PLAYER_MODEL)
    precache_model(WORLD_MODEL)
}

public Event_CurWeapon(id)
{     
    new weaponID = read_data(2)

    if(weaponID != CSW_KNIFE)
        return PLUGIN_CONTINUE

    set_pev(id, pev_viewmodel2, VIEW_MODEL)
    set_pev(id, pev_weaponmodel2, PLAYER_MODEL)
    
    return PLUGIN_CONTINUE
}

public fw_SetModel(entity, model[])
{
    if (!pev_valid(entity))
        return FMRES_IGNORED

    if (!equali(model, OLDWORLD_MODEL))
        return FMRES_IGNORED

    new className[33]
    pev(entity, pev_classname, className, 32)
    
    if (equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
    {
        engfunc(EngFunc_SetModel, entity, WORLD_MODEL)
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}
 

3Be3Da

Пользователь
Регистрация
14 Авг 2017
Сообщения
131
Симпатии
3
Предупреждения
30
Пол
Мужской
3Be3Da, Пример для смены модели ножа:
C++:
#include <amxmodx>
#include <fakemeta>

new VIEW_MODEL[]    = "models/v_newKnife.mdl"
new PLAYER_MODEL[]    = "models/p_newKnife.mdl"
new WORLD_MODEL[]    = "models/w_knife.mdl"

new OLDWORLD_MODEL[]    = "models/w_knife.mdl"

new PLUGIN_NAME[]        = "Custom Knife Model"
new PLUGIN_AUTHOR[]    = "Cheap_Suit"
new PLUGIN_VERSION[]     = "1.0"

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)    
    register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
    register_forward(FM_SetModel, "fw_SetModel")
}

public plugin_precache()
{  
    precache_model(VIEW_MODEL)    
    precache_model(PLAYER_MODEL)
    precache_model(WORLD_MODEL)
}

public Event_CurWeapon(id)
{    
    new weaponID = read_data(2)

    if(weaponID != CSW_KNIFE)
        return PLUGIN_CONTINUE

    set_pev(id, pev_viewmodel2, VIEW_MODEL)
    set_pev(id, pev_weaponmodel2, PLAYER_MODEL)
   
    return PLUGIN_CONTINUE
}

public fw_SetModel(entity, model[])
{
    if (!pev_valid(entity))
        return FMRES_IGNORED

    if (!equali(model, OLDWORLD_MODEL))
        return FMRES_IGNORED

    new className[33]
    pev(entity, pev_classname, className, 32)
   
    if (equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
    {
        engfunc(EngFunc_SetModel, entity, WORLD_MODEL)
        return FMRES_SUPERCEDE
    }
    return FMRES_IGNORED
}
НО для этого новый плагин нужно писаь
 

Mandar1n

theRoone
Пользователь
Регистрация
13 Янв 2018
Сообщения
394
Симпатии
70
Пол
Мужской
3Be3Da, а я тебе о чем и говорю. Впихивать лишний код, либо подключать нативное оружие
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу