-
Автор темы
- #1
By [A]dmiral .
all classes
u can set this to purple more like monofuck.gayclub
edit : forget to add signature
special thanks for kittenpopo for GCFScrape
and DumbasPl
next ill post drawmodel for esp preview if I don't forget to say this
C++:
void __fastcall Hentai::CParticleCollection_Simulate(CParticleCollection* thisPtr, void* edx) {
//call the original particle simulate
oCParticleCollection_Simulate(OriginalParticleCollection)(thisPtr);
if (config.func) {
CParticleCollection* root_colection = thisPtr;
while (root_colection->m_pParent)
root_colection = root_colection->m_pParent;
const char* root_name = root_colection->m_pDef.m_pObject->m_Name.buffer;
switch (hasheruntime(root_name))
{
case hash("molotov_groundfire"):
case hash("molotov_groundfire_00MEDIUM"):
case hash("molotov_groundfire_00HIGH"):
case hash("molotov_groundfire_fallback"):
case hash("molotov_groundfire_fallback2"):
case hash("molotov_explosion"):
case hash("explosion_molotov_air"):
case hash("extinguish_fire"):
case hash("weapon_molotov_held"):
case hash("weapon_molotov_fp"):
case hash("weapon_molotov_thrown"):
case hash("incgrenade_thrown_trail"):
switch (hasheruntime(thisPtr->m_pDef.m_pObject->m_Name.buffer))
{
case hash("explosion_molotov_air_smoke"):
case hash("molotov_smoking_ground_child01"):
case hash("molotov_smoking_ground_child02"):
case hash("molotov_smoking_ground_child02_cheapo"):
case hash("molotov_smoking_ground_child03"):
case hash("molotov_smoking_ground_child03_cheapo"):
case hash("molotov_smoke_screen"):
if (config.funcsmoke) {
for (int i = 0; i < thisPtr->m_nActiveParticles; i++) {
float* pColor = thisPtr->m_ParticleAttributes.FloatAttributePtr(PARTICLE_ATTRIBUTE_ALPHA, i);
*pColor = 0.f;
}
}
break;
default:
for (int i = 0; i < thisPtr->m_nActiveParticles; i++) {
float* pColor = thisPtr->m_ParticleAttributes.FloatAttributePtr(PARTICLE_ATTRIBUTE_TINT_RGB, i);
ImGui::ColorConvertHSVtoRGB(fmodf((float)ImGui::GetTime() / 2, 1), 1, 1, pColor[0], pColor[4], pColor[8]);
}
break;
}
break;
}
}
}
all classes
C++:
template<class T> struct CUtlReference {
CUtlReference* m_pNext;
CUtlReference* m_pPrev;
T* m_pObject;
};
template<class T> struct CUtlIntrusiveList {
T* m_pHead;
};
template<class T> struct CUtlIntrusiveDList : public CUtlIntrusiveList<T> {};
template<class T> struct CUtlReferenceList : public CUtlIntrusiveDList< CUtlReference<T> > {};
enum EAttributeDataType {
ATTRDATATYPE_NONE = -1,
ATTRDATATYPE_FLOAT = 0,
ATTRDATATYPE_4V,
ATTRDATATYPE_INT,
ATTRDATATYPE_POINTER,
ATTRDATATYPE_COUNT,
};
#define MAX_PARTICLE_ATTRIBUTES 24
#define DEFPARTICLE_ATTRIBUTE( name, bit, datatype ) \
const int PARTICLE_ATTRIBUTE_##name##_MASK = (1 << bit); \
const int PARTICLE_ATTRIBUTE_##name = bit; \
const EAttributeDataType PARTICLE_ATTRIBUTE_##name##_DATATYPE = datatype;
DEFPARTICLE_ATTRIBUTE(XYZ, 0, ATTRDATATYPE_4V);
// particle lifetime (duration) of particle as a float.
DEFPARTICLE_ATTRIBUTE(LIFE_DURATION, 1, ATTRDATATYPE_FLOAT);
// prev coordinates for verlet integration
DEFPARTICLE_ATTRIBUTE(PREV_XYZ, 2, ATTRDATATYPE_4V);
// radius of particle
DEFPARTICLE_ATTRIBUTE(RADIUS, 3, ATTRDATATYPE_FLOAT);
// rotation angle of particle
DEFPARTICLE_ATTRIBUTE(ROTATION, 4, ATTRDATATYPE_FLOAT);
// rotation speed of particle
DEFPARTICLE_ATTRIBUTE(ROTATION_SPEED, 5, ATTRDATATYPE_FLOAT);
// tint of particle
DEFPARTICLE_ATTRIBUTE(TINT_RGB, 6, ATTRDATATYPE_4V);
// alpha tint of particle
DEFPARTICLE_ATTRIBUTE(ALPHA, 7, ATTRDATATYPE_FLOAT);
// creation time stamp (relative to particle system creation)
DEFPARTICLE_ATTRIBUTE(CREATION_TIME, 8, ATTRDATATYPE_FLOAT);
// sequnece # (which animation sequence number this particle uses )
DEFPARTICLE_ATTRIBUTE(SEQUENCE_NUMBER, 9, ATTRDATATYPE_FLOAT);
// length of the trail
DEFPARTICLE_ATTRIBUTE(TRAIL_LENGTH, 10, ATTRDATATYPE_FLOAT);
// unique particle identifier
DEFPARTICLE_ATTRIBUTE(PARTICLE_ID, 11, ATTRDATATYPE_INT);
// unique rotation around up vector
DEFPARTICLE_ATTRIBUTE(YAW, 12, ATTRDATATYPE_FLOAT);
// second sequnece # (which animation sequence number this particle uses )
DEFPARTICLE_ATTRIBUTE(SEQUENCE_NUMBER1, 13, ATTRDATATYPE_FLOAT);
// hit box index
DEFPARTICLE_ATTRIBUTE(HITBOX_INDEX, 14, ATTRDATATYPE_INT);
DEFPARTICLE_ATTRIBUTE(HITBOX_RELATIVE_XYZ, 15, ATTRDATATYPE_4V);
DEFPARTICLE_ATTRIBUTE(ALPHA2, 16, ATTRDATATYPE_FLOAT);
// particle trace caching fields
DEFPARTICLE_ATTRIBUTE(SCRATCH_VEC, 17, ATTRDATATYPE_4V); //scratch field used for storing arbitraty vec data
DEFPARTICLE_ATTRIBUTE(SCRATCH_FLOAT, 18, ATTRDATATYPE_4V); //scratch field used for storing arbitraty float data
DEFPARTICLE_ATTRIBUTE(UNUSED, 19, ATTRDATATYPE_FLOAT);
DEFPARTICLE_ATTRIBUTE(PITCH, 20, ATTRDATATYPE_4V);
DEFPARTICLE_ATTRIBUTE(NORMAL, 21, ATTRDATATYPE_4V); // 0 0 0 if none
DEFPARTICLE_ATTRIBUTE(GLOW_RGB, 22, ATTRDATATYPE_4V); // glow color
DEFPARTICLE_ATTRIBUTE(GLOW_ALPHA, 23, ATTRDATATYPE_FLOAT); // glow alpha
struct CParticleAttributeAddressTable {
float* m_pAttributes[MAX_PARTICLE_ATTRIBUTES];
size_t m_nFloatStrides[MAX_PARTICLE_ATTRIBUTES];
FORCEINLINE float* FloatAttributePtr(int nAttribute, int nParticleNumber) const {
int block_ofs = nParticleNumber / 4;
return m_pAttributes[nAttribute] +
m_nFloatStrides[nAttribute] * block_ofs +
(nParticleNumber & 3);
}
};
struct CUtlString_simple {
char* buffer;
int capacity;
int grow_size;
int length;
};
class CParticleSystemDefinition {
BYTE pad_0[308];
public:
CUtlString_simple m_Name;
};
class CParticleCollection {
BYTE pad_0[48];//0
public:
int m_nActiveParticles;//48
private:
BYTE pad_1[12];//52
public:
CUtlReference<CParticleSystemDefinition> m_pDef;//64
private:
BYTE pad_2[60];//80
public:
CParticleCollection* m_pParent;//136
private:
BYTE pad_3[84];//140
public:
CParticleAttributeAddressTable m_ParticleAttributes;//224
};
C++:
signature for cCParticleCollection_Simulate ("E8 ? ? ? ? 8B 0E 83 C1 10")), + 1));
u can set this to purple more like monofuck.gayclub
edit : forget to add signature
special thanks for kittenpopo for GCFScrape
and DumbasPl
next ill post drawmodel for esp preview if I don't forget to say this