• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Best way to hand out quests?

Status
Not open for further replies.
Level 7
Joined
Apr 7, 2009
Messages
241
Hello there, Im making an ORPG. Im wondering what the best way is to hand out quests, currently you get the quest when u come within 250 range of the quest giver in my ORPG but I dont really like it.

You guys have any suggestions for a better way to do it?
 
Level 7
Joined
Jun 16, 2008
Messages
327
Hey there, I-Am-Murloc

As you have probably seen from other ORPGs, there are many ways to assign a quest! For example, you get your 'conversation' quests (quests resulting from the hero talking to another character), you get your 'item' quests (from acquiring or using an item), you get your 'time-based' quests (quests resulting from time elapsed since a certain event, such as the beginning of the game) and you get your 'region-based' quests (quests given when you enter a certain area or region). I'll provide a few brief examples of each:

• 'Conversation' quest
How to initiate: There are different ways to initiate a 'conversation' quest. There's the way you used (range), but there are other ways too, such as the 'select' option. This is the event in which the human player selects the quest-giver. If the player's hero is close enough, it begins a conversation. If the player's hero isn't close enough, it doesn't. Here's the event you'd use:
  • Events
  • Unit - <Quest-Giver> Is selected
  • Conditions
  • (Distance between (Position of (<Hero>)) and (Position of (<Quest-Giver>))) Less than or equal to 250.00
There are other ways to initiate the 'conversation' quest, such as having the player's hero have a "Talk/Use" ability that can be used to converse with quest-givers.


• 'Item' quest
How to initiate: This sort of quest trigger occurs when the player's hero either uses or acquires a certain item. It isn't that hard to code, but here's an example:
  • Events
  • Unit - Unit - A unit Uses an item
  • Conditions
  • (Item being manipulated) Equal to <The Item>
This is a very, very basic example, but it gets the message across. This is done assuming no other unit aside from the heroes has the item. If another unit has the item and might use it, you'd have to add the appropriate conditions. Also, if you want it so that the quest triggers when an item is acquired, not used, then simply adjust the event.

• 'Time-based' Quests
How to initiate: This quest triggers when a certain amount of time has elapsed since a certain event, such as the beginning of the game or the start of a timer. The best to use, in my opinion, is a timer. Here's an example:
  • Events
  • Time - <Timer> expires
Once again, an extremely basic example, and a lot more could be added. Just reminding you what can be used.

• Region-based Quests
How to initiate: These quests are triggered when the player's hero enters a certain region or area. These are really easy to code, but, once again, here's a basic example:
  • Events
  • Unit - A unit enters <Region>
  • Conditions
  • (Entering unit) Equal to <Hero>
Of course, the above example would only apply to a single here. To make it applicable to any hero, simply do this:

  • Events
  • Unit - A unit enters <Region>
  • Conditions
  • ((Owner of (Entering unit)) controller) Equal to User
Hope this helped! :wink:
 
Level 7
Joined
Apr 7, 2009
Messages
241
Thanks, but Im wondering exactly how I do the:

"(Distance between (Position of (<Hero>)) and (Position of (<Quest-Giver>))) Less than or equal to 250.00)" condition

I failed miserably when I tried.
 
Level 7
Joined
Jun 16, 2008
Messages
327
Well, remember to replace <Hero> with the player's hero. Often, we use a variable to do this. Create a variable, and assign the variable to the player's hero, and then use it instead of "<Hero>". Also, "<Quest-Giver>" will be replaced by the unit which gives the quest. Remember, all the words I typed in <> are merely examples, not actually existing presets. Remember to use proper units or variables. So, a quick example would be:

  • Actions
  • Set Hero = <Player's Hero>
This sets the unit variable "Hero" to the player's hero. Remember, don't use "<Player's Hero>" Instead, use the actual hero you placed in your map. Do the same with the quest-giver.
You could just skip the assigning variables part and replace the <> parts with the actual units from the map, but variables are usually the better option.
 
Level 7
Joined
Apr 7, 2009
Messages
241
Well, remember to replace <Hero> with the player's hero. Often, we use a variable to do this. Create a variable, and assign the variable to the player's hero, and then use it instead of "<Hero>". Also, "<Quest-Giver>" will be replaced by the unit which gives the quest. Remember, all the words I typed in <> are merely examples, not actually existing presets. Remember to use proper units or variables. So, a quick example would be:

  • Actions
  • Set Hero = <Player's Hero>
This sets the unit variable "Hero" to the player's hero. Remember, don't use "<Player's Hero>" Instead, use the actual hero you placed in your map. Do the same with the quest-giver.
You could just skip the assigning variables part and replace the <> parts with the actual units from the map, but variables are usually the better option.

I know that, I didnt ask how to make variables. What I ment was how do I set up a condition like that, is it an integer comparison? I couldnt find it.
 
Last edited:
You can create ability (talk, interact or whatever) and add it to hero.
Hero can use it on target unit/destructible/item/whatever!

using variables you can check conditions and so on, and turn on/run right triggers :)

This method will allow you not only to create quests but to create large number of other combination, talk to NPC units, gather some resources, do things here and there and so on!

Didn't see this above so 1 more suggestion can't harm right.
 
Status
Not open for further replies.
Top