TTLG|Thief|Bioshock|System Shock|Deus Ex|Mobile
Results 1 to 17 of 17

Thread: Murus Conversations Where?

  1. #1
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements

    Murus Conversations Where?

    I wanted to look at how LGS managed the Murus conversations, but I can't see any AIConversationActor links on Murus (AI Brother Murus (853)). I begin to suspect that Murus's conversations are all hardwired into the undocumented Murus script. Does anyone know?

  2. #2
    Member
    Registered: May 2006
    Location: Russia
    To be sure, start conversation in game, save it and look at save file in DromEd.

  3. #3
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    I started the "conversation" with set game_mode_backup 0 and looked. This is what his links look like after teleporting to MurusIntroSpot and begins speaking:

    Click image for larger version. 

Name:	MurusLinks.jpg 
Views:	4 
Size:	92.2 KB 
ID:	2394


    And this is what it looks like after he teleports to MurusCourtyardSpot and begins speaking:

    Click image for larger version. 

Name:	MurusLinks.jpg 
Views:	3 
Size:	85.9 KB 
ID:	2395


    Still no AIConversationActor links to a conversation. He just stands there, adjusting himself to always face the player via the AIWatchObj link on himself to himself, reciting his lines.


    My bet is the Murus script in T1/G's miss11.osm. If that's the case, then no help for me there in figuring out my own, similar, conversation approach. Oh well. It was worth a look, I guess.

  4. #4
    ZylonBane
    Registered: Sep 2000
    Location: ZylonBane
    It's even worse than that. According to the leaked source, there's custom Murus stuff in the engine AI code.

  5. #5
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    I'm thinking I'm going to have to have a complicated qvar based system which increments qvars as Garrett accomplishes sub-goals so as to know which conversation to play should he return before fully completing his goals. I was hoping to see how LGS did it. And I guess I found out. They did it in a way that I can't use or even see. Oh well.

  6. #6
    Member
    Registered: Jan 2001
    Location: Formby, NW England
    If LGS hadn't have used a script, they'd have used a complicated qvar system, which you'd now be confronted with, and you'd have spent a long time following links and examining objects, and then trying to adapt it in lots of small ways to suit your slightly different requirements. I think it's better that you're starting from scratch.

    I set up a conditional set of convs in A Job Well Done. NVLinkBuilder makes it easier.

  7. #7
    Southquarter.com/fms
    Registered: Apr 2000
    Location: The Akkala Highlands
    Years ago, Belboz converted RTTC from T1 to T2. Any idea how he did the Murus parts?

  8. #8
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    Quote Originally Posted by R Soul View Post
    ... I think it's better that you're starting from scratch. ...
    Maybe, but I'd like to have a choice in the matter. Sigh. I'll set up a logic table and see where that leads me.

    One semi-tricky bit, at least until I figure it out, will be knowing what is in Garrett's pockets. It's not enough that he pick something up. He has to bring it back to a specific room. I'm thinking either TrigRoomDelivery or TrigRoomObject. But I'm not certain I care if Garrett throws the objects into the room or carries them in his inventory in order to set off a conversation. I think that's the only distinction, that TrigRoomObject will fire for both and TrigRoomDelivery only when in inventory. The problem is when he has both A and B in his pocket. I don't want to trigger the A conversation or the B conversation, only the A+B conversation. I'll figure it out.

    I was hoping that there was some clever approach they used back then that I could learn from. Guess not. I'll have to do some scratching in the dirt myself then.

  9. #9
    Member
    Registered: Jan 2012
    Location: Gèrmany
    I'm just curious what's the special thing about this conversation?

  10. #10
    Member
    Registered: Jan 2001
    Location: Formby, NW England
    You can track the items by having them both add to the same qvar when picked up. Item A adds 1, item B adds 2. As long as the player cannot drop the items, there will only be 4 possible values.
    0 = No items
    1 = Item A only
    2 = Item B only
    3 = Both items

  11. #11
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    The player has to be able to drop them too. So the qvar will have to be decremented too. It's all possible. I'll work it out.

    Quote Originally Posted by Daraan View Post
    I'm just curious what's the special thing about this conversation?
    It is not just one conversation. It is 10 11 (!) interconnected conversations with a ghost. One to play at the beginning of the quest, then follow up conversations to be played as the player proceeds. One conversation gives the player a goal to get something (A+B). There's one if the player returns with nothing. Another if they return with only item A. Another if they return with only item B. Another when they finally return with both A and B. Another when they return without C. Then another when they return with C. Then another when they complete a task with C and get a final task. Another if they return without completing that task. And one when they do complete that task. I'm forgetting one ... no, that's 10 11, whew. It's complicated, trust me.
    Last edited by LarryG; 11th Sep 2017 at 22:06.

  12. #12
    ZylonBane
    Registered: Sep 2000
    Location: ZylonBane
    Sounds like a job for a Squirrel script.

  13. #13
    Member
    Registered: May 2002
    Location: Texas
    Primary sound buffer format : 16 bits, 22050 Hz, stereo.
    changing STATE to 0Start
    Murus got message: ObjRoomTransit
    Murus got message: PhysMadeNonPhysical
    Ambient: inloop Halt didnt null handle for 200
    Murus got message: TrapSprung
    Changing STATE from 0Start to 1Intro
    Murus got message: PhysMadePhysical
    Murus is at alertness 3 and his state is 1
    Murus has called SayAndGo with Speech -641 TeleportSpot 590 NewState 2
    Changing STATE from 1Intro to 2Deal
    Say called with speech: -641
    'Speaking' is currently 0
    Now we are making the call to PlaySchema...
    Murus playing sound at position -43.516975 -22.568743 5.203139
    Success was TRUE
    Speaking has been set to -641
    Murus got message: PhysMadeNonPhysical


    This was in the mono.txt file. In a test I dropped miss11.osm and then none of the Murus or Eye scripts/events took place. So I believe the murus script plays a big role in Murus' actions and speech. The murus script seems to provide an uninterruptible mechanism to direct the events that took place in RTTC. The script is referencing specific schemas by using their archetype number i.ie. -641 and teleported Murus using concrete marker numbers. Probably the archetype and concrete numbers are hard coded in the script.

  14. #14
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    Quote Originally Posted by ZylonBane View Post
    Sounds like a job for a Squirrel script.
    You volunteering?

    Seriously, I think I can do it without a custom script, and I think that using conversations will provide me with flexibility to experiment with motions to match the words my ghost will be speaking. But if I end up needing the help of a squirrelly script writer after banging my head on this for a while, I'll advertise for one in a new thread.

    John does raise a valid point about these needing to be uninterruptible events. As I understand it there are issues with saving during a conversation and then restoring from that save? If so I may need a way to prevent saving as the first step in the pseudo-script and a way to enable saving as a last step. Or maybe a warning in the readme not to do that will be enough? We all know how well folk read readme files.

  15. #15
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    For those interested in what is planned from a state view, this table may explain it. The cells in green for a row are necessary states for the conversation indicated on that row to take place. The redish cells indicate state changes made by the conversation (if any). Those in yellow are just the expected states at that time, but the conversation doesn't care about them.

    Click image for larger version. 

Name:	11ConvsLogicTable.jpg 
Views:	9 
Size:	108.7 KB 
ID:	2401

    For example, for Conv6 to be played, Garrett must be in Room Brush C, Qvar1 = 1, and Qvar2 = 3.

    For Conv9 to be played, Garrett must be in Room Brush C, Qvar1 = 2 and Qvar3 = 1, and by the end of the conversation Qvar 3 will be incremented to 2.
    Last edited by LarryG; 12th Sep 2017 at 00:17. Reason: Add table & explanation

  16. #16
    Member
    Registered: Aug 2007
    Location: LosAngeles: Between Amusements
    Well, hell, AIWatchObj link on an actor for player intrusion really messes up a conversation's execution. Who would have guessed? There may be a reason that Murus just stands around like a big dummy and conversations were not used.

  17. #17
    Member
    Registered: May 2002
    Location: Texas
    That's why I felt that there was a need for an iron-clad script that continued regardless of what the actor was doing. I have been able to make Murus jump back because he wasn't aware of me but suddenly was, but the AIWatchObj link and the conversation I believe are both Pseudo script list of events that can't run concurrently.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •