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

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

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

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

Скрыть живых ботов

Статус пользователя Slimerz0r
сообщение 13.9.2013, 10:25
Сообщение #1
Стаж: 16 лет

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

Есть плагин Fake Team Bot v1.3, он ставит по 1 живому боту на команду, они просто стоят ничего не делают. Пригодится когда при включенном csdm respawn и на карте играет 2 человека то они как бы блокируют конец раунда.

Код
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich>


#define PLUGIN "Fake TeamBot"
#define VERSION "1.3"
#define AUTHOR "OneEyed & Sebul"

#define TASK_BOT 4325

new botteam[2];
new HamHook:bothandle;

new const botnames[2][] = {
    "BOT Terrorist",            //Change Terrorist Bot Name
    "BOT Counter-Terrorist"        //Change CT Bot name
}

new g_MaxPlayers;
new cvar_min_player;

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);

    register_event("TextMsg", "RozpocznijGre", "a", "2&#Game_C");

    cvar_min_player = register_cvar("dm_fakebot_min_player", "8");

    g_MaxPlayers = get_maxplayers();
}

public RozpocznijGre() {
    if(!task_exists(TASK_BOT)) set_task(8.0, "check_player", TASK_BOT, _, _, "b");
}

public FakeBotSpawn(id) {
    if(!is_user_bot(id))
        return;

    for(new x=0; x<2; ++x) {
        if(id == botteam[x]) {
            set_pev(id, pev_effects, (pev(id, pev_effects) | EF_NODRAW)); //set invisible
            set_pev(id, pev_solid, SOLID_NOT); //Not Solid
            set_pev(id, pev_takedamage, DAMAGE_NO);
            break;
        }
    }
}

public check_player() {
    if(get_playersnum(1) < g_MaxPlayers-1 && get_teamplayersnum() < get_pcvar_num(cvar_min_player)) {
        createBots();
    }
    else {
        for(new x=0; x<2; ++x) {
            if(botteam[x]) {
                server_cmd("kick #%d", get_user_userid(botteam[x]));
                botteam[x] = 0;
            }
        }
        if(bothandle) DisableHamForward(bothandle);
    }
}

createBots() {
    if(bothandle) EnableHamForward(bothandle);
    else bothandle = RegisterHam(Ham_Spawn, "player", "FakeBotSpawn", 1);

    new bot, x;
    for(x=0; x<2; ++x) {
        bot = find_player("bli", botnames[x]);
        if(bot) {
            botteam[x] = bot;
            continue;
        }

        bot = engfunc(EngFunc_CreateFakeClient, botnames[x]);
        if(pev_valid(bot)) {
            botteam[x] = bot;
            /*new ptr[128];
            dllfunc(DLLFunc_ClientConnect, bot, botnames[x], "127.0.0.1", ptr);
            dllfunc(DLLFunc_ClientPutInServer, bot);*/
            dllfunc(MetaFunc_CallGameEntity, "player", bot);
            set_pev(bot, pev_flags, pev(bot, pev_flags) | FL_FAKECLIENT);
            set_pev(bot, pev_frags, 0.0);
            select_model(bot, x+1);
            dllfunc(DLLFunc_Spawn, bot);
            dllfunc(DLLFunc_Think, bot);
        }
    }
}

select_model(id, team) {
    switch(team) {
        case 1: cs_set_user_team(id, CS_TEAM_T, CS_T_TERROR);
        case 2: cs_set_user_team(id, CS_TEAM_CT, CS_CT_URBAN);
    }
}

stock get_teamplayersnum() {
    new playerTeam, playerCnt, i;
    for(i=1; i<=g_MaxPlayers; ++i) {
        if(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i))
            continue;

        playerTeam = _:cs_get_user_team(i);
        if(playerTeam == 1 || playerTeam == 2)
            ++playerCnt;
    }

    return playerCnt;
}


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

Код
            set_pev(id, pev_effects, (pev(id, pev_effects) | EF_NODRAW)); //set invisible
            set_pev(id, pev_solid, SOLID_NOT); //Not Solid
            set_pev(id, pev_takedamage, DAMAGE_NO);


вопрос в том как можно их скрыть или выкинуть за карту
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
cs-portal
сообщение 13.9.2013, 10:54
Сообщение #2
Стаж: 16 лет

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

new Float:origin[3]
origin[0] = -999.0
origin[1] = -999.0
origin[2] = -999.0
set_user_origin(id,origin)


если не ошибаюсь есть флаги NORESPAWN я только забыл где)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sweet
сообщение 13.9.2013, 11:01
Сообщение #3
Стаж: 15 лет

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

Для CSDM есть плагин более удобный, что бы раунд не кончался.

MakeServer
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 13.9.2013, 11:49
Сообщение #4


Стаж: 15 лет

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

Зачем боты вообще? Это плохой тон, да и зачем платить на хостинге за лишние слоты.

https://forums.alliedmods.net/showthread.php?t=117782
Без ботов, отличная штука.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 13.9.2013, 12:48
Сообщение #5
Иконка группы

Стаж: 19 лет

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

Без ботов, без орфея, модулем

Идеальное решение :)
Прикрепленный файл  noroundend.rar ( 46,09 килобайт ) Кол-во скачиваний: 13

sv_noroundend 1/0


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Slimerz0r
сообщение 13.9.2013, 15:21
Сообщение #6
Стаж: 16 лет

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

спасибо, не ожидал такой оперативной реакции
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 13.9.2013, 16:08
Сообщение #7
Стаж: 16 лет

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

под орфей не советую ибо кривой, даже старая версия 5 летней
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: