Spec Bots, Боты для спеков |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Spec Bots, Боты для спеков |
SISA |
28.3.2017, 1:06
Сообщение
|
Накатал простенький плагин для создания двух ботах в спеках. Как водится, в паблике ничего вменяемого не нашел.
Плагин создает двух "Независимых" ботов, каждый из которых может служить дополнительной рекламой для вашего сервера. Первый бот показывает IP:PORT сервера Второй бот показывает название вашего сайта (если он есть ) Для каждого бота можно настроить максимальное количество игроков, при котором он будет кикнут с сервера. Просьба потестировать плагин, если он вам нужен и написать о результатах. Выглядит оно так: К плагину идет конфиг с кварами У кого амх 1.8.1 или 1.8.2, в плагине замените client_disconnected на client_disconnect Сами боты относительно "Умные", и подключаются к серверу с задержкой, после выхода игрока. Задержку рекомендую ставить не менее 5ти секунд, чтобы покрыть возможное время реконнекта игрока.
Отредактировал: SISA, - 2.4.2017, 21:31
Прикрепленные файлы:
|
|
Поблагодарили 16 раз
|
|
viper2020 |
28.3.2017, 5: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
Сообщение
|
на 1.8.2 протестировал все работает как надо
|
|
|
|
SISA |
28.3.2017, 12:31
Сообщение
|
|
|
SISA |
28.3.2017, 19:30
Сообщение
|
g_BotsGlogalId[32] заменить на g_BotsGlogalId[33], а то на 32м слоту будет бажить.
|
|
|
|
viper2020 |
28.3.2017, 19:43
Сообщение
|
|
|
|
|
SISA |
29.3.2017, 3:01
Сообщение
|
|
|
viper2020 |
29.3.2017, 6:25
Сообщение
|
|
viper2020, Хз, что там реализовывать. Бот практически полностью эмулирует обычного игрока, в моём случае по крайней мере. Я понял...ну попробуем,потестим!Хотя очково чё-то Подскажите ещё если можно,какой(или какие) плагин,в моём случае,может отсылать инфу боту из-за чего сервер крашится 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
Сообщение
|
|
|
csparena |
30.3.2017, 10:18
Сообщение
|
|
идея норм.. но бесполезный плагин ..
ps. зачем занимать 2 слота.. если ты можешь просто наверху сервера написать худ ,будет мерцать и никому не будет мешать.. кому надо скину в лс [ne reklama https://www.youtube.com/watch?v=tzDMzN4uPvg] пример в стойлeре мой старый ип
Отредактировал: csparena, - 30.3.2017, 10:21
|
|
|
SISA |
30.3.2017, 12:20
Сообщение
|
Поблагодарили 1 раз
|
|
SISA |
2.4.2017, 1:35
Сообщение
|
Подправил плагин (размер массива) и обновил в первом посте.
Ниже будет мини-инстуркция для тех, кто хочет убрать этих ботов из списка игроков в любом меню. В новой системе меню (в цикле формирования списка игроков. Пример кода из 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
Сообщение
|
|
|
|
|
SISA |
2.4.2017, 13:05
Сообщение
|
|
|
3aB}{o3 |
2.4.2017, 14:32
Сообщение
|
|
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 Забыл конфиг в папку положить. Сейчас все хорошо работает.
Отредактировал: 3aB}{o3, - 2.4.2017, 15:10
|
|
|
SISA |
2.4.2017, 16:50
Сообщение
|
Обновил плагин:
Подтянул массивы и структурировал их Убрал часть проверок Изменил названия кваров и название конфига Изменил знания кваров + добавил квары для названия ботов Короч, тоже, что и было, только на более адекватном коде. |
|
Поблагодарили 4 раз
|
|
3aB}{o3 |
2.4.2017, 18:40
Сообщение
|
|
У меня такая беда, как такое вообще возможно фиг знает, но к названию первого боты у меня прибавляется еще и рандомное число
версия 2.0
Отредактировал: 3aB}{o3, - 2.4.2017, 18:45
|
|
|
SISA |
2.4.2017, 19:21
Сообщение
|
|
|
3aB}{o3 |
2.4.2017, 19:22
Сообщение
|
|
Плагин сам подставляет ip сервера что-ли ?
|
|
|
3aB}{o3 |
2.4.2017, 19:28
Сообщение
|
|
SISA, эти цифры были началом моего ip, я прописывал сам в виде домена, например: cs.site.ru:27015, а так как плагин сам подставляет ip, после домена начинал выводиться ip.
моя вина, все хорошо работает. Но хотелось бы конечно чтобы можно было прописывать и самому. нужно в описание добавить данную информацию, что плагин сам подставляет ip, иначе 100% найдутся такие же как и я
Отредактировал: 3aB}{o3, - 2.4.2017, 19:31
|
|
|