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

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

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

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

3 страниц V   1 2 »

Spec Bots

, Боты для спеков
Статус пользователя SISA
сообщение 28.3.2017, 1:06
Сообщение #1
Стаж: 13 лет

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

Накатал простенький плагин для создания двух ботах в спеках. Как водится, в паблике ничего вменяемого не нашел.

Плагин создает двух "Независимых" ботов, каждый из которых может служить дополнительной рекламой для вашего сервера.

Первый бот показывает IP:PORT сервера
Второй бот показывает название вашего сайта (если он есть smile.gif)

Для каждого бота можно настроить максимальное количество игроков, при котором он будет кикнут с сервера. Просьба потестировать плагин, если он вам нужен и написать о результатах.

Выглядит оно так:

Прикрепленное изображение

К плагину идет конфиг с кварами

У кого амх 1.8.1 или 1.8.2, в плагине замените client_disconnected на client_disconnect

Сами боты относительно "Умные", и подключаются к серверу с задержкой, после выхода игрока. Задержку рекомендую ставить не менее 5ти секунд, чтобы покрыть возможное время реконнекта игрока.

Отредактировал: SISA, - 2.4.2017, 21:31
Прикрепленные файлы:
Прикрепленный файл  spectator_bots_2.1.zip ( 3,18 килобайт ) Кол-во скачиваний: 1377
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 16 раз
   Цитировать сообщение
Статус пользователя viper2020
сообщение 28.3.2017, 5:13
Сообщение #2


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

SISA, Сильно в кодах не шарю...но у меня крашился сервер с таким плагином,ботам отсылалась какая-то инфа и серв падал с такой ошибкой:sz_getspace tried to write to an uninitialized sizebuf_t
Сам плагин
Cvars:
Имя бота
sbot_name "s"

Бота не смогут кикнуть/забанить админы
sbot_immunity "1"

Автоматически убирать бота, если сервер полон
sbot_auto "1"
*/

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

new const Plugin[] = "Spect Bot"
new const Version[] = "1.2"
new const Author[] = "SKAJIbnEJIb & Bos93"

new g_BotName, g_Immunity, g_Auto
new g_Bot

public plugin_init()
{
register_plugin(Plugin, Version, Author)

g_BotName = register_cvar("sbot_name","Spect Bot")
g_Auto = register_cvar("sbot_auto","1")
g_Immunity = register_cvar("sbot_immunity","1")

set_task(10.0, "ServerStatus", 777, _, _, "b")
}

public createBot()
{
new BotName[32]

get_pcvar_string(g_BotName, BotName, charsmax(BotName))
g_Bot = engfunc(EngFunc_CreateFakeClient, BotName)

if (g_Bot > 0)
{
dllfunc(MetaFunc_CallGameEntity, "player", g_Bot)
set_pev(g_Bot, pev_flags, FL_FAKECLIENT)

set_pev(g_Bot, pev_model, "")
set_pev(g_Bot, pev_viewmodel2, "")
set_pev(g_Bot, pev_modelindex, 0)

set_pev(g_Bot, pev_renderfx, kRenderFxNone)
set_pev(g_Bot, pev_rendermode, kRenderTransAlpha)
set_pev(g_Bot, pev_renderamt, 0.0)

set_team(g_Bot)
if (get_pcvar_num(g_Immunity))
set_user_flags(g_Bot, ADMIN_IMMUNITY)
}
else
log_amx ("[Spect Bot] Error!")

return PLUGIN_CONTINUE
}

public removeBot(Bot)
{
server_cmd("kick #%d", get_user_userid(Bot))
g_Bot = 0
}

public set_team(Bot)
{
if (cstrike_running()) {
cs_set_user_team(Bot, CS_TEAM_UNASSIGNED)
}
}

public ServerStatus()
{
if (get_pcvar_num(g_Auto))
{
if(is_user_connected(g_Bot))
{
if(get_playersnum(1) > (get_maxplayers() - 2))
removeBot(g_Bot)
}
else
{
if(get_playersnum(1)+1 < get_maxplayers())
createBot()
}
}
else
{
if(is_user_connected(g_Bot))
createBot()
}

if(is_user_connected(g_Bot))
{
set_team(g_Bot)

if (get_user_team(g_Bot) > 0) {
server_cmd("kick #%d", get_user_userid(g_Bot))
createBot()
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
register
сообщение 28.3.2017, 9:22
Сообщение #3
Стаж: 7 лет

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

на 1.8.2 протестировал все работает как надо good.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 28.3.2017, 12:31
Сообщение #4
Стаж: 13 лет

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

viper2020,

Не, ну а что мне другие плагины смотреть и вникать в их код ? Больше интересует мой плагин и его работа.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 28.3.2017, 19:30
Сообщение #5
Стаж: 13 лет

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

g_BotsGlogalId[32] заменить на g_BotsGlogalId[33], а то на 32м слоту будет бажить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя viper2020
сообщение 28.3.2017, 19:43
Сообщение #6


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

Цитата(SISA @ 28.3.2017, 14:31) *
viper2020,

Не, ну а что мне другие плагины смотреть и вникать в их код ? Больше интересует мой плагин и его работа.

не не,я не это имел ввиду)) думал может как-то можно реализовать в плагине,чтоб боту не отсылалась никакая инфа!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 29.3.2017, 3:01
Сообщение #7
Стаж: 13 лет

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

viper2020,

Хз, что там реализовывать. Бот практически полностью эмулирует обычного игрока, в моём случае по крайней мере.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя viper2020
сообщение 29.3.2017, 6:25
Сообщение #8


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

Цитата(SISA @ 29.3.2017, 5:01) *
viper2020,

Хз, что там реализовывать. Бот практически полностью эмулирует обычного игрока, в моём случае по крайней мере.

Я понял...ну попробуем,потестим!Хотя очково чё-то lol.gif
Подскажите ещё если можно,какой(или какие) плагин,в моём случае,может отсылать инфу боту из-за чего сервер крашится
Cписок плагинов

[ 1] Map Manager 2.5.61 Mistrick mapmanager.amxx running
[ 2] Gag Me 2.0.0 Radius gag_me.amxx running
[ 3] Maps Menu 1.4.1 neugomon mapsmenu.amxx running
[ 4] Menus Front-End 1.4 neugomon menufront.amxx running
[ 5] FreshBans 1.3.6 kanagava fresh_bans_for_ running
[ 6] Admin Loader 2.6.2 neygomon admin_loader.am running
[ 7] Admin Commands 1.8.3-Re AMXX Dev Team admincmd.amxx running
[ 8] Slots Reservation 1.8.3-Re AMXX Dev Team adminslots.amxx running
[ 9] CSStatsX SQL 0.7.4 serfreeman1337 csstatsx_sql.am running
[ 10] AES: StatsX 0.5 Vega serfreeman1337 aes_statsx_cstr running
[ 11] Voice protection 0.3 AMXX.Shop voice_protectio running
[ 12] Players Menu 1.7 neugomon plmenu.amxx running
[ 13] Admin Votes 1.8.3-Re AMXX Dev Team adminvote.amxx running
[ 14] Admin Chat 1.8.3-Re AMXX Dev Team adminchat.amxx running
[ 15] Items Restrict 1.0 s1lent items_restrict. running
[ 16] Stats Configuration 1.8.3-Re AMXX Dev Team statscfg.amxx running
[ 17] Auto Team Balance Adva 1.2.3 Radius auto_team_balan running
[ 18] Steam Bonus 1.4.5 Radius | Stimul steam_bonus.amx running
[ 19] [ReAPI] No Team Flash 1.0 ReHLDS Team noteamflash.amx running
[ 20] unknown unknown unknown adminfreelook.a running
[ 21] Advert Messages 1.2.2 neygomon adverts.amxx running
[ 22] [ReAPI] AWPoff 1.2 PAffAEJIkA :3 awp_off.amxx debug
[ 23] Block grande info 1.0 neygomon BlockGrenadeInf running
[ 24] Bullet Damage 0.0.3 ConnorMcLeod bullet_damage.a running
[ 25] Rock to Ban 1.02 Safety1st rock2ban.amxx running
[ 26] Say me and Say hp 1.4 neygomon sayme.amxx running
[ 27] [ReApi] Killer ScreenF 0.0.4 Vaqtincha reapi_killer_sc running
[ 28] Block HudTextArgs 1.0 unknown Block_HudTextAr running
[ 29] FM ResetScore 0.1 neygomon fm_rs.amxx running
[ 30] C4 Timer on roundtime 0.3.3a neygomon c4timer.amxx running
[ 31] SteamID Limiter 0.4 Mistrick steamid_limiter running
[ 32] DemoRecoder 1.1 neygomon amx_demorec.amx running
[ 33] ReAimDetector API 0.1.6 ReHLDS Team reaimdetector.a running
[ 34] Replace Info Message 2.1 maeStro aka 9iky replace_info_ms running
[ 35] FlashBang DynLight 1.2 [REAPI neugomon flashbang_dynli running
[ 36] Block Pickup Gold 0.1 unknown BlockPickupGold running
[ 37] Easy MultiJump 1.6 twistedeuphoria/ reapi_multijump running
[ 38] GameName Changer 1.0 neugomon gamename_change running
[ 39] Nice Killer 1.6 Got Milk? / HoHo nice_killer.amx running
[ 40] C4 Taker 1.09 hellmonja & Haml c4_taker.amxx running
[ 41] V.I.P Custom Weapons 1.0.0 Vaqtincha vip_custom.amxx debug
[ 42] V.I.P Custom KNIFE 1.0.0 Vaqtincha custom_knife.am debug
[ 43] V.I.P Custom DEAGLE 1.0.0 Vaqtincha custom_deagle.a debug
[ 44] V.I.P Custom M4A1 1.0.0 Vaqtincha custom_m4a1.amx debug
[ 45] V.I.P Custom AK-47 1.0.0 Vaqtincha custom_ak47.amx debug
[ 46] V.I.P Custom AWP 1.0.0 Vaqtincha custom_awp.amxx debug
[ 47] Chat Manager 1.1.1-11 Mistrick chatmanager.amx running
[ 48] Chat Manager: Addon 0.0.4-70 Mistrick chatmanager_add running
48 plugins, 48 running


Отредактировал: viper2020, - 29.3.2017, 6:36
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mpsmr
сообщение 29.3.2017, 21:00
Сообщение #9
Стаж: 9 лет 1 месяц

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

Цитата(SISA @ 28.3.2017, 13:31) *
viper2020,

Не, ну а что мне другие плагины смотреть и вникать в их код ? Больше интересует мой плагин и его работа.

добавь в config что бы можно было изменять названия второго бота , или обоих . было бы вообще замечательно good.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csparena
сообщение 30.3.2017, 10:18
Сообщение #10


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

Сообщений: 2377
Благодарностей: 541
Полезность: 106

идея норм.. но бесполезный плагин ..
ps. зачем занимать 2 слота.. если ты можешь просто наверху сервера написать худ ,будет мерцать и никому не будет мешать.. кому надо скину в лс

[ne reklama
https://www.youtube.com/watch?v=tzDMzN4uPvg]

пример в стойлeре
мой старый ип

Отредактировал: csparena, - 30.3.2017, 10:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 30.3.2017, 12:20
Сообщение #11
Стаж: 13 лет

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

csparena,

Бесполезные плагины - это не по моей части. Боты выходят сами и слоты фактически не занимают.

Отредактировал: SISA, - 30.3.2017, 12:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя SISA
сообщение 2.4.2017, 1:35
Сообщение #12
Стаж: 13 лет

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

Подправил плагин (размер массива) и обновил в первом посте.

Ниже будет мини-инстуркция для тех, кто хочет убрать этих ботов из списка игроков в любом меню.

В новой системе меню (в цикле формирования списка игроков. Пример кода из ZP 4.3):

Код
    // Player List
    for (player = 0; player <= g_maxplayers; player++)
    {
        // Если это Бот
        if(is_user_bot(player))
            continue;
    }


Такой фильтр уберет из списка всех ботов. Если вы используете, допустим, тех же подботов для тестов или сервера, то из меню они тоже выпилятся.

Чтобы сделать исключение только для спекботов:

Добавляем массив data_setinfo[2] (повыше цикла)
Код
    // Player List
    for (player = 0; player <= g_maxplayers; player++)
    {
        // Если это Бот
        if(is_user_bot(player))
        {
            // Берем данные из Сетинфо игрока(бота)
            get_user_info(player, "*bot", data_setinfo, charsmax(data_setinfo));

            // Если это Спекбот
            if(data_setinfo[0] == '1')
                continue;
        }
    }

Так исключим из списка только спектобов.


В старой системе меню (Пример кода из "plmenu" версии 1.8.3):

Старая систем меню позволяет формировать список игроков только через костыли. Соответственно, находим:

Код
displaySlapMenu(id, pos)
{
    get_players(g_menuPlayers[id], g_menuPlayersNum[id]);


Если хотим убрать из списка игроков всех ботов, тогда добавляем флаг исключения для ботов:

Код
    get_players(g_menuPlayers[id], g_menuPlayersNum[id], "c");


Если хочет убрать только спекботов (не затрагивая подботов, zботов), потребуется сток:

Код
В шапку плагина:
new g_iMaxPlayers;

В plugin_init
g_iMaxPlayers = get_maxplayers();


stock get_players_no_specbots(id)
{
    // Задаем переменные
    new data_setinfo[2];

    // Обнуляем количество игроков в Меню
    g_menuPlayersNum[id] = 0;

    // Цикл по игрокам
    for(new i = 1; i <= g_iMaxPlayers; i++)
    {
        // Если игрок Не Подключен
        if(!is_user_connected(i))
            continue;

        // Если это Бот
        if(is_user_bot(i))
        {
            // Берем данные из Сетинфо игрока (бота)
            get_user_info(i, "*bot", data_setinfo, charsmax(data_setinfo));

            // Если это Спекбот
            if(data_setinfo[0] == '1')
                continue;
        }

        // Запоминаем ID игрока
        g_menuPlayers[id][g_menuPlayersNum[id]] = i;

        // Подсчитываем общее количество игроков для страницы Меню
        g_menuPlayersNum[id]++;
    }
}


Соответственно, в коде меняем:

Код
    get_players(g_menuPlayers[id], g_menuPlayersNum[id])

    на

    get_players_no_specbots(id);
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 2.4.2017, 9:40
Сообщение #13


Стаж: 16 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

SISA, за плагин спасибо, вот только не понял про коды в последнем твоем сообщение, плагин который в первом сообщение будет работать на csdm и Public на ReHLDS, AMX 1.8.2 ?

ps.gif У меня рандомно одно из ботов кикает =(

Отредактировал: 3aB}{o3, - 2.4.2017, 12:53
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 2.4.2017, 13:05
Сообщение #14
Стаж: 13 лет

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

3aB}{o3,

Кикает с какой причиной ?

Кода в последнем сообщении, нужны для всяких меню со списками игроков (вроде бан или кик меню), чтобы выпилить из них этих спекботов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 2.4.2017, 14:32
Сообщение #15


Стаж: 16 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

SISA,

Код
L 04/02/2017 - 15:27:39: Kick: "Site: Site.Ru<699><UNKNOWN><>" was kicked by "Console"
L 04/02/2017 - 15:27:39: "Site: Site.Ru<699><BOT><SPECTATOR>" disconnected
L 04/02/2017 - 15:27:39: "Site: Site.Ru<699><BOT><>" entered the game
Dropped Site: Site.Ru from server
Reason:  Kicked


ps.gif Забыл конфиг в папку положить. Сейчас все хорошо работает.

Отредактировал: 3aB}{o3, - 2.4.2017, 15:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 2.4.2017, 16:50
Сообщение #16
Стаж: 13 лет

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

Обновил плагин:

Подтянул массивы и структурировал их
Убрал часть проверок
Изменил названия кваров и название конфига
Изменил знания кваров + добавил квары для названия ботов

Короч, тоже, что и было, только на более адекватном коде.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 4 раз
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 2.4.2017, 18:40
Сообщение #17


Стаж: 16 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

У меня такая беда, как такое вообще возможно фиг знает, но к названию первого боты у меня прибавляется еще и рандомное число

ps.gif версия 2.0

Отредактировал: 3aB}{o3, - 2.4.2017, 18:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 2.4.2017, 19:21
Сообщение #18
Стаж: 13 лет

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

Цитата(3aB}{o3 @ 2.4.2017, 20:40) *
У меня такая беда, как такое вообще возможно фиг знает, но к названию первого боты у меня прибавляется еще и рандомное число

ps.gif версия 2.0


Скрин показывай.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 2.4.2017, 19:22
Сообщение #19


Стаж: 16 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

Плагин сам подставляет ip сервера что-ли ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3aB}{o3
сообщение 2.4.2017, 19:28
Сообщение #20


Стаж: 16 лет

Сообщений: 2145
Благодарностей: 825
Полезность: 521

SISA, эти цифры были началом моего ip, я прописывал сам в виде домена, например: cs.site.ru:27015, а так как плагин сам подставляет ip, после домена начинал выводиться ip.

моя вина, все хорошо работает. Но хотелось бы конечно чтобы можно было прописывать и самому.

ps.gif нужно в описание добавить данную информацию, что плагин сам подставляет ip, иначе 100% найдутся такие же как и я idiot.gif

Отредактировал: 3aB}{o3, - 2.4.2017, 19:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
3 страниц V   1 2 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: