Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

MoveFixer ломает движение в wok sdk

  • Автор темы Автор темы ratinov
  • Дата начала Дата начала
B.O.M.J
Эксперт
Эксперт
Статус
Оффлайн
Регистрация
19 Май 2017
Сообщения
2,400
Реакции
896
Кароче сделал(спастил) себе фикс движений, подключил все дела в wok SDK и чета пошло по пизде.
Взад - вперед двигается нормально, а вот если нажать A или D, то оно идет ровно вперед.
Код
C++:
Expand Collapse Copy
void movement::Run(qangle_t original)
{
    qangle_t real_viewangles;
    interfaces::engine->get_view_angles(real_viewangles);

    vec3_t vecMove(g::cmd->m_move.x, g::cmd->m_move.y, g::cmd->m_move.z); // forward side up
    float speed = sqrt(vecMove.x * vecMove.x + vecMove.y * vecMove.y);

    qangle_t angMove;
    math::vector_angles(vecMove, angMove);

    float yaw = DEG2RAD(g::cmd->m_viewangles.y - original.y + angMove.y);

    g::cmd->m_move.x = cos(yaw) * speed; //forward
    g::cmd->m_move.y = sin(yaw) * speed; //side

    g::cmd->m_buttons &= ~IN_RIGHT;
    g::cmd->m_buttons &= ~IN_MOVERIGHT;
    g::cmd->m_buttons &= ~IN_LEFT;
    g::cmd->m_buttons &= ~IN_MOVELEFT;
    g::cmd->m_buttons &= ~IN_FORWARD;
    g::cmd->m_buttons &= ~IN_BACK;

    if (g::cmd->m_move.x > 0.f) //forward
        g::cmd->m_buttons |= IN_FORWARD;
    else if (g::cmd->m_move.x < 0.f) //forward
        g::cmd->m_buttons |= IN_BACK;

    if (g::cmd->m_move.y > 0.f) //side
    {
        g::cmd->m_buttons |= IN_RIGHT;
        g::cmd->m_buttons |= IN_MOVERIGHT;
    }
    else if (g::cmd->m_move.y < 0.f) //side
    {
        g::cmd->m_buttons |= IN_LEFT;
        g::cmd->m_buttons |= IN_MOVELEFT;
    }
}

Вызов
C++:
Expand Collapse Copy
g::angles::real = cmd->m_viewangles;
move->Run(g::angles::real);
math::normalize(cmd->m_viewangles);
 
тоже брал из него и тоже ломалось и шло по пизде
Ну раз никакой код не работает и все также по "пизде"
Значит дело уже раскрыто , проверь математику/макросы по векторам мб слейзи там чонить спастил
Лично я юзал директ математику в воке и все было заебись
 
Ну раз никакой код не работает и все также по "пизде"
Значит дело уже раскрыто , проверь математику/макросы по векторам мб слейзи там чонить спастил
Лично я юзал директ математику в воке и все было заебись
Попробуй убрать нормалайз
Он сломан скорее всего
так нормалайз был спащен из сурса де все работало
 
так нормалайз был спащен из сурса де все работало
замени нормалайз на
Код:
Expand Collapse Copy
    cmd->viewangles.Clamp();
    cmd->sidemove = clamp( cmd->sidemove, -450.f, 450.f );
    cmd->forwardmove = clamp( cmd->forwardmove, -450.f, 450.f );
    cmd->upmove = clamp( cmd->upmove, -320.f, 320.f );

    cmd->buttons &= ~IN_MOVERIGHT;
    cmd->buttons &= ~IN_MOVELEFT;
    cmd->buttons &= ~IN_FORWARD;
    cmd->buttons &= ~IN_BACK;
 
C++:
Expand Collapse Copy
    g::cmd->m_buttons &= ~IN_RIGHT;
    g::cmd->m_buttons &= ~IN_MOVERIGHT;
    g::cmd->m_buttons &= ~IN_LEFT;
    g::cmd->m_buttons &= ~IN_MOVELEFT;
    g::cmd->m_buttons &= ~IN_FORWARD;
    g::cmd->m_buttons &= ~IN_BACK;

    if (g::cmd->m_move.x > 0.f) //forward
        g::cmd->m_buttons |= IN_FORWARD;
    else if (g::cmd->m_move.x < 0.f) //forward
        g::cmd->m_buttons |= IN_BACK;

    if (g::cmd->m_move.y > 0.f) //side
    {
        g::cmd->m_buttons |= IN_RIGHT;
        g::cmd->m_buttons |= IN_MOVERIGHT;
    }
    else if (g::cmd->m_move.y < 0.f) //side
    {
        g::cmd->m_buttons |= IN_LEFT;
        g::cmd->m_buttons |= IN_MOVELEFT;
    }
}
пиздец это что для чево это
 
замени нормалайз на
Код:
Expand Collapse Copy
    cmd->viewangles.Clamp();
    cmd->sidemove = clamp( cmd->sidemove, -450.f, 450.f );
    cmd->forwardmove = clamp( cmd->forwardmove, -450.f, 450.f );
    cmd->upmove = clamp( cmd->upmove, -320.f, 320.f );

    cmd->buttons &= ~IN_MOVERIGHT;
    cmd->buttons &= ~IN_MOVELEFT;
    cmd->buttons &= ~IN_FORWARD;
    cmd->buttons &= ~IN_BACK;
мимо
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Нормалайз стоит всё-такие убрать, потому что строчки

C++:
Expand Collapse Copy
    cmd->sidemove = clamp( cmd->sidemove, -450.f, 450.f );
    cmd->forwardmove = clamp( cmd->forwardmove, -450.f, 450.f );
    cmd->upmove = clamp( cmd->upmove, -320.f, 320.f );

Уже и так есть в create move. Попробуй заменить на Clamp, если не прокатит - пиши слейзи)
 
Нормалайз стоит всё-такие убрать, потому что строчки

C++:
Expand Collapse Copy
    cmd->sidemove = clamp( cmd->sidemove, -450.f, 450.f );
    cmd->forwardmove = clamp( cmd->forwardmove, -450.f, 450.f );
    cmd->upmove = clamp( cmd->upmove, -320.f, 320.f );

Уже и так есть в create move. Попробуй заменить на Clamp, если не прокатит - пиши слейзи)
да я че только не пробывал и нормалайз и кламп и тд, так я ему еще вчера днем кинул заяву он шот игнорит
 
тебе к @LNK1181
p.s это и есть слейзи xD
ок...
слейзи спит в данный момент.....
1592813047346.png
 
Так ты же дофига 10 тыщ айкью кодер,может ты знаешь решение проблемы?
я кншн в код не всматривался
но мне непонятно зачем ты вызываешь функцию с g::angles::real в аргументах и при этом это у тебя original
хотя g::angles::real получается в конце create_move после всех изменений и тд
 
я кншн в код не всматривался
но мне непонятно зачем ты вызываешь функцию с g::angles::real в аргументах и при этом это у тебя original
хотя g::angles::real получается в конце create_move после всех изменений и тд
Там не в этом дело, я пытался юзать и другие мовемент фиксеры и там вообще не трогал g::angles::real а движения все равно ломались
 
Назад
Сверху Снизу