ЗАКРЫТЬ
Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Новости

30-дек
29-дек
26-дек
15-дек

11 страниц V   1 2 ... 9 10 »

Создание менюшек :)

Empower
сообщение 17.2.2009, 23:26
Сообщение #1
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Процесс создания игровых меню не очень сложный, НО ВАМ НУЖНЫ ХОТЬ КАКИЕТО НАВЫКИ РАБОТЫ с павн (прочитайте как создать свой плагин)..

Итак :)... если навики у вас есть - приступим..
Сначала нада создать переменную, в которую поместим информацию об меню:
Код
#include <amxmodx>
new menu                // оглашаем новую переменную

public plugin_init()
{
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu"); // помещяем информацию

}

Мы зделали меню с названием крутая менюшка, и которая вызываеться в функции func_menu.


Теперь создадим пункты меню, от 1 до 3, например...
Код
#include <amxmodx>
new menu

public plugin_init()
{
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")   // таким образом, можна добавить пункты          
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
}

Вот так наше меню будет выглядеть в игре:
1. Сказать привет
2. выйти с игры
3. умереть

Пунктов меню может быть до десясяти. Ето от 1 до 9 и в конце ноль..

А теперь попробуем зделать еще 1 станицу в меню:
Код
#include <amxmodx>
new menu

public plugin_init()
{
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")           
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")

    menu_setprop( menu,MPROP_PERPAGE, 3) // здесь писать скоко пукнтов на одной странице у нас ето 3

    menu_additem( menu,"Остойденитса")           
    menu_additem( menu,"открыть amxmodx меню")
}

Мы поставили 3 пункта меню на страницу (MPROP_PERPAGE) , значит когда в коде будет 3 пункта меню - четвертый автоматом добавитса на след. страницу.
Вот так наше меню будет выглядеть в игре:
Код
страница 1:                   страница 2:
1. Сказать привет         1. Остойденитса
2. выйти с игры             2. открыть amxmodx меню
3. умереть

4.back                            4.back  
5.next                            5.next
6.exit                            6.exit



Далее, надо зделать чтоб меню работали... (покачто мы зделали только текст) и ничего происходить не будет при их использывании:
Код
#include <amxmodx>
new menu

public plugin_init()
{
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
    menu_setprop( menu,MPROP_PERPAGE, 3)
    menu_additem( menu,"Остойденитса")           
    menu_additem( menu,"открыть amxmodx меню")
}

public func_menu(id, menu, key)  //функция меню всегда имеет ИД игрока(id) , инфо по меню(menu)
// и кнопку(key) которую вы нажали. (ВСЕГДА надо его туда писать если более про100)
{
  key++ // просто перепуйте ету строчку всегда

  if(key==1) client_cmd(id,"say hi")       //если нажатая кнопка 1, то игрок скажет hi
  if(key==2) client_cmd(id,"quit")    //если  2 - игрок выйдет
  if(key==3) client_cmd(id,"kill")   // 3 - игрок зделает самоубийство
  if(key==4) client_cmd(id,"disconnect") // 4 -  ето уже будет 1ый пунт на 2ой странице
  if(key==5) client_cmd(id,"amxmodx")   // 5 - откроетса amxmodx меню
}



Вот и готова наше меню ! :) Осталось показать его игроку, например когда он бует писать в консоль amx_menu...
Код
#include <amxmodx>
new menu

public plugin_init()
{
    register_plugin("Menu Test","1.0","Empower");
    menu = menu_create("Крутая менюшка","func_menu");
    menu_additem( menu,"Сказать привет")
    menu_additem( menu,"выйти с игры")
    menu_additem( menu,"умереть")
    menu_setprop( menu,MPROP_PERPAGE, 3)
    menu_additem( menu,"Остойденитса")           
    menu_additem( menu,"открыть amxmodx меню")

    register_clcmd("amx_menu","go_menu"); // командой amx_menu будет запускатса фунция go_menu
}

public func_menu(id, menu, key)
{
  key++

  if(key==1) client_cmd(id,"say hi")
  if(key==2) client_cmd(id,"quit")
  if(key==3) client_cmd(id,"kill")
  if(key==4) client_cmd(id,"disconnect")
  if(key==5) client_cmd(id,"amxmodx")
}

public go_menu(id) // когда вызываетса функция go_menu, то
{
    menu_display(id,menu) //показуем меню просто указывая игрока и перемeнную менюхи

    return PLUGIN_HANDLED
}



Вот cамые основные функции для работы с меню:
Код
peremennaya = menu_create("Название меню","funckciya") // СОЗДАТЬ МЕНЮ

menu_additem( peremennaya,"Название пункта меню")         // ДОБАВИТЬ ПУНКТ МЕНЮ

menu_addblank( peremennya,-1)                // Добавить ПРОПУСК после пункта меню (пустая строка)

menu_display(id, peremennya)                    // ПОКАЗАТЬ МЕНЮ игроку

menu_setprop( menu,MPROP_PERPAGE, ЧИСЛО)    // ЧИСЛО пунктов на страницу
//( ставь 0 если работаеш с 1 страницей)


Если я вам помог - кликните на спасибо!!
Приятного использования!!!!!! good.gif


Отредактировал: Empower, - 15.3.2009, 11:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 135 раз
   Цитировать сообщение
Fedcomp
сообщение 18.2.2009, 6:48
Сообщение #2
Стаж: 8 лет 7 месяцев

Сообщений: 3899
Благодарностей: 698
Полезность: 0

Спасибо очень четко и просто все объяснил :)
А то я с ними заморочился
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя GODZILLA
сообщение 18.2.2009, 18:00
Сообщение #3


Стаж: 9 лет 2 месяца

Сообщений: 1471
Благодарностей: 439
Полезность: 715

Да,то что ты написал полегче смотрится.

А вот как создать 2,3 страницу?

ну и еще можно добавить в самые основные функции - menu_destroy(peremennaya)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Empower
сообщение 18.2.2009, 20:00
Сообщение #4
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

По прозьбе GODZILLA добавлено как делать страницы в меню


Цитата
ну и еще можно добавить в самые основные функции - menu_destroy(peremennaya)

menu_destroy - отстой удаляет меню на половину... (токо блокирует функции, текст же оставляет)
да и он не нужен то принципе

Отредактировал: Empower, - 18.2.2009, 21:07
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя GODZILLA
сообщение 19.2.2009, 19:41
Сообщение #5


Стаж: 9 лет 2 месяца

Сообщений: 1471
Благодарностей: 439
Полезность: 715

Empower, ну я не знаю как у тебя,но у меня просле нажатия клавиши менюшка закрывается и всё номально
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 19.2.2009, 19:58
Сообщение #6
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Цитата
Empower, ну я не знаю как у тебя,но у меня просле нажатия клавиши менюшка закрывается и всё номально

пасибки за то что помогаеш.... :) может и так =) просто я на сайте разработчиков об той проблеме читал :) а сам я не пробывал... ваобше лутше закрывать меню прописывая return PLUGIN_HANDED в функции меню там где надо... но в принципе кому как удобнее здесь дело хазяйское :)

Отредактировал: Empower, - 19.2.2009, 19:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Fedcomp
сообщение 28.2.2009, 16:29
Сообщение #7
Стаж: 8 лет 7 месяцев

Сообщений: 3899
Благодарностей: 698
Полезность: 0

такс, несколько вопросов :
1. Как в зомби моде сделали красные цифры?
2. Как сделать менюшку с желтымы буквами снизу (как в amx_bans бан меню)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 28.2.2009, 23:58
Сообщение #8
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Код
\r - красный (red)
\y - жолтый (yellow)
\w - белый(white)
\d - серый (типо как недоступный пункт)


Пример:
Код
menu_additem( menu,"\yОстойденитса") -напишет отсойденитса желтым
menu_additem( menu,"\yGo \rGo \wGo")
- первое "Go" желтым, второе красным, третие белым

чтобы изменить цвет цифр:
Код
menu_setprop(menu,MPROP_NUMBER_COLOR,"/r") - цифры будут красными
menu_setprop(menu,MPROP_NUMBER_COLOR,"/y") - жолтыми


и еще цветные менюшки доступны токо с 19 патча вродьб, в патчах ниже будут иероглифы...

Отредактировал: Empower, - 1.3.2009, 0:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Fedcomp
сообщение 1.3.2009, 11:04
Сообщение #9
Стаж: 8 лет 7 месяцев

Сообщений: 3899
Благодарностей: 698
Полезность: 0

сейчас уже почти никто 19 патчем небось и не пользуется ...

так, а как сделать заголовок желтыми буквами снизу как в amx_bans меню?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 1.3.2009, 17:48
Сообщение #10
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Цитата(Fedcomp @ 1.3.2009, 11:04) *
сейчас уже почти никто 19 патчем небось и не пользуется ...

так, а как сделать заголовок желтыми буквами снизу как в amx_bans меню?

никогда не пользовалса amx_bans.. скинь скрин чтоб я понял :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя TAKsa
сообщение 3.3.2009, 7:09
Сообщение #11
Стаж: 8 лет

Сообщений: 44
Благодарностей: 11
Полезность: 193

Люди а как сделать меню закупки оружия новое.
Например я хочу чтобы были ПМ АК ППШ и т.д. ))))

