Sie sind auf Seite 1von 26

-------------tr_walkway_rc2 by Washipato and Wiseguy149

-------------This is a practice map focused on bots walking in straight lines, useful for tra
ining general aim
or special techniques, like airshots, airblast and airstabs... or just fooling a
round
For playing the map, you MUST JOIN THE RED TEAM
If it's your first time with the map, read the "Just starting" section and the "
Notes" section
at the end of the file. Both have very useful information about the map that you
should know
when playing. Read "Special options" to know about strange buttons and options i
n the map.
It's recommended to have the developer console open for this map. You can find h
ow to open it in the
next section.
This map has sv_cheats turned on, so your stats won't be saved :)
********************************************************************************
***************
Just starting
********************************************************************************
***************
---------------------------------------------------------------------------------------------INSTALLING THE MAP
---------------------------------------------------------------------------------------------**Skip this section if you already know how to install the map and open the cons
ole**
Copy the .bsp file from this rar into
C:\Program Files\Steam\steamapps\<youraccoutname>\team fortress 2\tf\maps
Replace <YOURSTEAMID> with your steamID, the one you log in with
Also copy this readme file too, in case you want to know extra information about
the map
To play it, open TF2, press "Create server" and in map choose "tr_walkway_rc2".
Be sure to
choose to have more than 17 players slots so the bots can join.
JOIN THE RED TEAM
---------------------------------------------------------------------------------------------OPENING THE CONSOLE
---------------------------------------------------------------------------------------------It's very important to have the console opened for binding keys and loading alia

ses. This section


explains how to open it, in case you don't know how to.
Go to the "My games" tab in steam and right-click the "Team Fortress 2" game. Fr
om the menu,
choose "Properties" and then click the "Set launch options..." button. In the te
xt box, add
"-console" without the quotes. The next time you open the game, the console will
be open.
---------------------------------------------------------------------------------------------CONTROL ROOM
---------------------------------------------------------------------------------------------It's possible to customize several options, like which classes spawn, how fast t
hey walk, how long
it takes to deploy more bots in the map, etc. Those options can be changed insid
e the "control room"
firing or hitting the buttons. There are 5 kind of buttons, all of them intuitiv
e.
1 light: Stand in front of it to know what it does. Shoot or hit the button to a
ctivate it.
2 lights: Stand in front of it to know what it changes. The feature can be turne
d off and on. Green
light means that the feature is activated, red that it's deactivated.
3 lights: Stand in front to know what option is actually selected. Shoot or hit
the button to switch
between the different options. Doing this changes the text to show the actual st
ate.
Plus button: raises a certain variable (movement speed, deploy time or launch-pa
d power)
Minus button: lowers a certain variable (movement speed, deploy time or launch-p
ad power)
---------------------------------------------------------------------------------------------TELEPORTING AROUND
---------------------------------------------------------------------------------------------The players can teleport around the map using the console command "tr_teleport".
Hit or shoot the
yellow and black blocks around the map to change the teleport destination. Bind
tr_teleport to a
key of your keyboard to help you to move faster and lose less time walking. To d
o it, write
in the console:
bind <KEY> "tr_teleport"
Replace <KEY> to any key you want and then press enter to load it. Press the sel
ected key
to activate the teleport.
There are more commands for the map that can be useful to bind, like "tr_attacko
nce"
and "tr_stop". More information about these in the console commands section.

********************************************************************************
***************
I want to know more
********************************************************************************
***************
---------------------------------------------------------------------------------------------SPECIAL OPTIONS
---------------------------------------------------------------------------------------------In this section I will explain uses for some features in the map that are not so
obvious
like the rest
**Invisible walls**
Those are the walls at the sides of the track to make the bots stay on the walkw
ay. You can turn
them off to practice airshots. The first option of turning the walls off is to h
urt every bot outside
the walkway. The seconds turns the walls off, but don't damage bots that escaped
from the walkway.
**Headshot training spawn button**
The bots and the way they move are not perfect. They play the "run" animation wh
en moving, but their
hitbox (the part of them that detects when they are shot) stay in the "standing"
animation.
There is no known way to fix this, but the impact that it has on gameplay can be
lowered using
the "Spawn bots for headshot training" button. The bots will be facing a way so
their heads will
match better with their hitbox. Only engineers, snipers, spies and demomen work
and it's not perfect
**Aim up + attack**
Useful for practicing long range pipebombs airblast or airstabs with pyros
**Aim down + attack**
Real soldiers aim for your feet, you can choose to simulate that behavior. Aim d
own can
also be used to practice "airblast jumps"
**Bots ammount**
If your computer can't manage the map, change the maximum ammount of bots,
increasing the overall performance
**tr_stop and no speed option+tr_attackonce**
Stopping the bots can be useful to practice airblast and airblast jumps.
**Resupply off**
Turn it off to practice ammo management or if you want to play little games wher
e there
is a chance of dying
**Resupply off+attack**
This will make the bots attack, to add some "realism" and challenge to your prac
tice
Note* Stay away from pyros...

**Hurt bots**
One of the most useful options. Light classes will spawn with 1 hp when you enab
le it.
Pyros will have 26 HP. This can be very useful to know how much damage are you d
oing
with every shot. It s also great for fooling around.
**Launch pad random power and trajectory**
By default, the launchpad changes his power (how strong it pushes the bots) and
his
trajectory (the initial strength s angle) in small lapses of time. Airshooting bec
omes
more realistic with these features on, but the random power can be turned off to
select
which one you want and the random trajectory can be disabled too to get the same
flying
pattern for every bot.
**Raise and lower the hill**
Lower the hill if it's bothering you when training airshots or you want the bots
to run
in a straight line.
**Slope change**
Useful for training stairstabs.
**...***
Just for fun
---------------------------------------------------------------------------------------------EXAMPLE GAMEMODES
---------------------------------------------------------------------------------------------**Rocket+shotgun training**
Configuration:
- Spawn light classes
- Play soldier
Fire one rocket under a bot. When they are flying in the air shoot him with the
shotgun. Try approaching the bots from
different angles and distances. This is a useful technique that can be used in r
eal servers. It's possible to use scouts,
spies or medics too to practice.
**Airstab training**
Configuration:
- Bind tr_teleport to any key (for example, bind f tr_teleport)
- Play spy
Stand in a catwalk or somewhere high where bots walk (preferably near a black an
d yellow square). When a bot comes nearby,
drop or jump over him, crouch and stab him as soon as you touch his back. If it'
s done well, you will do a backstab. For
trying again, instead of walking to the spot where you started, shoot the yellow
and black square and press the key you
bound to tr_teleport. This will teleport you to that position (note that the tel

eport don't change after using it, this


means that you don't need to shoot the square again every time you want to telep
ort to that place). The airstab technique
is very useful to all spies, so its recommended that you know the timing for usi
ng it in real games.
Notice that you can change the speed to scout to make the training more difficul
t. You can also use the teleporters located
on the beams in the roof for airstabing.
NOTE: airstabs has many names, like overhead stab, height advantage, etc. Some p
eoples says that they don't even need a name.
I used airstab and stairstab to differentiate the gamemodes.
**Sniper training**
Configuration:
- Spawn bots for headshot training
- Any dodging option (jump, strafe or back and forth)
- Play sniper
Find a good spot and practice. The bots spawned for headshot training work quite
well for shooting them from the side,
compared to normal spawns. Find a quiet place and shoot them to the head. You ca
n also stand on the track and do twitch-shots.
**Basic air-strafing**
Configuration:
- Remove all bots
- Launch-pad
- No random power
- High launch-pad power
Air strafing is useful for increasing rocket jump distance and decreasing the ch
ances of being hit
while flying. This readme will not go deep in this move but basically, you need
to press the strafe key
without pressing neither "w" or "a" and slowly move the mouse in the direction o
f the strafe key
(if you are strafing with "a", move slowly the mouse to the left). Normally, to
practice this
technique you need to to rocket jump to get the initial impulse. With the launch
pad, you can get
the initial impulse easier and practice airstrafing after being launched. For ex
ample, try to get
to the catwalks BEHIND of the launchpad or disable the random trajectory and usi
ng air strafe,
get a bigger distance when traveling in a straight line.
**Stairstab training**
Configuration:
- Play spy
Stand on the slope where the bots walk uphill. When one of them is coming, jump
over him, crouch, spin 180 and hit him
with the knife when he is below you. Hopefully you will land a backstab. This is
a famous trick, hard to pull off
but really rewarding, especially when it s done to a real player. You can change t
he movement speed to scout to increase

the difficulty. Don't forget to change the slope too!


**ULTIMATE Sniper training**
Configuration:
- Spawn bots for headshot training
- Bots move back and forth
- Bots jump
- Bots strafe
- Short strafe time
- Scout speed
- Play sniper
Gamemode designed to make snipers cry (or feel godlike)
**Airblast training**
Configuration:
- Spawn airblast training classes
- Make bots attack
- Hurt bots (optional)
- Bots aim down (optional)
- Play pyro with default flamethrower
Practice rockets and pipebombs reflection. Hurt bots will make them easier to ki
ll and bots
aim down gives soldiers a more realistic behavior.
**Revolver training**
Configuration:
- Random bots
- Bots move back and forth
- Bots strafe
- Long strafe timer
- Play spy
Train aim with the revolver. Snipe with the revolver low health classes. Jump ar
ound a move
like crazy for making the practice more realistic
**Airblast jump**
Configuration:
- Spawn soldiers
- Bots aim down
- Stop movement button or tr_stop
- tr_attackonce bound to any key (for example, bind f tr_attackonce)
- Critical hits off (optional)
- Play pyro with default flamethrower
Use the stop movement button after some soldiers are in the track to make them s
top. You can
also use tr_stop console command. Find a soldier with an open space in front of
him, preferably
at the beginning of the walkway and press the key binded to tr_attackonce. Posit
ion yourself
near the rocket hit and closer to the soldier. To airblast jump, make the bot fi
re, when the
rocket is about to hit you, jump, crouch and airblast the rocket under you. Try
to reach high

places, like catwalks. Critical hits are turned off just in case you receive a c
ritical rocket
to your face, but it can be turned on to perform high jumps. Use bot_refill to g
ive the soldiers
ammo and health.
**Hard airstab**
Configuration:
- Spawn pyros
- Bots aim up
- Make bots attack
- Resupply off
- Play spy
It's just like stairstabs, but it makes them a lot more challenging. This also s
imulates real
pyros behaviour and let you see the real area of effect from the flame. Fail onc
e and you will
be on fire, rushing to the medkit. NOTE: sometimes the pyro's flame will be invi
sible. To fix
it you need to turn on and off the bot's attack (binding tr_attack to some key h
elps too)
---------------------------------------------------------------------------------------------EXTRA BOTS
---------------------------------------------------------------------------------------------The map will always spawn 16 bots. More bots can be spawned manually and will be
teleported to the map.
If you want more bots, spawn them using:
bot -team 0 -name <name>
For kicking them, use
kick <name>
---------------------------------------------------------------------------------------------BOT COMMANDS
---------------------------------------------------------------------------------------------Valve included some bot commands inside the game. Here I list some of those comm
ands that can
be used inside the map.
******************************
Add more bots:
bot -team <teamname/number> -class <classname> -name <botname>
<teamname/number>: 0 blu, 1 red
<classname>: Demoman, Engineer, HeavyWeapons, Medic, Pyro, Scout, Soldier, Snipe
r, or Spy
<botname>: name of the bot
******************************
******************************
kick <bot>: kick bot with <bot> name

******************************
******************************
bot_teleport <botname> <X> <Y> <Z> <Pitch> <Yaw> <Roll>
Teleports a specified bot to a given coordinate. Map coordinates of where you ar
e standing
can be found by typing getpos in the console.
Example: getpos output
setpos -418.444855 3314.872070 -94.027405;setang 13.508876 -2.970791 0.000000
To use it in bot_teleport to teleport mybot there:
bot_teleport mybot -418.444855 3314.872070 -94.027405 13.508876 -2.970791 0.0000
00
******************************
******************************
bot_refill: Refills ammo, health and metal to bots
******************************
******************************
bot_selectweaponslot <botname> <n>
This makes specified bot select a specified weapon. 0 = primary; 1 = secondary;
2 = melee
******************************
Source and more info: http://tf2wiki.net/wiki/Bots
---------------------------------------------------------------------------------------------CONSOLE COMMANDS
---------------------------------------------------------------------------------------------All the options
h this
feature you can
ime without
looking for all
ault TF2
commands, don't

inside the control room can be accessed by console commands. Wit


create your own configurations and load them on the map at any t
the buttons that you need. Some of them are mirrors from the def
use valve ones here because it can make buttons to malfunction.

--- Console only commands --tr_teleport


|| Teleports the player to the last teleport destina
tion selected
tr_help
|| Shows the tr_ cvar list
tr_loadcvars
|| Enables all cvars (for clients)
tr_attackonce
|| Makes all bots attack once (turns off constant at
tack)
tr_deployonce
|| Deploy one bot in the track
--- Bots management --tr_kill
tr_kick

|| Kill all bots


|| Kick all bots

tr_maxbots_up
tr_maxbots_down

|| Raises maximum ammount of bots on the walkway


|| Lowers maximum ammount of bots on the walkway

tr_default
l height and slope)

|| Reset map configurations (except "less bots", hil

tr_maxbots_16

|| Set the maximum ammount of bots to 16 (default)

tr_maxbots_14
tr_maxbots_12
tr_maxbots_10
tr_maxbots_08
tr_maxbots_05
tr_maxbots_03
tr_maxbots_01
tr_maxbots_00

||
||
||
||
||
||
||
||

tr_firewall
tr_firewall_ON
rack
tr_firewall_OFF

|| Toggles the firewall


|| Kill the bots when they reach the middle of the t

--- Spawn options --tr_spawn_random


tr_spawn_all
tr_spawn_light
tr_spawn_headshot
headshot correction
tr_spawn_comp
tr_spawn_airblast

Set the maximum ammount


Set the maximum ammount
Set the maximum ammount
Set the maximum ammount
Set the maximum ammount
Set the maximum ammount
Set the maximum ammount
Do not spawn bots

of
of
of
of
of
of
of

bots
bots
bots
bots
bots
bots
bots

to
to
to
to
to
to
to

14
12
10
8
5
3
1

|| Do not kill the bots (default)


||
||
||
||

Spawn
Spawn
Spawn
Spawn

random classes (starting bots)


2 bots of every class
engineers, scouts, snipers and spies
engineers, spies, snipers and demomen with

|| Spawn scouts, soldiers, demomen and medics


|| Spawn soldiers and demomen

tr_spawn_pyros
tr_spawn_scouts
tr_spawn_heavies
tr_spawn_medics
tr_spawn_spies
tr_spawn_demomen
tr_spawn_soldiers
tr_spawn_engineers
tr_spawn_snipers

||
||
||
||
||
||
||
||
||

Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn

pyros
scouts
heavies
medics
spies
demomen
soldiers
engineers
snipers

tr_spawn_1pyro
tr_spawn_1scout
tr_spawn_1heavy
tr_spawn_1medic
tr_spawn_1spy
tr_spawn_1demoman
tr_spawn_1soldier
tr_spawn_1engineer
tr_spawn_1sniper
tr_spawn_1random

||
||
||
||
||
||
||
||
||
||

Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn
Spawn

one
one
one
one
one
one
one
one
one
one

--- Movement speed --tr_speed_up


tr_speed_down

|| Raises movement speed


|| Lowers movement speed

tr_speed_no
||
tr_speed_snail
||
tr_speed_heavy
||
tr_speed_soldier
||
tr_speed_demoman
||
tr_speed_normal
||
tr_speed_medic
||
tr_speed_scout
||
tr_speed_jet
||
For chosing other speeds, use:
ent_fire walk addoutput "speed

pyro
scout
heavy
medic
spy
demoman
soldier
engineer
sniper
random bot

Stops movement
Snail movement speed
Heavy movement speed
Soldier movement speed
Demoman movement speed
Average movement speed (default)
Medic movement speed
Scout movement speed
Jet movement speed
xxx"

tr_stop
|| Stops spawns and movement. Enter this command aga
in to resume spawning and movement (turns off all dodge options)
--- Deploy time --tr_deploy_up
tr_deploy_down

|| Raises deploy time


|| Lowers deploy time

tr_deploy_no
||
tr_deploy_05
||
tr_deploy_10
||
tr_deploy_15
||
tr_deploy_20
||
tr_deploy_30
||
ault)
tr_deploy_40
||
tr_deploy_60
||
tr_deploy_120
||
For choosing other times, use:
ent_fire spawntimer refiretime

Stops deploy
Set 0.5 seconds between bots spawns in the map
Set 1 second between bots spawns in the map
Set 1.5 seconds between bots spawns in the map
Set 2 seconds between bots spawns in the map
Set 3 seconds between bots spawns in the map (def
Set 4 seconds between bots spawns in the map
Set 6 seconds between bots spawns in the map
Set 12 seconds between bots spawns in the map
<time>

--- Bots dodge options --tr_jump


|| Toggles bots jump
tr_jump_ON
|| Forces the bots to jump
tr_jump_OFF
|| Makes the bots stop jumping (default)
You can modify the time between jumps using (default 1.75):
ent_fire jump_timer refiretime <time>
tr_back
tr_back_ON
tr_back_OFF

|| Toggles bots "back and forth" movement


|| Turns "back and forth" movement on
|| Turns "back and forth" movement off (default)

tr_strafe
tr_strafe_ON
tr_strafe_ONR
tr_strafe_OFF

||
||
||
||

Toggles bots strafe movement


Make bots strafe left and right
Make bots strafe randomly
Turns bots strafe movement off (default)

tr_strafe_timer
|| Switch between
tr_strafe_timer_default
|| Set the strafe
tr_strafe_timer_long
|| Set the strafe
tr_strafe_timer_short
|| Set the strafe
For chosing other times, use:
ent_fire strafe_timer refiretime <time>
tr_crouch
tr_crouch_ON
tr_crouch_ONR
tr_crouch_OFF
--- Bots actions --tr_attack
tr_attack_ON
ceattack 1)
tr_attack_ON3
tr_attack_ONR
tr_attack_OFF
_forceattack 0 ) (default)
tr_hurt
tr_hurt_ON
he track

||
||
||
||

the different strafe times


time to 1 second (default)
time to 2 seconds
time to 0.5 seconds

Toggles bots crouch option


Make bots crouch
Make bots crouch randomly
Bots don't crouch (default)

|| Toggles bots attack


