예제 #1
0
    def run():
        logger.debug('going to say hi to err1')
        player = Player()
        client = Client()
        entity_list = client.get_entity_list()

        original_coords = deepcopy(player.position)
        for entity in entity_list:
            MovementEngine.teleport_to(entity.position)
            time.sleep(0.75)
        MovementEngine.teleport_to(original_coords)
        logger.debug('homie im hon')
예제 #2
0
def get_nearest_enemy():
    player = Player()
    client = Client()

    # Exclude mobs this much higher/lower than you
    MAX_LVL = 1
    MIN_LVL = 2

    # Gets all entities loaded in memory, <= 63
    entity_list = client.get_entity_list()

    min_dist = float('inf')
    nearest_enemy = None

    for entity in entity_list:
        # Skip dead ones
        if not entity.parameters.current_hp:
            continue

        # if entity.level < player.level - MIN_LVL:
        #     continue

        if entity.level > player.level + MAX_LVL:
            continue

        distance = None
        try:
            distance = MovementEngine.get_2d_distance(
                player.position, entity.position
            )
        except Exception:
            import ipdb; ipdb.set_trace()

        if distance < min_dist:
            nearest_enemy = entity
            min_dist = distance

    assert nearest_enemy, 'Found no enemies :"('
    logger.info(
        'Nearest enemy: Lvl. %d %s, Address: %s',
        nearest_enemy.level,
        nearest_enemy.name,
        hex(nearest_enemy.address)
    )
    return nearest_enemy