CS:S DM v.2.1.4 (Death Match CS Source)

Kewn

Участник
Сообщения
321
Реакции
61
Доброго времени суток ребятки)) Поставил я CSSDM на CS:GO. Но вот не задача.
C-подобный:
cssdm/dm_equipment.smx (CS:S DM Equipment): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_spawn_protection.smx (CS:S DM Spawn Protection): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_bot_quotas.smx (CS:S DM Bot Quotas): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_preset_spawns.smx (CS:S DM Preset Spawns): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_basics.smx (CS:S DM Basics): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm.ext - на месте
1650393946149.png
Полагаю дело в gamedat'е. приложил.
Есть гении которые смогут поправить?))) Отблагодарю финансово)))
Если дело конечно в этом.
 

Вложения

  • cssdm.games.txt
    7.6 КБ · Просмотры: 39

serega36

Участник
Сообщения
127
Реакции
5
Подскажите! Что надо ввести в консоли что бы открыть меню с выбором оружия!
 

DoTReM

Участник
Сообщения
13
Реакции
0
cssdm.jpg


CS:S DM 2.1.4

Описание:

Плагин добавляющий режим Death Match в CS Source

Установка:
Скопируйте содержимое архива в директорию cstrike

Требования:
Metamod:Source: 1.8.7
SourceMod: 1.3.8 и выше
Counter-Strike: Source последней версии (Orange Box)

Настройка:
Настройки можно найти в файле cssdm.cfg в папке cfg\cssdm\

cssdm_enabled "1" - включить плагин
Значение по умолчанию: "1"

cssdm_ffa_enabled "0" – режим стрельба по всем 1-вкл., 0-выкл.
Значение по умолчанию: "0"

cssdm_spawn_method "preset" - распределение игроков по карте
Значение по умолчанию: "preset"
"none" -- распределять по нормальным местам на карте.
"preset" – распределять по местам описанным в config файле.

cssdm_ragdoll_time "2" - количество секунд, чтобы подождать, прежде чем удалить труп
если 0, трупы будут немедленно удалены. Если >= 20, трупы никогда не будут удалены.
Значение по умолчанию: "2"

cssdm_respawn_wait "0.75" - количество секунд до оживления игрока
Значение по умолчанию: "0.75"

cssdm_allow_c4 "0" - разрешить закладывать бомбу C4
Значение по умолчанию: "0"

cssdm_enable_equipment "1" - установка оружия
Требуется: dm_equipment.smx
Значение по умолчанию: "1"

cssdm_spawn_protection "1" - включение spawn protection (защита игрока от мгновенного убийства после оживления)
Требуется плагин: sm_spawn_protection.smx
Значение по умолчанию: "1"

cssdm_prot_time "2" - время действия spawn protection в секундах
Требуется плагин: sm_spawn_protection.smx
Значение по умолчанию: "2"

cssdm_prot_ctcolor "0 0 255 128" - цвет CT игрока во время защиты
Требуется плагин: sm_spawn_protection.smx
Значение по умолчанию: "0 0 255 50"
Формат “RGBA” (red, green, blue, alpha)

cssdm_prot_tcolor "255 0 0 128" - цвет T игрока во время защиты
Требуется: sm_spawn_protection.smx
Значение по умолчанию: "255 0 0 50"
Формат “RGBA” (red, green, blue, alpha)

cssdm_respawn_command "1" - разрешить игрокам использовать команду "respawn", чтобы не ждать времени установленного в параметре cssdm_respawn_wait
Требуется плагин: dm_basics.smx
Значение по умолчанию: "1"

cssdm_force_mapchanges "0" - устанавливать чтобы плагин CS:S DM мог сменить карту, это используется на серверах с установленным Stripper:Source модом
Требуется плагин: dm_basics.smx
Значение по умолчанию: "0"

cssdm_mapchange_file "mapcycle.txt" - устанавливать следующую карту из CS:S DM файла
, параметр необходим только если cssdm_force_mapchanges включён
Требуется плагин: dm_basics.smx
Значение по умолчанию: "mapcycle.txt"

cssdm_refill_ammo "1" - включить автоматическое пополнение боеприпасов
Требуется плагин: dm_basics.smx
Значение по умолчанию: "1"

cssdm_bots_balance "0" - устанавливает сколько ботов нужно добавить в игру. Используйте команду bot_quota для расширенного управления
Требуется плагин: dm_bot_quotas.smx
Значение по умолчанию: "0"

cssdm_remove_drops "1" - удалять оружие игроков после смерти, рекомендуется не изменять так как может вызвать зависание сервера
Значение по умолчанию: "1"

Плагин делающий ущерб по своим такой же как по врагам: http://hlmod.ru/forum/plaginy-dlya-sourcemod/4414-free-all.html
Плагин делающий раунд не заканчивающимся (бесконечным) Roundend Blocker: http://hlmod.ru/forum/plaginy-dlya-sourcemod/195-end-round-blocker-v-1-1-a.html
(В CSS OB используйте встроенную переменную mp_ignore_round_win_conditions)
Плагин для отключения радара: Radar Config
Плагин восстанавливающий здоровье за убийство, killbonus (Vampire): http://hlmod.ru/forum/plaginy-dlya-sourcemod/194-kill-bonus-v-1-0-a.html
Плагин включающий режим убийств только в голову HD (HS) mod: http://hlmod.ru/forum/plaginy-dlya-sourcemod/4177-hs-modes-v-0-0-2-a.html
Плагин оставляющий аптечку после убийства: http://hlmod.ru/forum/plaginy-dlya-sourcemod/287-healthkit-death-v-1-7-1-a.html
DM карты: http://www.gamebanana.com/maps/cats/40
FAQ
(часто задаваемые вопросы)
Вопрос: Как сделать respawn points?
Ответ:
  1. Включить плагин dm_preset_spawns в SourceMod.
  2. Проверить наличие у админа фалга "map" флага ("g").
  3. Используя команду cssdm_spawn_menu отредактировать точки появления на карте.

Вопрос: Где я могу скачать spawn points для не стандартных карт?
Ответ:
Spawnpoint Files - AlliedModders

Вопрос: Могу ли я иметь специальные конфигурационные файлы для конкретных карт?
Ответ:
Да можете, специальные конфиги для карт хранятся в файлах:
cfg/cssdm/cssdm.equip.txt -< cfg/cssdm/maps/MAP.equip.txt
cfg/cssdm/cssdm.cfg -< cfg/cssdm/maps/MAP.cssdm.cfg
Где "MAP" это название карты. Сначала загружаются общие конфиги для всех карт, затем специфические конфиги конкретных карт, т.е. принцип наследования работает.

Версия 2.1.0.1 для v34
Скачать+Патч
Скачать версию 2.1.2 для OB v59:
http://www.multiupload.com/EV6JRJXJN9
Оригинал
Snapshots
обновите ссылки на плагины
 

serega36

Участник
Сообщения
127
Реакции
5
Помогите кто в курсе переделать что бы выбор оружия было на F1 и не надо было каждый раз прописывать в чате guns.Целый день мучуюсь и не получается.Игра Counter-Strike Source v.34
C-подобный:
/**
* dm_equipment.sp
* Adds preset spawning to CS:S DM.
* This file is part of CS:S DM, Copyright (C) 2005-2007 AlliedModders LLC
* by David "BAILOPAN" Anderson, http://www.bailopan.net/cssdm/
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*
* Version: $Id: dm_equipment.sp 443 2007-11-14 08:01:10Z dvander $
*/

#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <cssdm>

#define CSSDM_GUNMENU_NO        0
#define CSSDM_GUNMENU_YES        1
#define CSSDM_GUNMENU_RANDOM    2

/** Plugin Stuff */
new Handle:cssdm_enable_equipment;                    /** cssdm_enable_equipment cvar */
new g_ArmorOffset = -1;                                /* m_ArmorValue offset */
new g_NVOffset = -1;                                /* m_bHasNightVision offset */
new g_HealthOffset = -1;                            /* m_iHealth offset */
new Handle:g_SpawnTimers[MAXPLAYERS+1];                /* Post-spawn timers */
new Handle:g_hPrimaryMenu = INVALID_HANDLE;            /* Priamry menu Handle */
new Handle:g_hSecondaryMenu = INVALID_HANDLE;        /* Secondary menu Handle */
new Handle:g_hEquipMenu = INVALID_HANDLE;            /* Main equipment menu */
new bool:g_IsEnabled = false;                        /* Whether the plugin should work */
new g_PrimaryChoices[MAXPLAYERS+1];                    /* Primary weapon selections */
new g_SecondaryChoices[MAXPLAYERS+1];                /* Secondary weapon selections */
new bool:g_GunMenuEnabled[MAXPLAYERS+1];            /* Whether the gun menu is enabled */
new bool:g_GunMenuAvailable[MAXPLAYERS+1];            /* Whether the gun menu is available */

/** HUMAN CONFIGS */
new g_PrimaryList[CSSDM_MAX_WEAPONS];
new g_SecondaryList[CSSDM_MAX_WEAPONS];
new g_PrimaryCount = 0;
new g_SecondaryCount = 0;
new g_PrimaryMenu = CSSDM_GUNMENU_YES;
new g_SecondaryMenu = CSSDM_GUNMENU_YES;
new bool:g_AllowBuy = false;
new g_ArmorAmount = 100;
new bool:g_Helmets = true;
new g_Flashes = 0;
new bool:g_Smokes = false;
new bool:g_HEs = false;
new bool:g_NightVision = false;
new bool:g_DefuseKits = true;
new bool:g_AllowGunCommand = true;
new g_HealthAmount = 100;

/** BOT CONFIGS */
new g_BotPrimaryList[CSSDM_MAX_WEAPONS];
new g_BotSecondaryList[CSSDM_MAX_WEAPONS];
new g_BotPrimaryCount = 0;
new g_BotSecondaryCount = 0;
new g_BotArmor = 100;
new bool:g_BotHelmets = false;
new g_BotFlashes = 0;
new bool:g_BotSmokes = false;
new bool:g_BotHEs = false;
new bool:g_BotDefuseKits = true;
new g_BotHealthAmount = 100;

/** PUBLIC INFO */
public Plugin:myinfo =
{
    name = "CS:S DM Equipment",
    author = "AlliedModders LLC",
    description = "Adds gun menu/equipment to CS:S DM",
    version = CSSDM_VERSION,
    url = "http://www.bailopan.net/cssdm/"
};

/******************
* IMPLEMENTATION *
******************/

public OnPluginStart()
{
    LoadTranslations("cssdm.phrases");
  
    RegConsoleCmd("say", Command_Say);
    RegConsoleCmd("say_team", Command_Say);
  
    cssdm_enable_equipment = CreateConVar("cssdm_enable_equipment", "1", "Sets whether the equipment plugin is enabled");
    HookConVarChange(cssdm_enable_equipment, OnEquipmentEnableChange);
  
    g_ArmorOffset = FindSendPropOffs("CCSPlayer", "m_ArmorValue");
    g_NVOffset = FindSendPropOffs("CCSPlayer", "m_bHasNightVision");
    g_HealthOffset = FindSendPropOffs("CCSPlayer", "m_iHealth");
  
    g_hEquipMenu = CreateMenu(Menu_EquipHandler, MenuAction_DrawItem|MenuAction_DisplayItem);
    SetMenuTitle(g_hEquipMenu, "Weapon Options:");
    SetMenuExitButton(g_hEquipMenu, false);
    AddMenuItem(g_hEquipMenu, "", "New weapons");
    AddMenuItem(g_hEquipMenu, "", "Same weapons");
    AddMenuItem(g_hEquipMenu, "", "Same weapons every time");
    AddMenuItem(g_hEquipMenu, "", "Random weapons");
    AddMenuItem(g_hEquipMenu, "", "Random weapons every time");
}

public OnEquipmentEnableChange(Handle:convar, const String:oldValue[], const String:newValue[])
{
    g_IsEnabled = StringToInt(newValue) ? true : false;
}

public OnConfigsExecuted()
{
    LoadDefaults();
  
    if ((g_IsEnabled = LoadConfigFile("cfg/cssdm/cssdm.equip.txt")) == false)
    {
        LogError("[CSSDM] Could not find equipment file \"%s\"", "cfg/cssdm/cssdm.equip.txt");
        return;
    }
  
    if (!GetConVarInt(cssdm_enable_equipment))
    {
        g_IsEnabled = false;
        return;
    }
  
    /** See if there is a map version */
    decl String:map[64];
    decl String:path[255];
    GetCurrentMap(map, sizeof(map));
    Format(path, sizeof(path), "cfg/cssdm/maps/%s.equip.txt", map);
  
    if (FileExists(path))
    {
        LoadConfigFile(path);
    }
}

public Action:DM_OnClientDeath(client)
{
    if (g_SpawnTimers[client] != INVALID_HANDLE)
    {
        KillTimer(g_SpawnTimers[client]);
        g_SpawnTimers[client] = INVALID_HANDLE;
    }
    g_GunMenuAvailable[client] = true;
}

public OnClientPutInServer(client)
{
    g_GunMenuEnabled[client] = true;
    g_GunMenuAvailable[client] = true;
    g_PrimaryChoices[client] = -1;
    g_SecondaryChoices[client] = -1;
}

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

public DM_OnClientSpawned(client)
{
    if (!ShouldRun())
    {
        return;
    }
  
    if (!IsFakeClient(client))
    {
        if (g_ArmorAmount > 0)
        {
            GivePlayerItem(client, "item_assaultsuit");
            GivePlayerItem(client, "item_assaultsuit");
            SetClientArmor(client, g_ArmorAmount);
        }
        if (g_HealthAmount > 0)
        {
            SetClientHealth(client, g_HealthAmount);
        }
        if (g_Helmets)
        {
            GivePlayerItem(client, "item_kevlar");
            GivePlayerItem(client, "item_kevlar");
        }
        GiveGrenades(client, g_Flashes, g_HEs, g_Smokes);
        if (g_NightVision)
        {
            GiveNightVision(client);
        }
    }
    else
    {
        /* See if we'll need to strip this bot */
        if (g_BotSecondaryCount || g_BotPrimaryCount)
        {
            DM_StripBotItems(client);
        }
        if (g_BotArmor > 0)
        {
            GivePlayerItem(client, "item_assaultsuit");
            GivePlayerItem(client, "item_assaultsuit");
            SetClientArmor(client, g_BotArmor);
        } else {
            /* Make sure bot didn't buy armor */
            SetClientArmor(client, 0);
        }
        if (g_BotHealthAmount > 0)
        {
            SetClientHealth(client, g_BotHealthAmount);
        }
        if (g_BotHelmets)
        {
            GivePlayerItem(client, "item_kevlar");
            GivePlayerItem(client, "item_kevlar");
        }
        GiveGrenades(client, g_BotFlashes, g_BotHEs, g_BotSmokes);
    }
    if (!g_AllowBuy && g_SpawnTimers[client] == INVALID_HANDLE)
    {
        /* Small delay - we want to avoid ResetHUD */
        g_SpawnTimers[client] = CreateTimer(0.1, PlayerPostSpawn, client);
    }
}

public Action:PlayerPostSpawn(Handle:timer, any:client)
{
    g_SpawnTimers[client] = INVALID_HANDLE;
  
    if (!ShouldRun())
    {
        return Plugin_Stop;
    }
  
    if (IsFakeClient(client))
    {
        if (g_BotSecondaryCount > 0)
        {
            new index;
            if (g_BotSecondaryCount == 1)
            {
                index = g_BotSecondaryList[0];
            } else {
                index = GetRandomInt(0, g_BotSecondaryCount-1);
                index = g_BotSecondaryList[index];
            }
            decl String:classname[64];
            DM_GetWeaponClassname(index, classname, sizeof(classname));
            GivePlayerItem(client, classname);
        }
        if (g_BotPrimaryCount > 0)
        {
            new index;
            if (g_BotPrimaryCount == 1)
            {
                index = g_BotPrimaryList[0];
            } else {
                index = GetRandomInt(0, g_BotPrimaryCount-1);
                index = g_BotPrimaryList[index];
            }
            decl String:classname[64];
            DM_GetWeaponClassname(index, classname, sizeof(classname));
            GivePlayerItem(client, classname);
        }
        if (g_BotDefuseKits && GetClientTeam(client) == CSSDM_TEAM_CT)
        {
            GivePlayerItem(client, "item_defuser");
        }
    } else {
        if (g_DefuseKits && GetClientTeam(client) == CSSDM_TEAM_CT)
        {
            GivePlayerItem(client, "item_defuser");
        }
      
        new numGiven = 0;
        /* First, check if we should only be giving one of something automatically */
        if ((g_SecondaryMenu == CSSDM_GUNMENU_RANDOM || g_SecondaryMenu == CSSDM_GUNMENU_YES)
            && g_SecondaryCount == 1)
        {
            GiveSecondary(client, 0);
            numGiven++;
        } else if (g_PrimaryMenu == CSSDM_GUNMENU_RANDOM && g_PrimaryCount > 1) {
            GivePrimary(client, g_PrimaryCount);
            numGiven++;
        }
      
        if ((g_PrimaryMenu == CSSDM_GUNMENU_RANDOM || g_PrimaryMenu == CSSDM_GUNMENU_YES)
            && g_PrimaryCount == 1)
        {
            GivePrimary(client, 0);
            numGiven++;
        } else if (g_SecondaryMenu == CSSDM_GUNMENU_RANDOM && g_SecondaryCount > 1) {
            GiveSecondary(client, g_SecondaryCount);
            numGiven++;
        }
      
        /* If we've already given two weapons, there is no need for a menu. */
        if (numGiven == 2)
        {
            return Plugin_Stop;
        }
      
        if (g_GunMenuEnabled[client])
        {
            DisplayMenu(g_hEquipMenu, client, MENU_TIME_FOREVER);
        } else {
            GiveBothFromChoices(client);
        }
    }
  
    return Plugin_Stop;
}

public Action:Command_Say(client, args)
{
    if (!ShouldRun())
    {
        return Plugin_Continue;
    }
  
    new String:text[192];
    GetCmdArg(1, text, sizeof(text));
  
    if (strcmp(text, "guns") == 0)
    {
        if (!g_AllowGunCommand)
        {
            PrintToChat(client, "[CSSDM] %t", "GunsMenuDisabled");
            return Plugin_Handled;
        }
      
        if (!ChooseFromSecondary() && !ChooseFromPrimary())
        {
            PrintToChat(client, "[CSSDM] %t", "GunsMenuNotAvailable");
            return Plugin_Handled;
        }
      
        if (g_GunMenuEnabled[client])
        {
            PrintToChat(client, "[CSSDM] %t", "GunsMenuAlreadyEnabled");
            return Plugin_Handled;
        }
      
        g_GunMenuEnabled[client] = true;
        if (!g_GunMenuAvailable[client])
        {
            PrintToChat(client, "[CSSDM] %t", "GunsMenuReactivated");
        } else {
            DisplayMenu(g_hEquipMenu, client, MENU_TIME_FOREVER);
        }
      
        return Plugin_Handled;
    }
  
    return Plugin_Continue;
}

public Action:OnClientCommand(client, args)
{
    if (!ShouldRun() || g_AllowBuy)
    {
        return Plugin_Continue;
    }
  
    decl String:cmd[32];
    GetCmdArg(0, cmd, sizeof(cmd));
  
    if (StrEqual(cmd, "buy")
        || StrEqual(cmd, "autobuy")
        || StrEqual(cmd, "rebuy")
        || StrEqual(cmd, "buyequip")
        || StrEqual(cmd, "buymenu"))
    {
        return Plugin_Handled;
    }
  
    return Plugin_Continue;
}

public Menu_EquipHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
  
    if (action == MenuAction_DrawItem)
    {
        if (param2 == 1 || param2 == 2)
        {
            if (g_PrimaryChoices[param1] == -1 && g_SecondaryChoices[param1] == -1)
            {
                return ITEMDRAW_DISABLED;
            }
        }
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        if (param2 == 0)
        {
            if (ChooseFromSecondary())
            {
                DisplayMenu(g_hSecondaryMenu, param1, MENU_TIME_FOREVER);
            } else if (ChooseFromPrimary()) {
                DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
            }
        } else if (param2 == 1) {
            GiveBothFromChoices(param1);
        } else if (param2 == 2) {
            GiveBothFromChoices(param1);
            g_GunMenuEnabled[param1] = false;
            PrintToChat(param1, "[CSSDM] %t", "SayGunsNotify");
        } else if (param2 == 3) {
            GivePrimary(param1, g_PrimaryCount);
            GiveSecondary(param1, g_SecondaryCount);
        } else if (param2 == 4) {
            GivePrimary(param1, g_PrimaryCount);
            GiveSecondary(param1, g_SecondaryCount);
            GiveBothFromChoices(param1);
            g_GunMenuEnabled[param1] = false;
            PrintToChat(param1, "[CSSDM] %t", "SayGunsNotify");
        }
        g_GunMenuAvailable[param1] = false;
    }
    else if (action == MenuAction_DisplayItem)
    {
        decl style;
        decl String:info[12], String:lang_phrase[32];
      
        if (!GetMenuItem(menu, param2, info, sizeof(info), style, lang_phrase, sizeof(lang_phrase)))
        {
            return 0;
        }
      
        decl String:t_phrase[64];
        Format(t_phrase, sizeof(t_phrase), "%T", lang_phrase, param1);
      
        return RedrawMenuItem(t_phrase);
    }
  
    return 0;
}

public Menu_PrimaryHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
  
    if (action == MenuAction_DrawItem)
    {
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        GivePrimary(param1, param2);
    }
    else if (action == MenuAction_Display)
    {
        new Handle:hPanel = Handle:param2;
        decl String:title[128];
      
        Format(title, sizeof(title), "%T:", "Primary weapon", param1);
      
        SetPanelTitle(hPanel, title);
    }
  
    return 0;
}

public Menu_SecondaryHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
  
    if (action == MenuAction_DrawItem)
    {
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        GiveSecondary(param1, param2);
        if (ChooseFromPrimary())
        {
            DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
        }
    }
    else if (action == MenuAction_Cancel
             && param2 == MenuCancel_Exit)
    {
        if (ChooseFromPrimary())
        {
            DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
        }
    }
    else if (action == MenuAction_Display)
    {
        new Handle:hPanel = Handle:param2;
        decl String:title[128];
      
        Format(title, sizeof(title), "%T:", "Secondary weapon", param1);
      
        SetPanelTitle(hPanel, title);
    }
  
    return 0;
}

bool:ChooseFromPrimary()
{
    return (g_PrimaryMenu == CSSDM_GUNMENU_YES
            && g_PrimaryCount > 1);
}

bool:ChooseFromSecondary()
{
    return (g_SecondaryMenu == CSSDM_GUNMENU_YES
            && g_SecondaryCount > 1);
}

GiveWeapon(client, index)
{
    new DmWeaponType:type = DM_GetWeaponType(index);
  
    new entity = DM_GetClientWeapon(client, type);
    if (entity != -1)
    {
        DM_DropWeapon(client, entity);
    }
  
    new String:cls[64];
    DM_GetWeaponClassname(index, cls, sizeof(cls));
  
    return GivePlayerItem(client, cls);
}

GiveBothFromChoices(client)
{
    if (ChooseFromPrimary())
    {
        GivePrimary(client, g_PrimaryChoices[client]);
    }
  
    if (ChooseFromSecondary())
    {
        GiveSecondary(client, g_SecondaryChoices[client]);
    }
}

/**
* Gives a primary weapon to a client.
* If the list_index is > the count, we choose one randomly.
* This is a hack so we can append "Random" to the choice list.
*/
GivePrimary(client, list_index)
{
    if (list_index < 0)
    {
        return;
    }
  
    new weapon_index;
    if (list_index >= g_PrimaryCount)
    {
        if (g_PrimaryCount > 1)
        {
            weapon_index = GetRandomInt(0, g_PrimaryCount-1);
            weapon_index = g_PrimaryList[weapon_index];
        } else if (g_PrimaryCount == 1) {
            weapon_index = g_PrimaryList[0];
        } else {
            return;
        }
    } else {
        weapon_index = g_PrimaryList[list_index];
    }
  
    g_PrimaryChoices[client] = list_index;
  
    GiveWeapon(client, weapon_index);
}

/**
* Gives a secondary weapon to a client.
* If the list_index is > the count, we choose one randomly.
* This is a hack so we can append "Random" to the choice list.
*/
GiveSecondary(client, list_index)
{
    if (list_index < 0)
    {
        return;
    }
  
    new weapon_index;
    if (list_index >= g_SecondaryCount)
    {
        if (g_SecondaryCount > 1)
        {
            weapon_index = GetRandomInt(0, g_SecondaryCount-1);
            weapon_index = g_SecondaryList[weapon_index];
        } else if (g_SecondaryCount == 1) {
            weapon_index = g_SecondaryList[0];
        } else {
            return;
        }
    } else {
        weapon_index = g_SecondaryList[list_index];
    }
  
    g_SecondaryChoices[client] = list_index;
  
    GiveWeapon(client, weapon_index);
}

bool:ShouldRun()
{
    return (DM_IsRunning() && g_IsEnabled);
}

bool:KvGetYesOrNo(Handle:kv, const String:key[], bool:curdefault)
{
    decl String:value[12];
    KvGetString(kv, key, value, sizeof(value), curdefault ? "yes" : "no");
    return (strcmp(value, "yes") == 0);
}

KvGetGunMenu(Handle:kv, const String:key[], def)
{
    decl String:sdef[12];
    if (def == CSSDM_GUNMENU_YES)
    {
        strcopy(sdef, sizeof(sdef), "yes");
    } else if (def == CSSDM_GUNMENU_RANDOM) {
        strcopy(sdef, sizeof(sdef), "random");
    } else {
        strcopy(sdef, sizeof(sdef), "no");
    }
  
    decl String:value[12];
    KvGetString(kv, key, value, sizeof(value), sdef);
  
    if (strcmp(value, "yes") == 0)
    {
        return CSSDM_GUNMENU_YES;
    } else if (strcmp(value, "random") == 0) {
        return CSSDM_GUNMENU_RANDOM;
    }
  
    return CSSDM_GUNMENU_NO;
}

LoadDefaults()
{
    g_PrimaryMenu = CSSDM_GUNMENU_YES;
    g_SecondaryMenu = CSSDM_GUNMENU_YES;
    g_AllowBuy = false;
    g_ArmorAmount = 100;
    g_Helmets = true;
    g_Flashes = 0;
    g_Smokes = false;
    g_HEs = false;
    g_NightVision = false;
    g_DefuseKits = true;
    g_HealthAmount = 100;
    g_AllowGunCommand = true;
}

bool:LoadConfigFile(const String:path[])
{
    new Handle:kv = CreateKeyValues("Equipment");
    if (!FileToKeyValues(kv, path))
    {
        return false;
    }
  
    decl String:value[255];
  
    /* Load settings */
    if (KvJumpToKey(kv, "Settings"))
    {
        g_AllowGunCommand = KvGetYesOrNo(kv, "guns_command", g_AllowGunCommand);
        KvGoBack(kv);
    }
  
    /* Load menu options */
    if (KvJumpToKey(kv, "Menus"))
    {
        g_PrimaryMenu = KvGetGunMenu(kv, "primary", g_PrimaryMenu);
        g_SecondaryMenu = KvGetGunMenu(kv, "secondary", g_SecondaryMenu);
        g_AllowBuy = KvGetYesOrNo(kv, "buy", g_AllowBuy);
        KvGoBack(kv);
    }
  
    /* Load automatic stuff */
    if (KvJumpToKey(kv, "AutoItems"))
    {
        g_ArmorAmount = KvGetNum(kv, "armor", g_ArmorAmount);
        g_Flashes = KvGetNum(kv, "flashbangs", g_Flashes);
        g_Helmets = KvGetYesOrNo(kv, "helmet", g_Helmets);
        g_Smokes = KvGetYesOrNo(kv, "smokegrenade", g_Smokes);
        g_HEs = KvGetYesOrNo(kv, "hegrenade", g_HEs);
        g_NightVision = KvGetYesOrNo(kv, "nightvision", g_NightVision);
        g_DefuseKits = KvGetYesOrNo(kv, "defusekits", g_DefuseKits);
        g_HealthAmount = KvGetNum(kv, "health", g_HealthAmount);
        KvGoBack(kv);
    }
  
    /* Load bot items */
    if (KvJumpToKey(kv, "BotItems"))
    {
        /* Clear out old lists first */
        g_BotPrimaryCount = 0;
        g_BotSecondaryCount = 0;
      
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1)
                    {
                        new DmWeaponType:type = DM_GetWeaponType(index);
                        if (type == DmWeapon_Primary && g_BotPrimaryCount < CSSDM_MAX_WEAPONS)
                        {
                            g_BotPrimaryList[g_BotPrimaryCount++] = index;
                        } else if (type == DmWeapon_Secondary && g_BotSecondaryCount < CSSDM_MAX_WEAPONS) {
                            g_BotSecondaryList[g_BotSecondaryCount++] = index;
                        }
                    }                 
                } else if (strcmp(value, "armor") == 0) {
                    g_BotArmor = KvGetNum(kv, NULL_STRING, 100);
                } else if (strcmp(value, "helmet") == 0) {
                    g_BotHelmets = KvGetYesOrNo(kv, NULL_STRING, true);
                } else if (strcmp(value, "flashbangs") == 0) {
                    g_BotFlashes = KvGetNum(kv, NULL_STRING);
                } else if (strcmp(value, "smokegrenade") == 0) {
                    g_BotSmokes = KvGetYesOrNo(kv, NULL_STRING, false);
                } else if (strcmp(value, "hegrenade") == 0) {
                    g_BotHEs = KvGetYesOrNo(kv, NULL_STRING, false);
                } else if (strcmp(value, "defusekits") == 0) {
                    g_BotDefuseKits = KvGetYesOrNo(kv, NULL_STRING, true);
                } else if (strcmp(value, "health") == 0) {
                    g_BotHealthAmount = KvGetNum(kv, NULL_STRING, 100);
                }
            } while (KvGotoNextKey(kv, false));
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
  
    /* Load secondary weapons */
    if (KvJumpToKey(kv, "SecondaryMenu"))
    {
        /* Clear out old list first */
        g_SecondaryCount = 0;
      
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1 && DM_GetWeaponType(index) == DmWeapon_Secondary)
                    {
                        g_SecondaryList[g_SecondaryCount++] = index;
                    }
                }
            } while (KvGotoNextKey(kv, false) && g_SecondaryCount < CSSDM_MAX_WEAPONS);
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
  
    /* Load primary weapons */
    if (KvJumpToKey(kv, "PrimaryMenu"))
    {
        /* Clear out old list first */
        g_PrimaryCount = 0;
      
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1 && DM_GetWeaponType(index) == DmWeapon_Primary)
                    {
                        g_PrimaryList[g_PrimaryCount++] = index;
                    }
                }
            } while (KvGotoNextKey(kv, false) && g_PrimaryCount < CSSDM_MAX_WEAPONS);
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
  
    CloseHandle(kv);
  
    /* Build the primary menu */
    if (g_hPrimaryMenu != INVALID_HANDLE)
    {
        CloseHandle(g_hPrimaryMenu);
    }
    g_hPrimaryMenu = CreateMenu(Menu_PrimaryHandler, MenuAction_DrawItem|MenuAction_Display);
    SetMenuTitle(g_hPrimaryMenu, "Primary weapon:");
    for (new i=0; i<g_PrimaryCount; i++)
    {
        new index = g_PrimaryList[i];
        DM_GetWeaponName(index, value, sizeof(value));
        AddMenuItem(g_hPrimaryMenu, "", value);
    }
    AddMenuItem(g_hPrimaryMenu, "", "Random");
  
    /* Build the secondary menu */
    if (g_hSecondaryMenu != INVALID_HANDLE)
    {
        CloseHandle(g_hSecondaryMenu);
    }
    g_hSecondaryMenu = CreateMenu(Menu_SecondaryHandler, MenuAction_DrawItem|MenuAction_Display);
    SetMenuTitle(g_hSecondaryMenu, "Secondary weapon:");
    for (new i=0; i<g_SecondaryCount; i++)
    {
        new index = g_SecondaryList[i];
        DM_GetWeaponName(index, value, sizeof(value));
        AddMenuItem(g_hSecondaryMenu, "", value);
    }
    AddMenuItem(g_hSecondaryMenu, "", "Random");
  
    return true;
}

SetClientArmor(client, armor)
{
    if (g_ArmorOffset == -1)
    {
        return;
    }
  
    SetEntData(client, g_ArmorOffset, armor, 4, true);
}

SetClientHealth(client, health)
{
    if (g_HealthOffset == -1)
    {
        return;
    }
  
    SetEntData(client, g_HealthOffset, health, 4, true);
}

GiveGrenades(client, flashnum, bool:he, bool:smoke)
{
    if (he)
    {
        GivePlayerItem(client, "weapon_hegrenade");
    }
    for (new i=0; i<flashnum; i++)
    {
        GivePlayerItem(client, "weapon_flashbang");
    }
    if (smoke)
    {
        GivePlayerItem(client, "weapon_smokegrenade");
    }
}

GiveNightVision(client)
{
    if (g_NVOffset == -1)
    {
        return;
    }
  
    SetEntData(client, g_NVOffset, true, 1, true);
}
ты решил проблему? если да то подскажи как!
 

Голос_в_ночи

Племяш Габена
Сообщения
333
Реакции
31
При установленной переменной cssdm_ffa_enabled "1", серв идет в краш. Логов нет
CSS v34, SourceMod (1.11.0.6522)
 

R3DDG

Участник
Сообщения
1
Реакции
0
Всем привет! Пытаюсь наладить меню оружия по кнопке F1 и F2. Позаимствовал часть кода из плагина GunMenu, перенес в dm_eqipments.dmx строчки, что отвечают за эти клавиши. Но, наверное, я сделал это некорректно, когда можно было запихнуть условие 397 строчки в 364, но я не умею кодить (чисто интуитивно сделал). Плагин работает, меню оружия вызывается по нажатию F1, F2. Может быть, кто грамотный, доработает еще этот код.

dm_eqipments:
/**
 * dm_equipment.sp
 * Adds preset spawning to CS:S DM.
 * This file is part of CS:S DM, Copyright (C) 2005-2007 AlliedModders LLC
 * by David "BAILOPAN" Anderson, http://www.bailopan.net/cssdm/
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 * Version: $Id$
 */

#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <cssdm>

#define CSSDM_GUNMENU_NO        0
#define CSSDM_GUNMENU_YES        1
#define CSSDM_GUNMENU_RANDOM    2

/** Plugin Stuff */
new Handle:cssdm_enable_equipment;                    /** cssdm_enable_equipment cvar */
new g_ArmorOffset = -1;                                /* m_ArmorValue offset */
new g_NVOffset = -1;                                /* m_bHasNightVision offset */
new g_HealthOffset = -1;                            /* m_iHealth offset */
new Handle:g_SpawnTimers[MAXPLAYERS+1];                /* Post-spawn timers */
new Handle:g_hPrimaryMenu = INVALID_HANDLE;            /* Priamry menu Handle */
new Handle:g_hSecondaryMenu = INVALID_HANDLE;        /* Secondary menu Handle */
new Handle:g_hEquipMenu = INVALID_HANDLE;            /* Main equipment menu */
new bool:g_IsEnabled = false;                        /* Whether the plugin should work */
new g_PrimaryChoices[MAXPLAYERS+1];                    /* Primary weapon selections */
new g_SecondaryChoices[MAXPLAYERS+1];                /* Secondary weapon selections */
new bool:g_GunMenuEnabled[MAXPLAYERS+1];            /* Whether the gun menu is enabled */
new bool:g_GunMenuAvailable[MAXPLAYERS+1];            /* Whether the gun menu is available */
new bool:g_bIsGo = false;                            /* Are we running on CS:GO? */

/** HUMAN CONFIGS */
new g_PrimaryList[CSSDM_MAX_WEAPONS];
new g_SecondaryList[CSSDM_MAX_WEAPONS];
new g_PrimaryCount = 0;
new g_SecondaryCount = 0;
new g_PrimaryMenu = CSSDM_GUNMENU_YES;
new g_SecondaryMenu = CSSDM_GUNMENU_YES;
new bool:g_AllowBuy = false;
new g_ArmorAmount = 100;
new bool:g_Helmets = true;
new g_Flashes = 0;
new bool:g_Smokes = false;
new bool:g_HEs = false;
new bool:g_NightVision = false;
new bool:g_DefuseKits = true;
new bool:g_AllowGunCommand = true;
new g_HealthAmount = 100;
//CSGO
new bool:g_Decoy = false;
new bool:g_Taser = true;

/** BOT CONFIGS */
new g_BotPrimaryList[CSSDM_MAX_WEAPONS];
new g_BotSecondaryList[CSSDM_MAX_WEAPONS];
new g_BotPrimaryCount = 0;
new g_BotSecondaryCount = 0;
new g_BotArmor = 100;
new bool:g_BotHelmets = false;
new g_BotFlashes = 0;
new bool:g_BotSmokes = false;
new bool:g_BotHEs = false;
new bool:g_BotDefuseKits = true;
new g_BotHealthAmount = 100;
//CSGO
new bool:g_BotDecoy = false;
new bool:g_BotTaser = true;

/** PUBLIC INFO */
public Plugin:myinfo =
{
    name = "CS:S DM Equipment",
    author = "AlliedModders LLC",
    description = "Adds gun menu/equipment to CS:S DM",
    version = CSSDM_VERSION,
    url = "http://www.bailopan.net/cssdm/"
};

/******************
 * IMPLEMENTATION *
 ******************/
 
public OnPluginStart()
{
    new String:game[64];
    GetGameFolderName(game, sizeof(game));
    if (StrEqual(game, "csgo", false))
    {
        g_bIsGo = true;
    }
   
    LoadTranslations("cssdm.phrases");
   
    RegConsoleCmd("say", Command_Say);
    RegConsoleCmd("say_team", Command_Say);
   
    cssdm_enable_equipment = CreateConVar("cssdm_enable_equipment", "1", "Sets whether the equipment plugin is enabled");
    HookConVarChange(cssdm_enable_equipment, OnEquipmentEnableChange);
   
    g_ArmorOffset = FindSendPropOffs("CCSPlayer", "m_ArmorValue");
    g_NVOffset = FindSendPropOffs("CCSPlayer", "m_bHasNightVision");
    g_HealthOffset = FindSendPropOffs("CCSPlayer", "m_iHealth");
   
    g_hEquipMenu = CreateMenu(Menu_EquipHandler, MenuAction_DrawItem|MenuAction_DisplayItem);
    SetMenuTitle(g_hEquipMenu, "Weapon Options:");
    SetMenuExitButton(g_hEquipMenu, false);
    AddMenuItem(g_hEquipMenu, "", "New weapons");
    AddMenuItem(g_hEquipMenu, "", "Same weapons");
    AddMenuItem(g_hEquipMenu, "", "Same weapons every time");
    AddMenuItem(g_hEquipMenu, "", "Random weapons");
    AddMenuItem(g_hEquipMenu, "", "Random weapons every time");
    AddCommandListener(Cmd_Buy, "autobuy");
    AddCommandListener(Cmd_Buy, "rebuy");
    AddCommandListener(Cmd_Buy, "buy");
}

public OnEquipmentEnableChange(Handle:convar, const String:oldValue[], const String:newValue[])
{
    g_IsEnabled = StringToInt(newValue) ? true : false;
}

public OnConfigsExecuted()
{
    LoadDefaults();
   
    if ((g_IsEnabled = LoadConfigFile("cfg/cssdm/cssdm.equip.txt")) == false)
    {
        LogError("[CSSDM] Could not find equipment file \"%s\"", "cfg/cssdm/cssdm.equip.txt");
        return;
    }
   
    if (!GetConVarInt(cssdm_enable_equipment))
    {
        g_IsEnabled = false;
        return;
    }
   
    /** See if there is a map version */
    decl String:map[64];
    decl String:path[255];
    GetCurrentMap(map, sizeof(map));
    Format(path, sizeof(path), "cfg/cssdm/maps/%s.equip.txt", map);
   
    if (FileExists(path))
    {
        LoadConfigFile(path);
    }
}

public Action:DM_OnClientDeath(client)
{
    if (g_SpawnTimers[client] != INVALID_HANDLE)
    {
        KillTimer(g_SpawnTimers[client]);
        g_SpawnTimers[client] = INVALID_HANDLE;
    }
    g_GunMenuAvailable[client] = true;
}

public OnClientPutInServer(client)
{
    g_GunMenuEnabled[client] = true;
    g_GunMenuAvailable[client] = true;
    g_PrimaryChoices[client] = -1;
    g_SecondaryChoices[client] = -1;
}

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

public DM_OnClientSpawned(client)
{
    if (!ShouldRun())
    {
        return;
    }
   
    if (!IsFakeClient(client))
    {
        if (g_ArmorAmount > 0)
        {
            GivePlayerItem(client, "item_assaultsuit");
            GivePlayerItem(client, "item_assaultsuit");
            SetClientArmor(client, g_ArmorAmount);
        }
        if (g_HealthAmount > 0)
        {
            SetClientHealth(client, g_HealthAmount);
        }
        if (g_Helmets)
        {
            GivePlayerItem(client, "item_kevlar");
            GivePlayerItem(client, "item_kevlar");
        }
        GiveGrenades(client, g_Flashes, g_HEs, g_Smokes, g_Decoy);
        if (g_NightVision)
        {
            GiveNightVision(client);
        }
        if (g_bIsGo && g_Taser)
        {
            GivePlayerItem(client, "weapon_taser");
        }
    }
    else
    {
        /* See if we'll need to strip this bot */
        if (g_BotSecondaryCount || g_BotPrimaryCount)
        {
            DM_StripBotItems(client);
        }
        if (g_BotArmor > 0)
        {
            GivePlayerItem(client, "item_assaultsuit");
            GivePlayerItem(client, "item_assaultsuit");
            SetClientArmor(client, g_BotArmor);
        } else {
            /* Make sure bot didn't buy armor */
            SetClientArmor(client, 0);
        }
        if (g_BotHealthAmount > 0)
        {
            SetClientHealth(client, g_BotHealthAmount);
        }
        if (g_BotHelmets)
        {
            GivePlayerItem(client, "item_kevlar");
            GivePlayerItem(client, "item_kevlar");
        }
        if (g_bIsGo && g_BotTaser)
        {
            GivePlayerItem(client, "weapon_taser");
        }
        GiveGrenades(client, g_BotFlashes, g_BotHEs, g_BotSmokes, g_BotDecoy);
    }
    if (!g_AllowBuy && g_SpawnTimers[client] == INVALID_HANDLE)
    {
        /* Small delay - we want to avoid ResetHUD */
        g_SpawnTimers[client] = CreateTimer(0.1, PlayerPostSpawn, client);
    }
}

public Action:PlayerPostSpawn(Handle:timer, any:client)
{
    g_SpawnTimers[client] = INVALID_HANDLE;
   
    if (!ShouldRun())
    {
        return Plugin_Stop;
    }
   
    if (IsFakeClient(client))
    {
        if (g_BotSecondaryCount > 0)
        {
            new index;
            if (g_BotSecondaryCount == 1)
            {
                index = g_BotSecondaryList[0];
            } else {
                index = GetRandomInt(0, g_BotSecondaryCount-1);
                index = g_BotSecondaryList[index];
            }
            decl String:classname[64];
            DM_GetWeaponClassname(index, classname, sizeof(classname));
            GivePlayerItem(client, classname);
        }
        if (g_BotPrimaryCount > 0)
        {
            new index;
            if (g_BotPrimaryCount == 1)
            {
                index = g_BotPrimaryList[0];
            } else {
                index = GetRandomInt(0, g_BotPrimaryCount-1);
                index = g_BotPrimaryList[index];
            }
            decl String:classname[64];
            DM_GetWeaponClassname(index, classname, sizeof(classname));
            GivePlayerItem(client, classname);
        }
        if (g_BotDefuseKits && GetClientTeam(client) == CSSDM_TEAM_CT)
        {
            GivePlayerItem(client, "item_defuser");
        }
    } else {
        if (g_DefuseKits && GetClientTeam(client) == CSSDM_TEAM_CT)
        {
            GivePlayerItem(client, "item_defuser");
        }
       
        new numGiven = 0;
        /* First, check if we should only be giving one of something automatically */
        if ((g_SecondaryMenu == CSSDM_GUNMENU_RANDOM || g_SecondaryMenu == CSSDM_GUNMENU_YES)
            && g_SecondaryCount == 1)
        {
            GiveSecondary(client, 0);
            numGiven++;
        } else if (g_PrimaryMenu == CSSDM_GUNMENU_RANDOM && g_PrimaryCount > 1) {
            GivePrimary(client, g_PrimaryCount);
            numGiven++;
        }
       
        if ((g_PrimaryMenu == CSSDM_GUNMENU_RANDOM || g_PrimaryMenu == CSSDM_GUNMENU_YES)
            && g_PrimaryCount == 1)
        {
            GivePrimary(client, 0);
            numGiven++;
        } else if (g_SecondaryMenu == CSSDM_GUNMENU_RANDOM && g_SecondaryCount > 1) {
            GiveSecondary(client, g_SecondaryCount);
            numGiven++;
        }
       
        /* If we've already given two weapons, there is no need for a menu. */
        if (numGiven == 2)
        {
            return Plugin_Stop;
        }
       
        if (g_GunMenuEnabled[client])
        {
            DisplayMenu(g_hEquipMenu, client, MENU_TIME_FOREVER);
        } else {
            GiveBothFromChoices(client);
        }
    }
   
    return Plugin_Stop;
}

public Action:Command_Say(client, args)
{
    if (!ShouldRun())
    {
        return Plugin_Continue;
    }
   
    new String:text[192];
    GetCmdArg(1, text, sizeof(text));
   
    if (strcmp(text, "guns") == 0)
    {
        if (!g_AllowGunCommand)
        {
            PrintToChat(client, "[DM] %t", "GunsMenuDisabled");
            return Plugin_Handled;
        }
       
        if (!ChooseFromSecondary() && !ChooseFromPrimary())
        {
            PrintToChat(client, "[DM] %t", "GunsMenuNotAvailable");
            return Plugin_Handled;
        }
       
        if (g_GunMenuEnabled[client])
        {
            PrintToChat(client, "[DM] %t", "GunsMenuAlreadyEnabled");
            return Plugin_Handled;
        }
       
        g_GunMenuEnabled[client] = true;
        if (!g_GunMenuAvailable[client])
        {
            PrintToChat(client, "[DM] %t", "GunsMenuReactivated");
        } else {
            DisplayMenu(g_hEquipMenu, client, MENU_TIME_FOREVER);
        }
       
        return Plugin_Handled;
    }
   
    return Plugin_Continue;
}
public Action Cmd_Buy(int client, const char[] cmd, int argc)
{
    if(client && IsClientInGame(client) && GetClientTeam(client))
    {
            if (!g_AllowGunCommand)
        {
            PrintToChat(client, "[DM] %t", "GunsMenuDisabled");
            return Plugin_Handled;
        }
       
        if (!ChooseFromSecondary() && !ChooseFromPrimary())
        {
            PrintToChat(client, "[DM] %t", "GunsMenuNotAvailable");
            return Plugin_Handled;
        }
       
        if (g_GunMenuEnabled[client])
        {
            PrintToChat(client, "[DM] %t", "GunsMenuAlreadyEnabled");
            return Plugin_Handled;
        }
       
        g_GunMenuEnabled[client] = true;
        if (!g_GunMenuAvailable[client])
        {
            PrintToChat(client, "[DM] %t", "GunsMenuReactivated");
        } else {
            DisplayMenu(g_hEquipMenu, client, MENU_TIME_FOREVER);
        }
    }
    return Plugin_Handled;
}

public Action:OnClientCommand(client, args)
{
    if (!ShouldRun() || g_AllowBuy)
    {
        return Plugin_Continue;
    }
   
    decl String:cmd[32];
    GetCmdArg(0, cmd, sizeof(cmd));
   
    if (StrEqual(cmd, "buy")

        || StrEqual(cmd, "rebuy")
        || StrEqual(cmd, "buyequip")
        || StrEqual(cmd, "buymenu"))
    {
        return Plugin_Handled;
    }
   
    return Plugin_Continue;
}

public Menu_EquipHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
   
    if (action == MenuAction_DrawItem)
    {
        if (param2 == 1 || param2 == 2)
        {
            if (g_PrimaryChoices[param1] == -1 && g_SecondaryChoices[param1] == -1)
            {
                return ITEMDRAW_DISABLED;
            }
        }
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        if (param2 == 0)
        {
            if (ChooseFromSecondary())
            {
                DisplayMenu(g_hSecondaryMenu, param1, MENU_TIME_FOREVER);
            } else if (ChooseFromPrimary()) {
                DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
            }
        } else if (param2 == 1) {
            GiveBothFromChoices(param1);
        } else if (param2 == 2) {
            GiveBothFromChoices(param1);
            g_GunMenuEnabled[param1] = false;
            PrintToChat(param1, "[CSSDM] %t", "SayGunsNotify");
        } else if (param2 == 3) {
            GivePrimary(param1, g_PrimaryCount);
            GiveSecondary(param1, g_SecondaryCount);
        } else if (param2 == 4) {
            GivePrimary(param1, g_PrimaryCount);
            GiveSecondary(param1, g_SecondaryCount);
            GiveBothFromChoices(param1);
            g_GunMenuEnabled[param1] = false;
            PrintToChat(param1, "[CSSDM] %t", "SayGunsNotify");
        }
        g_GunMenuAvailable[param1] = false;
    }
    else if (action == MenuAction_DisplayItem)
    {
        decl style;
        decl String:info[12], String:lang_phrase[32];
       
        if (!GetMenuItem(menu, param2, info, sizeof(info), style, lang_phrase, sizeof(lang_phrase)))
        {
            return 0;
        }
       
        decl String:t_phrase[64];
        Format(t_phrase, sizeof(t_phrase), "%T", lang_phrase, param1);
       
        return RedrawMenuItem(t_phrase);
    }
   
    return 0;
}

public Menu_PrimaryHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
   
    if (action == MenuAction_DrawItem)
    {
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        GivePrimary(param1, param2);
    }
    else if (action == MenuAction_Display)
    {
        new Handle:hPanel = Handle:param2;
        decl String:title[128];
       
        Format(title, sizeof(title), "%T:", "Primary weapon", param1);
       
        SetPanelTitle(hPanel, title);
    }
   
    return 0;
}

public Menu_SecondaryHandler(Handle:menu, MenuAction:action, param1, param2)
{
    if (!ShouldRun())
    {
        return 0;
    }
   
    if (action == MenuAction_DrawItem)
    {
        return ITEMDRAW_DEFAULT;
    }
    else if (action == MenuAction_Select)
    {
        GiveSecondary(param1, param2);
        if (ChooseFromPrimary())
        {
            DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
        }
    }
    else if (action == MenuAction_Cancel
             && param2 == MenuCancel_Exit)
    {
        if (ChooseFromPrimary())
        {
            DisplayMenu(g_hPrimaryMenu, param1, MENU_TIME_FOREVER);
        }
    }
    else if (action == MenuAction_Display)
    {
        new Handle:hPanel = Handle:param2;
        decl String:title[128];
       
        Format(title, sizeof(title), "%T:", "Secondary weapon", param1);
       
        SetPanelTitle(hPanel, title);
    }
   
    return 0;
}

bool:ChooseFromPrimary()
{
    return (g_PrimaryMenu == CSSDM_GUNMENU_YES
            && g_PrimaryCount > 1);
}

bool:ChooseFromSecondary()
{
    return (g_SecondaryMenu == CSSDM_GUNMENU_YES
            && g_SecondaryCount > 1);
}

GiveWeapon(client, index)
{
    if (!IsPlayerAlive(client))
    {
        return;
    }

    new DmWeaponType:type = DM_GetWeaponType(index);
   
    new entity = DM_GetClientWeapon(client, type);
    if (entity != -1)
    {
        DM_DropWeapon(client, entity);
    }
   
    new String:cls[64];
    DM_GetWeaponClassname(index, cls, sizeof(cls));
   
    GivePlayerItem(client, cls);
}

GiveBothFromChoices(client)
{
    if (ChooseFromPrimary())
    {
        GivePrimary(client, g_PrimaryChoices[client]);
    }
   
    if (ChooseFromSecondary())
    {
        GiveSecondary(client, g_SecondaryChoices[client]);
    }
}

/**
 * Gives a primary weapon to a client.
 * If the list_index is > the count, we choose one randomly.
 * This is a hack so we can append "Random" to the choice list.
 */
GivePrimary(client, list_index)
{
    if (list_index < 0)
    {
        return;
    }
   
    new weapon_index;
    if (list_index >= g_PrimaryCount)
    {
        if (g_PrimaryCount > 1)
        {
            weapon_index = GetRandomInt(0, g_PrimaryCount-1);
            weapon_index = g_PrimaryList[weapon_index];
        } else if (g_PrimaryCount == 1) {
            weapon_index = g_PrimaryList[0];
        } else {
            return;
        }
    } else {
        weapon_index = g_PrimaryList[list_index];
    }
   
    g_PrimaryChoices[client] = list_index;
   
    GiveWeapon(client, weapon_index);
}

/**
 * Gives a secondary weapon to a client.
 * If the list_index is > the count, we choose one randomly.
 * This is a hack so we can append "Random" to the choice list.
 */
GiveSecondary(client, list_index)
{
    if (list_index < 0)
    {
        return;
    }
   
    new weapon_index;
    if (list_index >= g_SecondaryCount)
    {
        if (g_SecondaryCount > 1)
        {
            weapon_index = GetRandomInt(0, g_SecondaryCount-1);
            weapon_index = g_SecondaryList[weapon_index];
        } else if (g_SecondaryCount == 1) {
            weapon_index = g_SecondaryList[0];
        } else {
            return;
        }
    } else {
        weapon_index = g_SecondaryList[list_index];
    }
   
    g_SecondaryChoices[client] = list_index;
   
    GiveWeapon(client, weapon_index);
}

bool:ShouldRun()
{
    return (DM_IsRunning() && g_IsEnabled);
}

bool:KvGetYesOrNo(Handle:kv, const String:key[], bool:curdefault)
{
    decl String:value[12];
    KvGetString(kv, key, value, sizeof(value), curdefault ? "yes" : "no");
    return (strcmp(value, "yes") == 0);
}

KvGetGunMenu(Handle:kv, const String:key[], def)
{
    decl String:sdef[12];
    if (def == CSSDM_GUNMENU_YES)
    {
        strcopy(sdef, sizeof(sdef), "yes");
    } else if (def == CSSDM_GUNMENU_RANDOM) {
        strcopy(sdef, sizeof(sdef), "random");
    } else {
        strcopy(sdef, sizeof(sdef), "no");
    }
   
    decl String:value[12];
    KvGetString(kv, key, value, sizeof(value), sdef);
   
    if (strcmp(value, "yes") == 0)
    {
        return CSSDM_GUNMENU_YES;
    } else if (strcmp(value, "random") == 0) {
        return CSSDM_GUNMENU_RANDOM;
    }
   
    return CSSDM_GUNMENU_NO;
}

LoadDefaults()
{
    g_PrimaryMenu = CSSDM_GUNMENU_YES;
    g_SecondaryMenu = CSSDM_GUNMENU_YES;
    g_AllowBuy = false;
    g_ArmorAmount = 100;
    g_Helmets = true;
    g_Flashes = 0;
    g_Smokes = false;
    g_HEs = false;
    g_NightVision = false;
    g_DefuseKits = true;
    g_HealthAmount = 100;
    g_AllowGunCommand = true;
}

bool:LoadConfigFile(const String:path[])
{
    new Handle:kv = CreateKeyValues("Equipment");
    if (!FileToKeyValues(kv, path))
    {
        return false;
    }
   
    decl String:value[255];
   
    /* Load settings */
    if (KvJumpToKey(kv, "Settings"))
    {
        g_AllowGunCommand = KvGetYesOrNo(kv, "guns_command", g_AllowGunCommand);
        KvGoBack(kv);
    }
   
    /* Load menu options */
    if (KvJumpToKey(kv, "Menus"))
    {
        g_PrimaryMenu = KvGetGunMenu(kv, "primary", g_PrimaryMenu);
        g_SecondaryMenu = KvGetGunMenu(kv, "secondary", g_SecondaryMenu);
        g_AllowBuy = KvGetYesOrNo(kv, "buy", g_AllowBuy);
        KvGoBack(kv);
    }
   
    /* Load automatic stuff */
    if (KvJumpToKey(kv, "AutoItems"))
    {
        g_ArmorAmount = KvGetNum(kv, "armor", g_ArmorAmount);
        g_Flashes = KvGetNum(kv, "flashbangs", g_Flashes);
        g_Helmets = KvGetYesOrNo(kv, "helmet", g_Helmets);
        g_Smokes = KvGetYesOrNo(kv, "smokegrenade", g_Smokes);
        g_HEs = KvGetYesOrNo(kv, "hegrenade", g_HEs);
        g_NightVision = KvGetYesOrNo(kv, "nightvision", g_NightVision);
        g_DefuseKits = KvGetYesOrNo(kv, "defusekits", g_DefuseKits);
        g_HealthAmount = KvGetNum(kv, "health", g_HealthAmount);
        g_Decoy = KvGetYesOrNo(kv, "decoy", g_Decoy);
        g_Taser = KvGetYesOrNo(kv, "taser", g_Taser);
        KvGoBack(kv);
    }
   
    /* Load bot items */
    if (KvJumpToKey(kv, "BotItems"))
    {
        /* Clear out old lists first */
        g_BotPrimaryCount = 0;
        g_BotSecondaryCount = 0;
       
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1)
                    {
                        new DmWeaponType:type = DM_GetWeaponType(index);
                        if (type == DmWeapon_Primary && g_BotPrimaryCount < CSSDM_MAX_WEAPONS)
                        {
                            g_BotPrimaryList[g_BotPrimaryCount++] = index;
                        } else if (type == DmWeapon_Secondary && g_BotSecondaryCount < CSSDM_MAX_WEAPONS) {
                            g_BotSecondaryList[g_BotSecondaryCount++] = index;
                        }
                    }                  
                } else if (strcmp(value, "armor") == 0) {
                    g_BotArmor = KvGetNum(kv, NULL_STRING, 100);
                } else if (strcmp(value, "helmet") == 0) {
                    g_BotHelmets = KvGetYesOrNo(kv, NULL_STRING, true);
                } else if (strcmp(value, "flashbangs") == 0) {
                    g_BotFlashes = KvGetNum(kv, NULL_STRING);
                } else if (strcmp(value, "smokegrenade") == 0) {
                    g_BotSmokes = KvGetYesOrNo(kv, NULL_STRING, false);
                } else if (strcmp(value, "hegrenade") == 0) {
                    g_BotHEs = KvGetYesOrNo(kv, NULL_STRING, false);
                } else if (strcmp(value, "defusekits") == 0) {
                    g_BotDefuseKits = KvGetYesOrNo(kv, NULL_STRING, true);
                } else if (strcmp(value, "health") == 0) {
                    g_BotHealthAmount = KvGetNum(kv, NULL_STRING, 100);
                } else if (strcmp(value, "decoy") == 0) {
                    g_BotDecoy = KvGetYesOrNo(kv, NULL_STRING, false);
                } else if (strcmp(value, "taser") == 0) {
                    g_BotTaser = KvGetYesOrNo(kv, NULL_STRING, true);
                }
            } while (KvGotoNextKey(kv, false));
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
   
    /* Load secondary weapons */
    if (KvJumpToKey(kv, "SecondaryMenu"))
    {
        /* Clear out old list first */
        g_SecondaryCount = 0;
       
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1 && DM_GetWeaponType(index) == DmWeapon_Secondary)
                    {
                        g_SecondaryList[g_SecondaryCount++] = index;
                    }
                }
            } while (KvGotoNextKey(kv, false) && g_SecondaryCount < CSSDM_MAX_WEAPONS);
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
   
    /* Load primary weapons */
    if (KvJumpToKey(kv, "PrimaryMenu"))
    {
        /* Clear out old list first */
        g_PrimaryCount = 0;
       
        if (KvGotoFirstSubKey(kv, false))
        {
            do
            {
                KvGetSectionName(kv, value, sizeof(value));
                if (strcmp(value, "weapon") == 0)
                {
                    KvGetString(kv, NULL_STRING, value, sizeof(value));
                    new index = DM_GetWeaponID(value);
                    if (index != -1 && DM_GetWeaponType(index) == DmWeapon_Primary)
                    {
                        g_PrimaryList[g_PrimaryCount++] = index;
                    }
                }
            } while (KvGotoNextKey(kv, false) && g_PrimaryCount < CSSDM_MAX_WEAPONS);
            KvGoBack(kv);
        }
        KvGoBack(kv);
    }
   
    CloseHandle(kv);
   
    /* Build the primary menu */
    if (g_hPrimaryMenu != INVALID_HANDLE)
    {
        CloseHandle(g_hPrimaryMenu);
    }
    g_hPrimaryMenu = CreateMenu(Menu_PrimaryHandler, MenuAction_DrawItem|MenuAction_Display);
    SetMenuTitle(g_hPrimaryMenu, "Primary weapon:");
    for (new i=0; i<g_PrimaryCount; i++)
    {
        new index = g_PrimaryList[i];
        DM_GetWeaponName(index, value, sizeof(value));
        AddMenuItem(g_hPrimaryMenu, "", value);
    }
    AddMenuItem(g_hPrimaryMenu, "", "Random");
   
    /* Build the secondary menu */
    if (g_hSecondaryMenu != INVALID_HANDLE)
    {
        CloseHandle(g_hSecondaryMenu);
    }
    g_hSecondaryMenu = CreateMenu(Menu_SecondaryHandler, MenuAction_DrawItem|MenuAction_Display);
    SetMenuTitle(g_hSecondaryMenu, "Secondary weapon:");
    for (new i=0; i<g_SecondaryCount; i++)
    {
        new index = g_SecondaryList[i];
        DM_GetWeaponName(index, value, sizeof(value));
        AddMenuItem(g_hSecondaryMenu, "", value);
    }
    AddMenuItem(g_hSecondaryMenu, "", "Random");
   
    return true;
}

SetClientArmor(client, armor)
{
    if (g_ArmorOffset == -1)
    {
        return;
    }
   
    SetEntData(client, g_ArmorOffset, armor, 4, true);
}

SetClientHealth(client, health)
{
    if (g_HealthOffset == -1)
    {
        return;
    }
   
    SetEntData(client, g_HealthOffset, health, 4, true);
}

GiveGrenades(client, flashnum, bool:he, bool:smoke, bool:decoy)
{
    if (!IsPlayerAlive(client))
    {
        return;
    }

    if (he)
    {
        GivePlayerItem(client, "weapon_hegrenade");
    }
    for (new i=0; i<flashnum; i++)
    {
        GivePlayerItem(client, "weapon_flashbang");
    }
    if (smoke)
    {
        GivePlayerItem(client, "weapon_smokegrenade");
    }
    if (g_bIsGo && decoy)
    {
        GivePlayerItem(client, "weapon_decoy");
    }
}

GiveNightVision(client)
{
    if (g_NVOffset == -1)
    {
        return;
    }
   
    SetEntData(client, g_NVOffset, true, 1, true);
}
 

Вложения

  • dm_eqipment.smx
    11.9 КБ · Просмотры: 8

BloodyAngel

Участник
Сообщения
30
Реакции
15
Доброго времени суток ребятки)) Поставил я CSSDM на CS:GO. Но вот не задача.
C-подобный:
cssdm/dm_equipment.smx (CS:S DM Equipment): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_spawn_protection.smx (CS:S DM Spawn Protection): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_bot_quotas.smx (CS:S DM Bot Quotas): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_preset_spawns.smx (CS:S DM Preset Spawns): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm/dm_basics.smx (CS:S DM Basics): Required extension "CS:S DM" file("cssdm.ext") not running
cssdm.ext - на месте
Посмотреть вложение 95139
Полагаю дело в gamedat'е. приложил.
Есть гении которые смогут поправить?))) Отблагодарю финансово)))
Если дело конечно в этом.
У csgo решим dm встроен и не имеет смысла ставить эту сборку dm на csgo
 

crashbow

Участник
Сообщения
89
Реакции
7
Включите пожалуйста в сборку расширения cssdm.ext.2.csgo.so и cssdm.ext.2.css.so
Без них dm не работает. Замучался искать решение проблемы.
 

crashbow

Участник
Сообщения
89
Реакции
7
Я к тому, чтобы люди скачивали архив с модом сразу с включенным в него расширением, для меня не очевидно было, что нужно отдельно вручную скачать и установить расширение.
Либо добавить какую то сноску, что для работы необходимо такое то расширение.
 

PuxRK

Участник
Сообщения
225
Реакции
2
Привет всем.
Заметил что после взрыва с4 - сервер в краш падает, через раз.
может дело не в этом, но стоит 1 плагин на сервере - ДМ, и периодически сервер в краш. как быть?
 

Kewn

Участник
Сообщения
321
Реакции
61
Привет всем.
Заметил что после взрыва с4 - сервер в краш падает, через раз.
может дело не в этом, но стоит 1 плагин на сервере - ДМ, и периодически сервер в краш. как быть?
Какая игра? И список плагинов.) ну и логи тоже
 

PuxRK

Участник
Сообщения
225
Реакции
2
Какая игра? И список плагинов.) ну и логи тоже
Игра ксс 92


[SM] Listing 55 plugins:
01 "RateChecker" (0.2) by pRED*
02 "Kill Bonus" (1.0.4) by Fredd and www.MyArena.ru
03 "Fake Ping" (1.0) by wS (World-Source.Ru)
04 "Fun Votes" (1.11.0.6916) by AlliedModders LLC
05 "ms_client.smx"
06 "SM Weapon Cleanup" (1.3.1) by TechKnow
07 "Sound Commands" (1.11.0.6916) by AlliedModders LLC
08 "Admin Menu" (1.11.0.6916) by AlliedModders LLC
09 "CS:S DM Bot Quotas" (2.1.6-dev) by AlliedModders LLC
10 "CS:S DM Preset Spawns" (2.1.6-dev) by AlliedModders LLC
11 "CS:S DM Basics" (2.1.6-dev) by AlliedModders LLC
12 "CS:S DM Equipment" (2.1.6-dev) by AlliedModders LLC
13 "CS:S DM Spawn Protection" (2.1.6-dev) by AlliedModders LLC
14 "Fake Ping" (1.0) by FrozDark (HLModders LLC)
15 "AFK Manager Lite - CSS" (1.0-css) by KorDen, orig by Rothgar
16 "Basic Info Triggers" (1.11.0.6916) by AlliedModders LLC
17 "Material Admin" (0.8.6) by Material Admin Dev Team
18 "bot_icona.smx"
19 "Basic Chat" (1.11.0.6916) by AlliedModders LLC
20 "Players Votes" (1.5.0) by The Resident, pZv!
21 "vip_fix.smx" (1.0.0) by SmOke
22 "Basic Commands" (1.11.0.6916) by AlliedModders LLC
23 "Weapon Restrict" (3.1.7) by Dr!fter
24 "[Lilac] Little Anti-Cheat" (1.7.4) by J_Tanzanite
25 "Advanced c4 Countdown Timer" (1.4.1-rc1) by dalto and www.MyArena.ru
26 "Advertisements" (0.6.0) by Tsunami
27 "RankMe" (2.8.3) by lok1
28 "Very Important Person" (24.04.2022) by GoDtm666
29 "Healthkit On Death" (1.7.1) by Knagg0
30 "Client Preferences" (1.11.0.6916) by AlliedModders LLC
31 "Hud Info" (1.2) by FrozDark (HLModders.ru LLC)
32 "Double Jump" (1.0.1) by Paegus
33 "Ban Network" (0.1) by GizmoN
34 "Anti-Flood" (1.11.0.6916) by AlliedModders LLC
35 "Basic Votes" (1.11.0.6916) by AlliedModders LLC
36 "Admin Help" (1.11.0.6916) by AlliedModders LLC
37 "Voice Users (Голосовой чат)" (1.1.5) by GoDtm666
38 "Fun Commands" (1.11.0.6916) by AlliedModders LLC
39 "Bot Names" (1.0) by Rakeri
40 "Spray Tracer" (5.8a) by Nican132, CptMoore, Lebson506th
41 "ResetScore" (1.6.4) by tuty, babka68
42 "Server WH" (1.0.2) by Grey83
43 "NoBlock" (1.4.2) by Otstrel.ru Team and www.MyArena.ru
44 "Reserved Slots" (1.11.0.6916) by AlliedModders LLC
45 "vip_Crosshair.smx"
46 "SteamWorks Game Description Override" (1.0) by babka68
47 "No Team Falsh" (1.0.0) by GoDtm666
48 "Material Admin Checker" (0.7.9) by psychonic, Ca$h Munny, Sarabveer(VEER)
49 "Player Commands" (1.11.0.6916) by AlliedModders LLC
50 "VIP Activation Code" (1.0.0) by GoDtm666
51 "Quake Sounds" (2.7.5) by dalto, Grrrrrrrrrrrrrrrrrrr, psychonic and www.MyArena.ru
52 "Basic Comm Control" (0.7.9) by AlliedModders LLC
53 "Bot Silent" (1.0.0) by SmOke
54 "Admin File Reader" (1.11.0.6916) by AlliedModders LLC
55 "adminmenu_fix.smx" (1.0) by SmOke
 

Kewn

Участник
Сообщения
321
Реакции
61
Игра ксс 92


[SM] Listing 55 plugins:
01 "RateChecker" (0.2) by pRED*
02 "Kill Bonus" (1.0.4) by Fredd and www.MyArena.ru
03 "Fake Ping" (1.0) by wS (World-Source.Ru)
04 "Fun Votes" (1.11.0.6916) by AlliedModders LLC
05 "ms_client.smx"
06 "SM Weapon Cleanup" (1.3.1) by TechKnow
07 "Sound Commands" (1.11.0.6916) by AlliedModders LLC
08 "Admin Menu" (1.11.0.6916) by AlliedModders LLC
09 "CS:S DM Bot Quotas" (2.1.6-dev) by AlliedModders LLC
10 "CS:S DM Preset Spawns" (2.1.6-dev) by AlliedModders LLC
11 "CS:S DM Basics" (2.1.6-dev) by AlliedModders LLC
12 "CS:S DM Equipment" (2.1.6-dev) by AlliedModders LLC
13 "CS:S DM Spawn Protection" (2.1.6-dev) by AlliedModders LLC
14 "Fake Ping" (1.0) by FrozDark (HLModders LLC)
15 "AFK Manager Lite - CSS" (1.0-css) by KorDen, orig by Rothgar
16 "Basic Info Triggers" (1.11.0.6916) by AlliedModders LLC
17 "Material Admin" (0.8.6) by Material Admin Dev Team
18 "bot_icona.smx"
19 "Basic Chat" (1.11.0.6916) by AlliedModders LLC
20 "Players Votes" (1.5.0) by The Resident, pZv!
21 "vip_fix.smx" (1.0.0) by SmOke
22 "Basic Commands" (1.11.0.6916) by AlliedModders LLC
23 "Weapon Restrict" (3.1.7) by Dr!fter
24 "[Lilac] Little Anti-Cheat" (1.7.4) by J_Tanzanite
25 "Advanced c4 Countdown Timer" (1.4.1-rc1) by dalto and www.MyArena.ru
26 "Advertisements" (0.6.0) by Tsunami
27 "RankMe" (2.8.3) by lok1
28 "Very Important Person" (24.04.2022) by GoDtm666
29 "Healthkit On Death" (1.7.1) by Knagg0
30 "Client Preferences" (1.11.0.6916) by AlliedModders LLC
31 "Hud Info" (1.2) by FrozDark (HLModders.ru LLC)
32 "Double Jump" (1.0.1) by Paegus
33 "Ban Network" (0.1) by GizmoN
34 "Anti-Flood" (1.11.0.6916) by AlliedModders LLC
35 "Basic Votes" (1.11.0.6916) by AlliedModders LLC
36 "Admin Help" (1.11.0.6916) by AlliedModders LLC
37 "Voice Users (Голосовой чат)" (1.1.5) by GoDtm666
38 "Fun Commands" (1.11.0.6916) by AlliedModders LLC
39 "Bot Names" (1.0) by Rakeri
40 "Spray Tracer" (5.8a) by Nican132, CptMoore, Lebson506th
41 "ResetScore" (1.6.4) by tuty, babka68
42 "Server WH" (1.0.2) by Grey83
43 "NoBlock" (1.4.2) by Otstrel.ru Team and www.MyArena.ru
44 "Reserved Slots" (1.11.0.6916) by AlliedModders LLC
45 "vip_Crosshair.smx"
46 "SteamWorks Game Description Override" (1.0) by babka68
47 "No Team Falsh" (1.0.0) by GoDtm666
48 "Material Admin Checker" (0.7.9) by psychonic, Ca$h Munny, Sarabveer(VEER)
49 "Player Commands" (1.11.0.6916) by AlliedModders LLC
50 "VIP Activation Code" (1.0.0) by GoDtm666
51 "Quake Sounds" (2.7.5) by dalto, Grrrrrrrrrrrrrrrrrrr, psychonic and www.MyArena.ru
52 "Basic Comm Control" (0.7.9) by AlliedModders LLC
53 "Bot Silent" (1.0.0) by SmOke
54 "Admin File Reader" (1.11.0.6916) by AlliedModders LLC
55 "adminmenu_fix.smx" (1.0) by SmOke
Логи закинь еще.
 

PuxRK

Участник
Сообщения
225
Реакции
2
Логи закинь еще.
Ошибок нету никаких, как будет краш - скину что там. Просто с 0 сервер собрал и ставил по одному плагину.
Сообщения автоматически склеены:

Логи закинь еще.
-------- LAST 200 LINES FROM screen.log--------------------------------------
Dropped Петрович from server (Kicked from server)
L 02/15/2024 - 20:29:57: "Арбузинка<36><BOT><TERRORIST>" disconnected (reason "Kicked from server")
Dropped Арбузинка from server (Kicked from server)
L 02/15/2024 - 20:29:58: "Farwater<43><BOT><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "ak47"
L 02/15/2024 - 20:30:01: "[FTP]князюшка<60><[U:1:4097210560]><CT>" killed "Farwater<43><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:30:01: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47"
L 02/15/2024 - 20:30:02: "User<27><[U:1:3702100606]><CT>" killed "Eol<34><BOT><TERRORIST>" with "galil" (headshot)
L 02/15/2024 - 20:30:02: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" triggered "Got_The_Bomb"
L 02/15/2024 - 20:30:02: World triggered "Round_Start"
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
L 02/15/2024 - 20:30:10: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "awp" (headshot)
L 02/15/2024 - 20:30:13: "[FTP]князюшка<60><[U:1:4097210560]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "awp"
L 02/15/2024 - 20:30:13: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "[FTP]князюшка<60><[U:1:4097210560]><CT>" with "awp"
L 02/15/2024 - 20:30:18: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:19: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:30:20: "XxX<45><BOT><TERRORIST>" killed "pbird<50><BOT><CT>" with "ak47"
L 02/15/2024 - 20:30:23: "БатаnikЯ<47><BOT><CT>" killed "XxX<45><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:30:24: "leha085<46><BOT><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:27: "User<27><[U:1:3702100606]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "knife"
L 02/15/2024 - 20:30:27: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "ort<41><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:30:30: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:30:30: "[FTP]князюшка<60><[U:1:4097210560]><CT>" committed suicide with "world"
L 02/15/2024 - 20:30:30: "[FTP]князюшка<60><[U:1:4097210560]><CT>" joined team "Spectator"
L 02/15/2024 - 20:30:31: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" triggered "Dropped_The_Bomb"
L 02/15/2024 - 20:30:31: "suetaaa***<49><BOT><CT>" killed "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:30:33: "User<27><[U:1:3702100606]><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "ump45"
L 02/15/2024 - 20:30:34: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "ak47"
L 02/15/2024 - 20:30:36: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "ort<41><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:42: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "awp" (headshot)
L 02/15/2024 - 20:30:44: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "ak47"
L 02/15/2024 - 20:30:45: "leha085<46><BOT><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "awp"
L 02/15/2024 - 20:30:47: "КоШм@р<51><BOT><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:47: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47"
L 02/15/2024 - 20:30:47: "leha085<46><BOT><TERRORIST>" killed "ort<41><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:48: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "m3"
L 02/15/2024 - 20:30:52: "vega<53><[U:1:145408621]><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "ak47" (headshot)
L 02/15/2024 - 20:30:52: "User<27><[U:1:3702100606]><CT>" killed "leha085<46><BOT><TERRORIST>" with "ak47"
L 02/15/2024 - 20:30:54: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "awp"
L 02/15/2024 - 20:30:55: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" triggered "Got_The_Bomb"
L 02/15/2024 - 20:30:55: "vega<53><[U:1:145408621]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "ak47"
L 02/15/2024 - 20:30:56: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "ak47"
L 02/15/2024 - 20:30:56: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:30:59: "User<27><[U:1:3702100606]><CT>" killed "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" with "ak47"
L 02/15/2024 - 20:31:00: "Farwater<43><BOT><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:01: "[FTP]князюшка<60><[U:1:4097210560]><Spectator>" disconnected (reason "Disconnect by user.")
Dropped [FTP]князюшка from server (Disconnect by user.)
L 02/15/2024 - 20:31:01: "[FTP]князюшка<61><[U:1:4097210560]><>" connected, address "188.234.103.59:27005"
Client "[FTP]князюшка" connected (188.234.103.59:27005).
L 02/15/2024 - 20:31:01: "[FTP]князюшка<61><[U:1:4097210560]><>" STEAM USERID validated
L 02/15/2024 - 20:31:03: "[FTP]князюшка<61><[U:1:4097210560]><>" entered the game
L 02/15/2024 - 20:31:03: "Andrejs<58><[U:1:1196377634]><CT>" killed "XxX<45><BOT><TERRORIST>" with "famas" (headshot)
L 02/15/2024 - 20:31:04: "*СпанчБОБ*<39><BOT><CT>" killed "Farwater<43><BOT><TERRORIST>" with "aug"
L 02/15/2024 - 20:31:05: "Face<44><BOT><CT>" killed "Degradant<59><[U:1:1577186138]><TERRORIST>" with "m4a1" (headshot)
L 02/15/2024 - 20:31:06: "[FTP]князюшка<61><[U:1:4097210560]><Unassigned>" joined team "CT"
L 02/15/2024 - 20:31:08: "Eol<34><BOT><TERRORIST>" killed "Face<44><BOT><CT>" with "ak47"
L 02/15/2024 - 20:31:09: "*СпанчБОБ*<39><BOT><CT>" killed "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" with "aug"
L 02/15/2024 - 20:31:10: "leha085<46><BOT><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "aug"
L 02/15/2024 - 20:31:12: "Andrejs<58><[U:1:1196377634]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "fiveseven"
L 02/15/2024 - 20:31:13: "User<27><[U:1:3702100606]><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "m249" (headshot)
L 02/15/2024 - 20:31:14: "Тот самый Gagulia<42><BOT><CT>" killed "Eol<34><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:31:16: "leha085<46><BOT><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "aug"
L 02/15/2024 - 20:31:18: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "ak47"
L 02/15/2024 - 20:31:19: "vega<53><[U:1:145408621]><CT>" killed "XxX<45><BOT><TERRORIST>" with "awp"
L 02/15/2024 - 20:31:23: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" triggered "Dropped_The_Bomb"
L 02/15/2024 - 20:31:23: "*СпанчБОБ*<39><BOT><CT>" killed "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:31:24: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "ak47"
L 02/15/2024 - 20:31:26: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:26: "User<27><[U:1:3702100606]><CT>" killed "leha085<46><BOT><TERRORIST>" with "m249" (headshot)
L 02/15/2024 - 20:31:29: "сигма094<62><[U:1:4240534932]><>" connected, address "95.57.234.36:33887"
Client "сигма094" connected (95.57.234.36:33887).
L 02/15/2024 - 20:31:29: "сигма094<62><[U:1:4240534932]><>" STEAM USERID validated
L 02/15/2024 - 20:31:30: "Andrejs<58><[U:1:1196377634]><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "tmp"
L 02/15/2024 - 20:31:30: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:33: "Face<44><BOT><CT>" killed "Farwater<43><BOT><TERRORIST>" with "awp"
L 02/15/2024 - 20:31:34: "Eol<34><BOT><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "ak47"
L 02/15/2024 - 20:31:35: "User<27><[U:1:3702100606]><CT>" killed "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" with "m249"
L 02/15/2024 - 20:31:35: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "awp"
L 02/15/2024 - 20:31:35: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "pbird<50><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:39: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "ort<41><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:41: "сигма094<62><[U:1:4240534932]><>" entered the game
L 02/15/2024 - 20:31:41: "Andrejs<58><[U:1:1196377634]><CT>" killed "XxX<45><BOT><TERRORIST>" with "sg552" (headshot)
L 02/15/2024 - 20:31:42: "vega<53><[U:1:145408621]><CT>" killed "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" with "ak47"
L 02/15/2024 - 20:31:43: "Mr.Spez!<40><BOT><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "awp"
L 02/15/2024 - 20:31:45: "сигма094<62><[U:1:4240534932]><Unassigned>" joined team "TERRORIST"
L 02/15/2024 - 20:31:46: "User<27><[U:1:3702100606]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "m249"
L 02/15/2024 - 20:31:47: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:48: "[FTP]князюшка<61><[U:1:4097210560]><CT>" killed "Eol<34><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:31:50: "ort<41><BOT><CT>" killed "leha085<46><BOT><TERRORIST>" with "ak47" (headshot)
L 02/15/2024 - 20:31:51: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "galil"
L 02/15/2024 - 20:31:53: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "deagle"
L 02/15/2024 - 20:31:54: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:56: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "galil"
L 02/15/2024 - 20:31:58: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "Face<44><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:31:58: "Mr.Spez!<40><BOT><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "awp" (headshot)
L 02/15/2024 - 20:32:00: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "awp"
L 02/15/2024 - 20:32:02: "suetaaa***<49><BOT><CT>" killed "Farwater<43><BOT><TERRORIST>" with "ak47"
L 02/15/2024 - 20:32:05: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "ak47"
L 02/15/2024 - 20:32:07: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "deagle" (headshot)
L 02/15/2024 - 20:32:08: "XxX<45><BOT><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "aug"
L 02/15/2024 - 20:32:11: "vega<53><[U:1:145408621]><CT>" killed "leha085<46><BOT><TERRORIST>" with "awp" (headshot)
L 02/15/2024 - 20:32:12: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "[FTP]князюшка<61><[U:1:4097210560]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:32:14: "[FTP]князюшка<61><[U:1:4097210560]><CT>" killed "XxX<45><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:32:15: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "awp"
L 02/15/2024 - 20:32:17: "Eol<34><BOT><TERRORIST>" killed "[FTP]князюшка<61><[U:1:4097210560]><CT>" with "galil" (headshot)
L 02/15/2024 - 20:32:17: "БатаnikЯ<47><BOT><CT>" killed "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" with "aug"
L 02/15/2024 - 20:32:19: "*СпанчБОБ*<39><BOT><CT>" killed "Degradant<59><[U:1:1577186138]><TERRORIST>" with "awp"
L 02/15/2024 - 20:32:20: "[FTP]князюшка<61><[U:1:4097210560]><CT>" killed "Mr.Spez!<40><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:32:21: "odin v pole<63><[U:1:628042800]><>" connected, address "37.235.159.45:27005"
Client "odin v pole" connected (37.235.159.45:27005).
L 02/15/2024 - 20:32:21: "odin v pole<63><[U:1:628042800]><>" STEAM USERID validated
L 02/15/2024 - 20:32:22: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "galil" (headshot)
L 02/15/2024 - 20:32:22: "Тот самый Gagulia<42><BOT><CT>" killed "Eol<34><BOT><TERRORIST>" with "galil"
L 02/15/2024 - 20:32:24: "[FTP]князюшка<61><[U:1:4097210560]><CT>" killed "сигма094<62><[U:1:4240534932]><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:32:24: "XxX<45><BOT><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "galil"
L 02/15/2024 - 20:32:24: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "pbird<50><BOT><CT>" with "galil"
L 02/15/2024 - 20:32:24: "vega<53><[U:1:145408621]><CT>" killed "XxX<45><BOT><TERRORIST>" with "awp"
L 02/15/2024 - 20:32:27: "БатаnikЯ<47><BOT><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "awp"
(Terrorist) MeDIK *13* @ Middle: !vip
L 02/15/2024 - 20:32:28: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" say_team "!vip"
L 02/15/2024 - 20:32:30: "odin v pole<63><[U:1:628042800]><>" entered the game
L 02/15/2024 - 20:32:30: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "[FTP]князюшка<61><[U:1:4097210560]><CT>" with "awp"
L 02/15/2024 - 20:32:33: [vip.smx] Админ "MeDIK *13*" (ID: STEAM_0:0:72849259) добавил нового VIP игрока "сигма094" (ID: STEAM_0:0:2120267466) Группа: group super
L 02/15/2024 - 20:32:35: "БатаnikЯ<47><BOT><CT>" killed "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" with "awp"
L 02/15/2024 - 20:32:35: "odin v pole<63><[U:1:628042800]><Unassigned>" joined team "TERRORIST"
L 02/15/2024 - 20:32:35: "Eol<34><BOT><TERRORIST>" disconnected (reason "Kicked from server")
Dropped Eol from server (Kicked from server)
L 02/15/2024 - 20:32:37: [vip.smx] Админ "MeDIK *13*" (ID: STEAM_0:0:72849259) добавил нового VIP игрока "odin v pole" (ID: STEAM_0:0:314021400) Группа: group super
L 02/15/2024 - 20:32:37: "ort<41><BOT><CT>" killed "Farwater<43><BOT><TERRORIST>" with "ak47" (headshot)
L 02/15/2024 - 20:32:37: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "[FTP]князюшка<61><[U:1:4097210560]><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:32:38: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "awp"
L 02/15/2024 - 20:32:38: "ort<41><BOT><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "ak47" (headshot)
L 02/15/2024 - 20:32:41: "leha085<46><BOT><TERRORIST>" killed "pbird<50><BOT><CT>" with "galil"
L 02/15/2024 - 20:32:44: "leha085<46><BOT><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "galil"
L 02/15/2024 - 20:32:46: "vega<53><[U:1:145408621]><CT>" killed "сигма094<62><[U:1:4240534932]><TERRORIST>" with "awp"
L 02/15/2024 - 20:32:47: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:32:49: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "awp"
L 02/15/2024 - 20:32:50: "Face<44><BOT><CT>" killed "Degradant<59><[U:1:1577186138]><TERRORIST>" with "awp"
L 02/15/2024 - 20:32:52: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "awp"
L 02/15/2024 - 20:32:53: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "awp"
L 02/15/2024 - 20:32:54: "Farwater<43><BOT><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "galil" (headshot)
L 02/15/2024 - 20:32:59: "leha085<46><BOT><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "galil" (headshot)
L 02/15/2024 - 20:32:59: "Тот самый Gagulia<42><BOT><CT>" killed "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" with "galil"
L 02/15/2024 - 20:33:00: "сигма094<62><[U:1:4240534932]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:33:01: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" triggered "Got_The_Bomb"
L 02/15/2024 - 20:33:04: "vega<53><[U:1:145408621]><CT>" killed "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" with "awp"
L 02/15/2024 - 20:33:04: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" triggered "Planted_The_Bomb"
L 02/15/2024 - 20:33:04: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "pbird<50><BOT><CT>" with "ak47"
L 02/15/2024 - 20:33:05: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "ak47"
L 02/15/2024 - 20:33:07: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "ort<41><BOT><CT>" with "ak47"
L 02/15/2024 - 20:33:09: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47"
L 02/15/2024 - 20:33:09: "vega<53><[U:1:145408621]><CT>" killed "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" with "awp"
L 02/15/2024 - 20:33:11: "_GaYkA_<38><BOT><TERRORIST>" killed "Andrejs<58><[U:1:1196377634]><CT>" with "galil"
L 02/15/2024 - 20:33:16: "west aktau 7292<56><[U:1:1996917114]><TERRORIST>" killed "vega<53><[U:1:145408621]><CT>" with "awp"
L 02/15/2024 - 20:33:16: "*СпанчБОБ*<39><BOT><CT>" killed "сигма094<62><[U:1:4240534932]><TERRORIST>" with "aug"
L 02/15/2024 - 20:33:19: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "User<27><[U:1:3702100606]><CT>" with "ak47"
L 02/15/2024 - 20:33:19: "Face<44><BOT><CT>" killed "Farwater<43><BOT><TERRORIST>" with "awp"
L 02/15/2024 - 20:33:20: "Тот самый Gagulia<42><BOT><CT>" killed "leha085<46><BOT><TERRORIST>" with "galil"
L 02/15/2024 - 20:33:21: "_GaYkA_<38><BOT><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "galil" (headshot)
L 02/15/2024 - 20:33:24: "MeDIK *13*<57><[U:1:145698518]><TERRORIST>" killed "Face<44><BOT><CT>" with "awp"
L 02/15/2024 - 20:33:31: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:33:31: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "sg550" (headshot)
L 02/15/2024 - 20:33:32: "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" killed "Face<44><BOT><CT>" with "sg550" (headshot)
L 02/15/2024 - 20:33:35: "vega<53><[U:1:145408621]><CT>" killed "Degradant<59><[U:1:1577186138]><TERRORIST>" with "deagle"
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
DLL_MessageEnd: Refusing to send user message SayText2 of 256 bytes to client, user message size limit is 255 bytes
L 02/15/2024 - 20:33:37: "[FTP]князюшка<61><[U:1:4097210560]><CT>" killed "_GaYkA_<38><BOT><TERRORIST>" with "ak47"
L 02/15/2024 - 20:33:37: "Farwater<43><BOT><TERRORIST>" killed "Тот самый Gagulia<42><BOT><CT>" with "galil"
L 02/15/2024 - 20:33:37: "pbird<50><BOT><CT>" killed "XxX<45><BOT><TERRORIST>" with "m4a1"
L 02/15/2024 - 20:33:39: "Mr.Spez!<40><BOT><TERRORIST>" killed "*СпанчБОБ*<39><BOT><CT>" with "m4a1" (headshot)
L 02/15/2024 - 20:33:40: "Тот самый Gagulia<42><BOT><CT>" killed "Mr.Spez!<40><BOT><TERRORIST>" with "aug" (headshot)
L 02/15/2024 - 20:33:43: "suetaaa***<49><BOT><CT>" killed "Evil_Stasi8<54><[U:1:150560010]><TERRORIST>" with "ak47"
L 02/15/2024 - 20:33:44: "Andrejs<58><[U:1:1196377634]><CT>" killed "КоШм@р<51><BOT><TERRORIST>" with "m249" (headshot)
L 02/15/2024 - 20:33:45: "сигма094<62><[U:1:4240534932]><TERRORIST>" killed "Face<44><BOT><CT>" with "ak47"
L 02/15/2024 - 20:33:47: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "suetaaa***<49><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:33:48: "User<27><[U:1:3702100606]><CT>" killed "Mr.Spez!<40><BOT><TERRORIST>" with "sg552" (headshot)
L 02/15/2024 - 20:33:48: "Degradant<59><[U:1:1577186138]><TERRORIST>" killed "БатаnikЯ<47><BOT><CT>" with "ak47" (headshot)
L 02/15/2024 - 20:33:49: Team "TERRORIST" triggered "Target_Bombed" (CT "2") (T "3")
L 02/15/2024 - 20:33:49: Team "CT" scored "2" with "11" players
L 02/15/2024 - 20:33:49: Team "TERRORIST" scored "3" with "12" players
L 02/15/2024 - 20:33:49: World triggered "Round_End"
L 02/15/2024 - 20:33:49: "_GaYkA_<38><BOT><TERRORIST>" disconnected (reason "Kicked from server")
Dropped _GaYkA_ from server (Kicked from server)
L 02/15/2024 - 20:33:49: "[FTP]князюшка<61><[U:1:4097210560]><CT>" committed suicide with "world"
./srcds_run: line 353: 31171 Segmentation fault $HL_CMD
Add "-debug" to the ./srcds_run command line to generate a debug.log to help with solving this problem
 
Сверху Снизу