Русское сообщество по скриптингу

Новая система меню AMXX

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Новая система меню AMXX

Сообщение DJ_WEST » 28 окт 2009, 15:15

Автор: Emp`
Перевод и редактирование: DJ_WEST

В данной статье рассказывается и показываются примеры по созданию нового игрового меню через AMX Mod X.
  • Если вы создается меню, опции которого не изменяются (постоянные), то лучше всего создать его, как глобальное. Не нужно его уничтожать и заново создавать по несколько раз.
  • Если небходимо выровнять текст в меню по правому краю, то используйте \R.
  • Меню не будет показываться, если у него нет опций.
  • Для того чтобы убрать отображение меню у игрока на экране, можно использовать код:
    Код: Выделить всё
    show_menu(id, 0, "^n", 1) 
  • Список цветов, которые можно использовать при создании меню:
    • Белый - \w
    • Желтый - \y
    • Красный - \r
    • Серый - \d

Функции:
  • Создание меню
    Код: Выделить всё
    menu_create(title[], handler[], ml=0) 

    title - заголовок меню, который отображается сверху.
    handler - функция, с которой будет происходить взаимодействие, когда произошло нажатие одной из опций.
    ml - использовать мультиязычность при формировании меню.
  • Добавление опции меню
    Код: Выделить всё
    menu_additem(menu, const name[], const command[], paccess=0, callback=-1) 

    menu - меню, с которым мы будем взаимодействовать.
    name - название опции меню (нумерация происходит автоматически).
    command - информация, которую мы посылаем при использовании данной опции.
    paccess - уровень доступа к данной опции (флаг администратора).
    callback- если данная опция установлена (это должен быть результат функции menu_makecallback), то будет вызов функции до вывода опции на экран, что даст возможность изменить опцию в реальном времени.
  • Установка свойств меню
    Код: Выделить всё
    menu_setprop(menu, prop, ...) 

    menu - меню, с которым мы будем взаимодействовать.
    prop - свойство меню.
  • Отображение меню
    Код: Выделить всё
    menu_display(id, menu, page) 

    id - индекс игрока, которому мы должны показать меню.
    menu - меню, которое необходимо показать.
    page - страница меню, с которой начинается отображение.
  • Уничтожение меню
    Код: Выделить всё
    menu_destroy(menu) 

    menu - меню, которое нужно уничтожить. После вызова данной функции необходимо использовать return PLUGIN_HANDLED.
  • Получение информации об опции меню
    Код: Выделить всё
    menu_item_getinfo(menu, item, &access, command[], cmdlen, name[]="", namelen=0, &callback)
     

    menu - меню, из которого необходимо получить информацию.
    item - опция, о которой необходимо получить информацию.
    access - уровень доступа для указанной опции.
    command - данные, передаваемые данной опцией.
    cmdlen - длина данных.
    name - название опции меню.
    namelen - длина названия.
    callback - значение callback.
  • Добавление пустой опции (пробел)
    Код: Выделить всё
    menu_addblank(menu, slot=1) 

    menu - меню, с которым необходимо произвести действие.
    slot - если значение больше 0, то увеличивает пробелы в данном количестве раз.
    Можно использовать только после menu_additem.
  • Отменить меню у игрока
    Код: Выделить всё
    menu_cancel(player) 

    player - игрок, у которого необходимо отменить действие меню, меню останется на экране игрока, но любое действие будет анулировано.
  • Количество опций в меню
    Код: Выделить всё
    menu_items(menu) 

    menu - меню, у которого необходимо получить кол-во опций.
  • Количество страниц в меню
    Код: Выделить всё
    menu_pages(menu) 

    menu - меню, у которого необходимо получить кол-во страниц.
  • Установить callback на опцию меню
    Код: Выделить всё
    menu_item_setcall(menu, item, callback=-1) 

    menu - меню, с которым происходит взаимодействие.
    item - опция меню.
    callback - значение для callback.
  • Установить команду на опцию меню
    Код: Выделить всё
    menu_item_setcmd(menu, item, cmd[]) 

    menu - меню, с которым происходит взаимодействие.
    item - опция меню.
    cmd - команда опции.
  • Установить название опции меню
    Код: Выделить всё
    menu_item_setname(menu, item, name[]) 

    menu - меню, с которым происходит взаимодействие.
    item - опция меню.
    name - название опции.
  • Создание callback функции
    Код: Выделить всё
    menu_makecallback(function[]) 

    function - название функции для callback.
    Данная функция передает аргументы id игрока, id меню и id опции:
    Код: Выделить всё
    public function(id, menu, item) 

    Функция может возвращать следующие значения: ITEM_IGNORE, ITEM_ENABLED или ITEM_DISABLED.

Создание базисного меню (основной пример)
Код: Выделить всё
#include <amxmodx>

public plugin_init()
{
    // Данные вашего плагина

    // Клиентская команда для вызова меню
    register_clcmd("my_menu", "My_Menu")
}

// Создадим функцию, которая будет формировать меню
public My_Menu(id)
{
    // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем
    new i_Menu = menu_create("\rTitle of my menu:", "menu_handler")

    // Теперь добавим некоторые опции для меню
    menu_additem(i_Menu, "\wFirst option #1", "1", 0)
    menu_additem(i_Menu, "\wSecond option #2", "2", 0)
    menu_additem(i_Menu, "\wAdmin option #3", "3", ADMIN_ADMIN)

    // Устанавливаем свойства меню
    menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)

    // Отображение меню игроку
    menu_display(id, i_Menu, 0)
 }

// Создадим теперь функцию обработки действий меню
public menu_handler(id, menu, item)
{
    // Если игрок нажал выход из меню
    if (item == MENU_EXIT)
    {
        // Уничтожение меню
        menu_destroy(menu)
        
        return PLUGIN_HANDLED
    
}

    // Теперь создадим переменные, необходимые для получения информации о меню и нажатой опции
    new s_Data[6], s_Name[64], i_Access, i_Callback

    
// Получаем информацию об опции
    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    // Если посмотреть раньше на использовании menu_additem, то можно увидеть, что мы посылали некоторую информацию
    // В данном случае вся информация - целочисленная
    new i_Key = str_to_num(s_Data)

    // Теперь найдем, какая именно опция была использована
    switch(i_Key)
    {
        case 1:
        {
            client_print(id, print_chat, "You selected first option")
            // Уничтожение меню
            menu_destroy(menu)
            return PLUGIN_HANDLED
        
}
        case 2:
        {
            client_print(id, print_chat, "You selected second option")
        }
        case 3:
        {
            client_print(id, print_chat, "You selected admin option")
        }
    }

    // Уничтожение меню
    menu_destroy(menu)
    return PLUGIN_HANDLED
 
}
 


Создание меню, сформированного из игроков на сервере
Код: Выделить всё
#include <amxmodx>
#include <fun>

public plugin_init()
{
    // Клиентская команда для вызова меню
    register_clcmd("my_menu", "My_Menu")
}

public My_Menu(id)
{
    // Сперва необходимо создать переменную для меню, с которой мы будем взаимодействовать в дальнейшем
    new i_Menu = menu_create("\rPlayer menu:", "menu_handler")

    // Необходимые переменные, которые понадобятся нам при выводе меню из игроков
    new s_Players[32], i_Num, i_Player

    
// Переменные для хранения информации об игроках
    new s_Name[32], s_Player[10]

    // Получаем массив игроков
    get_players(s_Players, i_Num)

    // Цикл по всем игрокам
    for (new i; i < i_Num; i++)
    { 
        
// Сохраняем текущего игрока в i_Player
        i_Player = s_Players[i]

        // Получаем имя и ID игрока
        get_user_name(i_Player, s_Name, charsmax(s_Name))
        num_to_str(i_Player, s_Player, charsmax(s_Player))

        // Добавляем опцию по данному игроку
        menu_additem(i_Menu, s_Name, s_Player, 0)

    }

    // Мы сформировали меню из игроков, присутствующих на сервере, теперь выводим его
    menu_display(id, i_Menu, 0)
}
 
public menu_handler
(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    // Получаем ID игрока, который был выбран в меню
    new i_Player = str_to_num(s_Data)

    // Проверяем, если игрок живой
    if (is_user_alive(i_Player))
        // Устанавливаем его здоровье в 100 HP
        set_user_health(i_Player, 100)

    menu_destroy(menu)
    return PLUGIN_HANDLED
 
} 


Создание меню для голосования
Код: Выделить всё
#include <amxmodx>

// Для хранения меню голсоований
new g_VoteMenu
// Для хранения голосов за каждую опцию
new g_Votes[2]
// Для проверки, если голосование уже запущено
new g_Voting

public plugin_init
()
{
    register_clcmd("start_vote", "StartVote")
}
 
public StartVote
(id)
{
    // Если голосование уже запущено, то выходим
    if (g_Voting)
    {
        client_print(id, print_chat, "There is already a vote going.")
        // Мы возвращаем PLUGIN_HANDLED, чтобы в консоли игрока не было сообщения unknown command
        return PLUGIN_HANDLED
    
}

    g_VoteMenu = menu_create("\rVote Menu:", "menu_handler")

    menu_additem(g_VoteMenu, "Vote Option 1", "0", 0)
    menu_additem(g_VoteMenu, "Vote Option 2", "1", 0)
    
    new s_Players
[32], i_Num, i_Player
    get_players
(s_Players, i_Num)

    for (new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]

        menu_display(i_Player, g_VoteMenu, 0)

        // Увеличиваем, чтобы узнать сколько игроков голосуют
        g_Voting++
    }

    // Останавливаем голосование через 10 секунд
    set_task(10.0, "EndVote")

    return PLUGIN_HANDLED
}
 
public menu_handler
(id, menu, item)
{
    if (item == MENU_EXIT)
        return PLUGIN_HANDLED

    new s_Data
[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    // Полчаем информацию о том, какая опция была выбрана
    new i_Vote = str_to_num(s_Data)

    // Увеличиваем количество голосов по данной опции
    g_Votes[i_Vote]++

    return PLUGIN_HANDLED
}
 
public EndVote
()
{
     // Если первая опция набрала больше голосов, чем вторая
    if (g_Votes[0] > g_Votes[1])
        client_print(0, print_chat, "First option recieved most votes (%d)", g_Votes[0])
    // Иначе если вторая опция набрала больше голосов, чем первая
    else if (g_Votes[1] > g_Votes[0])
        client_print(0, print_chat, "Second option recieved most votes (%d)", g_Votes[1])
    // Иначе равное кол-во голосов
    else
        client_print
(0, print_chat, "The vote tied at %d votes each.", g_Votes[0])

    menu_destroy(g_VoteMenu)

    // Сбрасываем информацию о том, что игроки голосуют
    g_Voting = 0
} 


Создание меню с использованием под-меню
Код: Выделить всё
#include <amxmodx>

public plugin_init()
{
    register_clcmd( "my_menu","My_Menu")
}

public My_Menu(id)
{
    new i_Menu = menu_create("\rMy menu:", "menu_handler")

    menu_additem(i_Menu, "\wFirst option #1", "1", 0)
    menu_additem(i_Menu, "\wSub-Menu #2", "2", 0)

    menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, i_Menu, 0)
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Key 
= str_to_num(s_Data)

    switch(i_Key)
    {
        case 1:
        {
            client_print(id, print_chat, "You selected first option")
        }
        case 2:
        {
            // Открыть под-меню
            Sub_Menu(id)
        }
    }

    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public Sub_Menu(id)
{
    // Создаем новое меню, но функция обработки действий будет другая
    new i_Menu = menu_create("\rSub-Menu:", "submenu_handler")

    menu_additem(i_Menu, "\wSub-option #1", "1", 0)
    menu_additem(i_Menu, "\wSub-option #2", "2", 0)

    menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, i_Menu, 0)
}

public submenu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)

        // Если игрок на сервере, то показываем главное меню
        if (is_user_connected(id))
            My_Menu(id)

        return PLUGIN_HANDLED
    
}

    new s_Data[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Key = str_to_num(s_Data)

    switch(i_Key)
    {
        case 1:
        {
            client_print(id, print_chat, "You selected first sub-option")
        }
        case 2:
        {
            client_print(id, print_chat, "You selected second sub-option")
        }
    }

    menu_destroy(menu)

    // Если вы хотите показать главное меню потом
    My_Menu(id)

    return PLUGIN_HANDLED
} 
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3649
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2190 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Новая система меню AMXX

Сообщение Klark_Kent » 04 май 2011, 22:30

[pawn]menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
menu_setprop(i_Menu, MPROP_NEXTNAME, "Вперед") [/pawn]

Как сделать такое меню?

1...
2...
3...
4...
5...
6...
7...
8...

9. Вперед ( когда тыкаешь "ВПЕРЕД" и на след. страничке место ВПЕРЕД, Будет "НАЗАД"
0. Выход
Аватара пользователя
Klark_Kent
 
Сообщения: 63
Зарегистрирован: 14 окт 2010, 13:07
Благодарил (а): 18 раз.
Поблагодарили: 2 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Новая система меню AMXX

Сообщение fl0wer » 04 май 2011, 22:33

Klark_Kent, Используй старый способ. :boast:
Приватная сборка «Пушки и лазеры»
на ReAPI от ReDeathMatch Team

Скидка 65%.
Цена со скидкой 999 рублей (3000 рублей)
Аватара пользователя
fl0wer
 
Сообщения: 1542
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 228 раз.
Поблагодарили: 467 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: Новая система меню AMXX

Сообщение Klark_Kent » 04 май 2011, 22:51

Не так не пойдет(((
HELP!!!
Аватара пользователя
Klark_Kent
 
Сообщения: 63
Зарегистрирован: 14 окт 2010, 13:07
Благодарил (а): 18 раз.
Поблагодарили: 2 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Новая система меню AMXX

Сообщение Klark_Kent » 05 май 2011, 19:34

С новой меню, можно так сделать?
Аватара пользователя
Klark_Kent
 
Сообщения: 63
Зарегистрирован: 14 окт 2010, 13:07
Благодарил (а): 18 раз.
Поблагодарили: 2 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Новая система меню AMXX

Сообщение OrEJl » 19 май 2011, 22:31

WEST писал(а):Спасибо :thumbs_up
как создать условие если ты не имеешь иммунитет например то тебе пишет что у тебя недостаточно прав и не заходит в меню ?
Помогите только начал заниматься скриптингом !!

Добавлено спустя 44 минуты 58 секунд:
помогите ещё одну вещь исправить !!!
смотрите я прописал set_user_maxspeed(id, 400,0)
а когда поднимаю оружие скорость пропадает как исправить ?
Аватара пользователя
OrEJl
 
Сообщения: 1
Зарегистрирован: 25 апр 2011, 16:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Новая система меню AMXX

Сообщение Ser_UFL » 19 май 2011, 23:29

В
Создание базисного меню (основной пример)

кажется, лишнее в case 1:
[pawn]            // Уничтожение меню
            menu_destroy(menu)
            return PLUGIN_HANDLED[/pawn]
Запомните, всегда по жизни вас будут красить вежливость и спокойствие, а не наезды и дешевые понты ;)
Аватара пользователя
Ser_UFL
 
Сообщения: 977
Зарегистрирован: 22 авг 2009, 19:30
Откуда: Hell
Благодарил (а): 276 раз.
Поблагодарили: 380 раз.
Языки программирования: Counter-Strike 1.6:
WebMod-scripts, little Pawn.

Re: Новая система меню AMXX

Сообщение -=TrE=- » 06 июн 2011, 23:45

Спасибо большое , статья очень полезная , все зделал , и все получилось
А вот есть вопрос: Как зделать вот эти строки мулти-язычными?
[pawn]menu_setprop(g_MenuMPROP_NEXTNAME"Next")
menu_setprop(g_MenuMPROP_BACKNAME"Back")
menu_setprop(g_MenuMPROP_EXITNAME"Exit"[/pawn]
Ну к примеру что б бралось из словаря
8.Далее
9.Назад
0.Выход

Я пробовал зделать как написано во втором посту но что то вышла ошибка.И не скомпилировалося.А так все меню мулти-язычное зделал , кроме этих функции
Вот плагин
[pawn]#include <amxmodx>

public plugin_init()
{
    
register_dictionary("servermenu.txt")
    
register_clcmd("server_menu","server_menu");
}

public 
client_authorized(id)
{
    
client_cmd(id"bind ^"F3^" ^"server_menu^"")
}

stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4"// Green Color
    
replace_all(msg190"!y""^1"// Default Color
    
replace_all(msg190"!team""^3"// Team Color
    
replace_all(msg190"!team2""^0"// Team2 Color
    
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }
}

public 
server_menu(id)
{

    new 
szText555 char ];
    
formatexszTextcharsmaxszText ), "%L"id"MENU")
    new 
i_Menu menu_create(szText"menu_handler")

    
formatexszTextcharsmaxszText ), "%L"id"IGNOR")
    
menu_additem(i_MenuszText"1"0)
    
formatexszTextcharsmaxszText ), "%L"id"TOP")
    
menu_additem(i_MenuszText"2"0)
    
formatexszTextcharsmaxszText ), "%L"id"RANK")
    
menu_additem(i_MenuszText"3"0)
    
formatexszTextcharsmaxszText ), "%L"id"ADMINKA")
    
menu_additem(i_MenuszText"4"0)
    
formatexszTextcharsmaxszText ), "%L"id"LANGMENU")
    
menu_additem(i_MenuszText"5"0)    
    
formatexszTextcharsmaxszText ), "%L"id"ADMINMENU")
    
menu_additem(i_MenuszText"6"ADMIN_MENU)
    
    
menu_setprop(i_MenuMPROP_EXITMEXIT_ALL)

    
menu_display(idi_Menu0)
 }

public 
menu_handler(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        
        return 
PLUGIN_HANDLED
    
}

    new 
s_Data[6], s_Name[64], i_Accessi_Callback

    menu_item_getinfo
(menuitemi_Accesss_Datacharsmax(s_Data), s_Namecharsmax(s_Name), i_Callback)

    new 
i_Key str_to_num(s_Data)

    switch(
i_Key)
    {
        case 
1:
        {
            
client_cmd(id"say /mute")
        }
        case 
2:
        {
            
client_cmd(id"say /top15")
        }
        case 
3:
        {
            
client_cmd(id"say /rank")
        }
        case 
4:
        {
            
client_cmd(id"say /adminka")
        }
        case 
5:
        {
            
client_cmd(id"say /lang")
        }        
        case 
6:
        {
            
client_cmd(id"amxmodmenu")        
        }
    }

    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
 
}  [/pawn]

ЛАнг файл думаю вылаживать не надо.И можно ли както зделать что б не было биндов , а меню включалось на букву "N" ?Не хочется игрокам засорять конфиги своими биндами.
Аватара пользователя
-=TrE=-
 
Сообщения: 89
Зарегистрирован: 09 окт 2010, 00:28
Откуда: Николаев
Благодарил (а): 17 раз.
Поблагодарили: 4 раз.
Опыт программирования: Меньше недели

Re: Новая система меню AMXX

Сообщение EvilCoder » 06 июн 2011, 23:54

[pawn]menu_setprop(menu,MPROP_NEXTNAME,"Далее");
menu_setprop(menu,MPROP_BACKNAME,"Назад");
menu_setprop(menu,MPROP_EXITNAME,"Выход"); [/pawn]
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Новая система меню AMXX

Сообщение -=TrE=- » 07 июн 2011, 10:28

Нет , мне надо что б эти строки:
[pawn]menu_setprop(menu,MPROP_NEXTNAME,"Далее");
menu_setprop(menu,MPROP_BACKNAME,"Назад");
menu_setprop(menu,MPROP_EXITNAME,"Выход");  [/pawn]
Были мулти-язычными.Чтоб например я выбрал Англ язык , и из словаря мне выбирало так
[pawn]8.Back
9.Next
0.Exit 
[/pawn]
Аватара пользователя
-=TrE=-
 
Сообщения: 89
Зарегистрирован: 09 окт 2010, 00:28
Откуда: Николаев
Благодарил (а): 17 раз.
Поблагодарили: 4 раз.
Опыт программирования: Меньше недели

Re: Новая система меню AMXX

Сообщение EvilCoder » 07 июн 2011, 11:44

Что-то я... видимо старость.
[pawn]new multilang[128];

formatex(multilang,charsmax(multilang),"%L",LANG_PLAYER,"MLG_NEXTNAME");
menu_setprop(menu,MPROP_NEXTNAME,multilang);

formatex(multilang,charsmax(multilang),"%L",LANG_PLAYER,"MLG_BACKNAME");
menu_setprop(menu,MPROP_BACKNAME,multilang);

formatex(multilang,charsmax(multilang),"%L",LANG_PLAYER,"MLG_EXITNAME");
menu_setprop(menu,MPROP_EXITNAME,multilang); [/pawn]
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1961
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 41 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2