1

Тема: Глюченное меню и автовыбор класса

Давно уже можно было исправить)
из спектров не зайдешь в меню на м.

Меню

public hook_changeteam(id)
{
    new team = fm_cs_get_user_team(id)
     
    // Unless it's a spectator joining the game
    if (team == 0)
        return PLUGIN_CONTINUE;
    
    // Pressing 'M' (chooseteam) ingame should show the main menu instead
    if(!ischoseteam[id]){
        Showmain(id)
        return PLUGIN_HANDLED;
    }
    return PLUGIN_CONTINUE;
}

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

public hook_changeteam(id)
{
    if(!ischoseteam[id])
    {
        Showmain(id)
        return PLUGIN_HANDLED
    }
    return PLUGIN_CONTINUE
}

Ну там есть конечно небольшие недочёты,(сообщение это действие недоступно в данный момент,когда меняешь класс живым. можно убрать проверкой)
но хотя бы не будешь наблюдать стандартное меню.

Чтобы стандартное меню не вылезало при перебрасывании за другую команду(будет работать если убрать рандомный выбор героя)

public plugin_init()
{
    register_clcmd("jointeam 1", "redir")
    register_clcmd("jointeam 2", "redir")
}

убрать рандомный выбор:

public join_class(id)
{
    engclient_cmd(id, "joinclass", "5")
    show_menu_hclass(id)
}

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

public join_class(id)
{
    show_menu_hclass(id)
}

а

engclient_cmd(id, "joinclass", "5")

Засунуть в

public menu_hclass(id, menuid, item)

после

if(!ischoseteam[id])
{
    if (g_heroesclassnext[id] == HCLASS_NONE)
    {
        g_heroesclassnext[id] = classid
        herome(id)
    }
    else g_heroesclassnext[id] = classid
}
else
{
    ischoseteam[id] = false
    g_heroesclassnext[id] = classid
    g_heroesclass[id] = classid
}

В итоге:
При выборе команды игрок не будет спавниться пока не выберет класс.
Стандартное меню практически никогда не вылезет...

Отредактировано артист (24-10-2013 14:22)

2

Re: Глюченное меню и автовыбор класса

А у меня тоже проблема:
Почему перестало работать окно, типа MOTD
Когда пытаешься прописать лжтоп, тупо черный экран и ничего не грузит?

3

Re: Глюченное меню и автовыбор класса

Всё нормально, только кроме того что пропадает минюшька выбора персонажа, по багу ставится как на простой контре выбор ТТ КТ и всё, через один или пару раундов меняется как положено.
Ну и кода был админом, иногда когда я заходил в спектры то не видел плагина который в виде WH для определения читеров, он тупо не работал, лечилось переходом(тобишь сбрасыванием ЛВЛ и интереса к игре и админству)
Ну еще  баг когда я через админку перекидывал себя в спектры и флаг той команды за которую я играл переходил в спектры со мной, тобишь он исчезал, и когда я из спектров в таком состоянии за кем либо смотрел, он становился синим или красным(смотря какой команды я забрал этим багом флаг)

Отредактировано HNSBuHT (23-10-2013 08:19)

4

Re: Глюченное меню и автовыбор класса

