Изменение ников ботов на сервере

Статус
В этой теме нельзя размещать новые ответы.

novichek

Участник
Сообщения
631
Реакции
21
Всем привет. Подскажите, как поменять на новые имена БОТ в CS: Source в steam версии. Зарание спасибо.
 

Sam_Fisher

Участник
Сообщения
703
Реакции
204
novichek, \cstrike\custom\botsnames там BotProfile.db в него и вносишь изменения.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,379
Или же можно плагин использовать, минусы BotProfile.db нельзя писать ники со специальными знаками и на кириллице.
PHP:
#include <sourcemod>
#include <sdktools>

new Handle:g_hPath = INVALID_HANDLE;

new Handle:Array = INVALID_HANDLE;

new bool:CheckUseName[MAXPLAYERS+1] = {false, ...};

new ArraySize = 0;

public OnPluginStart()
{
	g_hPath = CreateConVar("bot_name_path", "addons/sourcemod/configs/bot_name.cfg", "Укажите путь к файлу");

	Array = CreateArray(255, 0);
}

public OnMapStart()
{
	ArraySize = 0;

	ClearArray(Array);

	decl String:path[255];
	GetConVarString(g_hPath, path, sizeof(path));

	new Handle:file = OpenFile(path, "r");

	if (file == INVALID_HANDLE) 
	{ 
		LogError("Не удалось открыть файл '%s'", path);
	}
	else
	{
		decl String:line[150];
		while (!IsEndOfFile(file) && ReadFileLine(file, line, sizeof(line)))
		{
			TrimString(line);
			PushArrayString(Array, line);
		}

		ArraySize = GetArraySize(Array);

		CloseHandle(file);
	}
}

public OnClientPutInServer(client)
{
	CheckUseName[client] = false;

	if (IsClientBot(client) && ArraySize > 0)
	{
		decl String:ArrayName[50];

		new random = GetRandomInt(0, ArraySize - 1);

		GetArrayString(Array, random, ArrayName, sizeof(ArrayName));

		CS_SetClientName(client, ArrayName);

		RemoveFromArray(Array, random);

		CheckUseName[client] = true;
		ArraySize--;
	}
}

public OnClientDisconnect(client)
{
	if (IsClientBot(client) && CheckUseName[client])
	{
		decl String:Name[50];
		GetClientName(client, Name, sizeof(Name));

		PushArrayString(Array, Name);
		ArraySize++;
	}
}

bool:IsClientBot(client)
{
	if (IsFakeClient(client) && !IsClientSourceTV(client))
	{
		return true;
	}
	return false;
}

stock CS_SetClientName(client, const String:name[])
{
    decl String:oldname[MAX_NAME_LENGTH];
    GetClientName(client, oldname, sizeof(oldname));

    SetClientInfo(client, "name", name);
    SetEntPropString(client, Prop_Data, "m_szNetname", name);

    new Handle:event = CreateEvent("player_changename");

    if (event != INVALID_HANDLE)
    {
        SetEventInt(event, "userid", GetClientUserId(client));
        SetEventString(event, "oldname", oldname);
        SetEventString(event, "newname", name);
        FireEvent(event);
    }
}
addons/sourcemod/configs/bot_name.cfg тут создаёшь такой файл и там пишешь ники для ботов каждый с новой строки.

P.S. выкладывали тут этот плагин давно.

Оффтоп
 

Felton

Участник
Сообщения
799
Реакции
59
Если это ещё актуально помогите !Установил плагин всё сделал по инструкции.Пропсал ботов в bot_name.cfg.Запускаю сервер сыпятся errors Вот кусок лога

L 06/24/2016 - 21:41:12: [SM] Native "SetEntPropString" reported: Property "m_szNetname" not found for entity 1
L 06/24/2016 - 21:41:12: [SM] Displaying call stack trace for plugin "bot_name.smx":
L 06/24/2016 - 21:41:12: [SM] [0] Line 97, bot_name.sp::CS_SetClientName()
L 06/24/2016 - 21:41:12: [SM] [1] Line 61, bot_name.sp::OnClientPutInServer()
L 06/24/2016 - 21:41:12: [SM] Native "SetEntPropString" reported: Property "m_szNetname" not found for entity 1

Сервер Counter-Strike Source v.34
Заранее спасибо!
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756

Felton

Участник
Сообщения
799
Реакции
59
Удалил строчку и не хочет теперь компелироваться
error 017: undefined symbol "SetClientInfo"
 

MaEStro71

Участник
Сообщения
163
Реакции
21
Если это ещё актуально помогите !Установил плагин всё сделал по инструкции.Пропсал ботов в bot_name.cfg.Запускаю сервер сыпятся errors Вот кусок лога

L 06/24/2016 - 21:41:12: [SM] Native "SetEntPropString" reported: Property "m_szNetname" not found for entity 1
L 06/24/2016 - 21:41:12: [SM] Displaying call stack trace for plugin "bot_name.smx":
L 06/24/2016 - 21:41:12: [SM] [0] Line 97, bot_name.sp::CS_SetClientName()
L 06/24/2016 - 21:41:12: [SM] [1] Line 61, bot_name.sp::OnClientPutInServer()
L 06/24/2016 - 21:41:12: [SM] Native "SetEntPropString" reported: Property "m_szNetname" not found for entity 1

Сервер Counter-Strike Source v.34
Заранее спасибо!

Держи. Ники меняются здесь /cstrike/addons/sourcemod/configs/botnames.txt
Если у тебя SM 1.6.3, то посети эту тему Плагин botnames переименовывает перерподключившихся игроков
 

Вложения

  • 2845_Bot_pingBot_nam.rar
    43.4 КБ · Просмотры: 451

Felton

Участник
Сообщения
799
Реакции
59
Чёто у меня ничего не получилось с этим плагином.В консоле сервера оч и оч бысто меняются ники ботов Эроров нет. Ну и в консоле игры показывает невероятную скорость смены ботов.Проверил на домашнем сервере

А вот это надо удалять с Server cfg ?
bot_difficulty 1
bot_chatter off
bot_quota 9
bot_add
bot_join_after_player 0
bot_quota_mode fill
bot_auto_vacate 1
 

MaEStro71

Участник
Сообщения
163
Реакции
21
Чёто у меня ничего не получилось с этим плагином.В консоле сервера оч и оч бысто меняются ники ботов Эроров нет. Ну и в консоле игры показывает невероятную скорость смены ботов

А вот это надо удалять с Server cfg ?
bot_difficulty 1
bot_chatter off
bot_quota 9
bot_add
bot_join_after_player 0
bot_quota_mode fill
bot_auto_vacate 1


Когда боты умирают, то их ники меняются при возрождении (у меня Zm)
У меня так стоит.

// ##### УПРАВЛЕНИЕ БОТАМИ #####
//Количество ботов, могут привести к лагам.
bot_quota 5
//Подключаться ботам, если игроков меньше равно чем указанное значение.
bot_join_after_player 0
//Управление голосовым чатом ботов. Допустимые значения: off, radio, minimal, или normal ".
bot_chatter off
//Квота ботов(их количество). Значения: 'normal', 'fill', и 'match'. Если значение 'fill', сервер можно забить ботами полностью.
bot_quota_mode "fill"
//Сложность ботов. Значения: 0 = лёгкий, 1 = нормальный, 2 = сложный, 3 = эксперт.
bot_difficulty 3

Если ни кого нет на сервере, боты играют между собой. Когда заходят игрок, 1 бот кикается
 

Felton

Участник
Сообщения
799
Реакции
59
Покажи мне свой plugin.botnames cfg
Вот путь \cstrike\cfg\sourcemod
 
Последнее редактирование:

shurikbaikal

Участник
Сообщения
27
Реакции
8
Или же можно плагин использовать, минусы BotProfile.db нельзя писать ники со специальными знаками и на кириллице.
PHP:
#include <sourcemod>
#include <sdktools>

new Handle:g_hPath = INVALID_HANDLE;

new Handle:Array = INVALID_HANDLE;

new bool:CheckUseName[MAXPLAYERS+1] = {false, ...};

new ArraySize = 0;

public OnPluginStart()
{
    g_hPath = CreateConVar("bot_name_path", "addons/sourcemod/configs/bot_name.cfg", "Укажите путь к файлу");

    Array = CreateArray(255, 0);
}

