Гайд ChatBot для Indigo (2/2)

Новая ава блеять
Забаненный
Статус
Оффлайн
Регистрация
14 Янв 2018
Сообщения
89
Реакции[?]
235
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот и вторая часть.

Misc.cpp:
Код:
        else if (!strcmp(pEvent->GetName(), "bomb_begindefuse"))
        {
            std::vector<std::string> Defusing = { "DefusingBomb" };
            auto say = "say ";
            std::string msg = say + Defusing[rand() % Defusing.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
        }

        else if (!strcmp(pEvent->GetName(), "bomb_abortdefuse"))
        {
            std::vector<std::string> Cancel = { "CancelDefusing" };
            auto say = "say ";
            std::string msg = say + Cancel[rand() % Cancel.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_abortplant"))
        {
            std::vector<std::string> CancelPlanting = { "CancelPlanting" };
            auto say = "say ";
            std::string msg = say + CancelPlanting[rand() % CancelPlanting.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_beginplant"))
        {
            std::vector<std::string> Planting = { "PlantingBomb" };
            auto say = "say ";
            std::string msg = say + Planting[rand() % Planting.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_pickup"))
        {
            std::vector<std::string> BombPickup = { "BombPickup" };
            auto say = "say ";
            std::string msg = say + BombPickup[rand() % BombPickup.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "defuser_pickup"))
        {
            std::vector<std::string> DefuserPickup = { "DefuserPickup" };
            auto say = "say ";
            std::string msg = say + DefuserPickup[rand() % DefuserPickup.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "defuser_dropped"))
        {
            std::vector<std::string> DefuserDropped = { "DefuserDropped" };
            auto say = "say ";
            std::string msg = say + DefuserDropped[rand() % DefuserDropped.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (strcmp(pEvent->GetName(), "player_spawned") == 0)
        {
            int join = pEvent->GetInt("userid");
            int player = Interfaces::Engine()->GetLocalPlayer();
            if (join)
            {
                    std::vector<std::string> Hello = { "Hello!" };
                    auto say = "say ";
                    std::string msg = say + Hello[rand() % Hello.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                if (player)
                {
                    std::vector<std::string> Hello = { "Hello!" };
                    auto say = "say ";
                    std::string msg = say + Hello[rand() % Hello.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                }
            }
        }
        else if (strcmp(pEvent->GetName(), "player_disconnect") == 0)
        {
            int join = pEvent->GetInt("userid");
            int player = Interfaces::Engine()->GetLocalPlayer();
            if (join)
            {
                std::vector<std::string> Goodbye = { "Goodbye;)" };
                auto say = "say ";
                std::string msg = say + Goodbye[rand() % Goodbye.size()];
                Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                if (player)
                {
                    std::vector<std::string> Goodbye = { "Goodbye;)" };
                    auto say = "say ";
                    std::string msg = say + Goodbye[rand() % Goodbye.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                }
            }
        }
        else if (strcmp(pEvent->GetName(), "round_prestart") == 0)
        {
                std::vector<std::string> Goodbye = { "RoundStarted" };
                auto say = "say ";
                std::string msg = say + Goodbye[rand() % Goodbye.size()];
                Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
        }
    }
 
///
Пользователь
Статус
Оффлайн
Регистрация
25 Янв 2018
Сообщения
511
Реакции[?]
114
Поинты[?]
0
Вот и вторая часть.

Misc.cpp:
Код:
        else if (!strcmp(pEvent->GetName(), "bomb_begindefuse"))
        {
            std::vector<std::string> Defusing = { "DefusingBomb" };
            auto say = "say ";
            std::string msg = say + Defusing[rand() % Defusing.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
        }

        else if (!strcmp(pEvent->GetName(), "bomb_abortdefuse"))
        {
            std::vector<std::string> Cancel = { "CancelDefusing" };
            auto say = "say ";
            std::string msg = say + Cancel[rand() % Cancel.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_abortplant"))
        {
            std::vector<std::string> CancelPlanting = { "CancelPlanting" };
            auto say = "say ";
            std::string msg = say + CancelPlanting[rand() % CancelPlanting.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_beginplant"))
        {
            std::vector<std::string> Planting = { "PlantingBomb" };
            auto say = "say ";
            std::string msg = say + Planting[rand() % Planting.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "bomb_pickup"))
        {
            std::vector<std::string> BombPickup = { "BombPickup" };
            auto say = "say ";
            std::string msg = say + BombPickup[rand() % BombPickup.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "defuser_pickup"))
        {
            std::vector<std::string> DefuserPickup = { "DefuserPickup" };
            auto say = "say ";
            std::string msg = say + DefuserPickup[rand() % DefuserPickup.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (!strcmp(pEvent->GetName(), "defuser_dropped"))
        {
            std::vector<std::string> DefuserDropped = { "DefuserDropped" };
            auto say = "say ";
            std::string msg = say + DefuserDropped[rand() % DefuserDropped.size()];
            Interfaces::Engine()->ExecuteClientCmd(msg.c_str());

        }
        else if (strcmp(pEvent->GetName(), "player_spawned") == 0)
        {
            int join = pEvent->GetInt("userid");
            int player = Interfaces::Engine()->GetLocalPlayer();
            if (join)
            {
                    std::vector<std::string> Hello = { "Hello!" };
                    auto say = "say ";
                    std::string msg = say + Hello[rand() % Hello.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                if (player)
                {
                    std::vector<std::string> Hello = { "Hello!" };
                    auto say = "say ";
                    std::string msg = say + Hello[rand() % Hello.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                }
            }
        }
        else if (strcmp(pEvent->GetName(), "player_disconnect") == 0)
        {
            int join = pEvent->GetInt("userid");
            int player = Interfaces::Engine()->GetLocalPlayer();
            if (join)
            {
                std::vector<std::string> Goodbye = { "Goodbye;)" };
                auto say = "say ";
                std::string msg = say + Goodbye[rand() % Goodbye.size()];
                Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                if (player)
                {
                    std::vector<std::string> Goodbye = { "Goodbye;)" };
                    auto say = "say ";
                    std::string msg = say + Goodbye[rand() % Goodbye.size()];
                    Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
                }
            }
        }
        else if (strcmp(pEvent->GetName(), "round_prestart") == 0)
        {
                std::vector<std::string> Goodbye = { "RoundStarted" };
                auto say = "say ";
                std::string msg = say + Goodbye[rand() % Goodbye.size()];
                Interfaces::Engine()->ExecuteClientCmd(msg.c_str());
        }
    }
А ты мог бы приложить скриншоты того как это выглядит?
По теме: Ты можешь объяснить мне, что эта функция делает, потому что я не врубаюсь что-то...
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
А ты мог бы приложить скриншоты того как это выглядит?
По теме: Ты можешь объяснить мне, что эта функция делает, потому что я не врубаюсь что-то...
Функция strcmp() сравнивает строки и возвращает 0, если строки одинаковы. pEvent - это указатель от которого можно получить название последнего (или текущего) события. Вот он и сравнивает. Если имя события = bomd_... , то в соответствии с этим выполняет команду say в консоли и таким образом в чате появляется сообщение.
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
Теперь по сабжу. Вопрос: зачем в каждый иф пихать string и auto?

Над всеми if:
Код:
std::string futureMsg = "say ";
Уже в if:
Код:
futureMsg += ...
После всех if:
Код:
g_pEngine->ExecuteCmd(futureMsg.c_str());
 
Участник
Статус
Оффлайн
Регистрация
23 Фев 2017
Сообщения
613
Реакции[?]
507
Поинты[?]
0
else if (strcmp(pEvent->GetName(), "player_disconnect") == 0) { int join = pEvent->GetInt("userid"); int player = Interfaces::Engine()->GetLocalPlayer(); if (join) { std::vector<std::string> Goodbye = { "Goodbye;)" }; auto say = "say "; std::string msg = say + Goodbye[rand() % Goodbye.size()]; Interfaces::Engine()->ExecuteClientCmd(msg.c_str()); if (player) { std::vector<std::string> Goodbye = { "Goodbye;)" }; auto say = "say "; std::string msg = say + Goodbye[rand() % Goodbye.size()]; Interfaces::Engine()->ExecuteClientCmd(msg.c_str()); } } }
Вау, это просто верх совершенства. Что тут блять вообще написано? Если индекс нашего игрока не равен 0, а другой игрок ливает, то функция выведет сообщение 2 раза. С ифом чуть выше тоже самое. Да и при чем тут индекс нашего игрока? userid вообще никакого отношения не имеет к индексу нашего игрока...
 
Начинающий
Статус
Оффлайн
Регистрация
11 Апр 2018
Сообщения
141
Реакции[?]
20
Поинты[?]
0
Вау, это просто верх совершенства. Что тут блять вообще написано? Если индекс нашего игрока не равен 0, а другой игрок ливает, то функция выведет сообщение 2 раза. С ифом чуть выше тоже самое. Да и при чем тут индекс нашего игрока? userid вообще никакого отношения не имеет к индексу нашего игрока...
Когда пастишь главное отключать мозг, не нужно думать. Как же трудно самому написать
этот код имея это :
Пожалуйста, авторизуйтесь для просмотра ссылки.
(не реклама)
 
Похожие темы
Сверху Снизу