Решил ответить на этот вопрос, а заодно и тему новую создать, так как вопрос довольно интересен. Сначала, как создать меню. Для этого существует функция
menu(id, text) id - ID игрока, для которому ты хочешь показать меню (0 - показать всем) text - строка типа "header,p1,p2,...,p9", где header - название нашего меню, оно не просто играет роль заголовка. Используется header еще и для ориентирования программы (на какое меню кликнул игрок? но все же этим мы займемся чуть позже). Разберемся пока с p1-p9. Это наши кнопки. p1 - первая кнопка, p2 - вторая и т.д. Например: menu(id, 'Select your zombie class,Big zombie,Invisible zombie,Standard zombie,Raptor zombie')
Все еще не работает? Погоди ты, мы к самому главному даже не приступили. Так как же сделать чтобы меню на самом деле работало? В CS2D есть крюк "menu". Он срабатывает когда игрок кликает на кнопку в меню. Имеет он аргументы id, title, button.
menu id - ID игрока, который кликнул на кнопку title - название меню, в котором был игрок button - номер кнопки (1-9, 0 - Cancel)
Проверка, как многие и ожидали, такова:
Code
addhook('menu', 'mymenu') function mymenu(id, title, button) if title == 'Select your zombie class' then if button == 1 then -- выбран большой зомби parse('setarmor '..id..' 205') parse('speedmod '..id..' -27') elseif button == 2 then -- выбран невидимый зомби parse('setarmor '..id..' 206') parse('speedmod '..id..' -2') parse('sethealth '..id..' 80') elseif button == 3 then -- выбран обычный зомби elseif button == 4 then parse('setarmor '..id..' 201') end end end
Так, как же нам это меню вызвать? Для этого используем крюк serveration.
serveraction(id, action) id - ID игрока, нажавшего F2, F3 или F4 action - что игрок нажал (F2 - 1, F3 - 2, F4 - 3)
Пишем сюда ранее разобранную функцию menu:
Code
addhook('serveraction', 'myserveraction') function myserveraction(id, action) if action == 1 then -- если игрок нажал F2 menu(id, 'Select your zombie class,Big zombie,Invisible zombie,Standard zombie,Raptor zombie') -- собственно наше меню end end
Итак, осталось только собрать все воедино:
Code
addhook('menu', 'mymenu') function mymenu(id, title, button) if title == 'Select your zombie class' then if button == 1 then -- выбран большой зомби parse('setarmor '..id..' 205') parse('speedmod '..id..' -27') elseif button == 2 then -- выбран невидимый зомби parse('setarmor '..id..' 206') parse('speedmod '..id..' -2') parse('sethealth '..id..' 80') elseif button == 3 then -- выбран обычный зомби elseif button == 4 then parse('setarmor '..id..' 201') end end end addhook('serveraction', 'myserveraction') function myserveraction(id, action) if action == 1 then -- если игрок нажал F2 menu(id, 'Select your zombie class,Big zombie,Invisible zombie,Standard zombie,Raptor zombie') -- собственно наше меню end end
А я на стандарт зомби все убрал.. Т.е. он ничего не делает А насчет увеличения жизней, замени sethealth на setmaxhealth. Если хочешь, чтоб возвращал в стандарт зомби можно поставить команду kill: