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

WarmUp 0.3

Нет прав для скачивания
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
fantom, разминка на гранатах не поддерживается?
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
fantom, верно, просто решил уточнить на всякий случай.
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
fantom, а это так задумано, что если зашел один игрок, то он будет бегать без денег, байзоны и с одним ножом, пока не присоединятся другие?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
Nordic Warrior, да. Я специально разминку сделал на старте карты, а не событии игра началась. Лично меня жутко бесят рестарты во время разминки
 
Сообщения
51
Реакции
0
Еще баг: в случае если Famas, то после окончания разминки с первого раунда у некоторых игроков появляется Famas.
 
Сообщения
104
Реакции
-31
Помог
2 раз(а)
Как можно сделать разминку на ножах?
 
Сообщения
60
Реакции
2
bibako,
Код:
#include <amxmodx>
#include <reapi>

/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/
#define TIME_RR     40    // Время разминки
#define NUM_RR        2    // Кол-во рестартов
#define LATENCY        1.5    // Задержка между рестартами
#define DM_MODE        1    // Возрождение после смерти; 0 - отключить (будет длится раунд или до победы)
#define PROTECTED     0    // Сколько секунд действует защита после возрождения (актуально для DM_MODE); 0 - отключить

#define SOUND            // Музыка под час разминки
//#define STOP_PLUGS        // Отключать плагины на время разминки
#define OFF_RR            // Отключать этот плагин на указанных картах
//#define REMOVE_MAP_WPN    // Удалять ентити мешающие разминке на картах типа: awp_, 35hp_ и т.п. [по умолчанию выкл.]
//#define BLOCK           // Запрет поднятия оружия с земли (не актуально при вкл. #define REMOVE_MAP_WPN) [по умолчанию выкл.]
#define STOP_STATS        // Отключать запись статистики на время разминки  CSStatsX SQL by serfreeman1337 0.7.4+1 [по умолчанию выкл.]
/*■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■*/

#if defined REMOVE_MAP_WPN
#include <hamsandwich>
#endif

#if defined SOUND
new const soundRR[][] =    // Указывать звук, например 1.mp3
{   
    "sound/rww/RoundStart.mp3",
//    "sound/rww/2.mp3",
//    "sound/rww/3.mp3"
}
#endif

#if defined STOP_PLUGS
new g_arPlugins[][] = // Указывать название плагинов для отключения, например test.amxx
{       
    "test.amxx",
    "test2.amxx"
}
#endif

#if DM_MODE == 0
new HookChain:fwd_RRound;
new g_iRound;
#endif

#if defined REMOVE_MAP_WPN
new HamHook:fwd_Equip,
    HamHook:fwd_WpnStrip,
    HamHook:fwd_Entity;
#endif

#if defined STOP_STATS
new g_iHudSync;
#endif
new g_szWeapon[32];
new g_iImmunuty, g_iRespawn, g_iWp, g_iHudSync2;
new HookChain:fwd_NewRound,
    #if defined BLOCK
    HookChain:fwd_BlockEntity,
    #endif
    HookChain:fwd_Spawn,
    HookChain:fwd_GiveC4;

const TASK_TIMER_ID = 33264;

public plugin_init()
{
    register_plugin("[ReAPI] Random Weapons WarmUP", "2.4.9", "neugomon/h1k3");

    RegisterHookChain(RG_RoundEnd, "fwdRoundEnd", true);
    DisableHookChain(fwd_NewRound = RegisterHookChain(RG_CSGameRules_CheckMapConditions, "fwdRoundStart", true));
    DisableHookChain(fwd_Spawn = RegisterHookChain(RG_CBasePlayer_Spawn, "fwdPlayerSpawnPost", true));
    DisableHookChain(fwd_GiveC4 = RegisterHookChain(RG_CSGameRules_GiveC4, "fwdGiveC4", false));

    #if defined REMOVE_MAP_WPN
    DisableHamForward(fwd_Equip = RegisterHam(Ham_Use, "game_player_equip", "CGamePlayerEquip_Use", false));
    DisableHamForward(fwd_WpnStrip = RegisterHam(Ham_Use, "player_weaponstrip", "CStripWeapons_Use", false));
    DisableHamForward(fwd_Entity = RegisterHam(Ham_CS_Restart, "armoury_entity", "CArmoury_Restart", false));
    #endif

    #if DM_MODE == 0
    EnableHookChain(fwd_RRound = RegisterHookChain(RG_CSGameRules_RestartRound, "fwdRestartRound_Pre"));
    #endif

    #if defined BLOCK
    DisableHookChain(fwd_BlockEntity = RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "fwdHasRestrictItemPre", false));
    register_clcmd("drop", "ClCmd_Drop");
    #endif

    g_iImmunuty = get_cvar_pointer("mp_respawn_immunitytime");
    g_iRespawn  = get_cvar_pointer("mp_forcerespawn");
    #if defined STOP_STATS
    g_iHudSync = CreateHudSyncObj();
    #endif
    g_iHudSync2 = CreateHudSyncObj();

    state warmupOff;

    #if defined OFF_RR
    new sPref[][] = { "awp_", "aim_", "fy_", "$", "cs_", "35hp" };    // Указывать префиксы карт на которых плагин не будет работать
    new map[32]; get_mapname(map, charsmax(map));
    for(new i; i < sizeof sPref; i++)
    {
        if(containi(map, sPref[i]) != -1)
        {
            pause("ad");
            return;
        }
    }   
    #endif
}

