Liste des Tasks par défaut

Écrit le 03/07/2003 par DukeNukem
Dernière mise à jour : 30/01/2006

Introduction

Dans ce tutorial, je vais faire une description des TASK de l'IA par défaut d'Half-life, afin que vous puissiez les utiliser dans vos IA personnalisées. Car ce n'est pas parce que vous créez un IA perso que vous n'avez pas le droit d'utiliser des TASK de l'IA par défaut ;)

Les TASK de l'IA par défaut sont énumérés dans le fichier d'en-tête schedule.h et définis dans schedule.cpp, dans les fonctions StartTask() et RunTask().

Liste des 90 TASK

Voici la liste des 90 TASK. Le 91ème est spécial. Lorsqu'il n'y a pas de paramètre, mettez 0 ou (float)0 comme paramètre.

Index Task Description
0 TASK_INVALID INDÉFINI
1 TASK_WAIT Fait attendre le monstre.
  • Paramètre : temps dont le monstre doit attendre.
  • RunTask() : oui.
2 TASK_WAIT_FACE_ENEMY Fait attendre le monstre face à m_hEnemy.
  • Paramètre : temps dont le monstre doit attendre.
  • RunTask() : oui.
3 TASK_WAIT_PVS Attend jusqu'à ce que qqch entre dans son PVS.
  • Paramètre : aucun.
  • RunTask() : oui.
4 TASK_SUGGEST_STATE Change la valeur de m_IdealState.
  • Paramètre : nouvelle valeur de m_IdealState.
  • RunTask() : non.
5 TASK_WALK_TO_TARGET Force le monstre à marcher vers m_hTargetEnt.
  • Paramètre : aucun.
  • RunTask() : non.
6 TASK_RUN_TO_TARGET Force le monstre à courir vers m_hTargetEnt.
  • Paramètre : aucun.
  • RunTask() : non.
7 TASK_MOVE_TO_TARGET_RANGE Force le monstre à se déplacer à une certaine distance de m_hTargetEnt.
  • Paramètre : distance entre le monstre et l'entité avant que MovementComplete() ne soit envoyé.
  • RunTask() : oui.
8 TASK_GET_PATH_TO_ENEMY Le monstre prend un chemin vers m_hEnemy mais ne bouge pas.
  • Paramètre : aucun.
  • RunTask() : non.
9 TASK_GET_PATH_TO_ENEMY_LKP Le monstre prend un chemin vers m_vecEnemyLKP mais ne bouge pas.
  • Paramètre : aucun.
  • RunTask() : oui.
10 TASK_GET_PATH_TO_ENEMY_CORPSE Le monstre prend un chemin vers m_vecEnemyLKP (qui est la position du corps après la mort de l'ennemi) mais ne bouge pas.
  • Paramètre : aucun.
  • RunTask() : oui.
11 TASK_GET_PATH_TO_LEADER INDÉFINI
12 TASK_GET_PATH_TO_SPOT Le monstre prend un chemin vers m_vecMoveGoal mais ne bouge pas.
  • Paramètre : aucun.
  • RunTask() : non.
13 TASK_GET_PATH_TO_TARGET Le monstre se déplace vers m_hTargetEnt.
  • Paramètre : aucun.
  • RunTask() : non.
14 TASK_GET_PATH_TO_HINTNODE Le monstre se déplace vers m_iHintNode.
  • Paramètre : aucun.
  • RunTask() : non.
15 TASK_GET_PATH_TO_LASTPOSITION Le monstre se déplace vers m_vecLastPosition.
  • Paramètre : aucun.
  • RunTask() : non.
16 TASK_GET_PATH_TO_BESTSOUND Le monstre se déplace vers le meilleur son (le plus fort ?).
  • Paramètre : aucun.
  • RunTask() : non.
17 TASK_GET_PATH_TO_BESTSCENT Le monstre se déplace vers la valeur que PBestScent() retourne.
  • Paramètre : aucun.
  • RunTask() : non.
18 TASK_RUN_PATH Force le monstre à courir sur son chemin.
  • Paramètre : aucun.
  • RunTask() : non.
19 TASK_WALK_PATH Force le monstre à marcher sur son chemin.
  • Paramètre : aucun.
  • RunTask() : non.
20 TASK_STRAFE_PATH Force le monstre à straffer sur son chemin.
  • Paramètre : aucun.
  • RunTask() : non.
21 TASK_CLEAR_MOVE_WAIT Stocke le temps actuel dans m_flMoveWaitFinished. Pas d'actions particulières...
  • Paramètre : aucun.
  • RunTask() : non.
22 TASK_STORE_LASTPOSITION Stocke la position du monstre (pev->origin) dans m_vecLastPosition.
  • Paramètre : aucun.
  • RunTask() : non.
23 TASK_CLEAR_LASTPOSITION nettoie la variable m_vecLastPosition qui correspond au TASK_STORE_LASPOSITION, en l'initialisant par g_vecZero.
  • Paramètre : aucun.
  • RunTask() : non.
24 TASK_PLAY_ACTIVE_IDLE Je pense qu'il s'agit de se déplacer vers un node en vérifiant s'il y a une action spéciale pour.
  • Paramètre : aucun.
  • RunTask() : oui.
25 TASK_FIND_HINTNODE Force le monstre à stocker le node le plus proche dans m_iHintNode.
  • Paramètre : aucun.
  • RunTask() : non.
26 TASK_CLEAR_HINTNODE nettoie la variable m_iHintNode en l'initialisant par NO_NODE.
  • Paramètre : aucun.
  • RunTask() : non.
27 TASK_SMALL_FLINCH Force le monstre à avoir un petit recul (small flinch).
  • Paramètre : aucun.
  • RunTask() : oui.
28 TASK_FACE_IDEAL Force le monstre à se tourner vers ce que IdealYaw() retourne.
  • Paramètre : aucun.
  • RunTask() : oui.
29 TASK_FACE_ROUTE Force le monstre à se tourner vers le prochain point de son chemin.
  • Paramètre : aucun.
  • RunTask() : oui.
30 TASK_FACE_ENEMY Force le monstre à se tourner vers m_vecEnemyLKP.
  • Paramètre : aucun.
  • RunTask() : oui.
31 TASK_FACE_HINTNODE Force le monstre à se tourner en direction du node stocké dans m_iHintNode.
  • Paramètre : aucun.
  • RunTask() : oui.
32 TASK_FACE_TARGET Force le monstre à se tourner vers m_hTargetEnt.
  • Paramètre : aucun.
  • RunTask() : oui.
33 TASK_FACE_LASTPOSITION Force le monstre à se tourner vers le point stocké dans m_vecLastPosition.
  • Paramètre : aucun.
  • RunTask() : oui.
34 TASK_RANGE_ATTACK1 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
35 TASK_RANGE_ATTACK2 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
36 TASK_MELEE_ATTACK1 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
37 TASK_MELEE_ATTACK2 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
38 TASK_RELOAD Force le monstre à se tourner vers m_hEnemyLKP puis de recharger.
  • Paramètre : aucun.
  • RunTask() : oui.
39 TASK_RANGE_ATTACK1_NOTURN Force le monstre à attaquer sans tourner.
  • Paramètre : aucun.
  • RunTask() : oui.
40 TASK_RANGE_ATTACK2_NOTURN Force le monstre à attaquer sans tourner.
  • Paramètre : aucun.
  • RunTask() : oui.
41 TASK_MELEE_ATTACK1_NOTURN Force le monstre à attaquer sans tourner.
  • Paramètre : aucun.
  • RunTask() : oui.
42 TASK_MELEE_ATTACK2_NOTURN Force le monstre à attaquer sans tourner.
  • Paramètre : aucun.
  • RunTask() : oui.
43 TASK_RELOAD_NOTURN Force le monstre à recharger sans tourner.
  • Paramètre : aucun.
  • RunTask() : oui.
44 TASK_SPECIAL_ATTACK1 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
45 TASK_SPECIAL_ATTACK2 Force le monstre à se tourner vers m_hEnemyLKP puis d'attaquer.
  • Paramètre : aucun.
  • RunTask() : oui.
46 TASK_CROUCH INDÉFINI
47 TASK_STAND INDÉFINI
48 TASK_GUARD INDÉFINI
49 TASK_STEP_LEFT INDÉFINI
50 TASK_STEP_RIGHT INDÉFINI
51 TASK_STEP_FORWARD INDÉFINI
52 TASK_STEP_BACK INDÉFINI
53 TASK_DODGE_LEFT INDÉFINI
54 TASK_DODGE_RIGHT INDÉFINI
55 TASK_SOUND_ANGRY Ecris dans la console : « SOUND ».
  • Paramètre : aucun.
  • RunTask() : non.
56 TASK_SOUND_DEATH Force le monstre à jouer son DeathSound().
  • Paramètre : aucun.
  • RunTask() : non.
57 TASK_SET_ACTIVITY Force le monstre à exécuter une activité (ex : ACT_IDLE)
  • Paramètre : aucun.
  • RunTask() : non.
58 TASK_SET_SCHEDULE Exécute un Schedule.
  • Paramètre : constante du Schedule à exécuté (énumérées dans schedule.h).
  • RunTask() : non.
59 TASK_SET_FAIL_SCHEDULE Schedule à exécuter si l'un des Task de la liste foirait.
  • Paramètre : Schedule à exécuter.
  • RunTask() : non.
60 TASK_CLEAR_FAIL_SCHEDULE Nettoie TASK_FAIL_SCHEDULE.
  • Paramètre : aucun.
  • RunTask() : non.
61 TASK_PLAY_SEQUENCE Force le monstre à jouer une séquence.
  • Paramètre : constante d'une séquence (ex : ACT_IDLE).
  • RunTask() : oui.
62 TASK_PLAY_SEQUENCE_FACE_ENEMY Force le monstre à jouer une séquence tant qu'il fait face à m_hEnemy.
  • Paramètre : constante d'une séquence (ex : ACT_IDLE).
  • RunTask() : oui.
63 TASK_PLAY_SEQUENCE_FACE_TARGET Force le monstre à jouer une séquence tant qu'il fait face à m_hTargetEnt.
  • Paramètre : constante d'une séquence (ex : ACT_IDLE).
  • RunTask() : oui.
64 TASK_SOUND_IDLE Force le monstre à jouer son IdleSound().
  • Paramètre : aucun.
  • RunTask() : non.
65 TASK_SOUND_WAKE Force le monstre à jouer son AlertSound().
  • Paramètre : aucun.
  • RunTask() : non.
66 TASK_SOUND_PAIN Force le monstre à jouer son PainSound().
  • Paramètre : aucun.
  • RunTask() : non.
67 TASK_SOUND_DIE Force le monstre à jouer son DeathSound().
  • Paramètre : aucun.
  • RunTask() : non.
68 TASK_FIND_COVER_FROM_BEST_SOUND Cherche à se couvrir du meilleur son (sans doute le plus audible ?).
  • Paramètre : durée dont le monstre doit courir pour se couvrir (je crois).
  • RunTask() : non.
69 TASK_FIND_COVER_FROM_ENEMY Je pense qu'il s'agit de se déplacer pour se couvrir.
  • Paramètre : durée dont le monstre doit courir pour se couvrir (je crois).
  • RunTask() : non.
70 TASK_FIND_LATERAL_COVER_FROM_ENEMY Je pense qu'il s'agit de se déplacer pour se couvrir.
  • Paramètre : durée dont le monstre doit courir pour se couvrir (je crois).
  • RunTask() : non.
71 TASK_FIND_NODE_COVER_FROM_ENEMY Cherche un node pour se couvrir dans un rayon définit par CoverRadius().
  • Paramètre : aucun.
  • RunTask() : non.
72 TASK_FIND_NEAR_NODE_COVER_FROM_ENEMY Cherche un node dans un rayon définit par le paramètre.
  • Paramètre : distance maximale entre l'ennemi et le monstre.
  • RunTask() : non.
73 TASK_FIND_FAR_NODE_COVER_FROM_ENEMY Trouve un node pour se couvrir dans une zone entre un cercle de rayon définit par le paramètre et un cercle de rayon définit par CoverRadius().
  • Paramètre : rayon distance minimum.
  • RunTask() : non.
74 TASK_FIND_COVER_FROM_ORIGIN Cherche à se couvrir de son point d'origine.
  • Paramètre : durée don't le monstre doit courir pour se couvrir (je crois).
  • RunTask() : non.
75 TASK_EAT Bouffe un cadavre.
  • Paramètre : durée du repas.
  • RunTask() : non.
76 TASK_DIE Mort du monstre.
  • Paramètre : aucun.
  • RunTask() : oui.
77 TASK_WAIT_FOR_SCRIPT Le monstre attend que le script soit terminé.
  • Paramètre : aucun.
  • RunTask() : oui.
78 TASK_PLAY_SCRIPT Force le monstre à jouer une séquence scriptée.
  • Paramètre : aucun.
  • RunTask() : oui.
79 TASK_ENABLE_SCRIPT Je pense que c'est pour dire que le monstre peut à présent jouer une séquence scriptée.
  • Paramètre : aucun.
  • RunTask() : non.
80 TASK_PLANT_ON_SCRIPT Place le monstre sur m_hTargetEnt (téléportation ?).
  • Paramètre : aucun.
  • RunTask() : non.
81 TASK_FACE_SCRIPT Force le monstre à faire face à m_hTargetEnt.
  • Paramètre : aucun.
  • RunTask() : non.
82 TASK_WAIT_RANDOM Attend un temps aléatoire.
  • Paramètre : le temps est une valeur aléatoire entre 0.1 et le paramètre.
  • RunTask() : oui.
83 TASK_WAIT_INDEFINITE Attend indéfiniment, jusqu'à ce qu'un évènement extérieur ne vienne briser la boucle (pas de TaskComplete()).
  • Paramètre : aucun.
  • RunTask() : oui.
84 TASK_STOP_MOVING Stop le monstre (et annule son chemin).
  • Paramètre : aucun.
  • RunTask() : non.
85 TASK_TURN_LEFT Force le monstre à tourner sur la gauche.
  • Paramètre : angle (en degrés) de rotation.
  • RunTask() : oui.
86 TASK_TURN_RIGHT Force le monstre à tourner sur la droite.
  • Paramètre : angle (en degrés) de rotation.
  • RunTask() : oui.
87 TASK_REMEMBER Active un bit à la variable de la mémoire du monstre.
  • Paramètre : valeur du bit à mémoriser (bits_MEMORY_###).
  • RunTask() : non.
88 TASK_FORGET Désactive un bit à la variable de la mémoire du monstre
  • Paramètre : valeur du bit à oublier (bits_MEMORY_###).
  • RunTask() : non.
89 TASK_WAIT_FOR_MOVEMENT Force le monstre à attendre la fin de son mouvement pour entamer le suivant.
  • Paramètre : aucun.
  • RunTask() : oui.
90 LAST_COMMON_TASK Représente la valeur du dernier Task pour créer des listes de Task personnalisées.