-
(Required) Obelisks
-
(Required) Flags (Blue,
Red, Neutral)
-
Persistent Powerups (Scout,
Guard, Doubler, Ammoregen)
-
(Optional) TA weapons (nailgun,
chaingun, prox-launcher)
The Obelisks are for the big
skulls at each base in Overload mode, and are also used to denote the place to
drop off skulls in harvester mode. It's ALSO used for the central
skull-spawning thing in the center of the map in harvester mode.
Flags are
obvious, but require some work. If
you're converting a CTF map, then there are two possibilities:
-
Simply add the neutral flag in the
center of the map
-
Disable the existing flags,
and define a new set (you'll have to do this if flags show up in non-flag
gametypes). More on this later...
Persistent Powerups are also
fairly obvious; Place a well-balanced set on each side of the map. Make
sure you also denote which team owns that powerup so only that team can pick
them up (more on that below).
And hey, look at that - weapons
are also pretty obvious [grin]. Again - just place them in a
well-balanced manner. Too many weapons make a mess.. and keep in mind
the size of the map. Proxmine launchers on huge maps are generally a bad
idea. It can lead to the server running out of entities.
You must put a
version number at the very top of your spawnvar files like so:
{
"version" "2"
}
Without it, SCTA will cause the
server to abort!
Here are the definitions for the
Obelisks/Flags you'll want to add (I'll explain how to position them below):
{
"classname" "team_blueobelisk"
"angle" "270"
"origin" "736 1240 167"
}
{
"angle" "90"
"classname" "team_redobelisk"
"origin" "736 -2528 167"
}
{
"gametype" "oneflag"
"classname" "team_CTF_neutralflag"
"origin" "-480 736 4"
}
{
"gametype" "harvester oneflag"
"classname" "team_neutralobelisk"
"origin" "768 -636 24"
}
{
"gametype" "oneflag"
"classname" "team_CTF_neutralflag"
"origin" "768 -636 48"
}
Each item is grouped within braces {}. Inside each brace
you have can have any number of lines. Each line consists of a
left-hand-side (LHS) and a right-hand-side (RHS). Each side is enclosed
in double quotes. The LHS contains information about what it is you're
about to define, and the RHS contains the value of the definition. So,
for the first group, you'll see we're defining a classname of team_blueobelisk.
This is the Blue Team's Obelisk. The angle (270) is the direction it
faces. The origin (736 1240 167) is where on the map it is to be
placed. Simple enough. The annoying part is actually placing the
item. I'll discuss how to do that below.
The LHS value of "gametype" means what gametypes to
load this item in. You'll notice that team_blueobelisk doesn't have a
gametype in it.. That's because it has a special exception - TA realizes when
it needs to load it or not. So there's no need to specify a gametype for
blue/red obelisks. Available gametypes are: ctf, oneflag, obelisk, and
harvester.
To define things like Scouts, etc, use the following:
{
"origin" "-596 2588 284"
"spawnflags" "4"
"classname" "item_scout"
}
The others are item_guard, item_doubler, and item_ammoregen.
Notice the "spawnflags" part? This is where you set who can
pick it up. Set it to 2 for the red team, and to 4 for the blue team.
Weapons are like so:
{
"origin" "-708 3388 386"
"classname" "weapon_nailgun"
}
The others are weapon_prox_launcher and weapon_chaingun.
Don't forget some ammo for them! Nailgun ammo is ammo_nails,
prox launcher ammo is ammo_mines, and chaingun ammo is ammo_belt.
There's also the kamikaze
item. Apparently there's some weirdness surrounding it's
definition. Here's the recommended stanza to use for it:
{
"classname" "holdable_kamikaze"
"origin" "508 -1320 920"
"wait" "120"
}
Don't forget
holdable_invulnerability.
What's this "wait"
mean?!?! That's just the respawn time (in seconds) for this item,
overriding the default Q3A holdable respawn time. Note that SCTA CVARs
can override this value. There's also a "random" LHS which
means take "wait" and adjust it plus or minus "random" to
get it's respawn time. So a wait of 60 with random 15 means spawn
between 45 and 75 seconds later.
Here comes the
fun part - flags. The flag definitions I've run into so far look like
so:
// Below is group/stanza number: 43
{
"notfree" "1"
"angle" "360"
"classname" "team_CTF_redflag"
"origin" "736 -2528 184"
}
Here, "notfree" means
don't spawn this in FFA gametypes. However, it will spawn in all other
teamplay games, including overload and harvester. D'oh! So we
need to disable this definition. To do so, simply note it's group/stanza
number (the new bsp2sv.exe now produces the spawnvars with a note as to what
number you're looking at). Now, create your new definition, and add:
"disabled" "##" where "##" is the group/stanza
number.
Here's an example of disabling and re-defining the above flag:
{
"gametype" "ctf oneflag"
"angle" "360"
"classname" "team_CTF_redflag"
"origin" "736 -2528 184"
"disable" "43"
}
Notice how I removed the "notfree"
tag and put a "gametype" tag in there instead. That's a more
accurate way of defining when this flag should be used.
One other note about spawnflags.
If you want to suspend an item in the air, set spawnflags to 1.
If you're having trouble with an
entity not showing up depending on where you are, I've provided the ability to
set the svFlags of an entity; Setting it to 32 marks the entity to broadcast
to all clients. Here's the line you'd use:
"svflags" "32"
That's about all you're gonna play with.. If you're bored
(though I'd like to get the converted maps done and ready first), you can try
to play with other things... just check out the spawnvar files for mpteam1 and
other maps to see what they've got defined.. I won't bother documenting it
here, because that's not the purpose of this document.
To find out where to place items, load up TA and type
/devmap mapname
in the console. That'll load that map with cheats
enabled. Then bind a key to viewpos. Hit the viewpos key where you
think you want to place an item. That'll print something like:
(x y z): a
Where x y and z are the coordinates, and a is the angle (so
make sure you're facing the right direction). Generally angles will be
0, 90, 180, or 270. If it seems off by a few, it's probably just you
pointing in slightly the wrong direction. Stick to using one of those
four values for an angle.
Modify the coordinates as follows (thanks Fender for the tip!)
modify the z component by the following amounts for proper
placement:
red & blue flag 0
neutral flag +125
all obelisks -50
persistent items 0
The SCTA team has converted some
Q3A maps, and we have also created some spawnvars to 'fix' the maps in 3wave
mappack #1 such that the persistent powerups belong to a team. Check
them out here