|| Forces the bots to attack (same effect as bot_for
|| Forces the bots to attack once every 3 seconds
|| Forces the bots to attack randomly
|| Forces bots to stop attacking (same effect as bot
|| Toggles bots hurting
|| Hurt the bots by 124 damage at the beginning of t

tr_hurt_ONlow
e track
tr_hurt_OFF
tr_aim
tr_aim_default
tr_aim_up
tr_aim_down
For more customization in

|| Hurt the bots by 75 damage at the beginning of th


|| Stop hurting bots (default)
||
||
||
||
bot

Switchs between the bots aim direction options


Makes bots aim forward (default)
Makes bots aim up
Makes bots aim down
aiming, go to the "Customize" section

tr_botresupply
tr_botresupply_ON
tr_botresupply_OFF

|| Toggles bot resupply


|| Bots regenerate health and ammo constantly
|| Disables the bot resupply (default)

tr_spam
tr_spam_none
tr_spam_dispenser
tr_spam_spy

||
||
||
||

--- Map options --tr_crits


tr_crits_ON
riticals 1) (default)
tr_crits_OFF
criticals 0)

Try it
Nothing (default)
Try it
Try it

|| Toggles crits
|| Turn critical hits on (same effect as tf_weapon_c
|| Turn critical hits off (same effect as tf_weapon_

tr_resupply
tr_resupply_ON
tr_resupply_OFF

|| Toggles resupply
|| Enables the resupply (default)
|| Disables the resupply

tr_panic
tr_panic_ON
tr_panic_OFF

|| Toggles panic mode


|| Enables panic mode
|| Disable panic mode

tr_grav
tr_grav_default
tr_grav_low
tr_grav_verylow

||
||
||
||

tr_walls
tr_walls_ON
tr_walls_OFF
the walkway
tr_walls_OFFnd
kway

|| Toggles invisible walls at the sides of the track


|| Turn walls on (default)
|| Turn walls off and damage bots that fall outside

tr_deploy_rand
tr_deploy_rand_ON
default)
tr_deploy_rand_OFF

|| Toggles random deploy position


|| Deploy bots in a random position in the walkway (

Switches between the gravity options


Changes to 800 gravity (default)
Changes to 600 gravity
Changes to 400 gravity

|| Turn walls off, don't damage bots outside the wal

|| Don't deploy bots randomly

tr_deploy_left
|| Move the deploy position to the left
tr_deploy_right
|| Move the deploy position to the right
tr_deploy_stop
|| Stop the deploy position is movement
To choose a specific deploy position, you need first to set a speed to the
deployer entity using:
ent_fire mytrain setspeed 200
Then, it's possible to move it to a position between 0.0 and 1.0 with:
ent_fire mytrain setposition X

tr_deployonlp
tr_deployonlp_ON
tr_deployonlp_OFF

|| Toggle bots being deployed on the launch-pad


|| Deploy bots on the launch-pad
|| Deploy bots at the start of the track (default)

--- Retractable platform --tr_platform


|| Toggles retractable platform
tr_platform_ON
|| Extend the retractable platform
tr_platform_OFF
|| Hide the retractable platform
tr_platform_up
tr_platform_down
tr_platform_left
tr_platform_right
tr_platform_stop

||
||
||
||
||

--- Hill and ramp --tr_hill_up


tr_hill_down

|| Move hill up
|| Move hill down

tr_ramp_up
tr_ramp_down

|| Move ramp up
|| Move ramp down

tr_ramp_full
tr_ramp_full_up
tr_ramp_full_down

|| Hide or lift the ramp


|| Lift the ramp fully
|| Hide the ramp

--- Launchpad --tr_lp


tr_lp_ON
tr_lp_OFF

|| Toggles the launch-pad on and off


|| Turns the launchpad on
|| Turns the launchpad off (default)

tr_lp_randpow
tr_lp_randpow_ON
efault)
tr_lp_randpow_OFF

Move
Move
Move
Move
Stop

the
the
the
the
the

platform
platform
platform
platform
platform

up
down
left
right
movement

|| Toggles launch-pad random power


|| Changes the launchpad power 2 times per second (d
|| Turns random launchpad power off

tr_lp_randtraj
|| Toggles launch-pad random trajectory
tr_lp_randtraj_ON
|| Turns on random trajectory, overrides the power m
eter configuration (default)
tr_lp_randtraj_OFF
|| Turns off random trajectory
tr_lp_traj_up
tr_lp_traj_down
tr_lp_traj_stop

|| Raises the trajectory of the launch-pad


|| Lowers the trajectory of the launch-pad
|| Stops the trajectory change of the launch-pad

tr_lp_pow_up
tr_lp_pow_down

|| Raises launch-pad power


|| Lowers launch-pad power

tr_lp_pow_1
|| Set
tr_lp_pow_2
|| Set
tr_lp_pow_3
|| Set
tr_lp_pow_4
|| Set
tr_lp_pow_5
|| Set
tr_lp_pow_6
|| Set
tr_lp_pow_7
|| Set
tr_lp_pow_8
|| Set
tr_lp_pow_9
|| Set
For choosing other powers, enter:
ent_fire launchpad_power addoutput
power is not selected)

launch-pad
launch-pad
launch-pad
launch-pad
launch-pad
launch-pad
launch-pad
launch-pad
launch-pad

power
power
power
power
power
power
power
power
power

to
to
to
to
to
to
to
to
to

1000
1100
1250
1350
1500 (default)
1600
1700
1850
1950

"speed xxxx" (this only works when the random

--- Sentry room --tr_sentry1


tr_sentry2
tr_sentry3
tr_disp1
tr_disp2
tr_disp3
tr_blocks
tr_blockl
tr_deploengi
tr_changeteam
tr_eraseone
tr_eraseall
tr_sr_up
tr_sr_down
tr_sr_left
tr_sr_right
tr_sr_cw
tr_sr_ccw

||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||
||

tr_sr
tr_sr_ON
tr_sr_OFF

|| Toggle sentry room


|| Activate sentry room
|| Deactivate sentry room (default)

tr_wrench
tr_wrench_ON
tr_wrench_OFF
h (default)

|| Toggle wrench attack


|| Forces all engineers to attack with the wrench
|| Makes the engineers stop attacking with the wrenc

Create a level 1 sentry


Create a level 2 sentry
Create a level 3 sentry
Create a level 1 dispenser
Create a level 2 dispenser
Create a level 3 dispenser
Create a small block
Create a large block
Deploy an engineer
Change the team of the deployed buildings
Destroy everything under the spawner
Destroy everything in the sentry room
Move spawner up
Move spawner down
Move spawner to the left
Move spawner to the right
Turn the spawner clockwise
Turn the spawner counter-clockwise

--- Teleport destinations --tr_tele_0


|| Changes the teleport destination
tr_tele_1
|| Changes the teleport destination
tr_tele_2
|| Changes the teleport destination
tr_tele_3
|| Changes the teleport destination
tr_tele_4
|| Changes the teleport destination
tr_tele_5
|| Changes the teleport destination
tr_tele_6
|| Changes the teleport destination
tr_tele_7
|| Changes the teleport destination
tr_tele_8
|| Changes the teleport destination
tr_tele_9
|| Changes the teleport destination
tr_tele_10
|| Changes the teleport destination
By the way, you can use the cheat command tr_iwantmyhoovy to disable the restric
tion for one
of the easter eggs ;)
---------------------------------------------------------------------------------------------ALIASES
---------------------------------------------------------------------------------------------You can enter a string of these commands using a simple alias and change between
different
ways of playing the map. Alias are used to call a group of commands and are very
useful for
general scripting in the source engine.
Example:

Enter this string in the console to create the "tr_airblast" alias:


alias tr_airblast "tr_default; wait 10; tr_spawn_airblast; tr_deploy_4; tr_attac
k_ON; tr_speed_heavy; tr_hurt_ON"
Copy and paste the whole sentence in the console and press enter. This will crea
te the
"tr_airblast" alias, which you can use anytime until you close TF2.
Entering this alias in the console (that
uotes and
pressing enter) will set every option to
n and
force them to attack and move slower. It
nds and hurt
them by 124 (soldiers will start with 76
and you
will have a perfect setup for practicing

is, writing "tr_airblast" without the q


default, then spawn soldiers and demome
will also make them appear every 4 seco
hitpoints and demomen with 51). Go pyro
airblast.

Another example would be:


alias tr_hardstab "tr_default; wait 10; tr_spawn_pyros; tr_resupply_OFF; tr_atta
ck_ON; tr_aim_up"
You can practice stairstabs (or how you like to call them) with any class or spe
ed, but with this
alias pyros will spawn firing their flamethrowers aiming upwards and resupply wi
ll be turned off, making
the practice a bit more challenging.
********************************************************************************
***************
The hard part of the walkway
********************************************************************************
***************
---------------------------------------------------------------------------------------------CODING SYSTEM
---------------------------------------------------------------------------------------------The map features programming tools. Though it's hard to use and counter-intuitiv
e, it's a
more powerful version of the scripts that come with TF2 by default and let you c
reate simple testing
tools and mini-games inside the walkway. It has 5 variables that can be increase
d, decrease, compared
and reset. It also has 3 timers, a customizable buttons and text. All of these c
an be manipulated
using console commands.
The code is case sensitive. Most commands are aliases, but some others are ent_f
ire commands
*************************************************************************
Events
*************************************************************************
Events are the response of the coding system. They are commands that are loaded
in the console.

There is an event after comparing 2 variables, when a bot walks to the end of th
e walkway, when
a timer reach zero and so on. All of them have the form:
==================
tr_ON<event>
==================
For example, tr_ONEQUAL is loaded in the console every time 2 variables are comp
ared and they are equal
All events don't have any effect in the game. The user must program them. To do
this, use:
==================
alias tr_ON<event> "<action>" // Will do <action> every time the <event> happens
alias tr_ON<event> // Will do nothing when the <event> happens
==================
For example, every time the timer A reaches zero, deploy a bot in the walkway
==================
alias tr_ONTIMERA "tr_deployonce"
==================
More than one commands can be issued to a single event. This can be used to modi
fy the event that
just happened. Here, after the timer A is activated, wait and make every bot att
ack once and
then set the next activation to do nothing:
==================
alias tr_ONTIMERA "wait 120; tr_attackonce; alias tr_ONTIMERA"
==================
Events are the core of the system. If you want or need, you can activate them li
ke any command using
==================
tr_ON<event>
==================
Complete list of events and when they trigger:
==================
Bot positions:
tr_ONSTART: a bot enters the start part of the walkway
tr_ONMID: a bot enters the middle part of the walkway
tr_ONEND: a bot enters the end of the walkway
tr_ONLEAVE: a bot leaves the walkway
Timers:
tr_ONTIMERA:
tr_ONTIMERB:
tr_ONTIMERC:
tr_ONTIMERD:

timer
timer
timer
timer

A
B
C
D

runs
runs
runs
runs

out
out
out
out

Comparer:
tr_ONCMPEQUAL: X=Y after calling tr_CMP
tr_ONCMPNOTEQUAL: X=/=Y after calling tr_CMP
tr_ONCMPGREATERTHAN: X>Y after calling tr_CMP
tr_ONCMPLESSTHAN: X<Y after calling tr_CMP
Variables:

tr_ONAEQUAL: A is equal than his compare value after changing the value of A
tr_ONANOTEQUAL: A is not equal than his compare value after changing the value o
f A
tr_ONAGREATERTHAN: A is greater than his compare value after changing the value
of A
tr_ONALESSTHAN: A is less than his compare value after changing the value of A
tr_ONBEQUAL: B is equal than his compare value after changing the value of B
tr_ONBNOTEQUAL: B is not equal than his compare value after changing the value o
f B
tr_ONBGREATERTHAN: B is greater than his compare value after changing the value
of B
tr_ONBLESSTHAN: B is less than his compare value after changing the value of B
tr_ONCEQUAL: C is equal than his compare value after changing the value of C
tr_ONCNOTEQUAL: C is not equal than his compare value after changing the value o
f C
tr_ONCGREATERTHAN: C is greater than his compare value after changing the value
of C
tr_ONCLESSTHAN: C is less than his compare value after changing the value of C
tr_ONDEQUAL: D is equal than his compare value after changing the value of D
tr_ONDNOTEQUAL: D is not equal than his compare value after changing the value o
f D
tr_ONDGREATERTHAN: D is greater than his compare value after changing the value
of D
tr_ONDLESSTHAN: D is less than his compare value after changing the value of D
tr_ONEEQUAL: E is equal than his compare value after changing the value of E
tr_ONENOTEQUAL: E is not equal than his compare value after changing the value o
f E
tr_ONEGREATERTHAN: E is greater than his compare value after changing the value
of E
tr_ONELESSTHAN: E is less than his compare value after changing the value of E
tr_ONBUFFEREQUAL: BUFFER is equal than his compare value after changing the valu
e of BUFFER
tr_ONBUFFERNOTEQUAL: BUFFER is not equal than his compare value after changing t
he value of BUFFER
tr_ONBUFFERGREATERTHAN: BUFFER is greater than his compare value after changing
the value of BUFFER
tr_ONBUFFERLESSTHAN: BUFFER is less than his compare value after changing the va
lue of BUFFER
Switch:
tr_ONCASE00: BUFFER=0 after calling a tr_CASE
tr_ONCASE01: BUFFER=1 after calling a tr_CASE
tr_ONCASE02: BUFFER=2 after calling a tr_CASE
tr_ONCASE03: BUFFER=3 after calling a tr_CASE
tr_ONCASE04: BUFFER=4 after calling a tr_CASE
tr_ONCASE05: BUFFER=5 after calling a tr_CASE
tr_ONCASE06: BUFFER=6 after calling a tr_CASE
tr_ONCASE07: BUFFER=7 after calling a tr_CASE
tr_ONCASE08: BUFFER=8 after calling a tr_CASE
tr_ONCASE09: BUFFER=9 after calling a tr_CASE
tr_ONCASE10: BUFFER=10 after calling a tr_CASE
tr_ONCASE11: BUFFER=11 after calling a tr_CASE
tr_ONCASE12: BUFFER=12 after calling a tr_CASE
tr_ONCASE13: BUFFER=13 after calling a tr_CASE
tr_ONCASE14: BUFFER=14 after calling a tr_CASE
tr_ONCASE15: BUFFER=15 after calling a tr_CASE
tr_ONCASEDEF: tr_CASE do not trigger any of the other cases
==================
*************************************************************************

Timers
*************************************************************************
Timers are an important part of the programming system. They are 4 logic_timer e
ntities, it's possible
to set the refire time for 3 of them (A, B and C), the last one is a random time
r. All of them start
disabled, they must be turned on to work with them. When the timers are activate
d, they start a
countdown of x seconds. When they reach zero, a command is loaded in the console
and the timer restart.
x must be a float a value with 2 decimals (5.05, is ok, 5.006 is not)
Timers (entity name):
Timer A
------Entity name: custom_timer_a
Event: tr_ONTIMERA
Initial refire time: 0.01 seconds
--COMMANDS
tr_ONTIMERA: event
tr_TIMERA_ON: turn on timer A
tr_TIMERA_OFF: turn off timer A
ent_fire custom_timer_a refiretime x: set x as time for the timer A
Note: this will be a special timer useful to load and compare variable
Timer B
------Entity name: custom_timer_b
Event: tr_ONTIMERB
Initial refire time: 1 second
--COMMANDS-tr_ONTIMERB: event
tr_TIMERB_ON: turn on timer B
tr_TIMERB_OFF: turn off timer B
ent_fire custom_timer_b refiretime x: set x as time for the timer B
Timer C
------Entity name: custom_timer_c
Event: tr_ONTIMERC
Initial refire time: 1 second
--COMMANDS-tr_ONTIMERC: event
tr_TIMERC_ON: turn on timer C
tr_TIMERC_OFF: turn off timer C
ent_fire custom_timer_c refiretime x: set x as time for the timer B
Timer D
------Entity name: custom_timer_D
Event: tr_ONTIMERD
Initial refire time: 5(lower limit) to 10(upper limit) seconds
--COMMANDS-tr_ONTIMERD: event
tr_TIMERD_ON: turn on timer D
tr_TIMERD_OFF: turn off timer D
ent_fire custom_timer_d addoutput "LowerRandomBound x": set the lower limit of t
he random timer to x

ent_fire custom_timer_d addoutput "UpperRandomBound x": set the upper limit of t


he random timer to x
NOTE: It's impossible to use "" inside aliases. The upper limit MUST be bigger t
han the lower limit
*************************************************************************
Relay
*************************************************************************
The relay is an event that triggers one second after it was called. It's useful
for setting up a program without using a timer, because some commands need other
features activated to work (like moving the trajectory selection for the launchpad,
first you need to disable trajectory selection)
tr_RELAY: call the relay
tr_ONTRIGGER: event. Triggers one second after calling the relay
*************************************************************************
Position
*************************************************************************
It's possible to detect when a blu bot enters different parts of the walkway,
that is when they enter it (START) are in the middle (MID) or at the end (END).
This will be triggered once per time they enter it. You need to enable the event
s
before using them
tr_POSEVENT_ON: Enables position events
tr_POSEVENT_OFF: Disables position events
tr_ONSTART: event. Triggered when a bot enters the first part of the walkway
tr_ONMID: event. Triggered when a bot enters the middle part of the walkway
tr_ONEND: event. Triggered when a bot enters the final part of the walkway
tr_ONLEAVE: event. Triggered when a bot leaves the walkway (this includes being
killed)
*************************************************************************
Variables
*************************************************************************
All of them are integers, and their starting value is 0.
Their names are:
======
A
B
C
D
E
BUFFER
======
BUFFER is a special variable. More about it later
You can do 4 operations with variables
==================
INC: increase by 1
DEC: decrease by 1
RESET: reset to 0
LOAD: load the variable in the buffer
ent_fire custom_<VARIABLE>var setvalue x : Set the value of VARIABLE to x
==================
All of these are issued by console commands in the way

==================
tr_<VARIABLE><OPERATION>
==================
For example:
tr_TIMERA_ON
alias tr_ONTIMERA "step1"
alias step1 "tr_ARESET; alias tr_ONTIMERA step2"
alias step2 "tr_AINC; alias tr_ONTIMERA; tr_TIMERA_OFF"
More about this structure in the next section
This lines will reset the variable A, wait 0.01 seconds using the timer A and in
crease
the variable A by 1. Final result: A = 1.
You can also do more advanced operations using ent_fire commands:
==================
ent_fire custom_<VARIABLE>var
ent_fire custom_<VARIABLE>var
ent_fire custom_<VARIABLE>var
ent_fire custom_<VARIABLE>var
==================

add x : Add x to VARIABLE


subtract x : Subtract x to VARIABLE
multiply x : Multiply VARIABLE by x
divide x : Divide VARIABLE by x

EVENTS FOR VARIABLES:


When a value from a variable is changed, the new value is compared to a special
number. By
default, that number is 0. The comparison will output a command depending on wha
t is the
relation between the value in the variable and the one used for comparing it. Th
e compare
value can be changed in any moment.
==================
tr_ON<VARIABLE>EQUAL: <VARIABLE> is equal than his compare value after changing
the value of <VARIABLE>
tr_ON<VARIABLE>NOTEQUAL: <VARIABLE> is not equal than his compare value after ch
anging the value of <VARIABLE>
tr_ON<VARIABLE>GREATERTHAN: <VARIABLE> is greater than his compare value after c
hanging the value of <VARIABLE>
tr_ON<VARIABLE>LESSTHAN: <VARIABLE> is less than his compare value after changin
g the value of <VARIABLE>
ent_fire custom_<VARIABLE>varcomp setcomparevalue x: set the compare value of <V
ARIABLE> to x
==================
*********
Loading variables
*********
Always after changing the value of a variable, a time lapse is needed before usi
ng that
variable with the new value. The best way to be sure of getting the new value is
using
the special timer A and creating a line of steps in the form:
==================
alias tr_ONTIMERA "step1"
alias step1 "<action 1>; alias tr_ONTIMERA step2"

alias step2 "<action 2>; alias tr_ONTIMERA step3"


alias step3 "<action 3>; alias tr_ONTIMERA step4"
....
alias laststep "<last action>; alias tr_ONTIMERA; tr_TIMERA_OFF"
==================
All actions will be activated with a 0.01 seconds delay between them. In every s
tep,
tr_ONTIMERA is set to the next step and in the final one, tr_ONTIMERA is set to
nothing. The timer can also be disabled in this point until it's needed again an
d the
next step can be set to be the initial one.
All actions in a step are done simultaneously, so the order is not really import
ant.
Always:
1) Load variables one step after the value has changed
2) Change the value of a compare event one step before comparing or changing the
variable
3) If it's the last step, disable the timer or change the event of the timer to
nothing
==================
alias laststep "<last action>; alias tr_ONTIMERA step1; tr_TIMERA_OFF"
==================
There is a good example in the "Compare" section
*************************************************************************
Buffer
*************************************************************************
To do any operation between two variables, you need to load them in the buffer f
irst. Only one
variable can be buffered at the same time. The buffer is a variable, so you can
manipulate it like
one, except it cannot be loaded.
Special operations with the buffer:
==================
tr_LOADX: load the integer in the buffer to the X variable
tr_LOADY: load the integer in the buffer to the y variable
tr_CASE: load the integer in the buffer to a the switch
==================
*************************************************************************
Compare
*************************************************************************
It's possible to compare one variable to another and know if it's equal, not equ
al,
smaller or bigger. The engine always compares the variable X to Y, their values
can be
changed using tr_LOADX and tr_LOADY. Those commands change the variables to the
value
in the buffer.

To compare X and Y, use:


==================
tr_CMP
==================
It will compare them and call the following commands in the console (events):
==================
if X equal to Y: tr_ONCMPEQUAL
if X not equal to Y: tr_ONCMPNOTEQUAL
if X is bigger than Y: tr_ONCMPGREATERTHAN
if X is smaller than Y: tr_ONCMPLESSTHAN
==================
For example, we want to compare variable A with B, if A is bigger than B, stop m
ovement and
deploy. Here, the B variables has an initial value and A increases with the time
. Copy this
text in a cfg file and name it var_test.cfg. Put the file in the /tf/cfg folder.
Load it inside
the game using "exec var_test".
////////////////////////////////////////////
// tr_ONGREATERTHAN will stop movement and deploy and then say "A is bigger than
B" in the
// console. It also stops the main timer
alias "tr_ONCMPGREATERTHAN" "tr_stop; echo A is bigger than B; tr_TIMERB_OFF"
ent_fire custom_Bvar setvalue 3 // Initial value of B = 3
tr_ARESET // A is reset to 0
tr_TIMERB_ON // The timer B (1 second) is activated
alias tr_ONTIMERB "tr_AINC; tr_TIMERA_ON;echo O" // Each time the timer B trigge
rs, A
// is increased, timer A is activated (0.01 seconds) and "O" is echoed in the co
nsole
// to keep track on the time
alias tr_ONTIMERA "step1" // We set the fast timer to the first step in the line
alias step1 "tr_ALOAD;alias tr_ONTIMERA step2" // A is loaded
set the next step to be step 2
alias step2 "tr_LOADX;alias tr_ONTIMERA step3" // X is loaded
the buffer and set the next step to be step 3
alias step3 "tr_BLOAD;alias tr_ONTIMERA step4" // B is loaded
set the next step to be step 4
alias step4 "tr_LOADY;alias tr_ONTIMERA step5" // Y is loaded
the buffer and set the next step to be step 5
alias step5 "tr_CMP;alias tr_ONTIMERA step1;tr_TIMERA_OFF" //
ext step to be the first step and turn off timer A
////////////////////////////////////////////

in the buffer and


with the value in
in the buffer and
with the value in
Compare, set the n

After loading the code, bots will stop moving and spawning and "A is bigger than
B" will
appear in the console.
*************************************************************************

Switch
*************************************************************************
The switch compares the variable in the buffer with numbers between 0 and 15.
To call the switch use
==================
tr_CASE: compares the buffer to numbers between 0 and 15, then it triggers
a case depending on the value.
tr_CASERAND: choose one of the cases randomly
tr_CASERANDSHUF: choose one of the cases randomly. The cases don't repeat until
all cases have been chosen
==================
If the value of the buffer is equal to any of these numbers, an event will
be triggered in the form
==================
tr_ONCASE00: if buffer
tr_ONCASE01: if buffer
tr_ONCASE02: if buffer
tr_ONCASE03: if buffer
tr_ONCASE04: if buffer
tr_ONCASE05: if buffer
tr_ONCASE06: if buffer
tr_ONCASE07: if buffer
tr_ONCASE08: if buffer
tr_ONCASE09: if buffer
tr_ONCASE10: if buffer
tr_ONCASE11: if buffer
tr_ONCASE12: if buffer
tr_ONCASE13: if buffer
tr_ONCASE14: if buffer
tr_ONCASE15: if buffer
==================

is
is
is
is
is
is
is
is
is
is
is
is
is
is
is
is

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

In case of the value not being equal to any of these values, it will trigger ano
ther
event
==================
tr_ONCASEDEF
==================
The switch can work like a randomizer using tr_CASERAND and tr_CASERANDSHUF
*************************************************************************
Custom text
*************************************************************************
Text that appears on screen. Can save up to 3 different lines. Only one text can
stay on
screen at the same time. Warning: don't use the " symbol inside the message.
Commands:
==================
tr_TEXT1: Display text 1 on screen
ent_fire custom_text1 addoutput "message <your message here>": Change the text 1
tr_TEXT2: Display text 2 on screen

ent_fire custom_text2 addoutput "message <your message here>": Change the text 2
tr_TEXT1: Display text 3 on screen
ent_fire custom_text3 addoutput "message <your message here>": Change the text 3
==================
*************************************************************************
Notes
*************************************************************************
- If you want to damage a bot (or a player) by 124 hp using the "hurt bot" optio
n, the player/bot
must be teleported to (1664 566 510)
- To change the damage inflicted by the hurt option, use the following command:
ent_fire hurtstart_trigger SetDamage X
Where X is two times the damage you want to do (by default, it is 248 and will r
eset to that value
with tr_default)
*************************************************************************
Galaga soldier mini-game
*************************************************************************
The map includes a mini-game showing some of the functions. It's located inside
tf/cfg/tr_walkway/minigames/gsoldier.cfg
To run it, enter "exec tr_walkway/minigames/gsoldier" in the console.
---------------------------------------------------------------------------------------------CUSTOMIZE
---------------------------------------------------------------------------------------------There are some options around the map that can be tweaked by the user with comma
nds. Those include the
bot movement speed, timers used for different features and the angle the bots ai
m. Take in mind that
all of the commands listed use ent_fire and some of them use "addoutput", so han
dle them with care
and check if they are well written before loading the command in the console.
Commands with "" inside them cannot be used in aliases.
MOVEMENT SPEED
****
ent_fire walk addoutput "speed <speed>"
****
Replace <speed> with the speed you want
AIM DIRECTION
****
ent_fire destination_walkway addoutput "angles x y 0"
****
x: This is the pitch. It goes from -90 to 90. -90 is straight up and 90 is strai
ght down.
y: This is the yaw. It goes from 0 to 360. 270 is forward, 90 is backward,0 and
180 are left and right
DEPLOY TIME
****
ent_fire spawntimer refiretime <time>
****

Replace <time> with the time you want


JUMP TIMER
****
ent_fire jump_timer refiretime <time>
****
Time between jumps. Choosing a small one will make bots accelerate.Replace <time
> with
the time you want (default 1.75)
STRAFE TIMER
****
ent_fire strafe_timer refiretime <time>
****
Time it takes for the bots to change strafe direction. Replace <time> with the t
ime you
want (default 1.75)
BACK AND FORTH TIMERS
"Backward timer"
****
ent_fire back_timeron addoutput "LowerRandomBound <lowertime>"
ent_fire back_timeron addoutput "UpperRandomBound <uppertime>"
****
This timer controls when the bots go backwards. It's random, that means the time
r changes it's refire
time everytime it ends counting. This time goes from <lowertime> to <uppertime>.
Default values are
<lowertime> = 2.5
<uppertime> = 4.5
If you want to change these values, make sure the <uppertime> is bigger than the
<lowertime>
"Forward timer"
****
ent_fire back_timeroff refiretime <time>
****
This timer triggers every <time> seconds (default 1.25). Every time it triggers,
it makes the bots
go forward
LAUNCH PAD POWER
****
ent_fire launchpad_power addoutput "speed <power>"
****
This changes the power the launchpad pushes the bots. Use this command only when
the "random power"
option is not selected or the power will be reset to random after a fraction of
a second.
---------------------------------------------------------------------------------------------NOTES (Important)
---------------------------------------------------------------------------------------------- The bots don't walk, they are pushed using the track, so the behavior when the
y are pushed (airblast, FaN)
or exploded is a little different from real players walking. That difference is
hard to perceive now (rc)

- The hitboxes from the bots behaves in a different way from real walking bots.
There is no way to fix this.
- Damage spread is DISABLED by default. Having it enabled breaks the "hurt" func
tion, making the
124 damage done by it suffer the damage spread, sometimes doing more than 124 da
mage and killing
light classes
- Don't use commands that issue move orders to bots (bot_flipout, bot_mimic). Th
ey will break the bots
deploy system
- When playing multiplayer, certain cvars are disabled for clients
- SV_CHEATS in ENABLED. Players can easily abuse this in LOTS of ways, so play w
ith people you
trust. sv_cheats is turned on automatically after it is turned off.
- The map is a release candidate (rc). If you have any suggestion or find a bug,
contact one of the mappers
(Wiseguy149 or Washipato) sending a mail to washipato@gmail.com or by steam (ID:
washipato/profile: 76561197995187989)
I hope you enjoy the map and find it fun and useful. Good luck!
****
NOTES FOR SERVER OWNERS
****
The map will set at the start of the round the following configurations:
# sv_cheats 1
# mp_teams_unbalance_limit 0
# mp_disable_respawn_times 1
# mp_waitingforplayers_cancel 1
# tf_damage_disablespread 1
# tf_weapon_criticals 1
sv_cheats is turned on, so it's recommended to use a plugin to disallow player f
rom
using ent_fire commands. Disable any kind of external team-balancer plugin that
the
server could be running
---------------------------------------------------------------------------------------------Credits and thanks
---------------------------------------------------------------------------------------------- Thanks a lot to wiseguy149 for his huge help in the last part of the project,
cleaning up the
map, adding new features, optimizing, general mapping and lots of ideas and bug
reports that
made the map work a lot better than it was before.
- Thanks to the ESG (elite spy group) community for his support and ideas. The g
roup gave me
great feedback in many stages of the develpment. The map would not be what now i
s without
their help. People from ESG are NOT elitist. They are just a group of people who
enjoy a lot
to play the spy class.
- Thanks to Dr. ROCKZO for his great work with the posters and the pacience to d
eal with my
suggestions
- Thanks to the Argentina community for the early help with the alpha (y disculp

en todas las
veces que no pude meterme a mix ni a los pub para terminar esto)
- Thanks to Kakihara, Squible, Dr. ROCKZO, The Big Cheese, Wiseguy149, Fede22 an
d Arctic Vampire
for their help beta testing the last versions of the beta. Special thanks to Arc
tic Vampire
for lending me the server to try this map in multiplayer
- Thanks to the following mappers for inspirating this work
* tr_airshot, by gmannick
* tr_aim, by metalpiss
* tr_airstab, by The Ultimate Potato (also thanks to him for the good ideas a
nd tips while I was mapping)
- Thanks to tf2maps.net community for the useful tutorials and answering some di
fficult
questions about hammer. Special thanks to A Boojum Snark for his useful addon to
hammer.

Das könnte Ihnen auch gefallen