Отредактировал: TAKsa, - 3.3.2009, 7:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 4.3.2009, 21:48
Сообщение #12
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Цитата(TAKsa @ 3.3.2009, 7:09) *
Люди а как сделать меню закупки оружия новое.
Например я хочу чтобы были ПМ АК ППШ и т.д. ))))


Код
#include <amxmodx>
#include <fakemeta_util>
new menu

public plugin_init()
{
    register_plugin("Weapon Menu","1.0","Empower");
    menu = menu_create("Менюшка Оружия","func_menu");
    menu_additem( menu,"Калаш")
    menu_additem( menu,"Емочка")
    menu_additem( menu,"Слоник")

    register_clcmd("amx_weapons","exec_menu");
}

public func_menu(id, menu, key)
{
  key++

  if(key==1) fm_give_item(id,"weapon_ak47")
  if(key==2) fm_give_item(id,"weapon_m4a1")
  if(key==3) fm_give_item(id,"weapon_awp")
}

public exec_menu(id)
{
    menu_display(id,menu)
    
    return PLUGIN_HANDLED
}


Отредактировал: Empower, - 15.3.2009, 11:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 5 раз
   + Цитировать сообщение
Статус пользователя goree
сообщение 9.3.2009, 22:39
Сообщение #13
Стаж: 7 лет 10 месяцев

Сообщений: 27
Благодарностей: 2
Полезность: 58

я в написании плагинов новичек и т.д! скажи пожалуйста, после того как я написал меню, что нужно сделать, что бы оно работало? :?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Empower
сообщение 12.3.2009, 17:25
Сообщение #14
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Цитата(goree @ 9.3.2009, 22:39) *
я в написании плагинов новичек и т.д! скажи пожалуйста, после того как я написал меню, что нужно сделать, что бы оно работало? :?

в самом верхмен посте оно вызываетса коммандой amx_menu... попробуй догадаться как вызывать там вродьб написано :/

Отредактировал: Empower, - 12.3.2009, 17:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Fedcomp
сообщение 12.3.2009, 21:28
Сообщение #15
Стаж: 8 лет 7 месяцев

Сообщений: 3899
Благодарностей: 698
Полезность: 0

Empower, решил попробовать и нашёл грубейшую ошибку - надо не минусовать кей а плюсовать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя goree
сообщение 13.3.2009, 12:09
Сообщение #16
Стаж: 7 лет 10 месяцев

Сообщений: 27
Благодарностей: 2
Полезность: 58

Код
#include <amxmodx>
#include <fakemeta_util>

new menu

public plugin_init()
{
register_plugin("Menu fuck","1.0","FuCkeR");
menu = menu_create("Меню мод FuCkeR","func_menu");
menu_additem( menu, "Відкрити AMX - меню")
menu_additem( menu, "Відкрити RHLG - меню")
register_clcmd("fucker_menu","exec_menu");
}

public func_menu(id, menu, key)
{
key--

if(key==1) client_cmd(id, "amxmodmenu")
if(key==2) client_cmd(id, "rhlg_menu")
}
public exec_menu(id)

{
menu_display(id,menu)
return PLUGIN_HANDLED
}


что тут не так? не работает sad.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Empower
сообщение 15.3.2009, 11:12
Сообщение #17
Стаж: 8 лет 4 месяца

Сообщений: 298
Благодарностей: 942
Полезность: 0

Цитата
Empower, решил попробовать и нашёл грубейшую ошибку - надо не минусовать кей а плюсовать

Спс ато я чёт завтыкал :)

Цитата(goree @ 13.3.2009, 12:09) *
что тут не так? не работает sad.gif

смени
Код
key--

на
Код
key++


Отредактировал: Empower, - 15.3.2009, 11:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя goree
сообщение 15.3.2009, 13:33
Сообщение #18
Стаж: 7 лет 10 месяцев

Сообщений: 27
Благодарностей: 2
Полезность: 58

большое спасибо! помогло :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя plg
сообщение 3.4.2009, 12:20
Сообщение #19
Стаж: 7 лет 9 месяцев

Сообщений: 3
Благодарностей: 1
Полезность: 0

Я что-то вообще нефига не понял :\
Обьясните,что это за код ты писал??Куда его вставлять то нужно? :O
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Black_Sun
сообщение 12.4.2009, 20:00
Сообщение #20


Стаж: 7 лет 10 месяцев

Сообщений: 6
Благодарностей: 1
Полезность: 0

Как вписать пункт меню в amxmodmenu? на первую страницу вместо mapmenu

Отредактировал: Black_Sun, - 12.4.2009, 20:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
11 страниц V   1 2 ... 9 10 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 3 гостей читают эту тему: