Добро пожаловать на форум, Гость, это ваша панель
Страница 1 из 11
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » Как передать строку в метод? (Нужно передать строку в исполнитель)
Как передать строку в метод?
Ихtианdр
Дата: Вторник, 20.10.2015, 18:13 | Сообщение # 1
офлайн

  • Сообщения: 142
  • Награды: 0
  • Замечания:
 
Всем привет. Пишу плагин по выдаче талисманов.
Сначала открывается список игроков, выбирается игрок, а затем открывается меню со списком талисманов, в которое передаётся значение new player = g_menuPlayers[id][g_menuPosition [id]* 7 + key] через массив (Значение Param[1])
Код меню такой:
Код
public Give_One_Talisman(Param[2])
{
    new player = Param[1]
    new id = Param[0]

    new i_Menu = menu_create("\r [\yВыдать талисман\r: \w1\y/\w5\r]", "GOT_menu")   

    if(!colourSwitch1[id])
    {
        menu_additem(i_Menu, "\wАмулет", "1", 0)
    }
    else
    {
        menu_additem(i_Menu, "\yАмулет", "1", 0)
    }
    // и т.д.
   menu_setprop(i_Menu, MPROP_PERPAGE, 0)
   menu_display(id, i_Menu, 0)

}

Вот обработчик меню:
Код
public GOT_menu(id, menu, item, player)
{
   new name2[32]

   get_user_name(player, name2, 31)

   new data[6], iName[64], access, callback
   menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
    
   new key = str_to_num(data)
   
    switch(key)
    {
        case 1:{
        }
    }
// и т.д.
}


Но при использовании get_user_name(player, name2, 31) строке name2 почему-то присваивается имя сервера, а не выбраннв ого игрока. В GOT_menu нужно либо как-то передать переменную player, либо Give_One_Talisman получить имя выбранного игрока name2 и передать эту строку в GOT_menu (предпочтителен второй вариант).

Помогите пожалуйста разобраться


Сообщение отредактировал Ихtианdр - Вторник, 20.10.2015, 19:00
 
Contra63
Дата: Вторник, 20.10.2015, 20:07 | Сообщение # 2
офлайн

  • Сообщения: 828
  • Награды: 7
  • Замечания:
 
сделай все через random_num

 
Ихtианdр
Дата: Вторник, 20.10.2015, 20:18 | Сообщение # 3
офлайн

  • Сообщения: 142
  • Награды: 0
  • Замечания:
 
Contra63, Сделал массив Param[2] глобальной переменной (затупил в начале), теперь всё ок. Но можно ли как-нибудь передать уже готовую строку в метод?
 
SMaster
Дата: Вторник, 20.10.2015, 21:53 | Сообщение # 4
офлайн

  • Сообщения: 2177
  • Награды: 44
  • Замечания:
 
Код
public GOT_menu(id, menu, item)
{
new name2[32]

get_user_name(id, name2, 31)

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:{
}
}
// и т.д.
}


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
Ихtианdр
Дата: Пятница, 23.10.2015, 00:30 | Сообщение # 5
офлайн

  • Сообщения: 142
  • Награды: 0
  • Замечания:
 
SMaster, Мне нужно было получить name2 не по переменной id, а по переменной player (ник игрока из списка менюшки). Проблему решил просто сделав переменную глобальной (затупил в начале)
 
Форум Perfect Soft » Моды и AMX Скриптинг CS 1.6 » AMX Скриптинг CS 1.6 (вопрос | ответ) » Как передать строку в метод? (Нужно передать строку в исполнитель)
Страница 1 из 11
Поиск: