First version of the SOurce SDK 2013
This commit is contained in:
133
sp/game/mod_episodic/scripts/talker/npc_alyx.txt
Normal file
133
sp/game/mod_episodic/scripts/talker/npc_alyx.txt
Normal file
@@ -0,0 +1,133 @@
|
||||
//============================================================================================================
|
||||
// Alyx criteria
|
||||
criterion "IsAlyx" "classname" "npc_alyx" "required"
|
||||
//============================================================================================================
|
||||
|
||||
//============================================================================================================
|
||||
// Alyx Combat speech
|
||||
//============================================================================================================
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
criterion "ConceptTalkFoundPlayer" "Concept" "TLK_FOUNDPLAYER" required
|
||||
|
||||
response "AlyxIsBack"
|
||||
{
|
||||
// speak "*vo/episode_1/npc/alyx/al_greet_cit15.wav" // I'm the person who's telling you to get moving.
|
||||
}
|
||||
|
||||
rule AlyxIsBack
|
||||
{
|
||||
criteria IsAlyx IsEpisodic ConceptTalkFoundPlayer
|
||||
response AlyxIsBack
|
||||
}
|
||||
|
||||
response "AlyxDanger"
|
||||
{
|
||||
scene "scenes/npc/Alyx/getback01.vcd" respeakdelay 60
|
||||
scene "scenes/npc/Alyx/getback02.vcd" respeakdelay 60
|
||||
// scene "scenes/npc/Alyx/watchout01.vcd" WATCH OUT!!!
|
||||
// scene "scenes/npc/Alyx/watchout02.vcd" WATCH OUT!!!
|
||||
}
|
||||
rule AlyxDanger
|
||||
{
|
||||
criteria IsAlyx ConceptTalkDanger
|
||||
response AlyxDanger
|
||||
}
|
||||
|
||||
response AlyxShot
|
||||
{
|
||||
scene "scenes/npc/Alyx/gasp02.vcd"
|
||||
scene "scenes/npc/Alyx/gasp03.vcd"
|
||||
scene "scenes/npc/Alyx/hurt04.vcd"
|
||||
scene "scenes/npc/Alyx/hurt05.vcd"
|
||||
scene "scenes/npc/Alyx/hurt06.vcd"
|
||||
scene "scenes/npc/Alyx/hurt08.vcd"
|
||||
scene "scenes/npc/Alyx/uggh01.vcd"
|
||||
}
|
||||
|
||||
rule AlyxShot
|
||||
{
|
||||
criteria IsAlyx ConceptShot
|
||||
response AlyxShot
|
||||
}
|
||||
|
||||
|
||||
response AlyxEnemyDead
|
||||
{
|
||||
// scene "scenes/npc/Alyx/brutal02.vcd" respeakdelay 300
|
||||
}
|
||||
|
||||
rule AlyxEnemyDead
|
||||
{
|
||||
criteria IsAlyx ConceptEnemyDead
|
||||
response AlyxEnemyDead
|
||||
}
|
||||
|
||||
response AlyxHideAndReload
|
||||
{
|
||||
// scene "scenes/npc/Alyx/coverme01.vcd"
|
||||
// scene "scenes/npc/Alyx/coverme02.vcd"
|
||||
// scene "scenes/npc/Alyx/coverme03.vcd"
|
||||
}
|
||||
|
||||
rule AlyxHideAndReload
|
||||
{
|
||||
criteria IsAlyx ConceptHideAndReload PlayerNear
|
||||
response AlyxHideAndReload
|
||||
}
|
||||
|
||||
response AlyxTalkPlayerPushed
|
||||
{
|
||||
// scene "scenes/npc/Alyx/excuseme01.vcd"
|
||||
// scene "scenes/npc/Alyx/excuseme02.vcd"
|
||||
// scene "scenes/npc/Alyx/excuseme03.vcd"
|
||||
}
|
||||
|
||||
rule AlyxTalkPlayerPushed
|
||||
{
|
||||
criteria IsAlyx ConceptTalkPlayerPushed SeenByPlayer NoRecentCombat
|
||||
response AlyxTalkPlayerPushed
|
||||
}
|
||||
|
||||
// Removed - if okay, can just be deleted
|
||||
//response AlyxPlayerReload
|
||||
//{
|
||||
// scene "scenes/npc/Alyx/youreload01.vcd"
|
||||
// scene "scenes/npc/Alyx/youreload02.vcd"
|
||||
//}
|
||||
//
|
||||
//rule AlyxPlayerReload
|
||||
//{
|
||||
// criteria ConceptPlayerReload IsAlyx PlayerNear SeePlayer
|
||||
// response AlyxPlayerReload
|
||||
//}
|
||||
|
||||
response AlyxWatchOut
|
||||
{
|
||||
scene "scenes/npc/Alyx/lookout01.vcd"
|
||||
scene "scenes/npc/Alyx/lookout03.vcd"
|
||||
}
|
||||
|
||||
rule AlyxWatchOut
|
||||
{
|
||||
criteria IsAlyx ConceptTalkWatchout
|
||||
response AlyxWatchout
|
||||
}
|
||||
|
||||
response AlyxPlayerDead
|
||||
{
|
||||
scene "scenes/npc/Alyx/ohno_startle01.vcd"
|
||||
scene "scenes/npc/Alyx/ohno_startle02.vcd"
|
||||
scene "scenes/npc/Alyx/ohno_startle03.vcd"
|
||||
}
|
||||
|
||||
rule AlyxPlayerDead
|
||||
{
|
||||
criteria IsAlyx ConceptPlayerDead
|
||||
response AlyxWatchout
|
||||
matchonce
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//============================================================================================================
|
||||
1201
sp/game/mod_episodic/scripts/talker/npc_citizen.txt
Normal file
1201
sp/game/mod_episodic/scripts/talker/npc_citizen.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,484 @@
|
||||
//============================================================================================================
|
||||
// Commander mode criteria
|
||||
//============================================================================================================
|
||||
criterion "IsOnlySelected" "numselected" "1" required
|
||||
criterion "NotOnlySelected" "numselected" ">1" required
|
||||
criterion "Is_03_first" "name" "citizen_c17_03_first" required
|
||||
|
||||
criterion "UseRadio" "useradio" "1" required
|
||||
|
||||
criterion "SquadNearPlayer" "distancetoplayer" "<240" required
|
||||
criterion "SquadNotNearPlayer" "distancetoplayer" ">=240" required
|
||||
criterion "SquadNearCommandPoint" "commandpoint_dist_to_npc" "<240" required
|
||||
criterion "SquadNotNearCommandPoint" "commandpoint_dist_to_npc" ">=240" required
|
||||
criterion "CommandPointNearPlayer" "commandpoint_dist_to_player" "<144" required
|
||||
criterion "CommandPointNotNearPlayer" "commandpoint_dist_to_player" ">=144" required
|
||||
criterion "JoinSquadIndividual" "numjoining" "1" required
|
||||
criterion "JoinSquadMultiple" "numjoining" ">1" required
|
||||
criterion "TrailingReinforcement" "reinforcement" "1" required
|
||||
|
||||
//============================================================================================================
|
||||
// Commander mode selection speech
|
||||
//============================================================================================================
|
||||
response "CitizenSelected"
|
||||
{
|
||||
scene "scenes/npc/$gender01/ok01.vcd"
|
||||
scene "scenes/npc/$gender01/ok02.vcd"
|
||||
scene "scenes/npc/$gender01/okimready01.vcd"
|
||||
scene "scenes/npc/$gender01/okimready02.vcd"
|
||||
scene "scenes/npc/$gender01/okimready03.vcd"
|
||||
scene "scenes/npc/$gender01/readywhenyouare01.vcd"
|
||||
scene "scenes/npc/$gender01/readywhenyouare02.vcd"
|
||||
|
||||
}
|
||||
|
||||
rule CitizenSelected
|
||||
{
|
||||
criteria IsCitizen ConceptTalkSelected
|
||||
response CitizenSelected
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenGroupSelectedRadio"
|
||||
{
|
||||
}
|
||||
|
||||
rule CitizenGroupSelectedRadio
|
||||
{
|
||||
criteria IsCitizen ConceptTalkSelected NotOnlySelected UseRadio
|
||||
response CitizenGroupSelectedRadio
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenSoloSelectedRadio"
|
||||
{
|
||||
}
|
||||
|
||||
rule CitizenSoloSelectedRadio
|
||||
{
|
||||
criteria IsCitizen ConceptTalkSelected UseRadio
|
||||
response CitizenSoloSelectedRadio
|
||||
}
|
||||
|
||||
|
||||
//============================================================================================================
|
||||
// Commander mode orders speech
|
||||
//============================================================================================================
|
||||
|
||||
response CitizenSquadNearToFarIndividual
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm04.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm05.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm06.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm04"
|
||||
// speak "npc_citizen.squad_affirm05"
|
||||
// speak "npc_citizen.squad_affirm06"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
scene "scenes/npc/$gender01/letsgo01.vcd"
|
||||
scene "scenes/npc/$gender01/letsgo02.vcd"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadNearToFarGroup
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm05.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm06.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away03.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm05"
|
||||
// speak "npc_citizen.squad_affirm06"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
// speak "npc_citizen.squad_away01"
|
||||
// speak "npc_citizen.squad_away02"
|
||||
// speak "npc_citizen.squad_away03"
|
||||
scene "scenes/npc/$gender01/letsgo01.vcd"
|
||||
scene "scenes/npc/$gender01/letsgo02.vcd"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadFarToNearIndividual
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
//scene "scenes/npc/$gender01/squad_approach04.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
// speak "npc_citizen.squad_approach04"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadFarToNearGroup
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
scene "scenes/npc/$gender01/squad_approach01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_approach02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_approach03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_approach04.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
// speak "npc_citizen.squad_approach01"
|
||||
// speak "npc_citizen.squad_approach02"
|
||||
// speak "npc_citizen.squad_approach03"
|
||||
// speak "npc_citizen.squad_approach04"
|
||||
scene "scenes/npc/$gender01/letsgo01.vcd"
|
||||
scene "scenes/npc/$gender01/letsgo02.vcd"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadNearToNear
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
scene "scenes/npc/$gender01/illstayhere01.vcd"
|
||||
scene "scenes/npc/$gender01/holddownspot01.vcd"
|
||||
scene "scenes/npc/$gender01/holddownspot02.vcd"
|
||||
scene "scenes/npc/$gender01/imstickinghere01.vcd"
|
||||
scene "scenes/npc/$gender01/littlecorner01.vcd"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadFarToFarIndividual
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm04.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm04"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadFarToFarGroup
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_away03.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
// speak "npc_citizen.squad_away01"
|
||||
// speak "npc_citizen.squad_away02"
|
||||
// speak "npc_citizen.squad_away03"
|
||||
scene "scenes/npc/$gender01/letsgo01.vcd"
|
||||
scene "scenes/npc/$gender01/letsgo02.vcd"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
response CitizenSquadGeneral
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_affirm01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm05.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm06.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm07.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm08.vcd"
|
||||
scene "scenes/npc/$gender01/squad_affirm09.vcd"
|
||||
// speak "npc_citizen.squad_affirm01"
|
||||
// speak "npc_citizen.squad_affirm02"
|
||||
// speak "npc_citizen.squad_affirm03"
|
||||
// speak "npc_citizen.squad_affirm05"
|
||||
// speak "npc_citizen.squad_affirm06"
|
||||
// speak "npc_citizen.squad_affirm07"
|
||||
// speak "npc_citizen.squad_affirm08"
|
||||
// speak "npc_citizen.squad_affirm09"
|
||||
scene "scenes/npc/$gender01/yougotit02.vcd"
|
||||
}
|
||||
|
||||
rule CitizenCommanded
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded
|
||||
response CitizenSquadGeneral
|
||||
}
|
||||
|
||||
rule CitizenCommandedNearToFarIndividual
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNearPlayer CommandPointNotNearPlayer
|
||||
response CitizenSquadNearToFarIndividual
|
||||
}
|
||||
|
||||
rule CitizenCommandedNearToFarGroup
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNearPlayer CommandPointNotNearPlayer
|
||||
response CitizenSquadNearToFarGroup
|
||||
}
|
||||
|
||||
rule CitizenCommandedFarToNearIndividual
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNearPlayer
|
||||
response CitizenSquadFarToNearIndividual
|
||||
}
|
||||
|
||||
rule CitizenCommandedFarToNearGroup
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNearPlayer
|
||||
response CitizenSquadFarToNearGroup
|
||||
}
|
||||
|
||||
rule CitizenCommandedNearToNearIndividual
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded SquadNearPlayer CommandPointNearPlayer
|
||||
response CitizenSquadNearToNear
|
||||
}
|
||||
|
||||
rule CitizenCommandedFarToFarIndividual
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
|
||||
response CitizenSquadFarToFarIndividual
|
||||
}
|
||||
|
||||
rule CitizenCommandedFarToFarGroup
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
|
||||
response CitizenSquadFarToFarGroup
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenCommandedRadio"
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
rule CitizenCommandedRadio
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommanded UseRadio
|
||||
response CitizenCommandedRadio
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenCommandFailedRadio"
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
rule CitizenCommandFailedRadio
|
||||
{
|
||||
criteria IsCitizen ConceptTalkCommandFailed UseRadio
|
||||
response CitizenCommandFailedRadio
|
||||
}
|
||||
|
||||
//============================================================================================================
|
||||
// Commander mode follow speech
|
||||
//============================================================================================================
|
||||
response CitizenFollowGeneral
|
||||
{
|
||||
scene "scenes/npc/$gender01/leadtheway01.vcd"
|
||||
scene "scenes/npc/$gender01/leadtheway02.vcd"
|
||||
scene "scenes/npc/$gender01/leadon01.vcd"
|
||||
scene "scenes/npc/$gender01/leadon02.vcd"
|
||||
}
|
||||
|
||||
response CitizenFollowGroup
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_follow01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_follow02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_follow03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_follow04.vcd"
|
||||
response CitizenFollowGeneral weight 2
|
||||
}
|
||||
|
||||
rule CitizenFollow
|
||||
{
|
||||
criteria IsCitizen ConceptTalkStartFollow
|
||||
response CitizenFollowGeneral
|
||||
}
|
||||
|
||||
rule CitizenFollowGroup
|
||||
{
|
||||
criteria IsCitizen ConceptTalkStartFollow NotOnlySelected
|
||||
response CitizenFollowGroup
|
||||
}
|
||||
|
||||
//============================================================================================================
|
||||
// Commander mode join speech
|
||||
//============================================================================================================
|
||||
|
||||
|
||||
// I'm not sure all these lines will play well when not coming up from behind, so I've made a distinction between trailing & non-trailing
|
||||
response CitizenJoinIndividual
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
|
||||
}
|
||||
|
||||
response CitizenJoinGroup
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
|
||||
}
|
||||
|
||||
response CitizenJoinIndividualTrailing
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
|
||||
}
|
||||
|
||||
response CitizenJoinGroupTrailing
|
||||
{
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
|
||||
scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
|
||||
}
|
||||
|
||||
rule CitizenJoinIndividual
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual
|
||||
response CitizenJoinIndividual
|
||||
}
|
||||
|
||||
rule CitizenJoinGroup
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple
|
||||
response CitizenJoinGroup
|
||||
}
|
||||
|
||||
rule CitizenJoinIndividualTrailing
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual TrailingReinforcement
|
||||
response CitizenJoinIndividualTrailing
|
||||
}
|
||||
|
||||
rule CitizenJoinGroupTrailing
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer JoinSquadMultiple TrailingReinforcement
|
||||
response CitizenJoinGroupTrailing
|
||||
}
|
||||
|
||||
response CitizenJoin_d3_c17_07
|
||||
{
|
||||
scene "scenes/Streetwar/tunnel/$gender01/d3_c17_07_tenant.vcd"
|
||||
}
|
||||
|
||||
rule CitizenJoin_d3_c17_07
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer
|
||||
"map" "d3_c17_07" required weight 1000
|
||||
response CitizenJoin_d3_c17_07
|
||||
matchonce
|
||||
}
|
||||
|
||||
|
||||
//============================================================================================================
|
||||
// Commander mode follow speech SPECIAL CASE: first citizen in d3_17_03
|
||||
//============================================================================================================
|
||||
response "CitizenFollow_First"
|
||||
{
|
||||
scene "scenes/npc/$gender01/abouttime01.vcd"
|
||||
|
||||
}
|
||||
|
||||
rule CitizenFollow_First
|
||||
{
|
||||
criteria IsCitizen ConceptJoinPlayer JoinSquadIndividual Is_03_first
|
||||
response CitizenFollow_First
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenUnFollow"
|
||||
{
|
||||
|
||||
scene "scenes/npc/$gender01/illstayhere01.vcd"
|
||||
scene "scenes/npc/$gender01/holddownspot01.vcd"
|
||||
scene "scenes/npc/$gender01/holddownspot02.vcd"
|
||||
scene "scenes/npc/$gender01/imstickinghere01.vcd"
|
||||
scene "scenes/npc/$gender01/littlecorner01.vcd"
|
||||
|
||||
}
|
||||
|
||||
rule CitizenUnFollow
|
||||
{
|
||||
criteria IsCitizen ConceptTalkStopFollow
|
||||
response CitizenUnFollow
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
// For ep1_c17_05
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "CitizenDenyCommand"
|
||||
{
|
||||
|
||||
scene "scenes/npc/$gender01/illstayhere01.vcd"
|
||||
scene "scenes/npc/$gender01/imstickinghere01.vcd"
|
||||
}
|
||||
|
||||
rule CitizenDenyCommand
|
||||
{
|
||||
criteria IsCitizen ConceptTalkDenyCommand
|
||||
response CitizenDenyCommand
|
||||
}
|
||||
|
||||
878
sp/game/mod_episodic/scripts/talker/npc_vortigaunt.txt
Normal file
878
sp/game/mod_episodic/scripts/talker/npc_vortigaunt.txt
Normal file
@@ -0,0 +1,878 @@
|
||||
//============================================================================================================
|
||||
// Vortigaunt criteria
|
||||
//============================================================================================================
|
||||
criterion "IsVortigaunt" "classname" "npc_vortigaunt" required
|
||||
criterion "VortigauntCure" concept" "VORT_CURE" required
|
||||
criterion "VortigauntCureStop" "concept" "VORT_CURESTOP" required
|
||||
criterion "VortigauntCureInterrupt" "concept" "VORT_CURE_INTERRUPT" required
|
||||
criterion "VortigauntAttack" "concept" "VORT_ATTACK" required
|
||||
criterion "VortigauntMad" "concept" "VORT_MAD" required
|
||||
criterion "VortigauntShot" "concept" "VORT_SHOT" required
|
||||
criterion "VortigauntPain" "concept" "VORT_PAIN" required
|
||||
criterion "VortigauntDie" "concept" "VORT_DIE" required
|
||||
criterion "VortigauntKill" "concept" "VORT_KILL" required
|
||||
criterion "VortigauntLineOfFire" "concept" "VORT_LINE_FIRE" required
|
||||
criterion "VortigauntPOk" "concept" "VORT_POK" required
|
||||
criterion "VortigauntExtractBugbait" "concept" "VORT_EXTRACT_START" required
|
||||
criterion "VortigauntExtractBugbaitFinish" "concept" "VORT_EXTRACT_FINISH" required
|
||||
criterion "VortNagKeepMovingOutland_11" "concept" "TLK_VortNag_KeepMoving" required
|
||||
criterion "NotUsedVortResponse01" "UsedVortResponse01" "!=1" "required" weight 0
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Level Plus Use
|
||||
//============================================================================================================
|
||||
response VortUseEverywhere
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_affirmed.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese05.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_beofservice.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_vort_chant21.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_certainly.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_vort_chant05.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_forthefm.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_freeman.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_vort_mant04.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_vort_livetoserve.vcd"
|
||||
}
|
||||
|
||||
|
||||
rule VortUseEverywhere
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkUse NotUsedVortResponse NotInCombat
|
||||
applycontext "UsedVortResponse:1:20"
|
||||
response VortUseEverywhere
|
||||
}
|
||||
|
||||
|
||||
response "VortTalkUse01"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_leadus.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_leadon.vcd"
|
||||
sequential
|
||||
norepeat
|
||||
}
|
||||
|
||||
rule VortTalkUse01
|
||||
{
|
||||
|
||||
criteria IsVortigaunt ConceptTalkUse IsMap_ep2_outland_01 NotUsedVortResponse01 NotUsedVortResponse NotInCombat
|
||||
applycontext "UsedVortResponse:1:20,UsedVortResponse01:1:30"
|
||||
response VortTalkUse01
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
response "VortLabUsedisable11"
|
||||
{
|
||||
scene "scenes\outland_11\vort_silo_maghonor02.vcd"
|
||||
scene "scenes\outland_11\vort_silo_maghonor03.vcd"
|
||||
scene "scenes\eli_lab\vort_elab_goaway.vcd"
|
||||
}
|
||||
|
||||
rule IsVortLabUseDisable11
|
||||
{
|
||||
criteria ConceptTalkUse IsVortLabUseDisable NPCIdle NotUsedVortResponse IsMap_ep2_outland_11
|
||||
applycontext "UsedVortResponse:1:20"
|
||||
response VortLabUsedisable11
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
criterion "IsNotVortNoticedHurt" "VortNoticedHurt" "!=1" required
|
||||
|
||||
response "VortNoticeHurt"
|
||||
{
|
||||
NOREPEAT
|
||||
scene "scenes/npc/vortigaunt/vort_combat_combined01.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_combat_combined02.vcd"
|
||||
}
|
||||
|
||||
rule VortNoticeHurt
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPlayerHurt NoRecentCombatShort IsMap_ep3_outland_03 IsNotVortNoticedHurt PlayerWounded
|
||||
applycontext "VortNoticedHurt:1:300"
|
||||
response VortNoticeHurt
|
||||
}
|
||||
|
||||
|
||||
//TLK_VORTIGAUNT_DISPEL
|
||||
|
||||
|
||||
response "VortAntlionCombatStart"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_alert_antlions.vcd" respeakdelay 30
|
||||
scene "scenes/npc/vortigaunt/vort_worry.vcd" respeakdelay 30
|
||||
scene "scenes/npc/vortigaunt/vort_alert.vcd" respeakdelay 0
|
||||
}
|
||||
|
||||
rule VortAntlionCombatStart
|
||||
{
|
||||
criteria IsVortigaunt ConceptStartCombat EnemyIsAntLion
|
||||
response VortAntlionCombatStart
|
||||
}
|
||||
|
||||
response "VortAntlionCombatStart2"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_worry.vcd" respeakdelay 30
|
||||
scene "scenes/npc/vortigaunt/vort_alert.vcd" respeakdelay 30
|
||||
}
|
||||
|
||||
rule VortAntlionCombatStart2
|
||||
{
|
||||
criteria IsVortigaunt ConceptStartCombat
|
||||
response VortAntlionCombatStart2
|
||||
}
|
||||
|
||||
response "VortAntlionAttack"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese03.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese05.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese09.vcd" respeakdelay 15
|
||||
}
|
||||
|
||||
rule VortAntlionAttack
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkAttacking
|
||||
applycontext "VortKill:1:10"
|
||||
response VortAntlionAttack
|
||||
}
|
||||
|
||||
|
||||
response "VortigauntPain"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese04.vcd" respeakdelay 30
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese07.vcd" respeakdelay 30
|
||||
scene "scenes/npc/vortigaunt/vort_vortigese08.vcd" respeakdelay 30
|
||||
}
|
||||
|
||||
rule VortigauntPain
|
||||
{
|
||||
criteria IsVortigaunt VortigauntPain
|
||||
response VortigauntPain
|
||||
}
|
||||
|
||||
|
||||
criterion "contextvortkill" "VortKill" "1" required
|
||||
response "VortigauntRangedKill"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/vort_returntoall.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/vort_yes.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/vort_tethercut.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/vort_passon.vcd" respeakdelay 15
|
||||
scene "scenes/npc/vortigaunt/returnvoid.vcd" respeakdelay 15
|
||||
}
|
||||
|
||||
rule VortigauntRangedKill
|
||||
{
|
||||
criteria IsVortigaunt ConceptEnemyDead
|
||||
applycontext "VortKill:1:15"
|
||||
response VortigauntRangedKill
|
||||
}
|
||||
|
||||
|
||||
criterion "NotVortPostKill" "VortPostKill" "!=1" required
|
||||
response "VortCombatFun"
|
||||
{
|
||||
NOREPEAT
|
||||
scene "scenes/npc/vortigaunt/vort_prevail.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_goodfightwithus.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_killsformidable.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_goodtogether.vcd"
|
||||
|
||||
}
|
||||
rule VortCombatFun
|
||||
{
|
||||
criteria IsVortigaunt IsMap_ep3_outland_03 ConceptPlayerKilledNPC contextvortkill NotVortPostKill
|
||||
applycontext "VortPostKill:1:80"
|
||||
response VortCombatFun
|
||||
}
|
||||
|
||||
|
||||
criterion "NotVortCompliment" "VortCompliment" "!=1" required
|
||||
response "VortCombatCompliment"
|
||||
{
|
||||
|
||||
scene "scenes/npc/vortigaunt/vort_excellent.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_excellentshooting.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_excellentshot.vcd"
|
||||
scene "scenes/npc/vortigaunt/vort_exceptional.vcd"
|
||||
|
||||
}
|
||||
rule VortCombatCompliment
|
||||
{
|
||||
criteria IsVortigaunt ConceptPlayerKilledNPC ContextPlayer1Shot NotVortCompliment
|
||||
applycontext "VortCompliment:1:60"
|
||||
response VortCombatCompliment
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//response "Vort03Test"
|
||||
//{
|
||||
// scene "scenes/outland_02/vort_pre_revive_nag01.vcd"
|
||||
// scene "scenes/outland_02/vort_pre_revive_nag02.vcd"
|
||||
// scene "scenes/outland_02/vort_pre_revive_nag03.vcd"
|
||||
// scene "scenes/outland_02/vort_pre_revive_nag04.vcd"
|
||||
// scene "scenes/outland_02/vort_pre_revive_nag05.vcd"
|
||||
//}
|
||||
//
|
||||
//rule Vort03Test
|
||||
//{
|
||||
// criteria IsVortigaunt IsMap_ep3_outland_03 ConceptTalkLook
|
||||
// response Vort03Test
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
criterion "VortsNagPlayerAlyxHealOutland02" "OUTLAND_02_VORTS_NAG_PLAYER" "1" required
|
||||
|
||||
|
||||
|
||||
response "NagPlayerHealAlyxVort"
|
||||
{
|
||||
scene "scenes/outland_02/vort_pre_revive_nag01.vcd"
|
||||
scene "scenes/outland_02/vort_pre_revive_nag02.vcd"
|
||||
scene "scenes/outland_02/vort_pre_revive_nag03.vcd"
|
||||
scene "scenes/outland_02/vort_pre_revive_nag04.vcd"
|
||||
scene "scenes/outland_02/vort_pre_revive_nag05.vcd"
|
||||
}
|
||||
|
||||
rule NagPlayerHealAlyxVort
|
||||
{
|
||||
criteria IsVortigaunt ConceptVortsNagPlayerAlyxHealOutland02
|
||||
response NagPlayerHealAlyxVort
|
||||
}
|
||||
|
||||
|
||||
criterion "VortAskingForHelp" "SaidProtectUs" "!=1" "required" weight 0
|
||||
response "VortUnderAttackVort"
|
||||
{
|
||||
scene "scenes/outland_02/vort_turret_weneedhelpcometous.vcd"
|
||||
scene "scenes/outland_02/vort_turret_weareunderattackdefendus.vcd"
|
||||
scene "scenes/outland_02/vort_turret_defendus.vcd"
|
||||
scene "scenes/outland_02/vort_turret_protectalyx.vcd"
|
||||
scene "scenes/outland_02/vort_turret_protectus.vcd"
|
||||
|
||||
}
|
||||
|
||||
|
||||
rule VortUnderAttackVort
|
||||
{
|
||||
criteria IsVortigaunt VortigauntPain IsVortHealingAlyx VortAskingForHelp
|
||||
applycontext "SaidProtectUs:1:2,VortNeedsHelp:1:10"
|
||||
response VortUnderAttackVort
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
response "NagPlayerKeepMovingOutland_11Vort"
|
||||
{
|
||||
scene "scenes/outland_11/vort_fmadvance.vcd"
|
||||
scene "scenes/outland_11/vort_hastefm.vcd"
|
||||
scene "scenes/outland_11/vort_fmmustmove.vcd"
|
||||
|
||||
}
|
||||
|
||||
|
||||
rule NagPlayerKeepMovingOutland_11Vort
|
||||
{
|
||||
criteria IsVortigaunt PlayerNear VortNagKeepMovingOutland_11
|
||||
response NagPlayerKeepMovingOutland_11Vort
|
||||
}
|
||||
|
||||
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Hello speech
|
||||
//============================================================================================================
|
||||
response "VortigauntHello"
|
||||
{
|
||||
// scene "scenes/npc/vortigaunt/wellmet.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/isitthefm.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/itisthefm.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/thefreeman.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/beofservice.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/greetingsfm.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/neuroprints.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/salute.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/trulyitis.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/takeus.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/webeofuse.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/corporeal.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/seebeforeoureye.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/morethanmeets.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/weknowyou.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/putaside.vcd" delay "3,3.5" speakonce
|
||||
// scene "scenes/npc/vortigaunt/mystery.vcd" delay "3,3.5" speakonce
|
||||
}
|
||||
rule VortigauntTlkHello
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkHello PlayerNear SeePlayer
|
||||
response VortigauntHello
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
rule VortigauntPlayerHello
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPHello
|
||||
response NullResponse
|
||||
}
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Questions & Responses speech
|
||||
//============================================================================================================
|
||||
response "VortigauntQuestion"
|
||||
{
|
||||
// scene "scenes/npc/vortigaunt/vques01.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques02.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques03.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques04.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques05.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques06.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques07.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques08.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques09.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vques10.vcd" delay 1
|
||||
//
|
||||
}
|
||||
rule VortigauntTlkQuestion
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkQuestion
|
||||
response VortigauntQuestion
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntAnswer"
|
||||
{
|
||||
// scene "scenes/npc/vortigaunt/vanswer01.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer02.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer03.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer04.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer05.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer06.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer07.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer08.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer09.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer10.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer11.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer12.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer13.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer14.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer15.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer16.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer17.vcd" delay 1
|
||||
// scene "scenes/npc/vortigaunt/vanswer18.vcd" delay 1
|
||||
}
|
||||
|
||||
rule VortigauntTlkAnswer
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkAnswer
|
||||
response VortigauntAnswer
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntTalkUse"
|
||||
{
|
||||
sequential
|
||||
norepeat
|
||||
}
|
||||
|
||||
rule VortigauntTalkUse
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkUse
|
||||
response VortigauntTalkUse
|
||||
}
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Combat speech
|
||||
//============================================================================================================
|
||||
response "VortigauntCure"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/allowrecharge.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/wewillcharge.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/fmcanuse.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/here.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/acceptenergy.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/holdstill.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/acceptcharge.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/weshare.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/prepare.vcd" defaultdelay
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntCure
|
||||
{
|
||||
criteria IsVortigaunt VortigauntCure
|
||||
response VortigauntCure
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntCureStop"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/allwecanspare.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/allfornow.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/thatisall.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/done.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/keepfmsafe.vcd" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntCureStop
|
||||
{
|
||||
criteria IsVortigaunt VortigauntCureStop
|
||||
response VortigauntCureStop
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntCureInterrupt"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/holdorcantcharge.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/hold.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/halt.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/fmstandstill.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/ifyoumove.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/movingtarget.vcd" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntCureInterrupt
|
||||
{
|
||||
criteria IsVortigaunt VortigauntCureInterrupt
|
||||
response VortigauntCureInterrupt
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntAttack"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/tothevoid.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/allinoneinall.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/giveover.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/weclaimyou.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/undeserving.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/satisfaction.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/regrettable.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/allowme.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/livetoserve.vcd" defaultdelay
|
||||
scene "scenes/npc/vortigaunt/returnvoid.vcd" defaultdelay
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntAttack
|
||||
{
|
||||
criteria IsVortigaunt VortigauntAttack
|
||||
response VortigauntAttack
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntMad"
|
||||
{
|
||||
// sentence "VORT_MAD" soundlevel "SNDLVL_NORM" delay "4"
|
||||
}
|
||||
rule VortigauntMad
|
||||
{
|
||||
criteria IsVortigaunt VortigauntMad
|
||||
response VortigauntMad
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntShot"
|
||||
|
||||
{
|
||||
// sentence "VORT_SHOT" soundlevel "SNDLVL_NORM" delay "4"
|
||||
}
|
||||
rule VortigauntShot
|
||||
{
|
||||
criteria IsVortigaunt VortigauntShot
|
||||
response VortigauntShot
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
//response "VortigauntPain"
|
||||
|
||||
//{
|
||||
// sentence "VORT_PAIN" defaultdelay
|
||||
//}
|
||||
|
||||
//rule VortigauntPain
|
||||
//{
|
||||
// criteria IsVortigaunt VortigauntPain
|
||||
// response VortigauntPain
|
||||
//}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntDie"
|
||||
|
||||
{
|
||||
// sentence "VORT_DIE" defaultdelay
|
||||
|
||||
}
|
||||
|
||||
rule VortigauntDie
|
||||
{
|
||||
criteria IsVortigaunt VortigauntDie
|
||||
response VortigauntDie
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntKill"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/forthefm.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/forfreedom.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/tethercut.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/troubleus.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/dreamed.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/energyempower.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/empowerus.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/surge.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/yes.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/passon.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/nodenexus.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/returntoall.vcd" delay 4
|
||||
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntKill
|
||||
{
|
||||
criteria IsVortigaunt VortigauntKill
|
||||
response VortigauntKill
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntLineOfFire"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/cautionfm.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/caution.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/fmbeware.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/ware.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/fmmustbeware.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/warefm.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/fminway.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/standclear.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/fmmustmove.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/warningfm.vcd" delay 4
|
||||
scene "scenes/npc/vortigaunt/cannotfire.vcd" delay 4
|
||||
|
||||
}
|
||||
|
||||
rule VortigauntLineOfFire
|
||||
{
|
||||
criteria IsVortigaunt VortigauntLineOfFire
|
||||
response VortigauntLineOfFire
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntPOk"
|
||||
|
||||
{
|
||||
// sentence "VORT_POK" soundlevel "SNDLVL_NORM" delay "2"
|
||||
}
|
||||
|
||||
rule VortigauntPOk
|
||||
{
|
||||
criteria IsVortigaunt VortigauntPOk
|
||||
response VortigauntLineOfFire
|
||||
}
|
||||
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Misc speech
|
||||
//============================================================================================================
|
||||
response "VortigauntIdle"
|
||||
|
||||
{
|
||||
// scene "scenes/npc/vortigaunt/poet.vcd"
|
||||
// scene "scenes/npc/vortigaunt/hopeless.vcd"
|
||||
// scene "scenes/npc/vortigaunt/alldear.vcd"
|
||||
// scene "scenes/npc/vortigaunt/prevail.vcd"
|
||||
// scene "scenes/npc/vortigaunt/seenworse.vcd"
|
||||
// scene "scenes/npc/vortigaunt/persevere.vcd"
|
||||
// scene "scenes/npc/vortigaunt/worthless.vcd"
|
||||
// scene "scenes/npc/vortigaunt/whereto.vcd"
|
||||
}
|
||||
|
||||
rule VortigauntTlkIdle
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkIdle
|
||||
response VortigauntIdle
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
rule VortigauntPlayerIdle
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPIdle
|
||||
response NullResponse
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntStare"
|
||||
|
||||
{
|
||||
// scene "scenes/npc/vortigaunt/optical.vcd"
|
||||
// scene "scenes/npc/vortigaunt/unclear.vcd"
|
||||
// scene "scenes/npc/vortigaunt/opaque.vcd"
|
||||
// scene "scenes/npc/vortigaunt/rememberus.vcd"
|
||||
// scene "scenes/npc/vortigaunt/stillhere.vcd"
|
||||
// scene "scenes/npc/vortigaunt/calm.vcd"
|
||||
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntTlkStare
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkStare
|
||||
response VortigauntStare
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntOk"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/itishonor.vcd"
|
||||
scene "scenes/npc/vortigaunt/wehonored.vcd"
|
||||
scene "scenes/npc/vortigaunt/ourhonor.vcd"
|
||||
scene "scenes/npc/vortigaunt/honorfollow.vcd"
|
||||
scene "scenes/npc/vortigaunt/accompany.vcd"
|
||||
scene "scenes/npc/vortigaunt/gladly.vcd"
|
||||
scene "scenes/npc/vortigaunt/pleasure.vcd"
|
||||
scene "scenes/npc/vortigaunt/wefollowfm.vcd"
|
||||
scene "scenes/npc/vortigaunt/honorours.vcd"
|
||||
scene "scenes/npc/vortigaunt/gloriousend.vcd"
|
||||
scene "scenes/npc/vortigaunt/bodyyours.vcd"
|
||||
scene "scenes/npc/vortigaunt/allwehave.vcd"
|
||||
scene "scenes/npc/vortigaunt/weareyours.vcd"
|
||||
scene "scenes/npc/vortigaunt/dedicate.vcd"
|
||||
scene "scenes/npc/vortigaunt/mutual.vcd"
|
||||
scene "scenes/npc/vortigaunt/leadus.vcd"
|
||||
scene "scenes/npc/vortigaunt/onward.vcd"
|
||||
scene "scenes/npc/vortigaunt/forward.vcd"
|
||||
scene "scenes/npc/vortigaunt/propitious.vcd"
|
||||
scene "scenes/npc/vortigaunt/leadon.vcd"
|
||||
scene "scenes/npc/vortigaunt/fmhonorsus.vcd"
|
||||
scene "scenes/npc/vortigaunt/fmdoesushonor.vcd"
|
||||
scene "scenes/npc/vortigaunt/yesforward.vcd"
|
||||
scene "scenes/npc/vortigaunt/wewillhelp.vcd"
|
||||
scene "scenes/npc/vortigaunt/assent.vcd"
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntTlkStartFollow
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkStartFollow
|
||||
response VortigauntOk
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntWait"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/canconvince.vcd"
|
||||
scene "scenes/npc/vortigaunt/fmknowsbest.vcd"
|
||||
scene "scenes/npc/vortigaunt/willremain.vcd"
|
||||
scene "scenes/npc/vortigaunt/fearfailed.vcd"
|
||||
scene "scenes/npc/vortigaunt/servebetterhere.vcd"
|
||||
scene "scenes/npc/vortigaunt/certainly.vcd"
|
||||
scene "scenes/npc/vortigaunt/herewestay.vcd"
|
||||
scene "scenes/npc/vortigaunt/asyouwish.vcd"
|
||||
scene "scenes/npc/vortigaunt/ourplacehere.vcd"
|
||||
scene "scenes/npc/vortigaunt/affirmed.vcd"
|
||||
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntTlkStopFollow
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkStopFollow
|
||||
response VortigauntWait
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntStop"
|
||||
|
||||
{
|
||||
// sentence "VORT_STOP" delay "2,2.5" soundlevel "SNDLVL_NORM"
|
||||
}
|
||||
|
||||
rule VortigauntTlkStop
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkStop
|
||||
response VortigauntStop
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntScared"
|
||||
|
||||
{
|
||||
// sentence "VORT_SCARED" delay "0,0.4"
|
||||
}
|
||||
|
||||
rule VortigauntTlkNoShoot
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkNoShoot
|
||||
response VortigauntScared
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntCureA"
|
||||
|
||||
{
|
||||
// sentence "VORT_CUREA" defaultdelay speakonce
|
||||
}
|
||||
|
||||
rule VortigauntPlayerHurt1
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPlayerHurt1
|
||||
response VortigauntCureA
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntCureB"
|
||||
|
||||
{
|
||||
// sentence "VORT_CUREB" defaultdelay speakonce
|
||||
}
|
||||
|
||||
rule VortigauntPlayerHurt2
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPlayerHurt2
|
||||
response VortigauntCureB
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntCureC"
|
||||
|
||||
{
|
||||
// sentence "VORT_CUREC" defaultdelay speakonce
|
||||
}
|
||||
|
||||
rule VortigauntPlayerHurt3
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPlayerHurt3
|
||||
response VortigauntCureC
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntPQuest"
|
||||
|
||||
{
|
||||
// sentence "VORT_PQUEST" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntPlayerQuestion
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkPQuestion
|
||||
response VortigauntPQuest
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntSmell"
|
||||
|
||||
{
|
||||
// sentence "VORT_SMELL" defaultdelay respeakdelay "60"
|
||||
}
|
||||
|
||||
rule VortigauntTlkSmell
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkSmell
|
||||
response VortigauntSmell
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntWound"
|
||||
|
||||
{
|
||||
// sentence "VORT_WOUND" speakonce defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntTlkWound
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkWound
|
||||
response VortigauntWound
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntMortal"
|
||||
|
||||
{
|
||||
// sentence "VORT_MORTAL" speakonce defaultdelay
|
||||
}
|
||||
|
||||
|
||||
rule VortigauntTlkMortal
|
||||
{
|
||||
criteria IsVortigaunt ConceptTalkMortal
|
||||
response VortigauntMortal
|
||||
}
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt Leader speech (a vortigaunt that's leading the player somewhere)
|
||||
//============================================================================================================
|
||||
|
||||
response "VortigauntLeadStart"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/fmmustfollow.vcd"
|
||||
}
|
||||
|
||||
rule VortigauntLeadStart
|
||||
{
|
||||
criteria IsVortigaunt ConceptLeadStart
|
||||
response VortigauntLeadStart
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntLeadCatchup"
|
||||
{
|
||||
scene "scenes/npc/vortigaunt/yesforward.vcd"
|
||||
scene "scenes/npc/vortigaunt/followfm.vcd"
|
||||
}
|
||||
|
||||
rule VortigauntLeadCatchup
|
||||
{
|
||||
criteria IsVortigaunt ConceptLeadCatchup
|
||||
response VortigauntLeadCatchup
|
||||
}
|
||||
|
||||
|
||||
|
||||
//============================================================================================================
|
||||
// Vortigaunt coast specific speech
|
||||
//============================================================================================================
|
||||
response "VortigauntExtractBugbait"
|
||||
{
|
||||
scene "scenes/coast/bugbait/vort_extract01.vcd" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntTlkExtractBugbait
|
||||
{
|
||||
criteria IsVortigaunt VortigauntExtractBugbait
|
||||
response VortigauntExtractBugbait
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntExtractBugbaitFinish"
|
||||
{
|
||||
scene "scenes/coast/bugbait/vort_podsforyou01.vcd" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntTlkExtractBugbaitFinish
|
||||
{
|
||||
criteria IsVortigaunt VortigauntExtractBugbaitFinish
|
||||
response VortigauntExtractBugbaitFinish
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------
|
||||
response "VortigauntGetBugbait"
|
||||
{
|
||||
scene "scenes/coast/bugbait/vort_podnag.vcd" defaultdelay
|
||||
}
|
||||
|
||||
rule VortigauntTlkLeadGetBugbait
|
||||
{
|
||||
criteria IsVortigaunt ConceptLeadMissingWeapon
|
||||
response VortigauntGetBugbait
|
||||
}
|
||||
|
||||
158
sp/game/mod_episodic/scripts/talker/response_rules.txt
Normal file
158
sp/game/mod_episodic/scripts/talker/response_rules.txt
Normal file
@@ -0,0 +1,158 @@
|
||||
|
||||
|
||||
// This is the base rule script file for the AI response system for Expressive AI's who speak based on certain "Concepts"
|
||||
// You can think of a concept as a high level state that the code is trying to convey, such as say hello, or say you're mad, etc.
|
||||
//
|
||||
// The format of this file is that there are five main types of commands:
|
||||
// 1) #include "filename" // This just causes the included scriptfile to be parsed and added to the database
|
||||
// 2) enumeration: this declares an enumerated type so that comparisons can be matched against the string versions of the type
|
||||
// 3) response: this specifies a response to issue. A response consists of a weighted set of options and can recursively reference
|
||||
// other responses by name
|
||||
// 4) criterion: This is a match condition
|
||||
// 5) rule: a rule consists of one or more criteria and a response
|
||||
//
|
||||
// In general, the system is presented with a criteria set, which is a set of key value pairs generated by the game code and
|
||||
// various entity I/O and keyfields. For instance, the following criteria set was created in a map with a train terminal
|
||||
// "speaker" entity wishing to fire random station announcements
|
||||
// concept = 'train_speaker' (weight 5.000000) ; the high level concept for the search request
|
||||
// map = 'terminal_pa' ; the name of the map
|
||||
// classname = 'speaker' ; the classname and name of the "speaking" entity
|
||||
// name = 'terminal_pa'
|
||||
// health = '10' ; the absolute health of the speaking entity
|
||||
// healthfrac = '0.000' ; the health fraction (health/maxhealth) of the speaking entity
|
||||
// playerhealth = '100' ; similar data related to the current player:
|
||||
// playerhealthfrac = '1.000'
|
||||
// playerweapon = 'none' ; the name of the weapon the player is carrying
|
||||
// playeractivity = 'ACT_WALK' ; animating activity of the player
|
||||
// playerspeed = '0.000' ; how fast the player is moving
|
||||
//
|
||||
// Based on such a criteria set, the system checks each rule against the set. To do this, each criterion of the rule is
|
||||
// given a numeric score as follows:
|
||||
// score = 0 if criteria doesn't match or, criterion weight * keyvaliue weight if it does match
|
||||
// The final score for a rule is the sum of all of the scores of its criteria. The best rule is the one with the highest
|
||||
// score. Once a best rule is selected, then a response is looked up based on the response definitions and the engine is
|
||||
// asked to dispatch that response.
|
||||
//
|
||||
// The specific syntax for the various keywords is as follows:
|
||||
//
|
||||
// ENUMERATIONS:
|
||||
//
|
||||
// enumeration <enumerationname>
|
||||
// {
|
||||
// "key1" "value1"
|
||||
// "key2" "value2"
|
||||
// ...etc.
|
||||
// }
|
||||
// The code and criteria refer to enumerations with square brackets and a double colon separator, e.g.:
|
||||
// [enumerationname::key1]
|
||||
//
|
||||
//
|
||||
// RESPONSES:
|
||||
//
|
||||
// Single line:
|
||||
// response <responsegroupname> [nodelay | defaultdelay | delay interval ] [speakonce] [noscene] [odds nnn] [respeakdelay interval] [soundlevel "SNDLVL_xxx"] [stop_on_nonidle] responsetype parameters
|
||||
// Multiple lines
|
||||
// response <responsegroupname>
|
||||
// {
|
||||
// [permitrepeats] ; optional parameter, by default we visit all responses in group before repeating any
|
||||
// [sequential] ; optional parameter, by default we randomly choose responses, but with this we walk through the list starting at the first and going to the last
|
||||
// [norepeat] ; Once we've run through all of the entries, disable the response group
|
||||
// responsetype1 parameters1 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] [ stop_on_nonidle ] weight nnn
|
||||
// responsetype2 parameters2 [nodelay | defaultdelay | delay interval ] [speakonce] [odds nnn] [respeakdelay interval] [soundelvel "SNDLVL_xxx"] [displayfirst] [ displaylast ] [ stop_on_nonidle ] weight nnn
|
||||
// etc.
|
||||
// }
|
||||
// Where:
|
||||
// interval = "startnumber,endnumber" or "number" (e.g., "2.8,3.2" or "3.2")
|
||||
// responsetype =:
|
||||
// speak ; it's an entry in sounds.txt
|
||||
// sentence ; it's a sentence name from sentences.txt
|
||||
// scene ; it's a .vcd file
|
||||
// response ; it's a reference to another response group by name
|
||||
// print ; print the text in developer 2 (for placeholder responses)
|
||||
// nodelay = an additional delay of 0 after speaking
|
||||
// defaultdelay = an additional delay of 2.8 to 3.2 seconds after speaking
|
||||
// delay interval = an additional delay based on a random sample from the interval after speaking
|
||||
// speakonce = don't use this response more than one time (default off)
|
||||
// noscene = For an NPC, play the sound immediately using EmitSound, don't play it through the scene system. Good for playing sounds on dying or dead NPCs.
|
||||
// odds = if this response is selected, if odds < 100, then there is a chance that nothing will be said (default 100)
|
||||
// respeakdelay = don't use this response again for at least this long (default 0)
|
||||
// soundlevel = use this soundlevel for the speak/sentence (default SNDLVL_TALKING)
|
||||
// weight = if there are multiple responses, this is a selection weighting so that certain responses are favored over others in the group (default 1)
|
||||
// displayfirst/displaylast : this should be the first/last item selected (ignores weight)
|
||||
// stop_on_nonidle = If this response starts a .vcd, and during that scene the NPC changes out of idle state (e.g. sees an enemy), stop the .vcd
|
||||
//
|
||||
// CRITERIA:
|
||||
//
|
||||
// criterion <criterionname> <matchkey> <matchvalue> weight nnn required
|
||||
// Where:
|
||||
// matchkey matches one of the criteria in the set as shown above
|
||||
// matchvalue is a string or number value or a range, the following are all valid:
|
||||
// "0" ; numeric match to value 0
|
||||
// "1" ; numeric match to value 1
|
||||
// "weapon_smg1" ; string match to weapon_smg1 string
|
||||
// "[npcstate::idle]" ; match enumeration by looking up numeric value
|
||||
// ">0" ; match if greater than zero
|
||||
// ">10,<=50" ; match if greater than ten and less than or equal to 50
|
||||
// ">0,<[npcstate::alert]" ; match if greater than zer and les then value of enumeration for alert
|
||||
// "!=0" ; match if not equal to zero
|
||||
// weight = floating point weighting for score assuming criteria match (default value 1.0)
|
||||
// required: if a rule has one or more criteria with the required flag set, then if any such criteria
|
||||
// fail, the entire rule receives a score of zero
|
||||
//
|
||||
// RULE:
|
||||
//
|
||||
// rule <rulename>
|
||||
// {
|
||||
// criteria name1 [name2 name3 etc.]
|
||||
// response responsegroupname [responsegroupname2 etc.]
|
||||
// [matchonce] ; optional parameter
|
||||
// [ <matchkey > <matchvalue> weight nnn required ]
|
||||
// }
|
||||
// Where:
|
||||
// criteria just lies one more more criterion names from above and response list one or more of the response
|
||||
// names from above (usually just one)
|
||||
// matchonce (off by default): means that the rule is deactivated after the first time it is matched
|
||||
// Note that additional "unnamed" criteria can be specified inline in the rule using the same syntax
|
||||
// as for defining a criterion, except for the criterion keyword and the criterion name keys
|
||||
//
|
||||
// Interaction with entity I/O system
|
||||
// CBaseEntity contains an inputfunc called "DispatchResponse" which accepts a string which is a concept name
|
||||
// Thus, a game entity can fire this input on another entity with a concept string and a criteria set will
|
||||
// be generated and searched against the entities current response system rule set.
|
||||
// Right now only the speaker entity and NPC_Talker derived NPCs have any response rules loaded
|
||||
// In addition, map placed entities have up to three "context" keypairs that can be specified.
|
||||
// They take the form: "key:value" (key, single colon separator, value)
|
||||
// When an entity with any such context keypairs is asked to dispatch a response, the keypairs are added to the
|
||||
// criteria set passed to the rule system. Thus, map placed entities and triggers can specify their
|
||||
// own context keypairs and these can be hooked up to response rules to do map-specific and appropriate
|
||||
// responses
|
||||
// In addition, entity I/O can be used to add, remove and clear any such context keypairs via the
|
||||
// AddContext, RemoveContext, and ClearContext input functions.
|
||||
// AddContext takes a keypair of the "key:value" format, while RemoveContext take just the "key"
|
||||
// ClearContext removes all context keypairs
|
||||
// The game .dll code can enumerate context keypairs and change them via code based methods
|
||||
//
|
||||
// The player and the world have their context added with the string player or world as a prefix, e.g.:
|
||||
// "playerkey:value" or "worldkey:value" to differentiate world/player context from the context of the
|
||||
// responding entity.
|
||||
|
||||
// Base script
|
||||
#include "talker/response_criteria.txt"
|
||||
|
||||
// Test rules
|
||||
#include "talker/interjections.txt"
|
||||
|
||||
#include "talker/npc_combine.txt"
|
||||
#include "talker/response_k_lab.txt"
|
||||
#include "talker/response_eli_lab.txt"
|
||||
#include "talker/npc_vortigaunt.txt"
|
||||
#include "talker/npc_citizen.txt"
|
||||
#include "talker/npc_citizen_scenes.txt"
|
||||
//#include "talker/npc_grigori.txt"
|
||||
//#include "talker/npc_barney.txt"
|
||||
#include "talker/npc_alyx.txt"
|
||||
#include "talker/npc_alyx_episodic.txt"
|
||||
#include "talker/npc_alyx_episodic_scenes.txt"
|
||||
//#include "talker/npc_barney_episodic.txt"
|
||||
#include "talker/nags_Alyx.txt"
|
||||
#include "talker/npc_alyx_vehicle.txt"
|
||||
Reference in New Issue
Block a user