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

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

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

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

key

, Нажатие кнопки
Статус пользователя Mr.Dmitry
сообщение 22.5.2012, 14:57
Сообщение #1


Стаж: 19 лет

Сообщений: 3992
Благодарностей: 853
Полезность: 463

Пишу плагин для deathrun и нужно при нажатии на кнопку отработать функцию.


Код
public plugin_init() {
RegisterHam(Ham_Use, "func_button", "key")
}

public GO(id) {
set_hudmessage(20, 255, 20, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(id, "Была нажата кнопка")
}

public key(ent, idcaller, idactivator, use_type, Float:value)
{
if (is_user_alive(idactivator) && get_user_team(idactivator) == 1 && item_key>1) {    
GO(idactivator)
return HAM_SUPERCEDE      
}      
return HAM_IGNORED    
}


Такая конструкция не работает, поэтому, как я понял, в public key не льзя вызывать другие функции?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 22.5.2012, 15:03
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Не особо понял о чем ты, но вот как делал я:


Код
    RegisterHam( Ham_Use, "func_button", "fd_UseButton" )

public fd_UseButton( ent, caller, id )
{
    if( !is_user_alive( id ) )
    {
        return HAM_IGNORED
    }
    
    if( cs_get_user_team( id ) == CS_TEAM_T && any_game )
    {
        client_print( id, print_center, "%L", id, "DR_CANT_USE" )
        return HAM_SUPERCEDE
    }
    
    any_button_used = 1
    return HAM_IGNORED
}

мб поможет?)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mr.Dmitry
сообщение 22.5.2012, 15:17
Сообщение #3


Стаж: 19 лет

Сообщений: 3992
Благодарностей: 853
Полезность: 463

Цитата(AndrewZ @ 22.5.2012, 19:03) *
Не особо понял о чем ты, но вот как делал я:


Код
    RegisterHam( Ham_Use, "func_button", "fd_UseButton" )

public fd_UseButton( ent, caller, id )
{
    if( !is_user_alive( id ) )
    {
        return HAM_IGNORED
    }
    
    if( cs_get_user_team( id ) == CS_TEAM_T && any_game )
    {
        client_print( id, print_center, "%L", id, "DR_CANT_USE" )
        return HAM_SUPERCEDE
    }
    
    any_button_used = 1
    return HAM_IGNORED
}

мб поможет?)

При нажатии на кнопку у тебя просто выведется сообщение

Код
client_print( id, print_center, "%L", id, "DR_CANT_USE" )


А мне нужно выполнить какие то действия внутри другой функции. Или например уничтожить меню


Код
public plugin_init() {
RegisterHam(Ham_Use, "func_button", "key")
}

public Createmenu(id){
    new menu = menu_create( "Меню:^n У вас осталось x секунд  до закрытия", "run_menu" );
    
    menu_additem( menu, "Меню1", "1", 0)
  menu_additem( menu, "Меню2", "2", 0)
    menu_additem( menu, "Меню3", "3", 0)
    menu_additem( menu, "Меню4", "4", 0)
    menu_additem( menu, "Меню5", "5", 0)
    
    menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
    menu_display( id, menu, 0 );
    return PLUGIN_HANDLED;
}

public run_menu(id, menu, item){
    if( item == MENU_EXIT ){
        menu_destroy( menu );
        return PLUGIN_HANDLED;
    }
    
    new data[ 9 ], iName[ 64 ], access, callback;
    menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback );
    item_key = str_to_num( data );
    
    switch(item_key){
        case 1: client_cmd(id,"menu1");
        case 2: client_cmd(id,"menu2");
    case 3: client_cmd(id,"menu3");
    case 4: client_cmd(id,"smenu4");
    case 5: client_cmd(id,"menu5");
        
    }

public key(ent, idcaller, idactivator, use_type, Float:value, menu)
{
if (is_user_alive(idactivator) && get_user_team(idactivator) == 1 && item_key>1) {    
menu_destroy(menu)
return HAM_SUPERCEDE      
}      
return HAM_IGNORED    
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 22.5.2012, 15:36
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Mr.Dmitry,
хорошо, а в чем проблема? Меню не закрывается?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mr.Dmitry
сообщение 22.5.2012, 15:40
Сообщение #5


Стаж: 19 лет

Сообщений: 3992
Благодарностей: 853
Полезность: 463

Цитата(AndrewZ @ 22.5.2012, 19:36) *
Mr.Dmitry,
хорошо, а в чем проблема? Меню не закрывается?

Да, не закрывается меню. В консоли сервера

Код
Run time error 10: native error(native "menu_destroy")


Такая ошибка при каждом нажатии кнопки

Отредактировал: Mr.Dmitry, - 22.5.2012, 15:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mr.Dmitry
сообщение 22.5.2012, 21:18
Сообщение #6


Стаж: 19 лет

Сообщений: 3992
Благодарностей: 853
Полезность: 463

AndrewZ
Идей нет? (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 22.5.2012, 21:57
Сообщение #7


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Mr.Dmitry,
Если хочешь напиши в аську, попробую помочь чем смогу :)

Отредактировал: AndrewZ, - 22.5.2012, 21:58


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Mr.Dmitry
сообщение 23.5.2012, 4:31
Сообщение #8


Стаж: 19 лет

Сообщений: 3992
Благодарностей: 853
Полезность: 463

Цитата(AndrewZ @ 23.5.2012, 1:57) *
Mr.Dmitry,
Если хочешь напиши в аську, попробую помочь чем смогу :)

Решил свою проблему так

Код
public key(ent, idcaller, idactivator, use_type, Float:value)
{
if (is_user_alive(idactivator) && get_user_team(idactivator) == 1) {    
     menu_destroy(menu)
     show_menu(idactivator, 0, "^n", 1)
     return PLUGIN_HANDLED  
}    

return HAM_IGNORED    
}


Но в аську себе тебя добавил ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: