WhiteFalcon |
06-30-2020 15:07 |
[TF2] ObjTools
Purpose: Exposes CTakeDamageInfo, CAmmoDefs and some ServerTools.
Download.
Natives.
Only tested in Windows, since i dont have linux nor tried to compile with it.
Sample:
Spoiler
CTakeDamageInfo:
Spoiler
Code:
CTakeDamageInfo first = new CTakeDamageInfo();
first.StoreEnt(hAttacker, attacker);
first.StoreEnt(hInflictor, inflictor);
first.StoreEnt(hWeapon, weapon);
first.StoreVector(vecDamageForce, damageForce);
first.StoreVector(vecDamagePosition, damagePosition);
first.StoreVector(vecReportedPosition, damagePosition);
first.StoreFloat(flDamage, damage);
first.StoreFloat(flBaseDamage, damage);
first.StoreInt(bitsDamageType, damagetype);
first.StoreInt(iDamageCustom, damagecustom);
first.StoreInt(eCritType, kCritType_None);
CTakeDamageInfo copy = new CTakeDamageInfo();
copy.Infos = first.Infos;
PrintToServer("\nAddress:\n"...
"-first: 0x%x - 0x%x\n"...
"-copy: 0x%x - 0x%x\n"
, first, first.Infos, copy, copy.Infos);
delete first;
copy.DeathNotice(victim);
SDKCall(hDeathNotice, victim, copy.Infos, "player_death");
delete copy;
CAmmoDefs:
Spoiler
dump_ammodef
Code:
char name[32];
SetEntProp(client, Prop_Data, 139, .element = CAmmoDefs.FindIndex("TF_AMMO_METAL"));
for(int i = 1; i < 7; i++)
{
CAmmoDefs.GetName(i, name, sizeof(name));
PrintToServer("m_AmmoType[%i].pName = %s", i, name);
PrintToServer("m_AmmoType[%i].pFlags = %i", i, CAmmoDefs.GetFlags(i));
PrintToServer("m_AmmoType[%i].pMaxCarry = %i", i, CAmmoDefs.GetMaxCarry(i));
}
ServerTools:
|