how to make a third person talk in a conversation?

Users who are viewing this thread

gecheyou18

Regular
i want to let my npc join in the conversation when i encounter a party such as bandits in the map
and i noticed the words in the module_dialogs.py:
#    Appending '|other(troop_id)' means that this line is spoken by a third person on the scene.
#      (You must make sure that this third person is present on the scene)

and i write my code as this:
  [party_tpl|pt_xuesejuntuans,"start",[(eq,"$talk_context",tc_party_encounter),(encountered_party_is_attacker),(eq,"$sangeanmen",4),
  ],"aaa","xueseshala1",[]],
  [anyone|other(trp_shala),"xueseshala1",[],"bbb","xueseshala2",[]],
  [anyone|plyr,"xueseshala2",[],"ccc","xueseshala3",[]],
  [anyone,"xueseshala3",[],"ddd","close_window",[]],

and when the conversation is executed,the $sangeanmen must be 4.
and i assign $sangeanmen to 4 when the trp_shala join in my party.

so i do make sure that this third person(trp_shala) is present.

but it does not work.
i encounter the bandits, and bandits(xueseshala) say"aaa"
and then that "bbb" this sentence actually appears,but the face on the left side is still the bandits,not my trp_shala.
then player say "ccc"
and bandits:"ddd"
over.

so what is the mistake i made? and how to let the face on the left side also be my trp_shala?

i guess maybe it's because i didn't set my trp_shala to an entry point,but i'm not sure,and i dont know how to do it either.

my english is not very good,if you can't understand what i'm saying,tell me.

help.thanks.
 
The way you have done your operation would work fine if you were in a scene with the three characters standing around. But when you have a map conversation it goes to the mission_template conversation_encounter. And there are only two characters there. I don't think you can have a third person talk in a map conversation.  Maybe make a trigger add your npc and the bandit to a scene first instead.  And then remove them after the conversation?
 
i add sth in the first consequences block like this:

  [party_tpl|pt_xuesejuntuans,"start",[(eq,"$talk_context",tc_party_encounter),(encountered_party_is_attacker),(eq,"$sangeanmen",4),
  ],"aaa","xueseshala1",[(set_visitor,11,"trp_shala"),]],

still does not work.
 
Hey I tried it out in a tavern scene  :grin: and it's working fine.
I think your case is a little more difficult... good luck
...and thanks for the hint!  :grin:
 
I doubt there is an entrypoint 11 in the encounter scene. Maybe you could try 4 instead of 11?
 
i tried 4 instead,but still not work.
and i think when the player encounter a party in the map,they jump to the scn_conversation_scene,
we can find sth related in the module_game_menus.py:
  (
    "castle_meeting_selected",0,
    "Your request for a meeting is relayed inside, and finally {s6} appears in the courtyard to speak with you.",
    "none",
    [(str_store_troop_name, s6, "$castle_meeting_selected_troop")],
    [
      ("continue",[],
      "Continue...",
      [(jump_to_menu, "mnu_castle_outside"),
        (modify_visitors_at_site,"scn_conversation_scene"),(reset_visitors),
        (set_visitor,0,"trp_player"),
        (set_visitor,17,"$castle_meeting_selected_troop"),
        (set_jump_mission,"mt_conversation_encounter"),
        (jump_to_scene,"scn_conversation_scene"),

        (assign, "$talk_context", tc_castle_gate),
        (change_screen_map_conversation, "$castle_meeting_selected_troop"),
        ]),
    ]
  ),

then we find "conversation_encounter" in the misson_templates.py:
# This template is used in party encounters and such.
#
  (
    "conversation_encounter",0,-1,
    "Conversation_encounter",
    [( 0,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 1,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    ( 2,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 3,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 4,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 5,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 6,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    ( 7,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 8,mtef_visitor_source,af_override_fullhelm,0,1,[]),( 9,mtef_visitor_source,af_override_fullhelm,0,1,[]),(10,mtef_visitor_source,af_override_fullhelm,0,1,[]),(11,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    #prisoners now...
    (12,mtef_visitor_source,af_override_fullhelm,0,1,[]),(13,mtef_visitor_source,af_override_fullhelm,0,1,[]),(14,mtef_visitor_source,af_override_fullhelm,0,1,[]),(15,mtef_visitor_source,af_override_fullhelm,0,1,[]),(16,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    #Other party
    (17,mtef_visitor_source,af_override_fullhelm,0,1,[]),(18,mtef_visitor_source,af_override_fullhelm,0,1,[]),(19,mtef_visitor_source,af_override_fullhelm,0,1,[]),(20,mtef_visitor_source,af_override_fullhelm,0,1,[]),(21,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    (22,mtef_visitor_source,af_override_fullhelm,0,1,[]),(23,mtef_visitor_source,af_override_fullhelm,0,1,[]),(24,mtef_visitor_source,af_override_fullhelm,0,1,[]),(25,mtef_visitor_source,af_override_fullhelm,0,1,[]),(26,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    (27,mtef_visitor_source,af_override_fullhelm,0,1,[]),(28,mtef_visitor_source,af_override_fullhelm,0,1,[]),(29,mtef_visitor_source,af_override_fullhelm,0,1,[]),(30,mtef_visitor_source,af_override_fullhelm,0,1,[]),(31,mtef_visitor_source,af_override_fullhelm,0,1,[]),
    ],
    [],
  ),

here we can see it's used for overriding the visitors' helmets in the scence and i find 32 entry points here.so i think No.0~31 all exists.
and i notice the entry point 0 and 17.and when i meet the lord in a castle,they also use these two entry points,one is the first entry point,one is the first in the Other party

so i tried 4,11,21,but all failed.
 
Back
Top Bottom