Здравейте, Spec bots плъгина да представлява просто фейк играчи със следните имена:
Server IP: xx.xxx.xx.xx:27015
Forum: http://www.amxx-bg.info/forum/forum
Website: http://www.amxx-bg.info/forum
Test1: Test1
Test2: test2
Когато има 1 играч в сървъра да се показват всичките Spec ботовете
Когато има 2 играча в сървъра да показва произволно 2 (два) от Spec ботовете
Когато има 3 играча в сървъра да се показва произволни 1 (един) от Spec ботовете
Когато има 4 играча и нагоре да няма никакви spec ботове
Благодаря
Изработка на Spec bots плъгин
-
southdivision
Извън линия - Потребител
- Мнения: 279
- Регистриран на: 14 Окт 2016, 23:17
- Местоположение: София
- Се отблагодари: 8 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Изработка на Spec bots плъгин
Не е тествано и не знам колко добре ще работи. Частта с произволните имена не успях да я направя. Имената ще се редуват както за написани във файла.
Обяснение за g_eBots:
Ако има от X до Y играча (или ако има X играча, ако X = Y), ще има Z ботове (-1 означава 0 ботове).
Ако има от 4 до 32 играча, ще няма ботове (-1).
Ако има 3 играча (от 3 до 3), ще има 1 бот.
Ако има 2 играча (от 2 до 2), ще има 2 бота.
Ако има 1 играч, ще има 5 бота.
Ако има 0 играчи, ще има 0 ботове.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fakemeta>
#if defined client_disconnected
#define client_disconnect client_disconnected
#endif
enum _:Bots
{
FromPlayers,
ToPlayers,
BotsNum,
}
new const g_eBots[][Bots] =
{
{ 4, 32, -1 },
{ 3, 3, 1 },
{ 2, 2, 2 },
{ 1, 1, 5 },
{ 0, 0, -1 }
}
new const g_szBotNames[][32] =
{
"Server IP: xx.xxx.xx.xx:27015",
"Forum: http://www.amxx-bg.info/forum",
"Website: http://www.amxx-bg.inf",
"Test1: Test1",
"Test2: test2"
}
new g_iPlayers, g_iBots
public plugin_init()
register_plugin("SpecBots", "1.0", "OciXCrom @ amxx-bg.info/forum")
public client_connect(id)
{
if(!is_user_bot(id))
g_iPlayers++
set_task(3.0, "CountBots")
}
public client_disconnect(id)
{
if(!is_user_bot(id))
g_iPlayers--
CountBots()
set_task(1.0, "CountBots")
}
public CountBots()
{
static i, j
for(i = 0; i < sizeof(g_eBots); i++)
{
if(g_eBots[i][FromPlayers] <= g_iPlayers <= g_eBots[i][ToPlayers])
{
if(g_eBots[i][BotsNum] == g_iBots)
break
RemoveBots()
if(g_eBots[i][BotsNum] == -1)
break
for(j = 0; j < clamp(g_eBots[i][BotsNum], .max = sizeof(g_szBotNames)); j++)
CreateBot(g_szBotNames[j])
break
}
}
}
RemoveBots()
{
static iPlayers[32], iPnum, i
get_players(iPlayers, iPnum, "d")
for(i = 0; i < iPnum; i++)
server_cmd("kick #%i", get_user_userid(iPlayers[i]))
g_iBots = 0
}
CreateBot(const szName[])
{
static szReason[128], id
id = engfunc(EngFunc_CreateFakeClient, szName)
engfunc(EngFunc_FreeEntPrivateData, id)
set_pev(id, pev_flags, pev(id, pev_flags) | FL_FAKECLIENT)
dllfunc(DLLFunc_ClientConnect, id, szName, "127.0.0.1", szReason)
dllfunc(DLLFunc_ClientPutInServer, id)
g_iBots++
}
Код за потвърждение: Избери целия код
{ 4, 32, -1 },
{ 3, 3, 1 },
{ 2, 2, 2 },
{ 1, 1, 5 },
{ 0, 0, -1 }
Ако има от 4 до 32 играча, ще няма ботове (-1).
Ако има 3 играча (от 3 до 3), ще има 1 бот.
Ако има 2 играча (от 2 до 2), ще има 2 бота.
Ако има 1 играч, ще има 5 бота.
Ако има 0 играчи, ще има 0 ботове.
-
southdivision
Извън линия - Потребител
- Мнения: 279
- Регистриран на: 14 Окт 2016, 23:17
- Местоположение: София
- Се отблагодари: 8 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Re: Изработка на Spec bots плъгин
Добре,а възможно ли е във кик менюто на amxmodmenu ботовете да не присъстват защото могат да бъдат киквани ( да бъдат с имунитет един вид ).
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Изработка на Spec bots плъгин
За тази цел трябва да се редактира менюто. Друг вариант е да се добави имунитет на ботовете. За второто добави set_user_flags(id, ADMIN_IMMUNITY) в предпоследния ред.
-
southdivision
Извън линия - Потребител
- Мнения: 279
- Регистриран на: 14 Окт 2016, 23:17
- Местоположение: София
- Се отблагодари: 8 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 5 Отговори
- 2170 Преглеждания
-
Последно мнение от Siska
-
- 2 Отговори
- 1589 Преглеждания
-
Последно мнение от sf4n
-
- 2 Отговори
- 1823 Преглеждания
-
Последно мнение от 7331
-
- 0 Отговори
- 303 Преглеждания
-
Последно мнение от InsertSK
-
- 12 Отговори
- 4954 Преглеждания
-
Последно мнение от Siska
-
- 1 Отговори
- 1134 Преглеждания
-
Последно мнение от atmax
-
- 1 Отговори
- 1010 Преглеждания
-
Последно мнение от Siska
Кой е на линия
Потребители разглеждащи този форум: Semrush [Bot] и 32 госта