Пользователь
- Статус
- Оффлайн
- Регистрация
- 20 Июл 2017
- Сообщения
- 205
- Реакции
- 116
Здравствуйте, я пытаюсь добавить модель Disable occulusion в csgosimple, но после добавления и ввода карты происходит сбой
код:
Линия аварии:
Мой is_player:
код:
Код:
int __fastcall hooks::hkListLeavesInBox::hook(const vec3_t& mins, const vec3_t& maxs, unsigned short* list, int listMax) {
typedef int(__thiscall* ListLeavesInBox)(void*, const vec3_t&, const vec3_t&, unsigned short*, int);
// occulusion getting updated on player movement/angle change,
// in RecomputeRenderableLeaves ( https://github.com/pmrowla/hl2sdk-csgo/blob/master/game/client/clientleafsystem.cpp#L674 );
// check for return in CClientLeafSystem::InsertIntoTree
if (!variables.pl_mdl.chams.disableModelOcclusion|| *(uint32_t*)_ReturnAddress() != 0x14244489)
return list_boxs(mins, maxs, list, listMax);
// get current renderable info from stack ( https://github.com/pmrowla/hl2sdk-csgo/blob/master/game/client/clientleafsystem.cpp#L1470 )
auto info = *(RenderableInfo**)((uintptr_t)_AddressOfReturnAddress() + 0x14);
if (!info || !info->renderable)
return list_boxs(mins, maxs, list, listMax);
// check if disabling occulusion for players ( https://github.com/pmrowla/hl2sdk-csgo/blob/master/game/client/clientleafsystem.cpp#L1491 )
auto base_entity = info->renderable->get_iclient_unknown()->GetBaseEntity();
if (!base_entity || !base_entity->is_player())
return list_boxs(mins, maxs, list, listMax);
// extend world space bounds to maximum ( https://github.com/pmrowla/hl2sdk-csgo/blob/master/game/client/clientleafsystem.cpp#L707 )
static const vec3_t map_min = vec3_t(MIN_COORD_FLOAT, MIN_COORD_FLOAT, MIN_COORD_FLOAT);
static const vec3_t map_max = vec3_t(MAX_COORD_FLOAT, MAX_COORD_FLOAT, MAX_COORD_FLOAT);
auto count = list_boxs(map_min, map_max, list, listMax);
return count;
}
Линия аварии:
Код:
if (!base_entity || !base_entity->is_player())
Мой is_player:
Код:
bool is_player() {
using original_fn = bool(__thiscall*)(entity_t*);
return (*(original_fn**)this)[157](this);
}