Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

3 страниц V  « 2 3

Spec Bots

, Боты для спеков
Статус пользователя iShot
сообщение 23.2.2019, 18:48
Сообщение #41


Стаж: 9 лет 9 месяцев

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

SISA, сервер 20 слотов, 1 резервный для игроков с привилегиями, в исходнике редактировал под амх 1.8.2, проблема в том что боты не выходят сервера, на сервере 19/20, три слота из них занимают наблюдение, это два бота и хлтв, в чём проблема?


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 23.2.2019, 19:33
Сообщение #42
Стаж: 13 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(iShot @ 23.2.2019, 20:48) *
SISA, сервер 20 слотов, 1 резервный для игроков с привилегиями, в исходнике редактировал под амх 1.8.2, проблема в том что боты не выходят сервера, на сервере 19/20, три слота из них занимают наблюдение, это два бота и хлтв, в чём проблема?


А зачем тебе ещё боты в спеках ? И сколько ты ставил слотов для выхода моих ботов ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iShot
сообщение 23.2.2019, 19:35
Сообщение #43


Стаж: 9 лет 9 месяцев

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

SISA, забыл добавить в то сообщение
Cкрытый текст
Код:
// Задержка на добавление бота после смены карты (не менее 2 секунд !!!)
specbots_time_delay_start "2.5"

// Задержка на добавление бота при дисконнекте Игрока
specbots_time_delay_disconnect "5.0"

// Максимальное количество игроков, при котором первый бот выйдет с сервера
specbots_maxplayers1 "19"

// Максимальное количество игроков, при котором второй бот выйдет с сервера
specbots_maxplayers2 "18"

// Автоматически добавлять IP:PORT сервера к значению квара "specbots_name1"
specbots_host_autodetect "0"
upd: у меня 2 бота и один хлтв

Отредактировал: iShot, - 23.2.2019, 19:37


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 23.2.2019, 21:08
Сообщение #44
Стаж: 13 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

На сервере, кроме игроков, боты есть ? Попробуй снизить specbots_maxplayers1 и specbots_maxplayers2 до 16 и 17 слотов для теста. Эти квары учитывают реальных игроков и HLTV. Ботов они не учитывают, по этому, фактически, у тебя из 19ти игроков, 16 реальных + 1 HLTV. В итоге получается 17, а первый бот выйдет только при 18ти игроках.

Отредактировал: SISA, - 23.2.2019, 21:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Maksumus
сообщение 24.2.2019, 8:54
Сообщение #45
Стаж: 7 лет 3 месяца

Сообщений: 499
Благодарностей: 78
Полезность: < 0

SISA, сделайте до 4х ботов
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iShot
сообщение 24.2.2019, 19:35
Сообщение #46


Стаж: 9 лет 9 месяцев

Сообщений: 1340
Благодарностей: 463
Полезность: 845

Меценат Меценат

SISA, не подумав установил значения, всё работает сейчас good.gif


улыбнись :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Shadowless
сообщение 20.12.2019, 11:15
Сообщение #47


Стаж: 5 лет 2 месяца
Город: Georgia

Сообщений: 33
Благодарностей: 3
Полезность: 63

WITH 3 BOTS + CFGprecache

Cкрытый текст

#include <amxmodx>
#include <fakemeta>
#include <amxmisc>

#define BOTS_TASKID_DELAY1 683246
#define BOTS_TASKID_DELAY2 683247
#define BOTS_TASKID_DELAY3 683248

// Bots Data
enum _:e_BotsData
{
BOTS_ACTIVE_1,
BOTS_ACTIVE_2,
BOTS_ACTIVE_3,
BOTS_BLOBALID[33]
};

// Message IDs vars
new g_msgTeamInfo;

// Data
new g_iBotsData[e_BotsData], g_BotsName[3][32], g_Bot_Maxplayers[3];

// Cvars
new Float:g_fCvars_Time_Delay_Start, Float:g_fCvars_Time_Delay_Disconnect;

//Offsets
#define m_iTeam 114
#define CBASEMONSTER_LINUX_XTRA_OFF 5

new const SpecBots_ConfigFile[] = "addons/amxmodx/configs/spectator_bots.cfg"

/*===============================================================================
================================================================
[Plugin Init]
================================================================================
================================================================*/
public plugin_init()
{
register_plugin("Spectator Bots", "2.1", "SISA");

// Message IDs
g_msgTeamInfo = get_user_msgid("TeamInfo");
}


/*===============================================================================
================================================================
[Plugin Cfg]
================================================================================
================================================================*/
public plugin_precache()
{
if(!file_exists(SpecBots_ConfigFile))
{
write_file(SpecBots_ConfigFile, "Spec Bots - Settings^n")
write_file(SpecBots_ConfigFile, "specbots_name1 ^"Server IP: ^"")
write_file(SpecBots_ConfigFile, "specbots_name2 ^"Site: CS.com^"")
write_file(SpecBots_ConfigFile, "specbots_name3 ^"VK: VK.com^"")
write_file(SpecBots_ConfigFile, "specbots_time_delay_start ^"2.0^"")
write_file(SpecBots_ConfigFile, "specbots_time_delay_disconnect ^"3.0^"")
write_file(SpecBots_ConfigFile, "specbots_maxplayers1 ^"28^"")
write_file(SpecBots_ConfigFile, "specbots_maxplayers2 ^"27^"")
write_file(SpecBots_ConfigFile, "specbots_maxplayers3 ^"26^"")
write_file(SpecBots_ConfigFile, "specbots_host_autodetect ^"0^"")
}
}

public plugin_cfg()
{
// Задаем переменные
new cfgdir[64], szServerIP[32], iData[9];

// Получаем путь к папке с Конфигами
get_configsdir(cfgdir, charsmax(cfgdir));

iData[0] = register_cvar("specbots_name1", "Server IP: ");
iData[1] = register_cvar("specbots_name2", "Site: MinimalServ.com");
iData[2] = register_cvar("specbots_name3", "FB: MInimaL");

iData[3] = register_cvar("specbots_time_delay_start", "2.0");
iData[4] = register_cvar("specbots_time_delay_disconnect", "3.0");

iData[5] = register_cvar("specbots_maxplayers1", "6");
iData[6] = register_cvar("specbots_maxplayers2", "8");
iData[7] = register_cvar("specbots_maxplayers3", "10");

iData[8] = register_cvar("specbots_host_autodetect", "0");

// Подгружаем Конфиг
server_cmd("exec %s/spectator_bots.cfg", cfgdir);
server_exec();

// Берем значения Кваров из конфига
get_pcvar_string(iData[0], g_BotsName[0], charsmax(g_BotsName[]));
get_pcvar_string(iData[1], g_BotsName[1], charsmax(g_BotsName[]));
get_pcvar_string(iData[2], g_BotsName[2], charsmax(g_BotsName[]));
g_fCvars_Time_Delay_Start = get_pcvar_float(iData[3]);
g_fCvars_Time_Delay_Disconnect = get_pcvar_float(iData[4]);
g_Bot_Maxplayers[0] = get_pcvar_num(iData[5]);
g_Bot_Maxplayers[1] = get_pcvar_num(iData[6]);
g_Bot_Maxplayers[2] = get_pcvar_num(iData[7]);

// Если разрешен Автодетект IP:PORT сервера
if(get_pcvar_num(iData[8]))
{
// Находим IP:PORT сервера
get_user_ip(0, szServerIP, charsmax(szServerIP), 0);

// Запоминаем IP:PORT сервера в глобальный массив
strcat(g_BotsName[0], szServerIP, charsmax(g_BotsName[]));
}

// Создаем двух Ботов
set_task(g_fCvars_Time_Delay_Start, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY1, "1", 2);
set_task(g_fCvars_Time_Delay_Start, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY2, "2", 2);
set_task(g_fCvars_Time_Delay_Start, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY3, "3", 2);
}

/*===============================================================================
================================================================
[Client Disconnected]
================================================================================
================================================================*/
public client_disconnected(id)
{
// Задаем переменные
static iPlayersNum, Players[32];

// Получаем количество игроков, исключая Ботов
get_players(Players, iPlayersNum, "c");

// Если первый бот Не Создан и Количество игроков не превышает допустимый Максимум
if(!g_iBotsData[BOTS_ACTIVE_1] && iPlayersNum <= g_Bot_Maxplayers[0] && !g_iBotsData[BOTS_BLOBALID][id])
{
// Если таск не Выполняется
if(!task_exists(BOTS_TASKID_DELAY1))
set_task(g_fCvars_Time_Delay_Disconnect, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY1, "1", 2); // Отправляем таск на создание Первого Бота
}

// Если второй бот Не Создан и Количество игроков не превышает допустимый Максимум
if(!g_iBotsData[BOTS_ACTIVE_2] && iPlayersNum <= g_Bot_Maxplayers[1] && !g_iBotsData[BOTS_BLOBALID][id])
{
// Если таск не Выполняется
if(!task_exists(BOTS_TASKID_DELAY2))
set_task(g_fCvars_Time_Delay_Disconnect, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY2, "2", 2); // Отправляем таск на создание Второго Бота
}

if(!g_iBotsData[BOTS_ACTIVE_3] && iPlayersNum <= g_Bot_Maxplayers[2] && !g_iBotsData[BOTS_BLOBALID][id])
{
// Если таск не Выполняется
if(!task_exists(BOTS_TASKID_DELAY3))
set_task(g_fCvars_Time_Delay_Disconnect, "Task_Add_Fake_Bot", BOTS_TASKID_DELAY3, "3", 2); // Отправляем таск на создание Второго Бота
}

// Если вышел Первый Бот
if(g_iBotsData[BOTS_BLOBALID][id] == 1)
g_iBotsData[BOTS_ACTIVE_1] = 0; // Делаем Первого бота Не Активным

// Если вышел Второй Бот
if(g_iBotsData[BOTS_BLOBALID][id] == 2)
g_iBotsData[BOTS_ACTIVE_2] = 0; // Делаем Второго бота Не Активным

// Если вышел Второй Бот
if(g_iBotsData[BOTS_BLOBALID][id] == 3)
g_iBotsData[BOTS_ACTIVE_3] = 0; // Делаем Второго бота Не Активным

// Обнуляем номер Бота
g_iBotsData[BOTS_BLOBALID][id] = 0;
}

/*===============================================================================
================================================================
[Client Putinserver]
================================================================================
================================================================*/
public client_putinserver(id)
{
// Задаем переменные
static iPlayersNum, Players[32];

// Получаем количество игроков, исключая Ботов
get_players(Players, iPlayersNum, "c");

// Обнуляем номер Бота
g_iBotsData[BOTS_BLOBALID][id] = 0;

// Если первый бот Создан и Количество игроков превышает допустимый Максимум
if(g_iBotsData[BOTS_ACTIVE_1] && iPlayersNum >= g_Bot_Maxplayers[0])
{
// Делаем Первого бота Не Активным
g_iBotsData[BOTS_ACTIVE_1] = 0;

// Киаем бота
server_cmd("kick ^"%s^"", g_BotsName[0]);
}

// Если второй бот Создан и Количество игроков превышает допустимый Максимум
if(g_iBotsData[BOTS_ACTIVE_2] && iPlayersNum >= g_Bot_Maxplayers[1])
{
// Делаем Второго бота Не Активным
g_iBotsData[BOTS_ACTIVE_2] = 0;

// Киаем бота
server_cmd("kick ^"%s^"", g_BotsName[1]);
}


// Если второй бот Создан и Количество игроков превышает допустимый Максимум
if(g_iBotsData[BOTS_ACTIVE_3] && iPlayersNum >= g_Bot_Maxplayers[2])
{
// Делаем Второго бота Не Активным
g_iBotsData[BOTS_ACTIVE_3] = 0;

// Киаем бота
server_cmd("kick ^"%s^"", g_BotsName[2]);
}




}

/*===============================================================================
================================================================
[Task Add Fake Bot]
================================================================================
================================================================*/
public Task_Add_Fake_Bot(param[2])
{
// Задаем переменные
static msg[128], iPlayersNum, Players[32];

// Находим номер Бота
new iBotNum = str_to_num(param);

// Получаем количество игроков, исключая Ботов
get_players(Players, iPlayersNum, "c");

// Если на сервере слишком много игроков
if(iPlayersNum >= g_Bot_Maxplayers[iBotNum-1])
return;

// Создаем Бота
new Bot = engfunc(EngFunc_CreateFakeClient, g_BotsName[iBotNum-1]);

// Если бот не был Создан
if(!Bot)
{
// Отсправляем информацию в Амх Логи
log_amx("[SpecBot] Couldn't create a bot");
return;
}

// Вызываем ПриватДату
engfunc(EngFunc_FreeEntPrivateData, Bot);

// Задаем Сетинфо
set_user_info(Bot, "model", "gordon");
set_user_info(Bot, "*bot", "1");

// Вызываем фейковый Коннект
dllfunc(DLLFunc_ClientConnect, Bot, g_BotsName[iBotNum-1], "127.0.0.1", msg);

// Если бот Не Подключен
if(!is_user_connected(Bot))
return;

// Вызываем Путинсервер
dllfunc(DLLFunc_ClientPutInServer, Bot);

// Ставим Флаги
set_pev(Bot, pev_spawnflags, pev(Bot, pev_spawnflags) | FL_FAKECLIENT);
set_pev(Bot, pev_flags, pev(Bot, pev_flags) | FL_FAKECLIENT);

// Глобальная активность Ботов
if(iBotNum == 1)
g_iBotsData[BOTS_ACTIVE_1] = 1;
if(iBotNum == 2)
g_iBotsData[BOTS_ACTIVE_2] = 1;
if(iBotNum == 3)
g_iBotsData[BOTS_ACTIVE_3] = 1;

// Запоминаем ID бота
g_iBotsData[BOTS_BLOBALID][Bot] = iBotNum;

// Если Бот Не Валиден
if(pev_valid(Bot) != 2)
return;

// Меняем команду
set_pdata_int(Bot, m_iTeam, 3, CBASEMONSTER_LINUX_XTRA_OFF);

// Меняем данные
dllfunc(DLLFunc_ClientUserInfoChanged, Bot, engfunc(EngFunc_GetInfoKeyBuffer, Bot));

// Отправляем мессагу со сменой Команды
message_begin(MSG_BROADCAST, g_msgTeamInfo);
write_byte(Bot);
write_string("SPECTATOR");
message_end();
}


https://www.gametracker.com/server_info/80.241.245.126:27126/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 29.5.2020, 0:16
Сообщение #48
Стаж: 12 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Боты не учитываются как игроки. Почему? На мониках видно 2/32, но в самой игре показывает 0/32 игроков на сервере.

Как пофиксить? Мб в дпрото что изменить нужно? dntknw.gif

Отредактировал: Takashi Murakami, - 29.5.2020, 0:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Takashi Murakami
сообщение 29.5.2020, 12:37
Сообщение #49
Стаж: 12 лет

Сообщений: 797
Благодарностей: 459
Полезность: 514

Цитата(6bIpuk @ 7.7.2017, 16:17) *
several, естественно,ведь он для этого и создан

Ни со стима, ни с пираток, их не показывает как игроков.

Хотя на других серверах (которые у меня тоже в избранном), стоит точно такой же плагин. И там даже при пустом сервере 2/32. А у меня 0/32.

В чём проблема не подскажешь?

Отредактировал: Takashi Murakami, - 29.5.2020, 12:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V  « 2 3
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: