[CS:GO] Плагин на определенной карте.

burden boy

Участник
Сообщения
98
Реакции
4
Здравствуйте!
Имеется код, дабы удалить Spawn-точки на картах - но при использовании плагинов, по типу ws_map_plugins, map_plugins и т.д, спавн точки удаляются - и плагин отключается, можно ли отловить названия карт, на которых их необходимо удалить?

PHP:
#include <sdktools>

public OnMapStart()
{
      new entity = -1;
      while((entity = FindEntityByClassname(entity, "info_player_counterterrorist")) != -1) AcceptEntityInput(entity, "Kill");
}
 

DenisPukin

Капитан Костыль
Сообщения
185
Реакции
34
PHP:
               decl String:sMap[256];
               sMap = "название карты"
               decl String:CurrentMap[256];
                GetCurrentMap(CurrentMap, 256);
                if (StrEqual(CurrentMap, sMap))
                {
                    //туту код если карты прошла проверку
                }
 

DenisPukin

Капитан Костыль
Сообщения
185
Реакции
34
PHP:
               decl String:sMap[256];
               sMap = "название карты"
               decl String:sMap2[256];
               sMap2 = "название карты"
               decl String:CurrentMap[256];
                GetCurrentMap(CurrentMap, 256);
if (StrEqual(CurrentMap, sMap) || StrEqual(CurrentMap, sMap2))
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
как-то так:
PHP:
#include <sdktools>

static const char sMapNames[][] = {        // в этот массив добавляешь названия нужных карт через запятую
"de_dust",
"de_dust2",
"de_office"
};

int iMapNum;

public void OnPluginStart()
{
    iMapNum = sizeof(sMapNames);
}

public void OnMapStart()
{
    static char map[64];
    GetCurrentMap(map, sizeof(map));

    for(int i; i < iMapNum; i++)
    {
        if(StrEqual(map, sMapNames[i]))
        {
            int entity = MaxClients;    // ну а чего проверять имя класса у игроков?
            while((entity = FindEntityByClassname(entity, "info_player_counterterrorist")) != -1) AcceptEntityInput(entity, "Kill");
            break;
        }
    }
}
 

Вложения

  • 123.sp
    720 байт · Просмотры: 3
  • 123.smx
    4.1 КБ · Просмотры: 0

SAZONISCHE

Участник
Сообщения
405
Реакции
232
Воркшоп фикс

Но бывает не все карты робят и хз почему (есть другие варианты или предложения?)

PHP:
#include <sdktools>

static const char sMapNames[][] = {        // в этот массив добавляешь названия нужных карт через запятую
"de_dust",
"de_dust2",
"de_office"
};

int iMapNum;

public void OnPluginStart()
{
    iMapNum = sizeof(sMapNames);
}

public void OnMapStart()
{
    char[] map= new char[64];

    GetCurrentMap(map, 64);
    int workid= strncmp(map, "workshop", 8) == 0 ? 19 : 0;

    for(int i; i < iMapNum; i++)
    {
        if(StrEqual(map[workid], sMapNames[i]))
        {
            int entity = MaxClients;    // ну а чего проверять имя класса у игроков?
            while((entity = FindEntityByClassname(entity, "info_player_counterterrorist")) != -1) AcceptEntityInput(entity, "Kill");
            break;
        }
    }
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@SAZONISCHE, можно добавить вывод в консоль сервера дебаг-инфы о запущенной карте
Может размера строковой переменной не достаточен (название карты получаемое через GetCurrentMap() длиннее 63 символов).
какой смысл в таком виде объявления строковой переменной? И чем оно лучше, чем static char map[64]?
 

SAZONISCHE

Участник
Сообщения
405
Реакции
232
@SAZONISCHE, можно добавить вывод в консоль сервера дебаг-инфы о запущенной карте
Может размера строковой переменной не достаточен (название карты получаемое через GetCurrentMap() длиннее 63 символов).какой смысл в таком виде объявления строковой переменной? И чем оно лучше, чем static char map[64]?
Разница была в условиях, а тут массив
В том и дело что длина имени карты менее 64 символов
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@SAZONISCHE, добавь вывод названия карты в консоль сервера для дебага
Может название просто не совпадает ни с одним из прописанных в массив

можно ещё попробовать StrEqual(map[workid], sMapNames, false), если название написано буквами разного регистра, то должно помочь
--- Добавлено позже ---
Разница была в условиях, а тут массив
ЯННП
Строковая переменная всегда является массивом
 
Сверху Снизу