public OnMapStart()
{
    ArraySize = 0;

    ClearArray(Array);

    decl String:path[255];
    GetConVarString(g_hPath, path, sizeof(path));

    new Handle:file = OpenFile(path, "r");

    if (file == INVALID_HANDLE)
    {
        LogError("Не удалось открыть файл '%s'", path);
    }
    else
    {
        decl String:line[150];
        while (!IsEndOfFile(file) && ReadFileLine(file, line, sizeof(line)))
        {
            TrimString(line);
            PushArrayString(Array, line);
        }

        ArraySize = GetArraySize(Array);

        CloseHandle(file);
    }
}

public OnClientPutInServer(client)
{
    CheckUseName[client] = false;

    if (IsClientBot(client) && ArraySize > 0)
    {
        decl String:ArrayName[50];

        new random = GetRandomInt(0, ArraySize - 1);

        GetArrayString(Array, random, ArrayName, sizeof(ArrayName));

        CS_SetClientName(client, ArrayName);

        RemoveFromArray(Array, random);

        CheckUseName[client] = true;
        ArraySize--;
    }
}

public OnClientDisconnect(client)
{
    if (IsClientBot(client) && CheckUseName[client])
    {
        decl String:Name[50];
        GetClientName(client, Name, sizeof(Name));

        PushArrayString(Array, Name);
        ArraySize++;
    }
}

bool:IsClientBot(client)
{
    if (IsFakeClient(client) && !IsClientSourceTV(client))
    {
        return true;
    }
    return false;
}

stock CS_SetClientName(client, const String:name[])
{
    decl String:oldname[MAX_NAME_LENGTH];
    GetClientName(client, oldname, sizeof(oldname));

    SetClientInfo(client, "name", name);
    SetEntPropString(client, Prop_Data, "m_szNetname", name);

    new Handle:event = CreateEvent("player_changename");

    if (event != INVALID_HANDLE)
    {
        SetEventInt(event, "userid", GetClientUserId(client));
        SetEventString(event, "oldname", oldname);
        SetEventString(event, "newname", name);
        FireEvent(event);
    }
}
addons/sourcemod/configs/bot_name.cfg тут создаёшь такой файл и там пишешь ники для ботов каждый с новой строки.

P.S. выкладывали тут этот плагин давно.

Оффтоп
Спасибо друг. Плагин отличный, ошибок не вызывает по крайней мере на CSS v89, спасибо, а то я голову сломал как поменять на русские имена.
 

Nekro

Терра инкогнита
Сообщения
4,182
Реакции
2,513
Или же можно плагин использовать, минусы BotProfile.db нельзя писать ники со специальными знаками и на кириллице.
PHP:
#include <sourcemod>
#include <sdktools>

new Handle:g_hPath = INVALID_HANDLE;

new Handle:Array = INVALID_HANDLE;

new bool:CheckUseName[MAXPLAYERS+1] = {false, ...};

new ArraySize = 0;

public OnPluginStart()
{
    g_hPath = CreateConVar("bot_name_path", "addons/sourcemod/configs/bot_name.cfg", "Укажите путь к файлу");

    Array = CreateArray(255, 0);
}

public OnMapStart()
{
    ArraySize = 0;

    ClearArray(Array);

    decl String:path[255];
    GetConVarString(g_hPath, path, sizeof(path));

    new Handle:file = OpenFile(path, "r");

    if (file == INVALID_HANDLE)
    {
        LogError("Не удалось открыть файл '%s'", path);
    }
    else
    {
        decl String:line[150];
        while (!IsEndOfFile(file) && ReadFileLine(file, line, sizeof(line)))
        {
            TrimString(line);
            PushArrayString(Array, line);
        }

        ArraySize = GetArraySize(Array);

        CloseHandle(file);
    }
}

public OnClientPutInServer(client)
{
    CheckUseName[client] = false;

    if (IsClientBot(client) && ArraySize > 0)
    {
        decl String:ArrayName[50];

        new random = GetRandomInt(0, ArraySize - 1);

        GetArrayString(Array, random, ArrayName, sizeof(ArrayName));

        CS_SetClientName(client, ArrayName);

        RemoveFromArray(Array, random);

        CheckUseName[client] = true;
        ArraySize--;
    }
}

public OnClientDisconnect(client)
{
    if (IsClientBot(client) && CheckUseName[client])
    {
        decl String:Name[50];
        GetClientName(client, Name, sizeof(Name));

        PushArrayString(Array, Name);
        ArraySize++;
    }
}

bool:IsClientBot(client)
{
    if (IsFakeClient(client) && !IsClientSourceTV(client))
    {
        return true;
    }
    return false;
}

stock CS_SetClientName(client, const String:name[])
{
    decl String:oldname[MAX_NAME_LENGTH];
    GetClientName(client, oldname, sizeof(oldname));

    SetClientInfo(client, "name", name);
    SetEntPropString(client, Prop_Data, "m_szNetname", name);

    new Handle:event = CreateEvent("player_changename");

    if (event != INVALID_HANDLE)
    {
        SetEventInt(event, "userid", GetClientUserId(client));
        SetEventString(event, "oldname", oldname);
        SetEventString(event, "newname", name);
        FireEvent(event);
    }
}
addons/sourcemod/configs/bot_name.cfg тут создаёшь такой файл и там пишешь ники для ботов каждый с новой строки.

P.S. выкладывали тут этот плагин давно.

Оффтоп
На 34 полагаю нет такого офсета

C-подобный:
#include <sdktools_functions>

Handle
    g_hPath,
    Array;

bool
    CheckUseName[MAXPLAYERS+1] = {false, ...};

int
    ArraySize;

public void OnPluginStart()
{
    g_hPath = CreateConVar("bot_name_path", "addons/sourcemod/configs/bot_name.cfg", "Укажите путь к файлу");

    Array = CreateArray(255, 0);
}

public void OnMapStart()
{
    ArraySize = 0;

    ClearArray(Array);

    char path[255];
    GetConVarString(g_hPath, path, sizeof(path));

    Handle file = OpenFile(path, "r");

    if (file == INVALID_HANDLE)
    {
        LogError("Не удалось открыть файл '%s'", path);
    }
    else
    {
        char line[150];
        while (!IsEndOfFile(file) && ReadFileLine(file, line, sizeof(line)))
        {
            TrimString(line);
            PushArrayString(Array, line);
        }

        ArraySize = GetArraySize(Array);

        CloseHandle(file);
    }
}

public void OnClientPutInServer(int client)
{
    CheckUseName[client] = false;

    if (IsClientBot(client) && ArraySize > 0)
    {
        char ArrayName[50];

        int random = GetRandomInt(0, ArraySize - 1);

        GetArrayString(Array, random, ArrayName, sizeof(ArrayName));

        CS_SetClientName(client, ArrayName);

        RemoveFromArray(Array, random);

        CheckUseName[client] = true;
        ArraySize--;
    }
}

public void OnClientDisconnect(int client)
{
    if (IsClientBot(client) && CheckUseName[client])
    {
        char Name[50];
        GetClientName(client, Name, sizeof(Name));

        PushArrayString(Array, Name);
        ArraySize++;
    }
}

bool IsClientBot(int client)
{
    if (IsFakeClient(client) && !IsClientSourceTV(client))
    {
        return true;
    }
    return false;
}

stock void CS_SetClientName(int client, const char[] name)
{
    char oldname[MAX_NAME_LENGTH];
    GetClientName(client, oldname, sizeof(oldname));

    SetClientInfo(client, "name", name);
    SetEntPropString(client, Prop_Data, "m_szNetname", name);

    Handle event = CreateEvent("player_changename");

    if (event != INVALID_HANDLE)
    {
        SetEventInt(event, "userid", GetClientUserId(client));
        SetEventString(event, "oldname", oldname);
        SetEventString(event, "newname", name);
        FireEvent(event);
    }
}


C-подобный:
L 12/12/2020 - 11:45:21: [SM] Exception reported: Property "m_szNetname" not found for entity 2
L 12/12/2020 - 11:45:21: [SM] Blaming: bot/bot_name.smx
L 12/12/2020 - 11:45:21: [SM] Call stack trace:
L 12/12/2020 - 11:45:21: [SM]   [0] SetEntPropString
L 12/12/2020 - 11:45:21: [SM]   [1] Line 99, bot_name.sp::CS_SetClientName
L 12/12/2020 - 11:45:21: [SM]   [2] Line 63, bot_name.sp::OnClientPutInServer
 
  • Мне нравится
Реакции: NaN
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу