I will add that your current needs can be done without a full quest system.
Maybe a quest system is better overall, but that does (as you are finding out) require an extra level of knowledge.
A lot of other games deliver what you are talking about by doing it the simpler but more untidy way.
I'm imagining something like:
Python:
define mc = Character("[player_name]")
define fl = Character("Farm Lady", color="#04B486")
default player_name = "George"
default quest_got_horse = False
# blah, blah. The game start, maybe an introduction... whatever... until...
label starter_hub:
# show world map for this area (code not included)
# map jumps to various labels... including...
label farmlady_zone:
if quest_got_horse == True:
"You have already completed this quest line."
jump starter_hub
scene black with fade # since I don't have any images, I will use "black" as my default background.
fl "Thank goodness you've arrived. I need a big strong man to help me with (blah, blah). As as reward, I can give you my old horse."
#more code, more dialog. All the things you need to do for the farm lady.. until...
label_farmlady_quest_complete:
scene black with dissolve
fl "That's great. As promised, here is your new horse."
$ quest_got_horse = True
mc "Thank you."
scene black with dissolve
"[mc] returns to the starter town."
jump starter_hub
label kingdom1_hub:
if quest_got_horse == False:
scene black with fade
"You need a horse."
jump starter_hub
# show world map for this area (code not included)
# map jumps to various labels
# and so the game continues. Using simple variables to figure out where the player is up to and acting accordingly.
label more_game:
# blah, blah.
Which obviously doesn't even come close to what you would really need, but is the bare skeleton of the code you might want.
Here, I'm using two simple variables... a string to hold the player's name and a boolean flag to hold a True/False value for whether the player has a horse yet.
... again, all of which doesn't address your problems using the quest system you are trying to implement. I guess I'm trying to highlight that you don't need a complex Swiss Amy Knife when a simple hammer could do the job too.
A better way to do some of this would be code the variable checks into the
You must be registered to see the links
code of the
You must be registered to see the links
that I assume you are going to try to use for each zone/world map. Where clickable areas of the map change (or are enabled/disabled) depending on the value of specific variables.