Page 1 of 1

How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Mon May 04, 2020 10:44 pm
by Hiro
I already completed the Roses quest. But sadly, it seems I skipped part of it.
The first time I meet Rob he talked like we already knew each other, and out of the blue helped me when I was searching for Clovis.
Also, there was a dark room with a ghost or something trying to scare me, I just went past it. Later in the game, that room was no longer dark and no explanation was given.
Looking at the source code, it seems I skipped some interesting meetings with Rob:

Code: Select all

"id":"guynmart_rob_12",
"message":"Hey - you found me at last! That was fun!\nI am Robalyrius, Guynmart's son, but please call me Rob. Who are you?\nWait, I will open the shutters, so that we can see each other.",
"replies":[
    {
        "text":"Hi, I am $playername. I am glad that you are not really a ghost.",
        "nextPhraseID":"X"
    }
],

Code: Select all

"id":"guynmart_rob2_10",
"message":"I am throwing little pebbles at the guard down there. Do you want to try too?",
"replies":[
    {
        "text":"You shouldn't do that, you naughty boy.",
        "nextPhraseID":"X"
    },
    {
        "text":"Here, take a few bigger rocks. That guard has earned it.",
        "nextPhraseID":"guynmart_rob2_12",
        "requires":[
            {
                "requireType":"inventoryRemove",
                "requireID":"rock",
                "value":6
            }
        ]
    }
]
It's still a bit hard for me to understand the source code, so how was I supposed to meet with Rob? I would have enjoyed throwing rocks at that corrupt guard :D

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 12:00 am
by Antison
Meeting Rob is pretty easy to do and it's also pretty easy to not meet him. when you first get in the castle and you make your way to the second floor going up the right set of stairs you'll see a dark room to the left of the room where Hannah's maid is in. If you navigate through that dark room and get to the maid's room without meeting Rob then you will miss him.

I have never found a way to throw rocks at guards. I've done this quest 15+ times and I've never encountered the ability to do this.

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 12:05 am
by Hiro
If you navigate through that dark room and get to the maid's room without meeting Rob then you will miss him.
Yes, this is what I did :(. What should I have done instead, in order to meet him?

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 2:10 am
by Antison
Hiro wrote: Tue May 05, 2020 12:05 am
If you navigate through that dark room and get to the maid's room without meeting Rob then you will miss him.
Yes, this is what I did :(. What should I have done instead, in order to meet him?
Just walk around in the dark until you "bump" into him. The lights come on and the conversation starts.

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 3:18 am
by Hiro
Ah, thanks!

Also, I'm starting to understand the source code. Spoilers:
The guynmart_main_3.tmx map has guynmart_rob

Code: Select all

  <object id="2" name="guynmart_rob" type="spawn" x="160" y="512" width="32" height="32">
   <properties>
    <property name="quantity" value="1"/>
    <property name="spawngroup" value="guynmart_rob"/>
   </properties>
  </object>
When you bump into him, monsterlist_guynmart.json triggers guynmart_rob_10:

Code: Select all

    {
        "id":"guynmart_rob",
        "name":"Rob",
        "iconID":"monsters_ld1:62",
        "unique":1,
        "monsterClass":"humanoid",
        "phraseID":"guynmart_rob_10"
    },
Which is defined in conversationlist_guynmart_npc.json. The first time,
Rob: "Hey - you found me at last! That was fun!"
Rob: "I am Robalyrius, Guynmart's son, but please call me Rob. Who are you?"
Rob: "Wait, I will open the shutters, so that we can see each other."
Player: "Hi, I am $playername. I am glad that you are not really a ghost."
This gives you the value 45 for the guynmart quest:
I met Lady Hannah's little brother, Rob.
It also sets the internal guynmart_qRpl_shutters quest to 1=shutters open.

If you talk to him again, due to guynmart_qRpl_shutters being 1, the conversation is
Rob: "Hi $playername! We could play together in the tower. It is so boring here as the only kid."
  • Player: "Hmm. Maybe later. I have to go now."
  • Player: "Sorry. I am too old to play childish games. Please leave me alone."
    Rob: "No problem, see you later."
    Player: "I hope not."
  • Player: "Where is your father?"
    Rob: "I don't know myself. He has been uproad for a week now. But he often is, so this is not unusual. I hope that he will take me with him on such missions."
    Player: "And where is Hannah?"
    Rob: "My sister is not in her room. She is probably at the top of the tower again, watching for a sign of Lovis."
    Rob: "They want to marry, but a few days ago he vanished and has not returned. Hannah now weeps all the time. I hope for Lovis that he has a good reason for making my sister so sad."
    Rob: "Maybe you should speak to Hannah's maiden? She is in the next room."
  • Player: "Where is Hannah?"
    Rob: "My sister is not in her room. She is probably at the top of the tower again, watching for a sign of Lovis."
    ... same as above
Then, guynmart.tmx has guynmart_rob2

Code: Select all

  <object id="46" name="guynmart_rob2" type="spawn" x="704" y="352" width="32" height="32">
   <properties>
    <property name="active" value="false"/>
    <property name="spawngroup" value="guynmart_rob2"/>
   </properties>
  </object>
That triggers guynmart_rob2_10

Code: Select all

    {
        "id":"guynmart_rob2",
        "name":"Rob",
        "iconID":"monsters_ld1:62",
        "unique":1,
        "monsterClass":"humanoid",
        "phraseID":"guynmart_rob2_10"
    },
which is
Rob: "I am throwing little pebbles at the guard down there. Do you want to try too?"
  • Player: "You shouldn't do that, you naughty boy."
  • Player: "Here, take a few bigger rocks. That guard has earned it."
    6 rocks are taken from the inventory
    Rob: "Great! Let's see if I can knock his helmet off..."
However, this instance of Rob doesn't appear by default, since it has active set to false. To make it appear, we need one of these:
  • guynmart_sRpl_main_2c
  • guynmart_sRpl_main_1r
  • guynmart_sRpl_main_q01
  • guynmart_sRpl_main_q31
Digging further gets complicated :|

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 4:28 am
by Tomcat
Nice job so far, Hiro! Yes, some of those conversations can get extremely complex. I'm still learning how to write moderately complex ones.

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Tue May 05, 2020 4:38 am
by Nut
An interesting approach to play the game...
But please, I'd prefer if you put all these internals into spoiler tags

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Wed May 06, 2020 8:51 pm
by rijackson741
If you want to poke around in the sources, it is much easier to do so from within ATCS: viewtopic.php?f=6&t=4806

Think of quests as arrays of variables and dialogues as procedures and you are off to a good start understanding how it works.

Re: How to throw rocks at the guard in 'Roses'? I missed meeting Rob

Posted: Wed May 06, 2020 11:32 pm
by Hiro
Thanks for the suggestion, doing it just with "git grep" is hard. I will try ATCS when I have time.