Это уже давно было, я поднимал вопрос по этому поводу, ничего не решали(

5

Re: Глюченное меню и автовыбор класса

Я об этом тоже писал, думаю на этот раз едл увидит, потому что гладиолус.

Отредактировано HNSBuHT (23-10-2013 08:30)

6

Re: Глюченное меню и автовыбор класса

Я ничего не понял, мне бы простые объяснение, типа делаем раз, два, три получается бебе место атата

7

Re: Глюченное меню и автовыбор класса

Сразу как на сервер заходишь, меню работает (М), пару раз зайадешь в спектры, меню пропадает и появляется, только то, что и на обычных пабликах, тобиш выбор за кого играть (Т или КТ)

YodL пишет:

Я ничего не понял, мне бы простые объяснение, типа делаем раз, два, три получается бебе место атата

Отредактировано bomjqq* (23-10-2013 10:48)

8

Re: Глюченное меню и автовыбор класса

YodL пишет:

Я ничего не понял, мне бы простые объяснение, типа делаем раз, два, три получается бебе место атата

Регай скайп я тебе всё объясню.
А то снова как начну излагать на своём языке, запутаю тебя еще больше  facepalm

Отредактировано HNSBuHT (23-10-2013 11:30)

9

Re: Глюченное меню и автовыбор класса

Это не баг,так автор сделал,и так было на всех серверах AH аж целых 3шт(2 осталось) af

Если перешёл в спектры меню Аховское никогда не вылезет на м, будет стандартное ксовское.
Так-же и при автобалансе, появляется стандартное меню.

10

Re: Глюченное меню и автовыбор класса

артист пишет:

Это не баг,так автор сделал,и так было на всех серверах AH аж целых 3шт(2 осталось) af

Если перешёл в спектры меню Аховское никогда не вылезет на м, будет стандартное ксовское.
Так-же и при автобалансе, появляется стандартное меню.

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

11

Re: Глюченное меню и автовыбор класса

Оно 50 на 50 вылезает, иногда со спектров выходил и было меню, а иногда - нет.

12

Re: Глюченное меню и автовыбор класса

из спектров ты его никогда не мог видеть
(только если сначала выбрать команду,а потом нажать м...)

if (team == 0) return PLUGIN_CONTINUE

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

3aMEc пишет:

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

Спектатору... facepalm
Ну не стоит так не стоит...я только предложил,как будет лучше...

Отредактировано артист (24-10-2013 14:16)

13

Re: Глюченное меню и автовыбор класса

чем PLUGIN_CONTINUE от PLUGIN_HANDLED отличается?

14

Re: Глюченное меню и автовыбор класса

Heisenberg пишет:

А у меня тоже проблема:
Почему перестало работать окно, типа MOTD
Когда пытаешься прописать лжтоп, тупо черный экран и ничего не грузит?

15

Re: Глюченное меню и автовыбор класса

YodL пишет:

чем PLUGIN_CONTINUE от PLUGIN_HANDLED отличается?

Особо ничем, это просто выход.

только PLUGIN_HANDLED
делает так,что последующая обработка события движком не будет выполняться...

Например:

public plugin_init()
{
    register_clcmd("jointeam", "blabla")
}
public blabla(id)
{
    client_print(id, print_center, "Вы выбрали команду")
    return PLUGIN_CONTINUE
}

При выборе команды по середине экрана вылезет сообщение "Вы выбрали команду"
и всё...

А если поставить хандлер

public plugin_init()
{
    register_clcmd("jointeam", "blabla")
}
public blabla(id)
{
    client_print(id, print_center, "Вы выбрали команду")
    return PLUGIN_HANDLED
}

Всё так же появится сообщение, но
За команду вы не зайдёте.т.е. как бы ханлер блокирует эту команду, как будто вы её и не вводили...

Вот и всё различае...

И вот 3й пример(не гарантирую что рабочий  af ):

public plugin_init()
{
    register_clcmd("jointeam", "blabla")
}
public blabla(id)
{
    new arg[3]; read_argv(1, arg, 2)
    new num = str_to_num(arg)
    
    if(num == 1)
    {
        client_print(id, print_center, "Вы выбрали команду террористов")
        return PLUGIN_HANDLED
    }
    else if(num == 2)
    {
        client_print(id, print_center, "Вы выбрали команду спецназа, и вас не взяли")
        return PLUGIN_HANDLED
    }
    client_print(id, print_center, "Вы решили понаблюдать?Не получится")
    return PLUGIN_HANDLED
}

Если игрок выбрал команду Т , то вылезет сообщение, и он перейдёт к выбору класса.
А если игрок выбрал команду КТ , то кроме сообщения он ничего не увидит.

В конце функции есть ещё один возврат, он сработает если команда будет меньше 1 и больше 2х.
Ну меньше одного не будет(если игрок сам в консоль не введёт)
При выборе команды наблюдателя вылезет сообщение...
и ничего не произойдёт...

Отредактировано артист (25-10-2013 10:05)

16

Re: Глюченное меню и автовыбор класса

ну я к тому

if (team == 0) return PLUGIN_CONTINUE
Если игрок спектатор - возврат. т.е. функция дальше не выполняется, и меню не вызывается.

что менюшка будет, прерывания функции показа меню движком нету. Бага в этом коде особо и не заметно, пока не первоочередное.

17

Re: Глюченное меню и автовыбор класса

Меню стандартное будет,а аховского нет)
Само событие не блокируется,но дальнейший код в функции не выполняется...

В том и есть вся соль.
Если уж сделан хук стандартного меню,так уж нормально,а не через раз)

Вроде мелочь, но глазу приятно...

Отредактировано артист (26-10-2013 05:05)