def dissolve_ragdoll(userid, current_type): """Dissolve/remove the player's ragdoll.""" # Get the ragdoll entity try: inthandle = Player.from_userid(userid).ragdoll except ValueError: return if inthandle == INVALID_ENTITY_INTHANDLE: return entity = Entity(index_from_inthandle(inthandle)) # Should the ragdoll just be removed? if current_type == _num_dissolve_types + 2: entity.remove() return # Set the target name for the player's ragdoll entity.target_name = 'ragdoll_{userid}'.format(userid=userid) # Get the dissolver entity dissolver_entity = Entity.find_or_create('env_entity_dissolver') # Should a random dissolve type be chosen? if current_type == _num_dissolve_types + 1: current_type = randrange(_num_dissolve_types) # Set the magnitude dissolver_entity.magnitude = magnitude.get_int() # Set the dissolve type dissolver_entity.dissolve_type = current_type # Dissolve the ragdoll dissolver_entity.dissolve('ragdoll_{userid}'.format(userid=userid))
def _player_death(game_event): # Dead Strip remove_idle_weapons(status=GunGameMatchStatus.WARMUP) # Dissolver victim = game_event['userid'] try: inthandle = Player.from_userid(victim).ragdoll except ValueError: return if inthandle == INVALID_ENTITY_INTHANDLE: return entity = Entity(index_from_inthandle(inthandle)) entity.target_name = f'ragdoll_{victim}' dissolver_entity = Entity.find_or_create('env_entity_dissolver') dissolver_entity.magnitude = 2 dissolver_entity.dissolve_type = 0 dissolver_entity.dissolve(f'ragdoll_{victim}') # DeathMatch Delay( delay=2, callback=_respawn_player, args=(victim,), cancel_on_level_end=True, )