Вопрос Значения layer'ов

primordial
Пользователь
Статус
Оффлайн
Регистрация
4 Сен 2020
Сообщения
361
Реакции[?]
128
Поинты[?]
42K
Начинающий
Статус
Оффлайн
Регистрация
5 Июн 2021
Сообщения
100
Реакции[?]
6
Поинты[?]
1K
this is what Vantape personally does...
C++:
c_anim_layer right_layers[ ANIMATION_LAYER_COUNT ]; // thirteen
c_anim_layer center_layers[ ANIMATION_LAYER_COUNT ]; // thirteen
c_anim_layer left_layers[ ANIMATION_LAYER_COUNT ]; // thirteen

// how to use:
// in arguments: int side
switch(side) {
    case 1: {
        player->setup_bones_rebuilt( right_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( right_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
    case 2: {
        player->setup_bones_rebuilt( center_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( center_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
    case 3: {
        player->setup_bones_rebuilt( left_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( left_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
}
I am guessing that this is part of animfix?
 
Участник
Статус
Оффлайн
Регистрация
27 Фев 2019
Сообщения
1,123
Реакции[?]
391
Поинты[?]
46K
так лично делает вантап...
C++:
c_anim_layer right_layers[ ANIMATION_LAYER_COUNT ]; // 13
c_anim_layer center_layers[ ANIMATION_LAYER_COUNT ]; // 13
c_anim_layer left_layers[ ANIMATION_LAYER_COUNT ]; // 13

// how to use:
// in arguments: int side
switch ( side ) {
    case 1: {
        player->setup_bones_rebuilt( right_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( right_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
    case 2: {
        player->setup_bones_rebuilt( center_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( center_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
    case 3: {
        player->setup_bones_rebuilt( left_matrix, BONE_FLAG_USED_BY_HITBOX );
        memcpy( left_layers, player->get_anim_layers( ), 13 * sizeof( c_anim_layer ) );
    }break;
}
Зачем ты ему скидываешь паста код, если человек не понимает, что он делает впринципе? Да в паблике куча информации гуляет, человеку элементарно лень загуглить, не то что впастить. Глупость, не более.
 
Начинающий
Статус
Оффлайн
Регистрация
5 Июн 2021
Сообщения
100
Реакции[?]
6
Поинты[?]
1K
ye
after setup matrixes..
if you already have it

он попросил я скинул вместо того что бы сидеть и говорить загадками
ты же в ответ поставил мне *раздражает*
Wait but i am getting side by them how am i gonna memcpy them before i got my side
 
Начинающий
Статус
Оффлайн
Регистрация
5 Июн 2021
Сообщения
100
Реакции[?]
6
Поинты[?]
1K
Посмотреть вложение 201540
i calling this func on c_player_lagcompensation::on_frame_stage_notify( ) if server sended new data..
fully part.

C++:
std::deque<lagcomp_data> anim_records[64];
void lagcomp_data::run_second(c_cs_player* player, lagcomp_data* data, float yaw, int side) {
    c_anim_state State;
    auto animstate = player->get_anim_state();
    if (player->get_spawn_time() != spawtime[player->get_index()]) {
        animstate->reset();

        spawtime[player->get_index()] = player->get_spawn_time();
    }

    anim_layer_t _layers[13];
    memcpy(_layers, data->anim_overlay, sizeof(anim_layer_t) * 13);
    memcpy(&State, animstate, sizeof(c_anim_state));

    animstate->m_foot_yaw = normalize_yaw(data->eye_angles.y + yaw);

    player->get_client_side_animation() = true;
    player->update_client_side_animation();
    player->get_client_side_animation() = false;

    switch (side) {
    case 1: {
        player->invalidate_bone_cache();
        player->setup_bones(data->zero_matrix, 128, BONE_FLAG_USED_BY_HITBOX, data->simtime);
        memcpy(data->zero_layers, &player->get_anim_layers(), 13 * sizeof(anim_layer_t));
        data->zero_yaw = player->get_anim_state()->m_foot_yaw;
    }break;
    case 2: {
        player->invalidate_bone_cache();
        player->setup_bones(data->right_matrix, 128, BONE_FLAG_USED_BY_HITBOX, data->simtime);
        memcpy(data->right_layers, &player->get_anim_layers(), 13 * sizeof(anim_layer_t));
        data->right_side = player->get_anim_state()->m_foot_yaw;
    }break;
    case 3: {
        player->invalidate_bone_cache();
        player->setup_bones(data->left_matrix, 128, BONE_FLAG_USED_BY_HITBOX, data->simtime);
        memcpy(data->left_layers, &player->get_anim_layers(), 13 * sizeof(anim_layer_t));
        data->left_side = player->get_anim_state()->m_foot_yaw;
    }break;
    case 4: {
        player->invalidate_bone_cache();
        player->setup_bones(data->low_left_matrix, 128, BONE_FLAG_USED_BY_HITBOX, data->simtime);
        memcpy(data->low_left_layers, &player->get_anim_layers(), 13 * sizeof(anim_layer_t));
        data->low_left_side = player->get_anim_state()->m_foot_yaw;
    }break;
    case 5: {
        player->invalidate_bone_cache();
        player->setup_bones(data->low_right_matrix, 128, BONE_FLAG_USED_BY_HITBOX, data->simtime);
        memcpy(data->low_right_layers, &player->get_anim_layers(), 13 * sizeof(anim_layer_t));
        data->low_right_side = player->get_anim_state()->m_foot_yaw;
    }break;
    }

    memcpy(&player->get_anim_layers(), _layers, sizeof(anim_layer_t) * 13);
    memcpy(animstate, &State, sizeof(c_anim_state));
}
lagcomp_data its lag_record stuff.
Ty but i am using layers to actually get side when player is moving how am i gonna setup layers before actually getting side and i need to get side after memcpying layers
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
5 Июн 2021
Сообщения
100
Реакции[?]
6
Поинты[?]
1K
Забаненный
Статус
Оффлайн
Регистрация
22 Мар 2021
Сообщения
1,019
Реакции[?]
315
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну епта я уверен ты легендвар пастишь) Там же рекорды сохраняют это...
c_anim_layer right_layers[ ANIMATION_LAYER_COUNT ]; // 13
c_anim_layer center_layers[ ANIMATION_LAYER_COUNT ]; // 13
c_anim_layer left_layers[ ANIMATION_LAYER_COUNT ]; // 13
вот это что?
если ты вот так вьебешь,то это по факту ниче не даст.
Эт тож самое как вместо animstate = player->getanimstate
написать animstate = 0
 
Сверху Снизу