179 lines
4.8 KiB
Python
Executable File
179 lines
4.8 KiB
Python
Executable File
// gpb_Baygor.sc
|
|
CONST_INT PED_BRAIN_PED_HAS_RANDOM_DIALOGUE 1 // Ped will be speaking random dialogue.
|
|
CONST_INT PED_BRAIN_PED_HAS_INTERACTION 1 // There will be a prompt to talk to this ped.
|
|
CONST_INT PED_BRAIN_PED_HAS_GOODBYE_DIALOGUE 1 // Ped will say goodbye to the palyer when he leaves.
|
|
|
|
// Baygor is the Espilonist Member
|
|
USING "GenericBrain/Generic_Brain_Header.sch"
|
|
|
|
/// PURPOSE:
|
|
/// Any one-time setup the hero needs. In this case, adding people to the conversation, setting up a model, etc.
|
|
PROC GENERIC_BRAIN_CUSTOM_INIT()
|
|
ePedModel = U_M_Y_ZOMBIE_01
|
|
txtPedMissionID = "PBZB"
|
|
txtPedVoiceID = "ZOMBIE"
|
|
txtBaseIdleDict = "Special_Ped@zombie"
|
|
txtBaseIdleAnim = "Base"
|
|
talkWithAnims = !g_bMagDemoActive
|
|
max_conversation_offset = 8
|
|
sInteractLabel = "PBZB_INTERACT"
|
|
greet_michael = "PBZB_CONV_GM"
|
|
greet_trevor = "PBZB_CONV_GT"
|
|
greet_franklin = "PBZB_CONV_GF"
|
|
idle_dic = "special_ped@zombie@base"
|
|
into_idle_dic = "special_ped@zombie@intro"
|
|
|
|
thisPed = ZOMBIE
|
|
|
|
max_conversation_split_offsets[0] = 9
|
|
max_conversation_split_offsets[1] = 8
|
|
max_conversation_split_offsets[2] = 7
|
|
max_conversation_split_offsets[3] = 14
|
|
max_conversation_split_offsets[4] = 8
|
|
max_conversation_split_offsets[5] = 7
|
|
max_conversation_split_offsets[6] = 10
|
|
max_conversation_split_offsets[7] = 7
|
|
|
|
ENDPROC
|
|
|
|
OBJECT_INDEX phone
|
|
BOOL phoneCreated = FALSE
|
|
PROC GENERIC_BRAIN_ON_CREATE()
|
|
PRINTSTRING("[SP] SET_PED_CAN_EVASIVE_DIVE FALSE") PRINTNL()
|
|
SET_PED_CAN_EVASIVE_DIVE(pedSpecial, FALSE)
|
|
SET_PED_CONFIG_FLAG(pedSpecial, PCF_UseKinematicModeWhenStationary, TRUE)
|
|
SET_PED_CONFIG_FLAG(pedSpecial, PCF_ActivateRagdollFromMinorPlayerContact, TRUE)
|
|
|
|
ENDPROC
|
|
|
|
PROC GENERIC_BRAIN_ON_PLAY_MONOLOGUE(INT i)
|
|
UNUSED_PARAMeTER(i)
|
|
/*IF i = 3
|
|
IF NOT phoneCreated
|
|
phone = CREATE_OBJECT(PROP_NPC_PHONE, GET_ENTITY_COORDS(pedSpecial))
|
|
ATTACH_ENTITY_TO_ENTITY(phone, pedSpecial, GET_PED_BONE_INDEX(pedSpecial, BONETAG_PH_R_HAND), << 0.0, 0.0, 0.0 >>, << 0.0, 0.0, 0.0 >>)
|
|
phoneCreated = TRUE
|
|
ENDIF
|
|
ENDIF*/
|
|
ENDPROC
|
|
|
|
PROC GENERIC_BRAIN_ON_END_MONOLOGUE(INT i)
|
|
UNUSED_PARAMeTER(i)
|
|
/*IF i = 3
|
|
IF phoneCreated
|
|
DETACH_ENTITY(phone)
|
|
DELETE_OBJECT(phone)
|
|
phoneCreated = FALSE
|
|
ENDIF
|
|
ENDIF*/
|
|
ENDPROC
|
|
|
|
FUNC BOOL CAN_PED_LOOK_AT_PLAYER()
|
|
IF conversation_offset[thisPed] = 3
|
|
return FALSE
|
|
ENDIF
|
|
return TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL TALKING_ON_PHONE()
|
|
IF (conversation_offset[thisPed] = 3)
|
|
AND (conversation_split_offset >= 4 AND conversation_split_offset <= 12)
|
|
return TRUE
|
|
ENDIF
|
|
return FALSE
|
|
ENDFUNC
|
|
|
|
PROC GENERIC_BRAIN_ON_PLAYING_MONOLOGUE(INT i, INT split_i, FLOAT time)
|
|
UNUSED_PARAMeTER(i)
|
|
IF i = 3
|
|
IF split_i = 3 AND NOT phoneCreated AND time >= 0.773
|
|
phone = CREATE_OBJECT(PROP_NPC_PHONE, GET_ENTITY_COORDS(pedSpecial))
|
|
ATTACH_ENTITY_TO_ENTITY(phone, pedSpecial, GET_PED_BONE_INDEX(pedSpecial, BONETAG_PH_R_HAND), << 0.0, 0.0, 0.0 >>, << 0.0, 0.0, 0.0 >>)
|
|
phoneCreated = TRUE
|
|
ENDIF
|
|
IF split_i = 12 AND phoneCreated AND time >= 0.116
|
|
DETACH_ENTITY(phone)
|
|
DELETE_OBJECT(phone)
|
|
phoneCreated = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL PED_FLEE_WHEN_BUMPED()
|
|
return TALKING_ON_PHONE()
|
|
ENDFUNC
|
|
|
|
PROC GENERIC_BRAIN_ON_RUNAWAY()
|
|
IF phoneCreated
|
|
IF TALKING_ON_PHONE()
|
|
DETACH_ENTITY(phone)
|
|
phoneCreated = FALSE
|
|
ELSE
|
|
DELETE_OBJECT(phone)
|
|
phoneCreated = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL CAN_TALK_TO_PED()
|
|
//Don't allow talking when on phone.
|
|
return NOT TALKING_ON_PHONE()
|
|
ENDFUNC
|
|
|
|
PROC GENERIC_BRAIN_GET_RANDOM_ANIM_NAME(INT iConvoNum, TEXT_LABEL_31& txtAnimRoot, TEXT_LABEL_63& txtAnimToPlay)
|
|
UNUSED_PARAMETER(txtAnimRoot)
|
|
UNUSED_PARAMETER(txtAnimToPlay)
|
|
|
|
txtAnimRoot = "Special_Ped@zombie"
|
|
SWITCH (iConvoNum)
|
|
CASE 1
|
|
txtAnimToPlay = "IAmUndead"
|
|
BREAK
|
|
CASE 2
|
|
txtAnimToPlay = "DoYouWantAPhotoWithMe"
|
|
BREAK
|
|
CASE 3
|
|
txtAnimToPlay = "Careful"
|
|
BREAK
|
|
CASE 4
|
|
txtAnimToPlay = "IamTheUndead"
|
|
BREAK
|
|
CASE 5
|
|
txtAnimToPlay = "BrainsItsBrains"
|
|
BREAK
|
|
CASE 6
|
|
txtAnimToPlay = "IAmThevinewoodZombie"
|
|
BREAK
|
|
CASE 7
|
|
txtAnimToPlay = "RRRItsBrains"
|
|
BREAK
|
|
CASE 8
|
|
txtAnimToPlay = "WhoSaysCosplayIsA"
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
PROC GENERIC_GET_INTERACT_ANIM(TEXT_LABEL_63& txt_label)
|
|
enumCharacterList ePlayer = GET_CURRENT_PLAYER_PED_ENUM()
|
|
IF (ePlayer = CHAR_TREVOR)
|
|
txt_label = "CONVO_TREVOR_MYBROTHER"
|
|
ELIF (ePlayer = CHAR_MICHAEL)
|
|
txt_label = "CONVO_MICHAEL_OHHOWYOUDOING"
|
|
ELIF (ePlayer = CHAR_FRANKLIN)
|
|
txt_label = "CONVO_FRANKLIN_HEYWASSUP"
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC INT GET_NUMBER_OF_CONVERSATION_SECTIONS()
|
|
enumCharacterList ePlayer = GET_CURRENT_PLAYER_PED_ENUM()
|
|
IF (ePlayer = CHAR_TREVOR)
|
|
return 19
|
|
ELIF (ePlayer = CHAR_MICHAEL)
|
|
return 8
|
|
ENDIF
|
|
//ELSE (ePlayer = CHAR_FRANKLIN)
|
|
return 7
|
|
ENDFUNC
|
|
|
|
USING "GenericBrain/Generic_Brain.sch"
|