Creating Objectives: Difference between revisions
(22 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
{{Col-break}} | {{Col-break}} | ||
Select it and right click anywhere in your map with solid ground. You see the option to 'Add KF_StoryObjective'. Select this option and you should now see a green icon with a checkmark in the viewport. | Select it and right click anywhere in your map with solid ground. You should see the option to 'Add KF_StoryObjective'. Select this option and you should now see a green icon with a checkmark in the viewport. | ||
[[File:AddObjective.jpg |left|x400px|link=File:AddObjective.jpg |left|x600px|]] | [[File:AddObjective.jpg |left|x400px|link=File:AddObjective.jpg |left|x600px|]] | ||
Line 20: | Line 20: | ||
== Naming your Objective == | == Naming your Objective == | ||
Now that you have an objective in your map you need to give it a name. Select the objective and press F4 to open it's property menu. Click on 'Objective_Settings' from the list of collapsible categories so that it expands. Enter a name for your objective here. it can be whatever you want, but it helps to have it be relevant to what you want the players to do to complete it. i.e the Bloat bile objective in KFO- | Now that you have an objective in your map you need to give it a name. Select the objective and press F4 to open it's property menu. Click on 'Objective_Settings' from the list of collapsible categories so that it expands. Enter a name for your objective here. it can be whatever you want, but it helps to have it be relevant to what you want the players to do to complete it. i.e the Bloat bile objective in KFO-Frightyard is named 'CollectBloatBile'. <br> | ||
[[File:ObjectiveName.jpg |left|x400px|link=File:ObjectiveName | [[File:ObjectiveName.jpg |left|x400px|link=File:ObjectiveName | ||
Line 32: | Line 32: | ||
Now that your objective has a name, the next step is to let your map how the order in which it should be given to players. To do this, we are going to add it to a list in the level properties. | Now that your objective has a name, the next step is to let your map how the order in which it should be given to players. To do this, we are going to add it to a list in the level properties. | ||
Press F6 to bring up the level properties window for your map. Expand the rollout titled 'Rules_Objectives' and select 'Add' next to the StoryObjectives array. This will produce a blank field where you should enter the name that you came up with for your first objective. The order in which you enter objective names in this array is very important. '''Index [0] of the array will always be the position of the first objective you want players to complete.''' Subsequent indices in the array denote future objectives in the order you wish them to be completed. | Press F6 to bring up the level properties window for your map. Expand the rollout titled 'Rules_Objectives' and select 'Add' next to the StoryObjectives array. This will produce a blank field where you should enter the name that you came up with for your first objective. The order in which you enter objective names in this array is very important. '''Index [0] of the array will always be the position of the first objective you want players to complete.''' Subsequent indices in the array denote future objectives in the order you wish them to be completed. <br><br> | ||
[[File:LevelRules.jpg |left|x800px|link=File:LevelRules | [[File:LevelRules.jpg |left|x800px|link=File:LevelRules | ||
Line 40: | Line 40: | ||
{{Col-break}} | {{Col-break}} | ||
If you have added your objective to the level info correctly, when you load the map up it should automatically start your objective when the match begins. You may not be able to see it however, because you have not configured any HUD information for your objective yet. So let's do that now ... | |||
== Configuring your objective's HUD properties == | == Configuring your objective's HUD properties == | ||
It is easy to create an objective, but slightly harder to make it look really awesome on the player's HUD and convey exactly the right information to him about what he must do to complete it. There are a large number of properties in the objective actor's 'Objective_HUD' collapsible category which will help you fine tune the appearance of your objective and determine where on the HUD it should be rendered. <br> <br> | It is easy to create an objective, but slightly harder to make it look really awesome on the player's HUD and convey exactly the right information to him about what he must do to complete it. There are a large number of properties in the objective actor's 'Objective_HUD' collapsible category which will help you fine tune the appearance of your objective and determine where on the HUD it should be rendered. At the very least you will probably want to include some kind of header text for your objective. <br> <br> | ||
[[File:ObjectiveHUDTab.jpg |left|x400px|link=File:ObjectiveHUDTab | [[File:ObjectiveHUDTab.jpg |left|x400px|link=File:ObjectiveHUDTab | ||
Line 212: | Line 213: | ||
|} | |} | ||
==='''Screen Properties'''=== | ===='''Screen Properties'''==== | ||
{| class="wikitable sortable" style="min-width:75%;text-align:left;" | {| class="wikitable sortable" style="min-width:75%;text-align:left;" | ||
Line 277: | Line 278: | ||
== Using Objectives to Trigger Events == | == Using Objectives to Trigger Events == | ||
Objectives can be used as a way of directing events in your map. Typical examples of | Objectives can be used as a way of directing events in your map. Typical examples of objective controlled events would be - Making enemies start spawning when an objective begins, or making a door open when the objective is completed successfully. There are no limitations on how you use events, but it is important to understand exactly when they are triggered, and which type of event you want to use for a given situation. Below is a list of all the events you have at your disposal in Objective Mode. <br> <br> | ||
[[File:ObjectiveEvents.jpg |left|x400px|link=File:ObjectiveEvents | [[File:ObjectiveEvents.jpg |left|x400px|link=File:ObjectiveEvents | ||
Line 287: | Line 288: | ||
===Activation Events=== | ===Activation Events=== | ||
Activation events are triggered the moment | Activation events are triggered the moment an objective begins. They are triggered in the order in which they are entered in the array, so if you want something to happen before another, move it closer to index 0. There is no limit to the number of activation events you can have, and the performance cost of having a large number of them is minor. | ||
===De-Activation Events=== | ===De-Activation Events=== | ||
Line 303: | Line 304: | ||
===Condition Progress Events=== | ===Condition Progress Events=== | ||
Since objectives can take a while to complete you will almost certainly want to have | ---- | ||
<br> | |||
Since objectives can take a while to complete you will almost certainly want to have additional events firing off at various points along the way. This is where condition 'Progress Events' come in handy. Unlike completion and failure events, they do not require that the objective be 100% complete or 100% failed. In this way they allow you to have a lot more control over the timing of your events, but they also take a little more work to set up. | |||
====Adding a Progress Event==== | |||
To add a new progress event to a condition, select the condition and expand the 'Events' category. Then click on 'Progress Events' and select the 'Add' button. | |||
[[File:AddProgressEvent.jpg |left|x400px|link=File:AddProgressEvent | |||
.jpg |left|x600px|]] | |||
{{Col-begin}} | |||
{{Col-break}} | |||
'''Progress Event Properties''' | |||
{| class="wikitable sortable" style="min-width:75%;text-align:left;" | |||
! Variable Name | |||
! Variable Type | |||
! Description | |||
|- | |||
|- | |||
| EventName || Name || This is the event that will get triggered when the condition's completion state is more than 'progress pct' | |||
|- | |||
| ProgressPct || Float || This should be a value between 0 and 1. Whenever the condition's overall completion state is greater than this value, 'EventName' will be fired. i.e If you want an event to happen after 30 seconds out of 60 for a timed condition you would enter a value of 0.5 here as this represents 50% completion. Certain condition types such as ObjCondition_Triggered will only ever have completion percentages of 0 or 1 as they are either incomplete, or fully complete. | |||
|- | |||
| bRetriggerable || Bool || By default, once a progress event is triggered it will never trigger again until the objective is reset. If you set this bool to true it can trigger over and over again without requiring a reset. | |||
|- | |||
|} |
Latest revision as of 18:48, 7 November 2013
What is an Objective?
Objectives are the most important part of any Objective mode map. They determine how the gameplay should flow as well as setting winning / losing conditions for players. There is no limit on the number of objectives that can be placed in a map, but you should try to reduce it where possible to avoid clutter. It is important to note that there can only be one active objective at any given time. If you want to create complex 'multi-part' objectives you are often better off using multiple conditions inside a single objective than creating multiple different objective actors. Another thing to keep in mind is that objectives are always the same for all players connected to a server. You cannot assign one player an objective that is different from someone else's. Outside of these limitations, there are very few things you can't do with Objectives. They are highly configurable and capable of producing some very complex and interesting gameplay scenarios.
Placing your First Objective
Open the Actor classes browser and navigate to StoryObjectiveBase. Expand it and you should see 'KF_StoryObjective'.
Select it and right click anywhere in your map with solid ground. You should see the option to 'Add KF_StoryObjective'. Select this option and you should now see a green icon with a checkmark in the viewport.
|