Как отправить сразу 2 команды в чат?

plast1k2005

Новичок
Автор темы
3
1
C++:
            if (w_param == 0x31) {

                c_input::get()->ref()->send("/s А-а-а-а-а!");
                std::this_thread::sleep_for(std::chrono::milliseconds(100));
                c_input::get()->ref()->send("/me внезапно закричал от ужаса в его голове");
            }
Вот примерный код, но он не работает, отправляет только "/s А-а-а-а-а!". А надо чтобы сразу 2 команды с минимальной задержкой между ними. Помогите, пожалуйста!
 

Gorskin

♥ Love Lua ♥
Проверенный
1,339
1,178
Сервер не дает отправить из-за задержки 100 мс, скорее всего на сервере есть антифлуд. Попробуй 500 мс, либо другие рп команды позволяющие написать 2 действия в одну строку, вроде есть /seeme или /seedo. И будет что-то типо: "Эхх... красота то какая, ляпота. Сказал: Иван_Царевич... | ....Вышев на балкон советской квартиры.
 

demortys12

Участник
31
0
Добавляешь переменные в начала твоего HRESULT c_plugin:
переменные:
    static UINT_PTR timer_id = 1;
    static bool is_hello_scheduled = false;

Потом уже двойное сообщение:
timer:
if (w_param == 0x31) {
    auto local_player = c_netgame::get()->ref()->get_player_pool()->get_local_player();
    if (local_player) {
        local_player->send("/s А-а-а-а-а!");
    }

    is_hello_scheduled = true;
    SetTimer(hwnd, timer_id, 1000, NULL);
}

break;
}

case WM_TIMER: {
    if (w_param == timer_id && is_hello_scheduled) {
        auto local_player = c_netgame::get()->ref()->get_player_pool()->get_local_player();
        if (local_player) {
            local_player->send("/me внезапно закричал от ужаса в его голове");
        }

        KillTimer(hwnd, timer_id);
        is_hello_scheduled = false;
    }
    break;
}