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

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

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер
2 страниц V   1 2

CSDM меню (исправить)

nastia777
сообщение 24.5.2015, 10:28
Сообщение #1
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Все привет, уже пробивала разные способы но не получается правильно сделать !
Нужно сделать так что бы меню открывалось не на F3 и не биндилось, а сделать на M (как бы отлов нажатия клавиши) как там правильно будет )))
и не могу понять почему не работает hud - Меню Сервера, нажми на F3 (изменить на M)
Буду благодарна за любую помощь thank_you2.gif

SMA

Код:
#include <amxmodx>
new menu
new cvar_showhudmsg

public plugin_init()
{
cvar_showhudmsg = register_cvar("show_hudmsg", "1"); //1 - вкл 0 - выкл
register_plugin("CSDM Menu");
menu = menu_create("\yCSDM \yМеню:","func_menu");
menu_additem( menu, "\yОбнулить Счет! \d- [\r/rs\d]")
menu_additem( menu, "\yПосмотреть бинды \d- [\r/bindhelp\d]")
menu_additem( menu, "\yУстановить бинды \d- [\r/bindmenu\d]")
menu_additem( menu, "\yОружейка \d- [\r/wpmenu\d]")
menu_additem( menu, "\yМагазин \d- [\r/shop\d]")
menu_additem( menu, "\yКупить Админку \d- [\r25грн\d]")
menu_setprop(menu, MPROP_NEXTNAME, "Дальше")
menu_setprop(menu, MPROP_BACKNAME, "Назад")
menu_setprop(menu, MPROP_EXITNAME, "Выход")
menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
register_clcmd("player_menu","go_menu");
}
public client_putinserver(id)
{
if(get_pcvar_num(cvar_showhudmsg))
set_task(1.0, "task_hudmsg", id, _, _, "b")
}
public task_hudmsg(id)
{
set_hudmessage(255, 255, 0, 0.75, 0.0, 0, 6.0, 12.0)
show_hudmessage(id, "Меню Сервера, нажми на F3")
}
public client_authorized(id)
{
client_cmd(id, "bind ^"F3^" ^"player_menu^"")
}
public func_menu(id, menu, key)
{
key++
if(key==1) client_cmd(id, "say /rs")
if(key==2) client_cmd(id, "say /bindhelp")
if(key==3) client_cmd(id, "say /bindmenu")
if(key==4) client_cmd(id, "say /wpmenu")
if(key==5) client_cmd(id, "say /shop")
if(key==6) client_cmd(id, "say /adminka ")
}
public go_menu(id)
{
menu_display(id,menu)

return PLUGIN_HANDLED
}



Отредактировал: nastia777, - 24.5.2015, 10:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ThisIsSparta
сообщение 24.5.2015, 10:34
Сообщение #2
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

Код:
register_clcmd("chooseteam","go_menu");

show_hudmessage(id, "Меню Сервера, нажми на M")

//это убрать
public client_authorized(id)
{
client_cmd(id, "bind ^"F3^" ^"player_menu^"")
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 10:34
Сообщение #3
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Цитата(ThisIsSparta @ 24.5.2015, 11:34) *
Код:
register_clcmd("chooseteam","go_menu");

show_hudmessage(id, "Меню Сервера, нажми на M")

//это убрать
public client_authorized(id)
{
client_cmd(id, "bind ^"F3^" ^"player_menu^"")
}


Спасибо сейчас по тестю ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 10:59
Сообщение #4
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Предыдущий совет не решает всех проблем.

Протестировано:
сsdm_menu.sma
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 11:07
Сообщение #5
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Цитата(Radius @ 24.5.2015, 11:59) *
Предыдущий совет не решает всех проблем.

Протестировано:
сsdm_menu.sma


Да работает но нету huda )
Сейчас твой вариант гляну thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя make89
сообщение 24.5.2015, 11:10
Сообщение #6


Стаж: 13 лет

Сообщений: 79
Благодарностей: 7
Полезность: 71

Вот можете попробовать.
Меню
Код
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Server Menu"
#define VERSION "0.1"
#define AUTHOR "???"

new giMenu
new pShowHudMsg
new gszHudMsg[] = "Меню Сервера нажми клавишу - M"

#define ITMS 0    // menu items
#define CMDS 1    // client commands

#define QNTY 10    // total entries
new gszArray[QNTY][2][] = {
    { "\wОбнулить Счет \r[\yResetScore\r]", "say /rs" },
    { "\wУстановить Лазер \r[\yLaserMine\r]", "+setlaser" },
    { "\wУстановить Раздатчик \r[\yDispenser\r]", "build_dispenser" },
    { "\wУстановить Пушку \r[\ySentry\r]", "sentry_build" },
    { "\wОружейка \r[\yWeapons\r]", "say /wpmenu" },
    { "\wМагазин \r[\yShop\r]", "say /shop" },
    { "\wКупить Админку \r[\yAdminka\r]", "say /adminka" },
    { "\wКупить Vip \r[\yVipka\r]", "say /vipka" },
    { "\wАдмин меню \r[\yAmxmodmenu\r]", "amxmodmenu" },
    { "\wВип меню \r[\yVipmenu\r]", "?" }
}

public plugin_init() {
    register_plugin( PLUGIN, VERSION, AUTHOR )
    register_clcmd( "chooseteam", "ShowMenu", ADMIN_ALL )
    register_clcmd( "say /menu", "ShowMenu", ADMIN_ALL )
    register_clcmd( "say_team /menu", "ShowMenu", ADMIN_ALL )
    register_clcmd( "menu", "ShowMenu", ADMIN_ALL )

    pShowHudMsg = register_cvar( "show_hudmsg", "1" )    // 1 - on, 0 - off
    set_task( 12.0, "CheckConfig" )

    giMenu = menu_create( "\r[\yCSDM меню\r]", "MenuHandler", .ml = 0 /* Russian only, fucking 'UTF-8 inside SMA' style */ )
    new szInfo[3]
    for ( new i = 0; i < QNTY; i++ ) {
        num_to_str( i, szInfo, charsmax(szInfo) )
        menu_additem( giMenu, gszArray[i][ITMS], .info = szInfo )
    }

    menu_setprop( giMenu, MPROP_EXIT, MEXIT_ALL )
    menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
    menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
    menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
}

public CheckConfig() {
    if ( get_pcvar_num( pShowHudMsg) )
        set_task( 15.0, "ShowHudMsgTask", .flags = "b" )
}

public client_authorized(id) {    // binding for some reason doesn't work at client_putinserver
    client_cmd( id, "bind ^"m^" ^"chooseteam^"" )
}

public ShowHudMsgTask() {
    set_dhudmessage( 0, 255, 0, .x = 0.15, .y = 0.0, .effects = 0, .fxtime = 1.0, .holdtime = 15.5, .fadeintime = 0.1, .fadeouttime = 0.1 )
    show_dhudmessage( 0, gszHudMsg )
}

public ShowMenu(id) {
    menu_display( id, giMenu )

    return PLUGIN_HANDLED
}

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

    new access, info[3], callback
    menu_item_getinfo( menu, item, access, info, charsmax(info), .callback = callback )
    client_cmd(id, gszArray[str_to_num(info)][CMDS] )

    return PLUGIN_HANDLED
}

public plugin_end() {
    menu_destroy(giMenu)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 11:18
Сообщение #7
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

make89, я бы не стал такое рекомендовать. Слишком тяжелый код.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 11:25
Сообщение #8
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Еще немного упростил, ссылка та же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 24.5.2015, 11:49
Сообщение #9
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Перезагрузки таска нету. Код:
remove_task


Код:
set_task(1.0, "task_hudmsg", id, _, _, "b")


Доп нагрузка на сервер. Таск выполняет бесконечное действие своей задачи.

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 12:33
Сообщение #10
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Legend21, я сделал один общий для всех, поэтому его уничтожать нет смысла.

А насчет описанного случая: id задачи совпадают, а значит новая задача не создается, а используется уже существующая с реконфигурацией.

Отредактировал: Radius, - 24.5.2015, 12:35
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 12:53
Сообщение #11
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Спасибо за ответы, можно еще вопрос как правильно в меню добавить ?

Код
menu_additem( menu, "\yУстановить Пушку \d- [\r/7000$\d]");
menu_additem( menu, "\yПоставить Лазер \d- [\r/1000$\d]");


Код:
case 1:  client_cmd(id, "sentry_build");
case 2: client_cmd(id, "+setlaser);


так не хочет компилироваться (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThisIsSparta
сообщение 24.5.2015, 12:57
Сообщение #12
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

Цитата(nastia777 @ 24.5.2015, 13:53) *
Спасибо за ответы, можно еще вопрос как правильно в меню добавить ?
Код:
case 1:  client_cmd(id, "sentry_build");
case 2: client_cmd(id, "+setlaser);


так не хочет компилироваться (



пропустила "
Код:

case 2: client_cmd(id, "+setlaser");
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 13:09
Сообщение #13
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Цитата(ThisIsSparta @ 24.5.2015, 13:57) *
пропустила "
Код:

case 2: client_cmd(id, "+setlaser");


Точно )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 24.5.2015, 13:09
Сообщение #14
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Radius, Ну ты прям вообще красавец.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 13:22
Сообщение #15
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Только hud все равно не работает (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 14:04
Сообщение #16
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

nastia777, а еще есть помимо этого на экране постоянные HUD сообщения?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 14:09
Сообщение #17
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Цитата(Radius @ 24.5.2015, 15:04) *
nastia777, а еще есть помимо этого на экране постоянные HUD сообщения?

нет полностью все убрала !
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 14:11
Сообщение #18
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Скорее всего потому что прототипы функций разные и разных версий AMX Mod X. В 1.8.2 стоит по умолчанию 4ый канал, а в 1.8.3 логически правильно выставлен канал -1 (авто режим).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
nastia777
сообщение 24.5.2015, 14:16
Сообщение #19
Стаж: 13 лет

Сообщений: 606
Благодарностей: 485
Полезность: 510

Не совсем понятно ) Можно как то исправить ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 24.5.2015, 14:32
Сообщение #20
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

А заодно посмотрите в консоли сервера какое значение у квара show_hudmsg.

https://www.dropbox.com/s/g5ko7i7lb4yv4vv/csdm_menu.sma?dl=1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: