def random_click(min_x, max_x, min_y, max_y): """ Réalise un clique gauche souris aléatoirement dans la zone indiquée """ random_x = min_x + random.random() * (max_x - min_x) random_y = min_y + random.random() * (max_y - min_y) # On définit la souris, on la place et on clique mouse = Controller() mouse.position = (random_x, random_y) time.sleep( tempo_infos('mouse_tempo') + random.random() * tempo_infos('mouse_tempo')) mouse.click(Button.left)
def ressource_get(position): """ Réalise le traitement de la ressource à la position indiquée (0 à 13) /! peut ne pas être valable si l'appel est fait pour les position 11, 12 ou 13 et que la ressource concernée n'a que 1 ou 2 lots """ # On fait un random click pour s'assurer qu'on est sur la fenêtre null_click() # Si la ressource n'est pas en bas de l'écran if position in range(11): # On ouvre la fenêtre de la ressource et on récupère ses données ressource_click(position) time.sleep(tempo_infos('lag_tempo')) ressource_treatment(position) # On ferme la fenêtre de la ressource ressource_click(position) time.sleep(tempo_infos('lag_tempo')) # Si la ressource est en bas de l'ecran else: # On ouvre la fenêtre de la ressource ressource_click(position) time.sleep(tempo_infos('lag_tempo')) # On scroll une fois vers le bas de sorte à afficher toutes les valeurs scroll_down() time.sleep(tempo_infos('scroll_tempo')) # On compte combien de ligne de lot sont visibles dans la plage compte_lots = nbr_lots(position - 3) # On applique l'algorithme de récupération des données en Fonction ressource_treatment(position - compte_lots) # On ferme la fenêtre de la ressource ressource_click(position - compte_lots) time.sleep(tempo_infos('lag_tempo'))
def open_rune_shop(): """ Permet d'ouvrir l'hôtel de vente des runes de brakmar et de le préparer pour la récupération des prix des runes """ # Permet d'avoir des cliques souris adéquats change_pixelisation() # Placement de la souris sur l'hôtel de vente mickey = mouse.Controller() brak_rune_x = screen_infos('brak_rune_x') brak_rune_y = screen_infos('brak_rune_y') mickey.position = (brak_rune_x, brak_rune_y) # Clique mickey.click(mouse.Button.left) time.sleep(tempo_infos('shop_tempo')) # Placement de la souris sur la tickbox pour l'affichage des runes rune_box_x = screen_infos('rune_box_x') rune_box_y = screen_infos('rune_box_y') mickey.position = (rune_box_x, rune_box_y) # Clique mickey.click(mouse.Button.left) time.sleep(tempo_infos('shop_tempo'))
def scroll_whole_selection(): """ Parcours toute la selection actuelle de l'hotel des vente A lancer quand l'hdv est ouvert sans ressource selectionnée """ # Permet d'interrompre le programme avec un appui sur echap escape_on_escape() # Tant qu'on est pas en bas de l'hdv bottom = False while not bottom: # On capture les 3 premières ressources add_top_ressources(3) # On scroll et on vérifie si on est en bas de l'hdv scroll_down() time.sleep(tempo_infos('scroll_tempo')) bottom = end_of_scroll() # Une fois qu'on est en bas, on capture les 14 premières ressources # (donc toutes celles affichées à l'ecran). Cela entraine 0 1 ou 2 # doublons d'entrées dans la base, mais ce n'est pas un problème add_top_ressources(14)
def open_dofus(): """ Permet d'ouvrir dofus et de se connecter Les identifiants doivent être stockés là : Sous ce format : Le répertoire contenant dofus.exe doit être ajouté au PATH windows """ escape_on_escape() # Ajout du clavier typing_device = keyboard.Controller() time.sleep(tempo_infos('init_tempo')) # Appel de windows+R with typing_device.pressed(keyboard.Key.cmd): use_key(typing_device, 'r') time.sleep(tempo_infos('quick_tempo')) # Lancement de dofus typing_device.type('dofus') use_key(typing_device, keyboard.Key.enter) time.sleep(tempo_infos('launch_tempo')) # Vérification plein écran windows+arrow up with typing_device.pressed(keyboard.Key.cmd): use_key(typing_device, keyboard.Key.up) # Passage de la popup "lancement sans launcher" use_key(typing_device, keyboard.Key.enter) time.sleep(tempo_infos('quick_tempo')) # Saisie du mot de passe typing_device.type(password()) # Connexion use_key(typing_device, keyboard.Key.enter) time.sleep(tempo_infos('char_tempo')) # Validation personnage (si nécessaire) use_key(typing_device, keyboard.Key.enter) time.sleep(tempo_infos('log_tempo'))