OSP Kit SP Bounty Hunting (my first attempt at a new quest)

Users who are viewing this thread

Keedo420

Knight at Arms
OK, I am slightly proud of this I must admit. :oops: This was my first attempt to create a new quest. What I did, was make it so that players can be bounty hunters by talking to any tavernkeeper and see if there are any bounty quests available. While they are technically copies of the Hunt Down Fugitive quest that lords give you, I had to make quite a few adjustments to allow for the player to have multiple bounties at the same time and also to increase the variety of potential targets. Now, instead of just the usual Nervous Man you hunt down for lords, on a bounty hunting quest you might have to kill a deserter from any of the kingdoms or one of the various bandits. The bounty quests have a much shorter time limit (1 week instead of a month) but also a much shorter "give again" timer (again, 1 week) and you can have up to 6 at a time. I've been working on it for the past three days and encountered a lot of roadblocks. There were numerous times when I almost made posts asking for help where I was going wrong, but each time I came up with a solution as I was typing my post. I'm sure the code isn't the most efficient, but I have got it to a point where the only problem I am encountering is if you take more than one bounty within the same kingdom there is a possibility they will be in the same village. However, only one will spawn at a time, so after killing one you have to exit the village and re-enter for the second one to spawn.

Here is a selection of screenshots from my testing:
The initial dialogue menu with the tavernkeeper:


The tavernkeeper offering a bounty quest:


The quest menu after accepting the bounty quest:


Talking to a villager after arriving at the target village:


Talking to the bounty target:


After killing the target:


The quest menu after killing the target:


Claiming my reward:


And then I went and tested what happens if I took multiple bounty quests at the same time. This is what the tavernkeeper says if there are no more bounty quests to give:


And this is what happens when you forget to rest before going after another target.....This was in fact an accident, but a good opportunity to show me that the quest successfully fails if you die:

And here is my current code if anyone wants to use it in their mod (you'll have to do a bit of editing since my code takes into account the new races I added and some other things that might cause problems in other mods if the code is not modified) or if anyone wants to look it over and give me pointers on ways to improve it.

In module_dialogues.....
I added this part to the tavernkeepers' dialogue:
#Bounty hunting
  [anyone|plyr,"tavernkeeper_talk", [(store_partner_quest,":tavernkeepers_quest"),
                            (lt,":tavernkeepers_quest",0),],
  "Are there any bounties posted?", "tavernkeeper_request_mission_ask",[]],
  [anyone|plyr,"tavernkeeper_talk", [(store_partner_quest,":tavernkeepers_quest"),
                            (ge,":tavernkeepers_quest",0),],
  "About the bounty you gave me...", "tavernkeeper_active_mission_1",[]],
  [anyone,"tavernkeeper_active_mission_1", [], "Yes, have you made any progress on it?", "tavernkeeper_active_mission_2",[]],

  [anyone|plyr,"tavernkeeper_active_mission_2", [(store_partner_quest,":tavernkeepers_quest"),
                                        (check_quest_succeeded, ":tavernkeepers_quest"),
                                        (quest_get_slot, ":quest_target_center", ":tavernkeepers_quest", slot_quest_target_center),
                                        (str_store_party_name, s3, ":quest_target_center"),
                                        (quest_get_slot, ":quest_target_dna", ":tavernkeepers_quest", slot_quest_target_dna),
                                        (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                        (str_store_string, s4, s50),],
  "I found {s4} hiding at {s3} and gave them their punishment.", "tavernkeeper_hunt_down_fugitive_success",
  []],

  [anyone|plyr,"tavernkeeper_active_mission_2", [(store_partner_quest,":tavernkeepers_quest"),
                                        (check_quest_failed, ":tavernkeepers_quest"),
                                        ],
  "I'm afraid they got away.", "tavernkeeper_hunt_down_fugitive_fail",
  []],

  [anyone|plyr,"tavernkeeper_active_mission_2", [], "I am still working on it.", "tavernkeeper_active_mission_3",[]],
  [anyone|plyr,"tavernkeeper_active_mission_2", [], "I am afraid I won't be able to do this quest.", "tavernkeeper_mission_failed",[]],
                                                                                                                                                 
  [anyone,"tavernkeeper_active_mission_3", [], "I see. Well why are you still here?", "tavernkeeper_pretalk",[]],

  [anyone,"tavernkeeper_mission_failed", [], "{s43}", "tavernkeeper_pretalk",
  [
    (call_script, "script_lord_comment_to_s43", "$g_talk_troop", "str_lord_mission_failed_default"),
(store_partner_quest,":tavernkeepers_quest"),
    (call_script, "script_abort_quest", ":tavernkeepers_quest", 1)]],

  [anyone,"tavernkeeper_hunt_down_fugitive_success", [],
  "Well done, {playername}!\
  'Tis good to know you can be trusted to handle things with an appropriate level of tactfulness.\
A bounty I promised, and a bounty you shall have. 300 denars and not a copper less!", "tavernkeeper_hunt_down_fugitive_success_2",
  [
    (add_xp_as_reward, 300),
    ]],
 
  [anyone|plyr,"tavernkeeper_hunt_down_fugitive_success_2", [],
  "Let me take the money, {s65}. Thank you.", "tavernkeeper_hunt_down_fugitive_reward_accept",[]],
  [anyone|plyr,"tavernkeeper_hunt_down_fugitive_success_2", [],
  "This is blood money. I can't accept it.", "tavernkeeper_hunt_down_fugitive_reward_reject",[]],

  [anyone,"tavernkeeper_hunt_down_fugitive_reward_accept", [],
  "Of course, {playername}. Here you are.", "tavernkeeper_pretalk",[
      (call_script, "script_troop_add_gold", "trp_player", 300),
      (call_script, "script_change_player_relation_with_troop", "$g_talk_troop", 2),
  (store_partner_quest,":tavernkeepers_quest"),
      (call_script, "script_end_quest", ":tavernkeepers_quest"),
      ]],

  [anyone,"tavernkeeper_hunt_down_fugitive_reward_reject", [],
  "You are a {s25} for whom justice is its own reward, eh? As you wish it, {playername}, as you wish it.\
An honourable sentiment, to be true.", "tavernkeeper_pretalk",[
      (call_script, "script_change_player_honor", 3),
      (call_script, "script_change_player_relation_with_troop", "$g_talk_troop", 2),
  (store_partner_quest,":tavernkeepers_quest"),
      (call_script, "script_end_quest", ":tavernkeepers_quest"),
      ]],

  [anyone,"tavernkeeper_hunt_down_fugitive_fail", [],
  "It is a sad day when that {s44} manages to avoid the hand of justice yet again.\
I thought you would be able to do this, {playername}. Clearly I was wrong.", "tavernkeeper_pretalk",
  [
    (troop_get_slot, ":insult_string", "$g_talk_troop", slot_lord_reputation_type),
    (val_add, ":insult_string", "str_lord_insult_default"),
    (str_store_string, 44, ":insult_string"),

    (call_script, "script_change_player_relation_with_troop", "$g_talk_troop", -1),
(store_partner_quest,":tavernkeepers_quest"),
    (call_script, "script_end_quest", ":tavernkeepers_quest"),
    ]],
 
  [anyone,"tavernkeeper_request_mission_ask", [], "So you reckon yourself a bounty hunter, eh?", "tavernkeeper_tell_mission",
  [
      (call_script, "script_random_bounty", "$g_talk_troop"),
      (assign, "$random_quest_no", reg0),
  ]],

  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_1")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],
  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_2")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],
  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_3")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],
  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_4")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],
  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_5")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],
  [anyone,"tavernkeeper_tell_mission", [(eq,"$random_quest_no","qst_bounty_6")],
  "I have something you could help with, an issue with the lawless villain known as {s4}. \
They supposedly murdered someone, or stole something, or....whatever,\
and have been on the run from their judgement ever since.\
There is a bounty of 300 denars on their head. Associates of the murderer who,\
while they issue them no ill will...reckon that this outlaw may have taken refuge\
with their kinsmen at {s3}.\
You might be able to hunt them down and give them what they deserve...\
^and claim the bounty for yourself of course.", "tavernkeeper_mission_hunt_down_fugitive_told",
  [
    (quest_get_slot, ":quest_target_center", "$random_quest_no", slot_quest_target_center),
    (quest_get_slot, ":quest_target_dna", "$random_quest_no", slot_quest_target_dna),
    (str_store_troop_name_link,s9, "$g_talk_troop"),
    (str_store_party_name_link,s3, ":quest_target_center"),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
    (setup_quest_text, "$random_quest_no"),
    (str_store_string, s2, "@{s9} asked you to hunt down a fugitive named {s4}. They are currently believed to be at {s3}."),
  ]],

  [anyone,"tavernkeeper_tell_mission", [],
  "I'm sorry, but I don't have any bounties for you right now.", "tavernkeeper_pretalk",[]],

  [anyone|plyr,"tavernkeeper_mission_hunt_down_fugitive_told", [],
  "I will claim this bounty.", "tavernkeeper_mission_hunt_down_fugitive_accepted",[]],
  [anyone|plyr,"tavernkeeper_mission_hunt_down_fugitive_told", [], "I am too busy to go after them at the moment.", "tavernkeeper_mission_hunt_down_fugitive_rejected",[]],

  [anyone,"tavernkeeper_mission_hunt_down_fugitive_accepted", [], "That's excellent, {playername}.\
Their associates will be so grateful to have them....found.\
And of course the bounty on their head will be yours if you can get...err find them.\
Well, good hunting to you.", "close_window",
  [(call_script, "script_start_quest", "$random_quest_no", "$g_talk_troop"),
    (call_script, "script_change_player_relation_with_troop","$g_talk_troop",3),
    (assign, "$g_leave_encounter",1),
  ]],

  [anyone,"tavernkeeper_mission_hunt_down_fugitive_rejected", [], "As you wish, {playername}.\
I suppose there are plenty of bounty hunters around to get the job done . . .", "tavernkeeper_pretalk",
  [(troop_set_slot, "$g_talk_troop", slot_troop_does_not_give_quest, 1)]],
#end hunt down fugitive

I added this part to the Village Elders' dialogue:
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_1"),
                                      (neg|check_quest_concluded, "qst_bounty_1"),
                                      (quest_slot_eq, "qst_bounty_1", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_1", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_2"),
                                      (neg|check_quest_concluded, "qst_bounty_2"),
                                      (quest_slot_eq, "qst_bounty_2", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_2", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_3"),
                                      (neg|check_quest_concluded, "qst_bounty_3"),
                                      (quest_slot_eq, "qst_bounty_3", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_3", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_4"),
                                      (neg|check_quest_concluded, "qst_bounty_4"),
                                      (quest_slot_eq, "qst_bounty_4", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_4", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_5"),
                                      (neg|check_quest_concluded, "qst_bounty_5"),
                                      (quest_slot_eq, "qst_bounty_5", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_5", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],
  [anyone|plyr,"village_elder_talk", [(check_quest_active, "qst_bounty_6"),
                                      (neg|check_quest_concluded, "qst_bounty_6"),
                                      (quest_slot_eq, "qst_bounty_6", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_6", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "village_elder_ask_fugitive",[]],

I added this part to the town dweller dialogue:
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_1"),
                                    (neg|check_quest_concluded, "qst_bounty_1"),
                                      (quest_slot_eq, "qst_bounty_1", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_1", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_2"),
                                    (neg|check_quest_concluded, "qst_bounty_2"),
                                      (quest_slot_eq, "qst_bounty_2", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_2", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_3"),
                                    (neg|check_quest_concluded, "qst_bounty_3"),
                                      (quest_slot_eq, "qst_bounty_3", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_3", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_4"),
                                    (neg|check_quest_concluded, "qst_bounty_4"),
                                      (quest_slot_eq, "qst_bounty_4", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_4", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_5"),
                                    (neg|check_quest_concluded, "qst_bounty_5"),
                                      (quest_slot_eq, "qst_bounty_5", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_5", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],
  [anyone|plyr,"town_dweller_talk", [(check_quest_active, "qst_bounty_6"),
                                    (neg|check_quest_concluded, "qst_bounty_6"),
                                      (quest_slot_eq, "qst_bounty_6", slot_quest_target_center, "$current_town"),
                                      (quest_get_slot, ":quest_target_dna", "qst_bounty_6", slot_quest_target_dna),
                                      (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
                                      (str_store_string, s4, s50),
                                      ],
  "I am looking for a fugitive by the name of {s4}. I was told they may be hiding here.", "town_dweller_ask_fugitive",[]],

And then I added a completely new dialogue for the bounty target (if you recognize this dialogue then you are awesome :mrgreen: ):
# Bounty target
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_1"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_2"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_3"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_4"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_5"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],
  [anyone,"start", [(call_script, "script_race"),
(eq, "$g_talk_troop", "$bounty_target_6"),
], "Do I know you? Did my {s38} send you?!", "bounty_1",[]],

  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_1"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_1", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_2"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_2", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_3"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_3", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_4"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_4", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_5"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_5", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [(eq, "$g_talk_troop", "$bounty_target_6"),
    (quest_get_slot, ":quest_target_dna", "qst_bounty_6", slot_quest_target_dna),
    (call_script, "script_get_name_from_dna_to_s50", ":quest_target_dna"),
    (str_store_string, s4, s50),
      ], "I am looking for a fugitive by the name of {s4}. You fit {s35} description.", "bounty_2",[]],
  [anyone|plyr,"bounty_1", [], "Nothing. Sorry to trouble you.", "close_window",[]],

  [anyone,"bounty_2", [], "How do I know you're not from the F.B.I?!!", "bounty_3",[]],
  [anyone|plyr,"bounty_3", [], "{s39} I can assure you I....", "bounty_4",[]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_1")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_1"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_1", slot_quest_current_state, 1),
    ]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_2")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_2"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_2", slot_quest_current_state, 1),
    ]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_3")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_3"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_3", slot_quest_current_state, 1),
    ]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_4")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_4"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_4", slot_quest_current_state, 1),
    ]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_5")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_5"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_5", slot_quest_current_state, 1),
    ]],
  [anyone,"bounty_4", [(eq, "$g_talk_troop", "$bounty_target_6")], "Allright so I made a mistake! ONE mistake!! Can't a {s33} start over?!! Do I have to keep on paying?!! HUH?!?! Maybe I should make another mistake!!!", "close_window",
  [(set_party_battle_mode),
    (try_for_agents, ":cur_agent"),
      (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
      (eq, ":cur_agent_troop", "$bounty_target_6"),
      (agent_set_team, ":cur_agent", 1),
    (try_end),
    (quest_set_slot, "qst_bounty_6", slot_quest_current_state, 1),
    ]],

Continued in the next post....I exceeded the maximum post length. :mrgreen:
 
Continued from the last post....

In module_scripts I copied and modified the get_random_quest script. I felt it would be better (not to mention less confusing for me) to make a separate script for the bounties than to try and include them in the get_random_quest script:
  ("random_bounty",
    [
      (store_script_param_1, ":giver_troop"),
     
      (store_troop_faction, ":giver_faction_no", ":giver_troop"),
     
      (troop_get_slot, ":giver_party_no", ":giver_troop", slot_troop_leaded_party),
     
      (assign, ":giver_center_no", -1),
      (try_begin),
        (gt, ":giver_party_no", 0),
        (party_get_attached_to, ":giver_center_no", ":giver_party_no"),
      (else_try),
        (is_between, "$g_encountered_party", centers_begin, centers_end),
        (assign, ":giver_center_no", "$g_encountered_party"),
      (try_end),

  (try_begin),
    (eq, ":giver_faction_no", "fac_commoners"),
(store_faction_of_party, ":giver_faction_no", ":giver_center_no"),
  (try_end),
     
      (assign, ":result", -1),
      (try_for_range, ":unused", 0, 20), #Repeat trial twenty times
        (eq, ":result", -1),
        (assign, ":quest_target_troop", -1),
        (assign, ":quest_target_center", -1),
        (assign, ":quest_target_faction", -1),
        (assign, ":quest_object_faction", -1),
        (assign, ":quest_object_troop", -1),
        (assign, ":quest_object_center", -1),
        (assign, ":quest_target_party", -1),
        (assign, ":quest_target_party_template", -1),
        (assign, ":quest_target_amount", -1),
        (assign, ":quest_target_dna", -1),
        (assign, ":quest_target_item", -1),
        (assign, ":quest_importance", 1),
        (assign, ":quest_xp_reward", 0),
        (assign, ":quest_gold_reward", 0),
        (assign, ":quest_convince_value", 0),
        (assign, ":quest_expiration_days", 0),
        (assign, ":quest_dont_give_again_period", 0),

(store_random_in_range, ":quest_no", bounties_begin, bounties_end),
        (neg|check_quest_active,":quest_no"),
        (neg|quest_slot_ge, ":quest_no", slot_quest_dont_give_again_remaining_days, 1),
(try_begin),
          (eq, ":quest_no", "qst_bounty_1"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(else_try),
          (eq, ":quest_no", "qst_bounty_2"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(else_try),
          (eq, ":quest_no", "qst_bounty_3"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(else_try),
          (eq, ":quest_no", "qst_bounty_4"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(else_try),
          (eq, ":quest_no", "qst_bounty_5"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(else_try),
          (eq, ":quest_no", "qst_bounty_6"),
          (try_begin),
            (ge, "$g_talk_troop_faction_relation", 0),
            (call_script, "script_cf_select_random_village_with_faction", ":giver_faction_no"),
            (assign, ":quest_target_center", reg0),
            (store_random_in_range, ":quest_target_dna", 0, 1000000),
            (assign, ":result", ":quest_no"),
            (assign, ":quest_expiration_days", 7),
            (assign, ":quest_dont_give_again_period", 7),
          (try_end),
(try_end),
      (try_end),
      (try_begin),
        (neq, ":result", -1),
       
        (try_begin),
          (ge, ":quest_target_center", 0),
          (store_faction_of_party, ":quest_target_faction", ":quest_target_center"),
        (try_end),
       
        (quest_set_slot, ":result", slot_quest_target_troop, ":quest_target_troop"),
        (quest_set_slot, ":result", slot_quest_target_center, ":quest_target_center"),
        (quest_set_slot, ":result", slot_quest_object_troop, ":quest_object_troop"),
        (quest_set_slot, ":result", slot_quest_target_faction, ":quest_target_faction"),
        (quest_set_slot, ":result", slot_quest_object_faction, ":quest_object_faction"),
        (quest_set_slot, ":result", slot_quest_object_center, ":quest_object_center"),
        (quest_set_slot, ":result", slot_quest_target_party, ":quest_target_party"),
        (quest_set_slot, ":result", slot_quest_target_party_template, ":quest_target_party_template"),
        (quest_set_slot, ":result", slot_quest_target_amount, ":quest_target_amount"),
        (quest_set_slot, ":result", slot_quest_importance, ":quest_importance"),
        (quest_set_slot, ":result", slot_quest_xp_reward, ":quest_xp_reward"),
        (quest_set_slot, ":result", slot_quest_gold_reward, ":quest_gold_reward"),
        (quest_set_slot, ":result", slot_quest_convince_value, ":quest_convince_value"),
        (quest_set_slot, ":result", slot_quest_expiration_days, ":quest_expiration_days"),
        (quest_set_slot, ":result", slot_quest_dont_give_again_period, ":quest_dont_give_again_period"),
        (quest_set_slot, ":result", slot_quest_current_state, 0),
        (quest_set_slot, ":result", slot_quest_giver_troop, ":giver_troop"),
        (quest_set_slot, ":result", slot_quest_giver_center, ":giver_center_no"),
        (quest_set_slot, ":result", slot_quest_target_dna, ":quest_target_dna"),
        (quest_set_slot, ":result", slot_quest_target_item, ":quest_target_item"),
      (try_end),
     
      (assign, reg0, ":result"),
  ]),


In module_game_menus, I added this to the "Go to the village center." option of the village menu, right below the check for the hunt_down_fugitive quest:
#Bounty hunting
          (try_begin),
(check_quest_active, "qst_bounty_1"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_1", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_1"),
            (neg|check_quest_failed, "qst_bounty_1"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_1", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_1", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_1", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_1", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_1", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_1", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_1", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_1", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_1"),
          (try_end),
          (try_begin),
(check_quest_active, "qst_bounty_2"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_2", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_2"),
            (neg|check_quest_failed, "qst_bounty_2"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_2", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_2", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_2", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_2", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_2", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_2", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_2", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_2", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_2"),
          (try_end),
          (try_begin),
(check_quest_active, "qst_bounty_3"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_3", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_3"),
            (neg|check_quest_failed, "qst_bounty_3"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_3", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_3", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_3", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_3", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_3", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_3", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_3", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_3", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_3"),
          (try_end),
          (try_begin),
(check_quest_active, "qst_bounty_4"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_4", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_4"),
            (neg|check_quest_failed, "qst_bounty_4"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_4", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_4", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_4", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_4", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_4", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_4", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_4", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_4", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_4"),
          (try_end),
          (try_begin),
(check_quest_active, "qst_bounty_5"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_5", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_5"),
            (neg|check_quest_failed, "qst_bounty_5"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_5", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_5", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_5", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_5", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_5", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_5", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_5", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_5", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_5"),
          (try_end),
          (try_begin),
(check_quest_active, "qst_bounty_6"),
            (neg|is_currently_night),
            (quest_slot_eq, "qst_bounty_6", slot_quest_target_center, "$current_town"),
            (neg|check_quest_succeeded, "qst_bounty_6"),
            (neg|check_quest_failed, "qst_bounty_6"),
(store_random_in_range, ":random", 0, 8 ),
(try_begin),
  (eq, ":random", 0),
  (store_random_in_range, "$bounty_target_6", fugitives_begin, fugitives_end),
(else_try),
  (eq, ":random", 1),
  (store_random_in_range, "$bounty_target_6", outlaws_begin, outlaws_end),
(else_try),
  (eq, ":random", 2),
  (store_random_in_range, "$bounty_target_6", rogues_begin, rogues_end),
(else_try),
  (eq, ":random", 3),
  (store_random_in_range, "$bounty_target_6", goblin_outlaws_begin, goblin_outlaws_end),
(else_try),
  (eq, ":random", 4),
  (store_random_in_range, "$bounty_target_6", orc_outlaws_begin, orc_outlaws_end),
(else_try),
  (eq, ":random", 5),
  (store_random_in_range, "$bounty_target_6", elf_outlaws_begin, elf_outlaws_end),
(else_try),
  (eq, ":random", 6),
  (store_random_in_range, "$bounty_target_6", darkelf_outlaws_begin, darkelf_outlaws_end),
(else_try),
  (store_random_in_range, "$bounty_target_6", saracen_outlaws_begin, saracen_outlaws_end),
(try_end),
            (set_visitor, 45, "$bounty_target_6"),
          (try_end),
# end Bounty Hunting

In module_mission_templates, I added these triggers to the village_center mission template:
# Bounty Hunting triggers
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_1"),
                                (neg|check_quest_succeeded, "qst_bounty_1"),
                                (neg|check_quest_failed, "qst_bounty_1"),
                                (quest_slot_eq, "qst_bounty_1", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_1"),
                                  (call_script, "script_fail_quest", "qst_bounty_1"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_1"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_2"),
                                (neg|check_quest_succeeded, "qst_bounty_2"),
                                (neg|check_quest_failed, "qst_bounty_2"),
                                (quest_slot_eq, "qst_bounty_2", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_2"),
                                  (call_script, "script_fail_quest", "qst_bounty_2"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_2"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_3"),
                                (neg|check_quest_succeeded, "qst_bounty_3"),
                                (neg|check_quest_failed, "qst_bounty_3"),
                                (quest_slot_eq, "qst_bounty_3", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_3"),
                                  (call_script, "script_fail_quest", "qst_bounty_3"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_3"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_4"),
                                (neg|check_quest_succeeded, "qst_bounty_4"),
                                (neg|check_quest_failed, "qst_bounty_4"),
                                (quest_slot_eq, "qst_bounty_4", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_4"),
                                  (call_script, "script_fail_quest", "qst_bounty_4"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_4"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_5"),
                                (neg|check_quest_succeeded, "qst_bounty_5"),
                                (neg|check_quest_failed, "qst_bounty_5"),
                                (quest_slot_eq, "qst_bounty_5", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_5"),
                                  (call_script, "script_fail_quest", "qst_bounty_5"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_5"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),
      (ti_tab_pressed, 0, 0, [(try_begin),
                                (check_quest_active, "qst_bounty_6"),
                                (neg|check_quest_succeeded, "qst_bounty_6"),
                                (neg|check_quest_failed, "qst_bounty_6"),
                                (quest_slot_eq, "qst_bounty_6", slot_quest_current_state, 1),
                                (try_begin),
                                  (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_6"),
                                  (call_script, "script_fail_quest", "qst_bounty_6"),
                                (else_try),
                                  (call_script, "script_succeed_quest", "qst_bounty_6"),
                                (try_end),
                              (try_end),
                              (set_trigger_result,1)], []),

      (1, 0, ti_once, [(check_quest_active, "qst_bounty_1"),
                      (neg|check_quest_succeeded, "qst_bounty_1"),
                      (neg|check_quest_failed, "qst_bounty_1"),
                      (quest_slot_eq, "qst_bounty_1", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_1"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_1"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_1"),
        (try_end),
        ]),
      (1, 0, ti_once, [(check_quest_active, "qst_bounty_2"),
                      (neg|check_quest_succeeded, "qst_bounty_2"),
                      (neg|check_quest_failed, "qst_bounty_2"),
                      (quest_slot_eq, "qst_bounty_2", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_2"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_2"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_2"),
        (try_end),
        ]),
      (1, 0, ti_once, [(check_quest_active, "qst_bounty_3"),
                      (neg|check_quest_succeeded, "qst_bounty_3"),
                      (neg|check_quest_failed, "qst_bounty_3"),
                      (quest_slot_eq, "qst_bounty_3", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_3"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_3"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_3"),
        (try_end),
        ]),
      (1, 0, ti_once, [(check_quest_active, "qst_bounty_4"),
                      (neg|check_quest_succeeded, "qst_bounty_4"),
                      (neg|check_quest_failed, "qst_bounty_4"),
                      (quest_slot_eq, "qst_bounty_4", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_4"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_4"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_4"),
        (try_end),
        ]),
      (1, 0, ti_once, [(check_quest_active, "qst_bounty_5"),
                      (neg|check_quest_succeeded, "qst_bounty_5"),
                      (neg|check_quest_failed, "qst_bounty_5"),
                      (quest_slot_eq, "qst_bounty_5", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_5"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_5"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_5"),
        (try_end),
        ]),
      (1, 0, ti_once, [(check_quest_active, "qst_bounty_6"),
                      (neg|check_quest_succeeded, "qst_bounty_6"),
                      (neg|check_quest_failed, "qst_bounty_6"),
                      (quest_slot_eq, "qst_bounty_6", slot_quest_current_state, 1),
                      (assign, ":not_alive", 0),
                      (try_begin),
                        (call_script, "script_cf_troop_agent_is_alive", "$bounty_target_6"),
                      (else_try),
                        (assign, ":not_alive", 1),
                      (try_end),
                      (this_or_next|main_hero_fallen),
                      (eq, ":not_alive", 1),
                      ],
      [(try_begin),
          (main_hero_fallen),
          (jump_to_menu, "mnu_village_hunt_down_fugitive_defeated"),
          (call_script, "script_fail_quest", "qst_bounty_6"),
          (finish_mission, 4),
        (else_try),
          (call_script, "script_change_player_relation_with_center", "$current_town", -2),
          (call_script, "script_succeed_quest", "qst_bounty_6"),
        (try_end),
        ]),
# Bounty Hunting Triggers end


In module_quests, I added these quests:
("bounty_1", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),
("bounty_2", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),
("bounty_3", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),
("bounty_4", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),
("bounty_5", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),
("bounty_6", "Hunt down {s4}", qf_random_quest,
  "{s9} asked you to hunt down the fugitive named {s4}. He is currently believed to be at {s3}."
  ),


And finally......in module_constants, I added these constants:
outlaws_begin = "trp_looter"
outlaws_end  = "trp_slave_driver"

rogues_begin = "trp_rogue"
rogues_end  = "trp_manhunter"

goblin_outlaws_begin = "trp_vaegir_skirmisher"
goblin_outlaws_end  = "trp_vaegir_archer"

orc_outlaws_begin = "trp_khergit_veteran_horse_archer"
orc_outlaws_end  = "trp_khergit_lancer"

elf_outlaws_begin = "trp_rhodok_deserter"
elf_outlaws_end  = "trp_rhodok_prison_guard"

darkelf_outlaws_begin = "trp_darkelf_descender"
darkelf_outlaws_end  = "trp_darkelf_painbringer"

saracen_outlaws_begin = "trp_saracen_nomad"
saracen_outlaws_end  = "trp_saracen_assassin"

fugitives_begin = "trp_fugitive"
fugitives_end = "trp_spy"

bounties_begin = "qst_bounty_1"
bounties_end  = "qst_kill_local_merchant"

OK!!! Longest post EVER!!! For me anyway. Let me know if you have any ideas on how to improve this.
 
omg this is really cool. Definitely something we need to get into the Star Wars mod, fits perfectly with the theme!

I'll look at what we have to modify to get it to work properly for us, but this adds some nice spice to the game.

Thanks for sharing!
 
:mrgreen: I'm glad someone found it useful. In case you were wondering, the "script_race" which is called in the dialogues was a script I wrote as a fix for the issue where the game treats all new skins as female. If I remember right, your star wars mod uses helmets to make the different races, yes? If that is the case, you can remove the (call_script, "script_race"), lines from the dialogues. You would of course also have to modify that parts of the dialogue I edited to include the new strings related to race/gender.

Here is the the "race" script if you want to take a look at it.
# race/gender
  ("race",
  [(try_begin),
      (eq,"$character_race",0),
      (str_store_string, s22, "@Human"),
    (else_try),
      (eq,"$character_race",1),
      (str_store_string, s22, "@Elf"),
    (else_try),
      (eq,"$character_race",2),
      (str_store_string, s22, "@Dark Elf"),
    (else_try),
      (eq,"$character_race",3),
      (str_store_string, s22, "@Goblin"),
    (else_try),
      (eq,"$character_race",4),
      (str_store_string, s22, "@Orc"),
    (else_try),
      (eq,"$character_race",5),
      (str_store_string, s22, "@Zombie"),
    (else_try),
      (eq,"$character_race",6),
      (str_store_string, s22, "@Skeleton"),
    (else_try),
      (eq,"$character_race",7),
      (str_store_string, s22, "@Ghost"),
    (try_end),
    (try_begin),
      (eq,"$character_gender",0),
      (str_store_string, s23, "@sir"),
      (str_store_string, s24, "@my Lord"),
      (str_store_string, s25, "@man"),
      (str_store_string, s26, "@sir"),
  (str_store_string, s27, "@his"),
      (str_store_string, s28, "@Lord"),
  (str_store_string, s29, "@him"),
  (str_store_string, s30, "@husband"),
    (else_try),
      (eq,"$character_gender",1),
      (str_store_string, s23, "@madam"),
      (str_store_string, s24, "@my Lady"),
      (str_store_string, s25, "@lady"),
      (str_store_string, s26, "@lady"),
      (str_store_string, s27, "@her"),
      (str_store_string, s28, "@Lady"),
      (str_store_string, s29, "@her"),
  (str_store_string, s30, "@wife"),
    (try_end),
(troop_get_type, ":troop_gender", "$g_talk_troop"),
(try_begin),
  (eq, ":troop_gender", 0),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 1),
  (assign, reg1, 1),
(else_try),
  (eq, ":troop_gender", 2),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 3),
  (assign, reg1, 1),
(else_try),
  (eq, ":troop_gender", 4),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 5),
  (assign, reg1, 1),
(else_try),
  (eq, ":troop_gender", 6),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 7),
  (assign, reg1, 1),
(else_try),
  (eq, ":troop_gender", 8 ),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 9),
  (assign, reg1, 1),
(else_try),
  (eq, ":troop_gender", 10),
  (assign, reg1, 0),
(else_try),
  (eq, ":troop_gender", 11),
  (assign, reg1, 0),
(else_try),
  (assign, reg1, 0),
(try_end),
(str_store_string, s31, "@{reg1?madam:sir}"),
    (str_store_string, s32, "@{reg1?my Lady:my Lord}"),
    (str_store_string, s33, "@{reg1?lady:man}"),
    (str_store_string, s34, "@{reg1?lady:sir}"),
    (str_store_string, s35, "@{reg1?her:his}"),
    (str_store_string, s36, "@{reg1?Lady:Lord}"),
    (str_store_string, s37, "@{reg1?her:him}"),
    (str_store_string, s38, "@{reg1?husband:wife}"),
(str_store_string, s39, "@{reg1?Madam:Sir}"),
    ]),

I should also note that while the script uses troop_get_type to check the $g_talk_troop's race, the player's race and gender are set into global variables when creating a new character as shown here in module_game_menus:
  (
    "start_game_1",menu_text_color(0xFF000000)|mnf_disable_all_keys,
    "Welcome, adventurer, to Mount&Blade. Before you can start playing the game you must create a character. You are a...",
    "none",
    [],
    [
      ("start_male",[],"Male_Human",
      [
          (troop_set_type,"trp_player",0),
          (assign,"$character_gender",0),
          (assign,"$character_race",0),

          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_female",[],"Female_Human",
      [
          (troop_set_type,"trp_player",1),
          (assign,"$character_gender",1),
          (assign,"$character_race",0),

          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_elfmale",[],"Male_Elf",
      [
          (troop_set_type,"trp_player",4),
          (assign,"$character_gender",0),
          (assign,"$character_race",1),

          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_elf",[],"Female_Elf",
      [
          (troop_set_type,"trp_player",3),
          (assign,"$character_gender",1),
          (assign,"$character_race",1),

          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_darkelfmale",[],"Male_Dark_Elf",
      [
          (troop_set_type,"trp_player",10),
          (assign,"$character_gender",0),
          (assign,"$character_race",2),

          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_darkelf",[],"Female_Dark_Elf",
      [
          (troop_set_type,"trp_player",9),
          (assign,"$character_gender",1),
          (assign,"$character_race",2),

          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_goblinmale",[],"Male_Goblin",
      [
          (troop_set_type,"trp_player",6),
          (assign,"$character_gender",0),
          (assign,"$character_race",3),

          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_goblin",[],"Female_Goblin",
      [
          (troop_set_type,"trp_player",5),
          (assign,"$character_gender",1),
          (assign,"$character_race",3),

          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_orcmale",[],"Male_Orc",
      [
          (troop_set_type,"trp_player",:cool:,
          (assign,"$character_gender",0),
          (assign,"$character_race",4),

          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_orc",[],"Female_Orc",
      [
          (troop_set_type,"trp_player",7),
          (assign,"$character_gender",1),
          (assign,"$character_race",4),

          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_zombie",[],"Zombie",
      [
          (troop_set_type,"trp_player",2),
          (assign,"$character_gender",0),
          (assign,"$character_race",5),

  (party_add_members, "p_main_party", "trp_skeleton", 10),
          (jump_to_menu,"mnu_start_character_1"),
        ]
      ),
      ("start_skeleton",[],"Skeleton",
      [
          (troop_set_type,"trp_player",11),
          (assign,"$character_gender",0),
          (assign,"$character_race",6),

  (party_add_members, "p_main_party", "trp_skeleton", 10),
          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("start_ghost",[],"Ghost",
      [
          (troop_set_type,"trp_player",12),
          (assign,"$character_gender",0),
          (assign,"$character_race",7),

  (party_add_members, "p_main_party", "trp_skeleton", 10),
          (jump_to_menu,"mnu_start_character_1")
        ]
      ),
      ("go_back",[],"Go back",
      [(change_screen_quit),
        ]
      ),
      ]

 
Wow, that is a great kind of quest there! It would be cool too that enemy Lords could launch a bounty for your head (  :smile: ) and you would need to avoid your own assassination. Well done!

JDeNef13
 
Thanks. :smile: The only way that immediately comes to mind to have enemy lords "put a bounty on you", would be to set up a check anytime you enter a town or village to see if your relationship with a specific lord is below a certain level, then it would spawn an ambush of either mercenaries, bounty hunters, or troops from that lord's faction.
 
JDeNef13 said:
Wow, that is a great kind of quest there! It would be cool too that enemy Lords could launch a bounty for your head (  :smile: ) and you would need to avoid your own assassination. Well done!

JDeNef13

I'm actually working on that atm.. a bounty system.

It started from an idea that you can take out a loan from the bank. Obviously if you don't repay, something needs to happen and since lawsuits are slightly complex to code in, I opted for bounty hunters :smile:

Basically it will be a global system, so factions, towns and lords can take out bounties on people they don't particularly like (coded by AI). There will be bounty hunters specifically for this but I also want to make bandits slightly more useful, since they pretty much become fluff once your party size reaches a reasonable level, so I'll probably have them gang up and go after people if the money is right. As for how it plays out, I guess it could be both. I'm personally not a big fan of the whole 'ambushed by bandits in an alley' mission because what kind of a moron general goes into a town by himself if he's got a 50 strong army of elite units sitting outside and is carrying a fat purse? So either it's just going to be on the map, or I'm going to use a new mission_template which spawns you with say max five of your units and pits you against the bounty hunters. Fight could be either on the street or even in the tavern. Most likely it will be one of both, depending on your party strength versus the bounty hunters' strength. If they're much weaker, they're not going to jump your whole army. Similarly, if the bounty is low, really high-key bounty hunters won't come after you so it's more likely that some random low-life bandits will jump you.

Anyway I have to find a way to integrate this cool quest system of yours with the general bounty system. Obviously, I want the player to be able to cash in a bounty as well if it is set by someone.

I actually think what Keedo has done is more work and more fidgety than what I'm going to do.
 
MartinF said:
I'm personally not a big fan of the whole 'ambushed by bandits in an alley' mission because what kind of a moron general goes into a town by himself if he's got a 50 strong army of elite units sitting outside and is carrying a fat purse?

That always kind of bugged me too, but since that ambush doesn't seem to happen very often I didn't put much thought into it. But I don't see any reason why it couldn't be modified so that if you are ambushed, some of your troops spawn with you in the alley scene. I'm going to have to put that on my list of things to play with when I'm bored. :razz:
 
MartinF said:
So either it's just going to be on the map, or I'm going to use a new mission_template which spawns you with say max five of your units and pits you against the bounty hunters. Fight could be either on the street or even in the tavern. Most likely it will be one of both, depending on your party strength versus the bounty hunters' strength. If they're much weaker, they're not going to jump your whole army. Similarly, if the bounty is low, really high-key bounty hunters won't come after you so it's more likely that some random low-life bandits will jump you.

Anyway I have to find a way to integrate this cool quest system of yours with the general bounty system. Obviously, I want the player to be able to cash in a bounty as well if it is set by someone.

I actually think what Keedo has done is more work and more fidgety than what I'm going to do.

Here's another idea, since bounty hunters will follow and watch their target closely, often waiting for the most opportune time to attack their target. What if you put in a trigger for when the player selects the rest option from the camp menu, that would check if there is a bounty on the player and if there is, there would be a random chance (based on the value of the bounty on the player) that the player is attacked (rationalize that the player wandered off to take a leak behind a tree or something  :lol:). You could then spawn the player and the bounty hunter in a "camp scene" battle mission (make a camp scene with cooking fire and sleeping bag or whatever else would make sense in a temporary camp, but make a similar scene for each terrain type and run a check for what terrain the player is resting on). Possibly add a chance for the player's companions to hear the commotion and join the battle as reinforcements after a certain amount of time, but have them spawn farther away.
 
Hey Keedo do you mind if I use your race gender script?  I'm tired of getting called a girl in my mod :roll:  Very good work by the way.
 
Yeah, go for it. Just remember that you'll have to go through every line of dialogue and replace any references to the player's or talk_troop's  gender. You'll probably also have to make some modifications to the game menus and scripts (such as the Characters menu where it refers to the gender of the kings and lords, if any of them are of your new races). I'm not entirely sure of the extent of modifications you will have to make, but I'm sure you'll figure it out. :wink:
 
Apologies for the uberbump, but I'm trying to give this to Guildmasters and it seems to be conflicting with their current quest-giving mechanism. Can anyone see why this might me and how it could be fixed?
 
Back
Top Bottom