Bonjour
Je travaille actuellement sur la librairie AOE2 Parser pour créer des déclencheurs sur le jeux Age of empire 2 édition définitive.
Actuellement j'essaie de comprendre comment déplacer les déclencheurs dans la liste afin de les mettre en ordres notamment pour éviter des problèmes de performance(je précise que l'image ici est un exemple, j'ai en réalité 77 éléments à gérer. )
Cependant, je bloque sur la fonction, je n'arrive pas à l'utiliser et mes recherches sur internet n'ont rien donner de concluant.
Voici l'erreur que j'obtiens à chaque fois
Voici le code en format réduit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Traceback (most recent call last): File "C:\chemin_vers_le_script", line 424, in <module> self.move_triggers([57,58,59], 2) ^^^^ NameError: name 'self' is not defined
Voici les liens et recherches que j'ai effectués:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 def move_triggers(self, trigger_ids: list[int], insert_index: int) -> None: """ Moves the given IDs from anywhere to the split index. This function reorders triggers BUT keeps ``(de)activate trigger`` effects linked properly! As an example: ``` [0,1,2,3,4,5,6,7,8] # Current index order # Let's move trigger 1, 4, 5 and 6 to location 2 self.move_triggers([1, 4, 5, 6], 2) # << 2 is an INDEX, not the value [0,1,4,5,6,2,3,7,8] # New index order ``` Args: trigger_ids: The trigger IDs to move insert_index: The index that defines where to insert the triggers """ if min(trigger_ids) < 0: raise ValueError(f"Trigger IDs cannot be negative") if insert_index >= len(self.trigger_display_order): # Add to the end of the list new_trigger_id_order = [n for n in self.trigger_display_order if n not in trigger_ids] new_trigger_id_order += trigger_ids else: insert_num = self.trigger_display_order[insert_index] new_trigger_id_order = [n for n in self.trigger_display_order if n not in trigger_ids or n == insert_num] split_index = new_trigger_id_order.index(insert_num) if insert_num in trigger_ids: new_trigger_id_order.remove(insert_num) new_trigger_id_order = new_trigger_id_order[:split_index] + trigger_ids + new_trigger_id_order[split_index:] self.reorder_triggers(new_trigger_id_order) ''' Entre les deux, il y a tous le code pour créer les déclencheurs. ''' #Appel de la fonction liste_longue = list(range(57,77)) self.move_triggers([liste_longue], 1) scenario.write_to_file(output_path)
(La page du guide qui explique la fonciton pour déplacer les déclencheurs)
https://ksneijders.github.io/AoE2Sce....move_triggers
(J'ai regardé cette page afin de savoir comment je peux déclarer une fonction avec plusieurs paramètres)
https://courspython.com/fonctions.html
(J'ai visualiser les pages suivantes sur l'erreurs que j'obtiens mais rien de concluant)
https://careerkarma.com/blog/python-...s-not-defined/
https://host4geeks.com/blog/nameerro...and-solutions/ (Cette page est très énervante avec les pop ups)
https://www.geeksforgeeks.org/nameer...ned-in-python/
https://stackoverflow.com/questions/...is-not-defined
C'est en regardant surtout le lien sur Stack overflow que je me demande si le créateur n'a pas oublié de définir la classe ou si je dois le faire quand j'appel de fonction.
Du coup, ça m'a amené à regarder ceci :
https://www.w3schools.com/python/python_classes.asp
https://blog.hubspot.fr/website/classes-python
Je coince sur le sujet est-ce quelqu'un peut m'aider en m'indiquant la voie à suivre ou un pointant un problème dans le code...
Je vous remercie par avance.
Partager