|
This tutorial will show you how to take an
existing custom map, with all the standard Raven Shield game
types implemented, and tweak it to add support for the five
new Athena Sword game types: Countdown, Terrorist Hunt
Adversarial, Scattered Hunt Adversarial, Kamikaze, and Capture
the Enemy.
This
tutorial assumes that you are already familiar with the
standard Raven Shield game types and mission objectives. If
this is not the case, I recommend you work through my RvS
Game Types and Mission Objectives tutorial first, and then
come back to this one.
First off,
decide what map you wish to tweak. This tutorial will assume
that the map you choose has (at minimum) the following game
types enabled: Story Mission, Terrorist Hunt, Deathmatch, and
Team Survival.
First Things First
There
are a few things we should do before we open UnrealED. Because
the Athena Sword maps and packages are all tucked away inside
a new “Mods” directory, when you open an Athena Sword static
mesh package in the editor, it can’t find the associated
material textures. (And if you would attempt to open an Athena
Sword map in the editor, it wouldn’t find ANY of the packages
being used.) So let’s tell the editor where to look. (A big
thanks to Trancer for showing me how to do this.)
Browse to your “\RavenShield\system\” directory and
open up the RavenShield.ini file in notepad. Scroll down until
you see a number of lines beginning with “Paths=”. Below the
last “Path=” entry and above the first “Suppress=” entry add
the following lines:
Save and close the
RavenShield.ini file.
Next, we need to update our map
.INI file so that our map will be available under the
appropriate game types from the in-game menu and setup
screens. Open up the map .INI file in notepad. Change the
second line from “version=2” to “version=3”. Add a new line
after that, with the following text:
In the GameTypes section, add
the following lines:
In the “Adversarial game mode
Uniform” section, add the following lines (of course, you can
change
the uniform names if you want to):
Save the map .INI file, but keep
it open. Now open your map in UnrealED and let’s get started.
It’s important to understand that at this point every actor we
added to our map in the RvS version of the editor will have
every new Athena Sword game type automatically enabled. If we
attempted right now to launch our map in the new game types,
the map would load fine. However, we’d see terrorists,
hostages, bombs, and extraction zones in every new game type,
even those where they don’t belong. So, in reality, a lot of
what we’ll be doing in this tutorial is simply disabling all
but the appropriate game types from key actors. (Also, because
of this fact, I recommend you work through the entire tutorial
before testing the map in-game.)
Countdown
The Countdown game type is identical to the Single
Player Story Mission game type, with the added challenge of a
time limit. You must have at least one R6MissionObjective
specified in the Level Properties or the player will not be
able to successfully complete the mission.
Open the
“Visibility” menu and select “Story Mode (Campaign). Now, go
through your map and [Ctrl]+Left Click to select every mission
objective related actor that is still visible. This includes
insertion zones, extraction zones, terrorists, hostages,
bombs, interactive laptop computers, R6ObjectiveIcons, and
even green smoke emitters (and possibly even include static
meshes that are set to only appear in Mission mode.) Once all
of these actors are selected together, open the Actor
Properties window and expand “R6Availability”. Notice that
m_eCountDown is already set to “MFO_Available”, but… uh oh… so
are the other four Athena Sword game types. Let’s change that
now by setting m_eCaptureTheEnemyAdv, m_eKamikaze,
m_eScatteredHuntAdv, and m_eTerroristHuntAdv to
“MFO_NotAvailable”.
Now let’s set the countdown timer.
Go back to your map .INI file and add the following lines
under the “GameTypes=” section.
These
lines, of course, specify the number of seconds the player has
to complete the Countdown mission in each difficulty level. If
you do not add these lines to the .INI file, the Countdown
mission will use a default setting of 500 seconds on Recruit,
400 seconds on Veteran, and 300 seconds on Elite. Also note
that custom countdown times appear to be ignored (and the
default times used) unless the map files are placed in
the “\Mods\AthenaSword\maps\” directory. (I assume this is
because the “ASGame.u” file is in the “\AthenaSword\system\”
directory and it can’t find and reference the code from the
standard RvS “maps” folder.) You can save and close the map
.INI file now.
Terrorist Hunt Adversarial
For the Terrorist Hunt Adversarial game type, it will
usually make sense to simply reuse the player spawns from Team
Survival and the tango placements from single player Terrorist
Hunt. So that’s what we’ll do in this tutorial. (However note
that if you had a large map and wanted to squeeze as much
variety out of it as possible, you certainly could place all
new insertion zones and random tango placements for each game
type.)
Open the “Visibility” menu and select
“Deathmatch (Team)”. Locate and [Ctrl]+Left Click every
R6InsertionZone, for both the red and green teams. Open the
Actor Properties window, expand “R6Availability”, and set
m_eScatteredHuntAdv and m_eCountDown to “MFO_NotAvailable”.
(We’ll leave m_eCapturetheEnemyAdv and m_eKamikaze set to
“MFO_Available” so we can reuse these same insertion zones for
those two game types as well.)
Deselect the
R6InsertionZones. Open the “Visibility” menu and select
“Terrorist Hunt”. Select all of the visible
R6DZoneRandomPoints and R6DzoneRandomPointNodes together. Open
the Actor Properties window, expand “R6Availability”, and set
m_eCaptureTheEnemyAdv, m_eKamikaze, and m_eCountDown to
“MFO_NotAvailable”. (We’ll leave m_eScatteredHuntAdv set to
“MFO_Available” so we can reuse the same random tango
placements for the Scattered Hunt game type.)
Scattered Hunt Adversarial
Scattered
Hunt is identical to Terrorist Hunt Adversarial, except that
players spawn throughout the map, separated from their
teammates. We already took care of the tango placements in the
section above. So now we just need some scattered player
insertion zones: 8 for each team. And I’ve got an idea… let’s
simply reuse our 16 Deathmatch insertion zones!
Open
the “Visibility” menu and select “Deathmatch”. Locate and
select together 8 of the 16 insertion zones. Try not to select
any two that are right next to each other. Open the properties
window, and expand "Display". Select "Texture" and click the
"..." button (if the texture browser doesn't automatically
open, open it manually). Browse to "R6_Common.MP_Green". Go
back to the properties window and click the "Use" button.
Next, expand “R6Availability” and set m_eKamikaze,
m_eCapturetheEnemyAdv, m_eTerroristHuntAdv, and m_eCountDown
to “MFO_NotAvailable”.
Deselect those insertion zones
and now select the remaining 8 that are still displaying the
yellow “D”. Open the properties window, and expand "Display".
Select "Texture" and click the "..." button (if the texture
browser doesn't automatically open, open it manually). Browse
to "R6_Common.MP_Red". Go back to the properties window and
click the "Use" button. Expand “R6Availability” and set
m_eKamikaze, m_eCapturetheEnemyAdv, m_eTerroristHuntAdv, and
m_eCountDown to “MFO_NotAvailable”. Finally, expand "Rainbow"
and set m_iInsertionNumber to "1" (since these spawns are for
the red team).
You may want to carefully check the
placement of each insertion zone for Scattered Hunt. Not only
should each player insertion be out of sight of other player
insertions, it should also be out of sight of any random tango
insertions. This can be tough to pull off on a small to medium
sized map.
Note that you do not need to share/reuse
the Deathmatch insertion zones if you don’t want to. You can,
with just a bit more work, create 16 brand new insertion
zones, scatter them throughout the map, and set their
availability to “MFO_NotAvailable” for every game type other
than m_eScatteredHuntAdv. (If you've forgotten how to create
multiplayer insertion zones from scratch, just review the
“Adversarial Team Survival” section of my RvS
Game Types tutorial.)
Capture the Enemy
We’ve already set the map to reuse the same player
insertions for Capture the Enemy that it was already using for
Team Survival. And that’s all that needs to be done to enable
Capture the Enemy mode!
Kamikaze
Once
more, we’ve already set the map to reuse the same player
insertions for Kamikaze. So now we just need to place a
detonator and defusing kit. Open the “Visibility” menu and
select “Kamikaze” so we can see where the player insertion
zones we are using are located. In the static mesh browser,
open "LumberYard.usx". You may need to navigate folders a bit,
since this package is located in the
“\RavenShield\Mods\AthendaSword\StaticMeshes\” directory.
Choose “barilles” and select “baril04_m8”. Right click on the
ground near the green team insertions and choose “Add Static
Mesh: ‘Lumberyard_SM.barilles.baril04_m8'”. Position the
barrel so it sits flat on the ground.
Now open the
Actor Classes browser, expand "R6InteractiveObject |
R6IActionObject | R6IOObject", and select "R6IOBomb". Right
click on top of the barrel and choose "Add R6IOBomb Here".
Open the properties for the bomb and expand “Display”. Select
StaticMesh and then click the "..." button. With the
“Lumberyard_SM” package still selected, choose “Kamikaze”, and
select “LapTop”. Return to the properties window and click the
"Use" button. Expand “R6ActionObject”. Set m_eAnimToPlay to
“BA_ArmBomb”. Set m_fExplosionRadius, m_fKillBlastRadius, and
m_iEnergy to “0”. Set m_szIdentityID to “Detonator”. Expand
“R6Availability” and set every game type to “MFO_NotAvailable”
except for m_eKamikaze. Exit the properties window and
reposition the laptop, if necessary, so that it sits properly
on the barrel.
Let's place a reference icon so new
players can use the in-game map to find the detonator. Open
the Actor Classes browser, expand "R6ReferenceIcons", and
select "R6ObjectiveIcon". Right click on the ground near the
barrel and choose "Add R6ObjectiveIcon Here". Open the
properties window, and expand "Display". Select Texture and
click the "..." button (if the texture browser doesn't open
automatically, open it manually). Browse to
"R6Planning.Icons.PlanIcon_Bomb_A". Return to the properties
window and click the "Use" button. Expand "R6Availability" and
set every game type to "MFO_NotAvailable" except for
m_eKamikaze. Expand "R6Planning". Set m_iPlanningFloor_0 and
m_iPlanningFloor_1 to the proper floor (for example, if the
detonator is located on floor 100, enter “100”). Drag this
icon directly over the detonator and raise it off the floor a
bit.
Good job. Now let’s create the defusing kit.
Select the barrel, laptop, and ReferenceIcon together. Press
[CTRL]+w, and drag the three new objects all the way across
the map to where the red team insertions are placed. Open the
properties for the new laptop and expand “R6ActionObject”.
Change bIsActivated to “True”, change m_eAnimToPlay to
“BA_DisarmBomb” and change m_szIdentityID to “DefusingKit”
Open the properties for the new ReferenceIcon and expand
"Display". Select Texture and click the "..." button (if the
texture browser doesn't open automatically, open it manually).
Browse to “R6Planning.Icons.PlanIcon_Bomb_B". Return to the
properties window and click the "Use" button.
It’s
important to note that while we used a laptop for both the
detonator and the defusing kit in this tutorial, you can be
somewhat creative with the static meshes and interaction
animations that you use (as long as an animation exists that
works with your idea). Also note that in this example, we did
not modify the availability settings of the two barrels, so in
all other game types the barrels will appear, but with no
special significance.
Conclusion
We
still need to do a bit of cleanup. The odds are that there are
a few hostages, insertions zones, bombs, etc. from game types
like Lone Wolf and Coop Hostage Rescue which still have the
Athena Sword game types enabled. If you have a good handle on
what and where everything is in the map that you are tweaking,
this won’t be hard to fix, but it’s easy to miss one or two
actors in a small dark corner of the map. If you want to be
careful and methodical about this, I recommend going one by
one through each of the original RvS game types and disabling
inappropriate availability settings.
For example, to
start out, open the Visibility menu and choose “Bomb”. Now
locate and select every mission objective related actor that
is still visible. Once all of these actors are selected
together, open the Actor Properties window, expand
“R6Availability”, and set m_eCountDown, m_eCaptureTheEnemyAdv,
m_eKamikaze, m_eScatteredHuntAdv, and m_eTerroristHuntAdv to
“MFO_NotAvailable”. Be careful not to accidentally set any
original RvS game types to “MFO_NotAvailable” while you are
doing this. Then, when that’s done, open the Visibility menu
again, move on to the next game type, and work your way
through the whole list. (Don’t worry about Deathmatch, Team
Deathmatch, or Story Mode, since we already handled those in
the course of this tutorial.) Don’t forget to set Visibility
back to “All Mode” when you are done!
I hope you found this tutorial helpful. If there's
anything I've gotten wrong, please let me know and I'll
correct the information. Email me if you have any questions or
mapping issues you'd like to discuss. -Beckett
|