Syntax: Select all
MEDKIT_MODEL = Model("models/items/healthkit.mdl")
def spawn_medkit(origin):
medkit = Entity(create_entity("prop_physics_override"))
medkit.set_property_uchar("m_takedamage", 2)
medkit.set_key_value_string("model", MEDKIT_MODEL.path)
medkit.set_key_value_int("explodedamage", 7)
medkit.set_key_value_int("exploderadius", 250)
medkit.set_key_value_int("physdamagescale", 999)
medkit.set_property_int("m_iHealth", 25)
medkit.health = MEDKIT_HEALTH
medkit.max_health = MEDKIT_HEALTH
medkit.spawn_flags = 32+256
medkit.ltime = MEDKIT_LIFETIME
medkit.solid = 6
origin.z += 10
medkit.origin = origin
medkit.spawn()
medkit.set_property_int("m_iHealth", 25)
medkit.health = MEDKIT_HEALTH
medkit.max_health = MEDKIT_HEALTH
class CBaseEntity(CustomType, metaclass=manager):
#CBaseEntity::StartTouch(CBaseEntity*)
StartTouch = manager.virtual_function(
98 if PLATFORM == 'windows' else 99,
(DataType.POINTER,),
DataType.VOID
)
#CBaseEntity::Use(CBaseEntity*, CBaseEntity*, USE_TYPE, float)
Use = manager.virtual_function(
97 if PLATFORM == 'windows' else 98,
(DataType.POINTER, DataType.POINTER, DataType.POINTER, DataType.FLOAT,),
DataType.VOID
)
@property
def entity(self):
return Entity(index_from_pointer(self))
CBEntity = make_object(CBaseEntity, pointer_from_index(create_entity('info_target')))
@PreHook(CBEntity.StartTouch)
def preStartTouch(args):
entity = make_object(CBaseEntity, args[0])
toucher = make_object(CBaseEntity, args[1])
SayText2(message="Entity: {} {}, Toucher: {}".format(entity.entity.classname, entity.entity.health, toucher.entity.classname)).send()
# Health always reports 0 for the prop_physics
@PreHook(CBEntity.Use) # This doesn't seem to fire
def preUse(args):
entity = make_object(CBaseEntity, args[0])
toucher = make_object(CBaseEntity, args[1])
toucher2 = make_object(CBaseEntity, args[2])
SayText2(message="Entity: {} Toucher: {} Toucher2: {}".format(entity.entity.classname, toucher.entity.classname, toucher2.entity.classname)).send()
CBEntity.entity.remove()