Talk:Task: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
* Since the NPC's find other NPCs from the PVS, would it be possible to limit the NPCs to see only other entities that are within their view angles (LOS)?
What, so a schedule *has* to be a *linear* sequence of tasks? The article should probably explain why that limitation exists, if it does. --[[user:TomEdwards|TomEdwards]] 12:52, 25 Oct 2006 (PDT)
 
----
 
Well, yes and no... The article doesn't appear to mention interrupts, which is probably what you are looking for in terms of non-linearity. For instance, in AI_Behavior_Follow.cpp we find the following schedule:
 
//=========================================================
// > SCHED_FOLLOW
//=========================================================
DEFINE_SCHEDULE
(
    SCHED_FOLLOW,
    "  Tasks"
    "      TASK_GET_PATH_TO_FOLLOW_POSITION 0"
    "      TASK_MOVE_TO_FOLLOW_POSITION    0"
    "      TASK_WAIT_FOR_MOVEMENT          0"
    "      TASK_SET_SCHEDULE              SCHEDULE:SCHED_TARGET_FACE "
    ""
    "  Interrupts"
    "      COND_NEW_ENEMY"
    "      COND_LIGHT_DAMAGE"
    "      COND_HEAVY_DAMAGE"
    "      COND_HEAR_DANGER"
    "      COND_PROVOKED"
    "      COND_PLAYER_PUSHING"
    "      COND_BETTER_WEAPON_AVAILABLE"
);
As far as I can tell, the idea here is that the NPC doing the following will try to complete those 4 tasks in a linear fashion. If at any time any of those conditions pop up, it'll immediately fail the schedule, and then pick a new one based on the new list of conditions. Keep in mind I'm only just starting to grasp all this myself, so don't take my word for it. --[[User:Rokiyo|Rokiyo]] 02:17, 6 Dec 2006 (PST)

Latest revision as of 03:17, 6 December 2006

What, so a schedule *has* to be a *linear* sequence of tasks? The article should probably explain why that limitation exists, if it does. --TomEdwards 12:52, 25 Oct 2006 (PDT)


Well, yes and no... The article doesn't appear to mention interrupts, which is probably what you are looking for in terms of non-linearity. For instance, in AI_Behavior_Follow.cpp we find the following schedule:

//=========================================================
// > SCHED_FOLLOW
//=========================================================
DEFINE_SCHEDULE
(
    SCHED_FOLLOW,

    "   Tasks"
    "       TASK_GET_PATH_TO_FOLLOW_POSITION 0"
    "       TASK_MOVE_TO_FOLLOW_POSITION    0"
    "       TASK_WAIT_FOR_MOVEMENT          0"
    "       TASK_SET_SCHEDULE               SCHEDULE:SCHED_TARGET_FACE "
    ""
    "   Interrupts"
    "       COND_NEW_ENEMY"
    "       COND_LIGHT_DAMAGE"
    "       COND_HEAVY_DAMAGE"
    "       COND_HEAR_DANGER"
    "       COND_PROVOKED"
    "       COND_PLAYER_PUSHING"
    "       COND_BETTER_WEAPON_AVAILABLE"
);

As far as I can tell, the idea here is that the NPC doing the following will try to complete those 4 tasks in a linear fashion. If at any time any of those conditions pop up, it'll immediately fail the schedule, and then pick a new one based on the new list of conditions. Keep in mind I'm only just starting to grasp all this myself, so don't take my word for it. --Rokiyo 02:17, 6 Dec 2006 (PST)