View Single Post
Lux
Veteran Member
Join Date: Jan 2015
Location: Cat
Old 11-19-2017 , 14:07   Re: [L4D2]Ask for help
Reply With Quote #9

PHP Code:
#include <sourcemod>

#pragma semicolon 1
#define PLUGIN_VERSION "1.0"
#pragma newdecls required

ConVar g_cDifficulty;

public 
Plugin myinfo =
{
    
name "[L4D2] Difficulty Adjuster",
    
author "Tak (Chaosxk)",
    
description "Adjusts difficulty based on number of clients in server.",
    
version PLUGIN_VERSION,
    
url "https://forums.alliedmods.net/showthread.php?t=297009"
}

public 
void OnPluginStart()
{
    if ((
g_cDifficulty FindConVar("z_difficulty")) == null)
    {
        
LogError("[SM] Can not find convar z_difficulty");
        
SetFailState("Can not find convar z_difficulty");
    }
    
UpdateClientCount(GetSurvivorCount());
}

public 
void OnClientPostAdminCheck(int client)
{
    if (
IsFakeClient(client))
        return;
    
    
UpdateClientCount(GetSurvivorCount());
}

public 
void OnClientDisconnect(int client)
{
    if (
IsFakeClient(client))
        return;
    
    
UpdateClientCount(GetSurvivorCount());
}

void UpdateClientCount(int count)
{
    switch (
count)
    {
        case 
4:
        
g_cDifficulty.SetString("easy");
        case 
8:
        
g_cDifficulty.SetString("normal");
        case 
12:
        
g_cDifficulty.SetString("hard");
        case 
16:
        
g_cDifficulty.SetString("impossible");
    }
}

int GetSurvivorCount()
{
    
int iCount 0;
    
    for(
int iClient 1iClient <= MaxClientsiClient++) {
        if(!
IsClientInGame(iClient) || IsFakeClient(iClient) || GetClientTeam(iClient) != 2)
            continue;
        
        
iCount++;
    }
    return 
iCount;

Maybe work? :O
__________________
Connect
My Plugins: KlickME
[My GitHub]

Commission me for L4D
Lux is offline