Иконка ресурса

MOTD Model 1.1.0

Нет прав для скачивания
Код:
#pragma semicolon 1

#include <amxmodx>
#include <reapi>

new const MOTD_MODEL[] = "models/nezhno_inf.mdl";

enum IntroState
{
    INTRO_INIT,
    INTRO_PLAYING,
    INTRO_END,

}; new IntroState:g_iIntroState[MAX_PLAYERS + 1];

new motdmdl_skippable_intro;

public plugin_precache()
{
    register_plugin("MOTD Model", "1.1.0", "fl0wer");

    precache_model(MOTD_MODEL);
}

public plugin_init()
{
    RegisterHookChain(RG_ShowVGUIMenu, "@ShowVGUIMenu_Pre", false);
    RegisterHookChain(RG_HandleMenu_ChooseTeam, "@HandleMenu_ChooseTeam_Pre", false);

    bind_pcvar_num(create_cvar("motdmdl_skippable_intro", "0", _, "Players can skip intro by menu keys^n0 - disabled^n1 - enabled", true, 0.0, true, 1.0), motdmdl_skippable_intro);
}

public client_putinserver(id)
{
    g_iIntroState[id] = is_user_bot(id) ? INTRO_END : INTRO_INIT;
}

@ShowVGUIMenu_Pre(id, VGUIMenu:menuType, bitsSlots, oldMenu[])
{
    if (menuType != VGUI_Menu_Team)
        return;

    if (g_iIntroState[id] == INTRO_END)
        return;

    if (get_member(id, m_iJoiningState) == JOINED)
        return;

    if (g_iIntroState[id] == INTRO_INIT)
    {
        g_iIntroState[id] = INTRO_PLAYING;

        set_entvar(id, var_viewmodel, MOTD_MODEL);
        set_task(3.65, "@Task_IntroEnd", id);
    }

    set_member(id, m_bForceShowMenu, true);

    SetHookChainArg(3, ATYPE_INTEGER, 1023);
    SetHookChainArg(4, ATYPE_STRING, "\n");
}

@HandleMenu_ChooseTeam_Pre(id, key)
{
    if (g_iIntroState[id] == INTRO_END)
        return HC_CONTINUE;

    if (g_iIntroState[id] == INTRO_PLAYING && motdmdl_skippable_intro)
        StopIntro(id);

    SetHookChainReturn(ATYPE_INTEGER, false);
    return HC_SUPERCEDE;
}

@Task_IntroEnd(task)
{
    new id = task;

    if (!is_user_connected(id))
        return;

    StopIntro(id);
}

StopIntro(id)
{
    remove_task(id);

    g_iIntroState[id] = INTRO_END;

    set_entvar(id, var_viewmodel, "");
    engclient_cmd(id, "menuselect", "0");
}
Назад
Верх