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 Nom : Capture d'écran 2024-11-19 091526.png
Affichages : 89
Taille : 31,9 Ko (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
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 le code en format réduit :

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)
Voici les liens et recherches que j'ai effectués:

(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.