Разминка с флешками и 1hp

Тема в разделе "Запросы", создана пользователем Phenomen, 28 мар 2013.

  1. Phenomen

    Phenomen

    Сообщения:
    26
    Симпатии:
    1
    Плагин для разминочного раунда с флешками и 1hp. Совмещение его с разминкой от плагина Weapon Restrict 3.0.9.
     
  2. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Пробуй.
    PHP:
    #include <sourcemod>
    #include <sdktools>
    #include <cstrike>

    new Handle:hTimer[MAXPLAYERS+1]    =    INVALID_HANDLE,
        
    Handle:g_hTime                =    INVALID_HANDLE,
        
    Handle:hTime                    =    INVALID_HANDLE;

    new    
    bool:g_hRespawnPlayer;

    new    
    g_hSec;

    public 
    OnPluginStart()
    {
        
    g_hTime CreateConVar("sm_warmup_time""25""Укажите время разминки");
        
        
    HookEvent("round_start"Event_OnRoundStart);
        
    HookEvent("player_spawn"Event_OnPlayerSpawn);
        
    HookEvent("flashbang_detonate"Event_OnFlashBangDetonate);
        
    HookEvent("player_death"Event_OnPlayerDeath);
        
    HookEvent("round_end"Event_OnRoundEnd);
    }

    public 
    OnMapStart()
    {
        
    FunctionKillTimer();
        
    g_hRespawnPlayer false;
    }

    public 
    OnClientDisconnect(client)
    {
        if (
    hTimer[client] != INVALID_HANDLE)
        {
            
    KillTimer(hTimer[client]);
            
    hTimer[client] = INVALID_HANDLE;
        }
    }

    public 
    Event_OnRoundStart(Handle:timer, const String:name[], bool:silent)
    {
        
    FunctionKillTimer();
        if (!
    g_hRespawnPlayer)
        {
            
    g_hSec GetConVarInt(g_hTime) + 1;
            
    ServerCommand("mp_ignore_round_win_conditions 1;sv_ignoregrenaderadio 1");
            
    hTime CreateTimer(1.0Time_TIMER_REPEAT);
        }
    }

    public 
    Event_OnPlayerSpawn(Handle:event, const String:name[], bool:silent)
    {
        if (!
    g_hRespawnPlayer)
        {
            
    // Удаление оружия взято с https://forums.alliedmods.net/showthread.php?p=1681812
            
    new client GetClientOfUserId(GetEventInt(event"userid")),
                
    weapon;
            for (new 
    0<= 5i++)
            {
                if ((
    weapon GetPlayerWeaponSlot(clienti)) != -1)
                {
                    
    RemovePlayerItem(clientweapon);
                }
            }
            
    SetEntityHealth(client1);
            
    GivePlayerItem(client"weapon_flashbang");
        }
    }

    public 
    Event_OnFlashBangDetonate(Handle:event, const String:name[], bool:silent)
    {
        if (!
    g_hRespawnPlayer)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"userid"))
            if (
    client && IsPlayerAlive(client))
            {
                
    GivePlayerItem(client"weapon_flashbang");
            }
        }
    }

    public 
    Event_OnPlayerDeath(Handle:event, const String:name[], bool:silent)
    {
        if (!
    g_hRespawnPlayer)
        {
            new 
    client GetClientOfUserId(GetEventInt(event"userid"));
            
    hTimer[client] = CreateTimer(1.0TimerclientTIMER_FLAG_NO_MAPCHANGE);
        }
    }

    public 
    Event_OnRoundEnd(Handle:timer, const String:name[], bool:silent)
    {
        
    FunctionKillTimer();
    }

    public 
    Action:Timer(Handle:timerany:client)
    {
        if (!
    g_hRespawnPlayer)
        {
            if (
    GetClientTeam(client) > && !IsPlayerAlive(client))
            {
                
    CS_RespawnPlayer(client);
            }
        }
        
    hTimer[client] = INVALID_HANDLE;
    }

    public 
    Action:Time(Handle:timer)
    {
        if (!
    g_hRespawnPlayer)
        {
            if (
    g_hSec 0)
            {
                
    PrintCenterTextAll("Разминка закончится через: %d", --g_hSec);
            }
            else
            {
                
    FunctionKillTimer()
                
    g_hRespawnPlayer true;
                
    ServerCommand("mp_ignore_round_win_conditions 0;sv_ignoregrenaderadio 0");
            
                
    CS_TerminateRound(5.0CSRoundEndReason:9);
                
    PrintCenterTextAll("Разминка завершена!");
            }
        }
        
    hTime INVALID_HANDLE;
    }

    stock FunctionKillTimer()
    {
        if (
    hTime != INVALID_HANDLE)
        {
            
    KillTimer(hTime);
            
    hTime INVALID_HANDLE;
        }
    }
    Thanks wS
     

    Вложения:

    • test.sp
      Размер файла:
      3,1 КБ
      Просмотров:
      2
    HappyRabbit нравится это.
  3. HappyRabbit

    HappyRabbit

    Сообщения:
    125
    Симпатии:
    4
    The End Is Near..., а если включена разминка в плагине Weapon Restrict 3.0.9. Они не будут конфликтовать?
     
  4. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    HappyRabbit
    Будут
     
  5. HappyRabbit

    HappyRabbit

    Сообщения:
    125
    Симпатии:
    4
    The End Is Near..., ^_^ чето я туплю^_^
    это значит "Да конфликтовать будет" или "Думаю да, не будет" =)))
     
  6. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.565
    Симпатии:
    1.150
    HappyRabbit, конечно будут, так как одинаковый действия выполняют.
     
  7. HappyRabbit

    HappyRabbit

    Сообщения:
    125
    Симпатии:
    4
    Серый™, это плохо=( а других методов осуществления идеи автора нету вместе с плагином который я упомянул ранее? Все равно спасибо за ответ , и за то что не поленился и селал плагин который нужен автору=)