public plugin_end() <warmupOff> {}

public plugin_end() <warmupOn>
{
    finishWurmUp();
}

#if defined BLOCK
public fwdHasRestrictItemPre()
{
    SetHookChainReturn(ATYPE_INTEGER, true);
    return HC_SUPERCEDE;
}

public ClCmd_Drop() <warmupOff>
    return PLUGIN_CONTINUE;
    
public ClCmd_Drop() <warmupOn>
    return PLUGIN_HANDLED;
#endif


#if defined SOUND
public plugin_precache()
{
    for(new i = 0; i < sizeof(soundRR); i++)
    {
        precache_generic(soundRR[i]);
    }
}
#endif

public fwdRoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
    if(event == ROUND_GAME_COMMENCE)
        EnableHookChain(fwd_NewRound);

public fwdRoundStart()
{
    state warmupOn;

    #if defined REMOVE_MAP_WPN
    EnableHamForward(fwd_Equip);
    EnableHamForward(fwd_WpnStrip);
    EnableHamForward(fwd_Entity);
    #endif

    DisableHookChain(fwd_NewRound);
    EnableHookChain(fwd_Spawn);
    EnableHookChain(fwd_GiveC4);

    set_pcvar_num(g_iRespawn, DM_MODE);
    set_pcvar_num(g_iImmunuty, PROTECTED);

    #if DM_MODE >= 1
    set_cvar_string("mp_round_infinite", "1");
    set_task(1.0, "Show_Timer", .flags = "a", .repeat = TIME_RR);
    #endif

    #if DM_MODE == 0
    set_task(1.0, "Hud_Message", .flags = "a", .repeat = 25 );
    #endif

    #if defined SOUND
    static cmd[64];
    formatex(cmd, 63, "mp3 play ^"%s^"", soundRR[random(sizeof(soundRR))]);
    client_cmd(0, "%s", cmd);
    #endif

    #if defined STOP_STATS
    set_cvar_num("csstats_pause", 1);
    #endif

    #if defined BLOCK
    EnableHookChain(fwd_BlockEntity);
    #endif

    #if defined STOP_PLUGS   
    PluginController(1);
    #endif

    switch(g_iWp = random(0))
    {
        case 0: formatex(g_szWeapon, charsmax(g_szWeapon), "Ножах");
    }
}

public fwdPlayerSpawnPost(const id)
{
    if(!is_user_alive(id))
        return;

    #if defined REMOVE_MAP_WPN
    InvisibilityArmourys();
    #endif

    BuyZone_ToogleSolid(SOLID_NOT);
    rg_remove_all_items(id);
    set_member_game(m_bMapHasBuyZone, true);
    rg_give_item(id, "weapon_knife");

    switch(g_iWp)
    {
        case 0:
        {
        rg_set_user_armor(id, 35, ARMOR_VESTHELM);
        set_entvar(id, var_health, 35.0);
        }
    }   
}

public fwdGiveC4()
{
    return HC_SUPERCEDE;
}

#if DM_MODE >= 1
public Show_Timer()
{   
    static timer = -1;
    if(timer == -1) timer = TIME_RR;

    switch(--timer)
    {
        case 0:
        {
            finishWurmUp();
            timer = -1;
        }
        default:
        {
            #if defined STOP_STATS
            set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.05, .holdtime = 0.9, .channel = -1);
            ShowSyncHudMsg(0, g_iHudSync, "[Статистика Отключена]");
            #endif
            set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 0.9, .channel = -1);
            ShowSyncHudMsg(0, g_iHudSync2, "Разминка на %s!^nВ Бой через %d секунд!", g_szWeapon, timer);
        }
    }
}
#endif

#if DM_MODE == 0
public fwdRestartRound_Pre()
{
    g_iRound++;

    if(g_iRound >= 2) {
        DisableHookChain(fwd_RRound);
        finishWurmUp();
    }
}

public Hud_Message()
{
    #if defined STOP_STATS
    set_hudmessage(100, 100, 100, .x = -1.0, .y = 0.05, .holdtime = 0.9, .channel = -1);
    ShowSyncHudMsg(0, g_iHudSync, "[Статистика Отключена]");
    #endif
    set_hudmessage(100, 100, 100, .x = -1.0, .y = 0.90, .holdtime = 0.9, .channel = -1);
    ShowSyncHudMsg(0, g_iHudSync2, "Разминка на %s!", g_szWeapon);
}
#endif

public SV_Restart()
{
    set_cvar_num("sv_restart", 1);
    set_task(2.0, "End_RR");
}

public End_RR()
{
    #if defined STOP_STATS
    set_hudmessage(255, 0, 0, .x = -1.0, .y = 0.05, .holdtime = 5.0, .channel = -1);
    ShowSyncHudMsg(0, g_iHudSync, "[Статистика Включена]");
    #endif
    set_hudmessage(135, 206, 235, .x = -1.0, .y = 0.08, .holdtime = 0.9, .channel = -1);
    ShowSyncHudMsg(0, g_iHudSync2, "Приятной игры!");
    for(new i = 1; i <= MaxClients; i++)
    {
        if(is_user_alive(i))
        {
            rg_remove_items_by_slot(i, PRIMARY_WEAPON_SLOT);
        }
    }
}

#if defined REMOVE_MAP_WPN
public CArmoury_Restart(const pArmoury)
{
    return HAM_SUPERCEDE;
}

public CGamePlayerEquip_Use()
{
    return HAM_SUPERCEDE;
}

public CStripWeapons_Use()
{
    return HAM_SUPERCEDE;
}

InvisibilityArmourys()
{
    new pArmoury = NULLENT
    while((pArmoury = rg_find_ent_by_class(pArmoury, "armoury_entity")))
    {
        if(get_member(pArmoury, m_Armoury_iCount) > 0)
        {
            set_entvar(pArmoury, var_effects, get_entvar(pArmoury, var_effects) | EF_NODRAW)
            set_entvar(pArmoury, var_solid, SOLID_NOT)
            set_member(pArmoury, m_Armoury_iCount, 0)
        }
    }
}
#endif

finishWurmUp()
{
    state warmupOff;
              
    BuyZone_ToogleSolid(SOLID_TRIGGER);

    #if defined REMOVE_MAP_WPN
    DisableHamForward(fwd_Equip);
    DisableHamForward(fwd_WpnStrip);
    DisableHamForward(fwd_Entity);
    #endif

    DisableHookChain(fwd_Spawn);
    DisableHookChain(fwd_GiveC4);

    set_cvar_string("mp_forcerespawn", "0");
    set_cvar_string("mp_respawn_immunitytime", "0");
    set_cvar_string("mp_round_infinite", "0");

    #if defined STOP_STATS
    set_cvar_num("csstats_pause", 0);
    #endif

    #if defined BLOCK
    DisableHookChain(fwd_BlockEntity);
    #endif

    #if defined STOP_PLUGS   
    PluginController(0);
    #endif

    #if NUM_RR > 1       
    set_task(LATENCY, "SV_Restart", .flags = "a", .repeat = NUM_RR);
    #else
    SV_Restart();
    #endif

    remove_task(TASK_TIMER_ID);
}

stock PluginController(stop)
{
    for(new i; i < sizeof g_arPlugins; i++)
    {
        if(stop)pause  ("ac", g_arPlugins[i]);
        else    unpause("ac", g_arPlugins[i]);
    }   
}

stock BuyZone_ToogleSolid(const solid)
{
    new entityIndex = 0;
    while ((entityIndex = rg_find_ent_by_class(entityIndex, "func_buyzone")))
        set_entvar(entityIndex, var_solid, solid);
}
 
Сообщения
55
Реакции
5
Помог
1 раз(а)
niggaz772, зачем здесь другой плаг от другого автора?????????
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
@makcu,makcu, Потому что он рабочий.
Плагин, который относится к данной теме, работает нестабильно. И это сам автор говорил.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу