You need to think about what this event actually does:
1) First meeting, "Go get a potion"
2) Talked to her already, "So, do you have the potion? Yes/No"
3) Already gave her the potion, "Thanks for your help!"
3 different settings = 3 pages. Easy enough from there:
[Page 1]
No preconditions
Code:
<> Message: "I need a potion for some reason, go get it!"
<> Set variable [xxxx:PotionQuestState] to 1
<> |
[Page 2]
Precondition: PotionQuestState greater than or equal to 1
Code:
<> Message: "Do you have the potion?"
<> Show choices: Yes, No
: [Yes] handler:
<> Conditional branch: Potion possessed
<> Items: Subtract 1 potion
<> Message: "Thanks for this, have this key I guess"
<> Items: Add 1 key
<> Set variable [xxxx:PotionQuestState] to 2
<>
: Else Handler
<> Message: "Don't lie to me, I'm old!"
<>
: End
: [No] handler
<> Message: "You lazy good-for-nothing bum!"
<>
: End
<> |
[Page 3]
Precondition: PotionQuestState greater than or equal to 2
Code:
<> Message: "Thanks for your help! Get off my lawn!"
<> |
I recommend using variables for keeping track of how far along you are in any given quest. This saves switches and makes more sense overall because a quest is not ON/OFF, it is Not started/in progress/finished, and may have even more states within it (halfway done, interrupted, failed, etc)