VIP
D Y N A M I C - [RESPAWN]+18 ✪
45.144.155.72:27015
de_inferno
Играчи: 23/32
de_inferno
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1 45.144.155.113:27015 de_dust2 Играчи: 30/32
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

Помощ със "Change YAPB when players X"

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Toni_P
Извън линия
Потребител
Потребител
Мнения: 64
Регистриран на: 01 Юли 2022, 19:12
Се отблагодари: 14 пъти
Получена благодарност: 4 пъти

Re: Помощ със "Change YAPB when players X"

Мнение от Toni_P » 28 Фев 2023, 18:13

Не искам да правим прекалено дълги и сложни дискусии по тази тема! Но трябва с горчивина да призная, че дори и с многото си усилия на Radeon(за което му благодаря сърдечно)- дори и този негов плъгин не помогна много.
ще споделя, че идеята за тема за такъв плъгин който да "следи" и "поддържа" общия брой играчи + YPB в даден сървър, ми дойде след като открих тази подобна тема, но работеща със POBBot и съответните му команди:
https://forums.alliedmods.net/showthread.php?t=71959
За жалост, славния полския скриптър KWo - си държи на POBBot, а пък и POBBot притежават доста повече и при това стабилни опции в настройките си... но пък са несъизмерими с YPBot по отношение на натоварването на процесора на сървъра....
Ако може някой да преработи плъгина в тази тема - да е "използваем" за YAPBot ще е доста голям пробив... Там може всеки с "квар" според своя сървър и своята представа за необходим брой ботове да си настрои всичко.
Прилагам кода и се надявам поне Radeon да покаже, че е пак толкова изобретателен ... , и че разбира идеята ми напълно...
Ето кода, стар е но поне може да се вемат идеите, и да се направи по-добър е ефективен:

Код за потвърждение: Избери целия код

/*------------------------------------------------------------------------------

Control of bots on the server
It keeps the constant amount of bots on the server (ie 10) until another 
constant amount of human-players joins the server. Then - next human enters - one
bot gets kicked.

Plugin cvars:

pb_min_humans
pb_bots_quota

------------------------------------------------------------------------------*/

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "POD-Bot MM Quota Control"
#define VERSION "1.0 RC 1"
#define AUTHOR "KWo"


new pcvar_pb_min_humans
new pcvar_pb_bots_quota
new pcvar_pb_minbots
new pcvar_pb_maxbots

new g_maxplayers
new g_humans_nr
new g_bots_nr
new g_humans[32]
new g_bots[32]

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	pcvar_pb_min_humans = register_cvar("pb_min_humans", "10")
	pcvar_pb_bots_quota = register_cvar("pb_bots_quota", "10")
	g_maxplayers = get_maxplayers()
	if (cvar_exists("pb_version"))
	{
		pcvar_pb_minbots = get_cvar_pointer("pb_minbots")
		pcvar_pb_maxbots = get_cvar_pointer("pb_maxbots")
		if (pcvar_pb_minbots && pcvar_pb_maxbots)
			set_task(1.0, "check_players", 8765, "", 0, "b")
	}
}

public check_players()
{
	new min_humans = get_pcvar_num(pcvar_pb_min_humans)
	new bots_quota = get_pcvar_num(pcvar_pb_bots_quota)

	if (get_pcvar_num(pcvar_pb_minbots) != 0)
		set_pcvar_num(pcvar_pb_minbots, 0)
	if (get_pcvar_num(pcvar_pb_maxbots) != 0)
		set_pcvar_num(pcvar_pb_maxbots, 0)

	if (min_humans < 0)
		min_humans = 0
	else if (min_humans > g_maxplayers)
		min_humans = g_maxplayers

	if (bots_quota < 0)
		bots_quota = 0
	else if (bots_quota > g_maxplayers - 1)
		bots_quota = g_maxplayers - 1 // we need at least one slot to connect...

	get_players(g_humans,g_humans_nr,"c")
	get_players(g_bots,g_bots_nr,"d")

	if (min_humans + bots_quota > g_maxplayers - 1)
		bots_quota = g_maxplayers - min_humans - 1

	if (g_humans_nr <= min_humans)
	{
		if (g_bots_nr < bots_quota)
		{
			server_cmd("pb add")
		}
		else if (g_bots_nr > bots_quota)
		{
			new i = random_num(0, g_bots_nr - 1)
			new u_id = get_user_userid(g_bots[i])
			server_cmd("kick #%d", u_id)
		}
	}
	else
	{
		if (g_humans_nr - min_humans + g_bots_nr - bots_quota < 0)
		{
			server_cmd("pb add")
		}
		else if ((g_humans_nr - min_humans + g_bots_nr - bots_quota > 0) && (g_bots_nr > 0))
		{
			new i = random_num(0, g_bots_nr - 1)
			new u_id = get_user_userid(g_bots[i])
			server_cmd("kick #%d", u_id)
		}
	}
}

Аватар
ChillX
Извън линия
Потребител
Потребител
Мнения: 92
Регистриран на: 19 Дек 2022, 00:40
Се отблагодари: 1 път
Получена благодарност: 26 пъти
Обратна връзка:

Re: Помощ със "Change YAPB when players X"

Мнение от ChillX » 28 Фев 2023, 18:22

Интересно, това е някакъв бъг в модула явно. При мен с fill работят както трябва. Я провери дали случайно нямаш yb_quota_mode или yb_quota на няколко места - yapb.cfg, game.cfg, server.cfg, amxx.cfg и от това да става някакво обърване. Относно запазване на слотове мисля, че можеш просто да използваш slot reservation с флаг z, това в краен случай разбирасе ако не изкочи друго решение.
Последно промяна от ChillX на 28 Фев 2023, 19:27, променено общо 1 път.

Аватар
Radeon
Извън линия
Потребител
Потребител
Мнения: 143
Регистриран на: 04 Апр 2021, 11:30
Се отблагодари: 2 пъти
Получена благодарност: 34 пъти
Обратна връзка:

Re: Помощ със "Change YAPB when players X"

Мнение от Radeon » 28 Фев 2023, 18:35

Този плъгин си е готов. Само смени на местата където е server_cmd("pb add") със server_cmd("yb add 1 2 2 3 ^"John Smith^"")
yb add [difficulty][personality][team][model][name]
От този пример си настрой какви ботове да влизат. Не знам дали ще работи без име, трябва да пробваш.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта