Пользователь
- Статус
- Оффлайн
- Регистрация
- 28 Апр 2018
- Сообщения
- 628
- Реакции
- 134
Всё правильно показывает, но материал ещё применяется на саму модельку.
C++:
if (ShowBacktrack && Weapons[GetWeap(SelectedWeapon)].Backtrack && Weapons[GetWeap(SelectedWeapon)].BacktrackTimeLimit)
{
static auto fnDME = HookTables::pDrawModelExecute->GetTrampoline();
CEntityPlayer* Entity = GP_EntPlayers->GetByIdx(pInfo.entity_index);
CEntityPlayer* Local = GP_EntPlayers->EntityLocal;
const char* ModelName = I::ModelInfo()->GetModelName((model_t*)pInfo.pModel);
if (!ModelName)
return;
if (!strstr(ModelName, XorStr("models/player")))
return;
if (!Entity || !Local)
return;
if (!Entity->IsUpdated)
return;
if (Entity->IsDead || Entity->Health <= 0)
return;
if (Entity->IsDormant)
return;
backtrackData bfg;
if (!Local->IsDead)
{
for (int t = 0; t <= maxticks; ++t)
{
if (headPositions[Entity->Idx][t].simtime && headPositions[Entity->Idx][t].simtime + 1 > CGlobal::LocalPlayer->GetSimTime())
{
switch (ShowBacktrackType)
{
case 0: bfg = headPositions[Entity->Idx][t]; break; //all ticks
case 1: bfg = headPositions[Entity->Idx][maxticks]; break; //last tick
default: bfg = headPositions[Entity->Idx][t];
}
GP_Esp->OverrideMaterial(false, ShowBacktrackMaterial, ShowBacktrackColor);
fnDME(thisptr, ctx, state, pInfo, bfg.matrix);
}
}
}
else
memset(&headPositions[0][0], 0, sizeof(headPositions));
}
if (!entity->IsDead())
{
backtrackData bfg;
bfg.simtime = entity->GetSimTime();
bfg.hitboxPos = entity->GetHitboxPosition(0 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 16 & 17 & 18 & 19 & 10 & 11);
entity->SetupBones(bfg.matrix, 256, 0x7FF00, I::GlobalVars()->curtime);
/*...*/
}
Последнее редактирование: