MIME-Version: 1.0
Content-Type: multipart/related; boundary="----=_NextPart_01C4F3DE.79B79460"

This document is a Single File Web Page, also known as a Web Archive file.  If you are seeing this message, your browser or editor doesn't support Web Archive files.  Please download a browser that supports Web Archive, such as Microsoft Internet Explorer.

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"

<html xmlns:v=3D"urn:schemas-microsoft-com:vml"
xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"RacerMappingGuide_files/filelist.xml">
<link rel=3DEdit-Time-Data href=3D"RacerMappingGuide_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Racer Mapping</title>
<o:SmartTagType namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags"
 name=3D"place"/>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Stefan</o:Author>
  <o:LastAuthor>Stefan</o:LastAuthor>
  <o:Revision>7</o:Revision>
  <o:TotalTime>82</o:TotalTime>
  <o:Created>2004-12-28T19:28:00Z</o:Created>
  <o:LastSaved>2005-01-06T17:57:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>878</o:Words>
  <o:Characters>5010</o:Characters>
  <o:Company>Jolly Roger</o:Company>
  <o:Lines>41</o:Lines>
  <o:Paragraphs>11</o:Paragraphs>
  <o:CharactersWithSpaces>5877</o:CharactersWithSpaces>
  <o:Version>11.5606</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:UseWord2002TableStyleRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]--><!--[if !mso]><object
 classid=3D"clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=3Dieooui></objec=
t>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:394595205;
	mso-list-type:hybrid;
	mso-list-template-ids:580563392 67698711 67698713 67698715 67698703 676987=
13 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-number-format:alpha-lower;
	mso-level-text:"%1\)";
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1
	{mso-list-id:1057440563;
	mso-list-type:hybrid;
	mso-list-template-ids:1430552428 67698705 67698713 67698715 67698703 67698=
713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l1:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2
	{mso-list-id:1392390646;
	mso-list-type:hybrid;
	mso-list-template-ids:-1541352692 67698703 67698713 67698715 67698703 6769=
8713 67698715 67698703 67698713 67698715;}
@list l2:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3
	{mso-list-id:1737125112;
	mso-list-template-ids:693814610;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"5122"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US style=3D'tab-interval:.5in'>

<div class=3DSection1>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal><b style=3D'mso-bidi-font-weight:normal'>Racer Mapping=
<o:p></o:p></b></p>

<p class=3DMsoNormal><b style=3D'mso-bidi-font-weight:normal'><o:p>&nbsp;</=
o:p></b></p>

<p class=3DMsoNormal>Racer maps are at the moment ordinary hl2 maps with a =
few
special entities added or changed.</p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<ol style=3D'margin-top:0in' start=3D1 type=3D1>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo3;tab-stops:list .5in=
'>Use <span
     class=3DSpellE><b style=3D'mso-bidi-font-weight:normal'>info_player_st=
art</b></span>
     to add spawn points to the map. These should be put in the starting ar=
ea
     for the racers. The starting area itself should be <b style=3D'mso-bid=
i-font-weight:
     normal'>flat, </b>which will ensure that airboats aren&#8217;t spawning
     inside brushes. </li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo3;tab-stops:list .5in=
'><span
     class=3DSpellE><b style=3D'mso-bidi-font-weight:normal'>r_startline</b=
></span>
     &#8211; This brush should be invisible, when players pass through this=
 the
     game will figure out if they&#8217;ve done a lap or finished the race.=
</li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo3;tab-stops:list .5in=
'><span
     class=3DSpellE><b style=3D'mso-bidi-font-weight:normal'>r_checkpoint</=
b></span>
     &#8211; This brush is also invisible. Lay these around your track in o=
rder
     to lay down the course racers will have to follow. The checkpoints hav=
e an
     index key value, and need to be numbered from 1 to <span class=3DGramE=
>n,</span>
     racers have to pass through the checkpoints in the right order to comp=
lete
     a lap.</li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo3;tab-stops:list .5in=
'><span
     class=3DSpellE><b style=3D'mso-bidi-font-weight:normal'>l_raceevents</=
b></span>
     &#8211; This is a logical entity which takes no inputs, but has 3
     different <span class=3DGramE>output</span> which are fired when certa=
in
     race events occur.</li>
 <li class=3DMsoNormal style=3D'mso-list:l2 level1 lfo3;tab-stops:list .5in=
'><span
     class=3DSpellE><b style=3D'mso-bidi-font-weight:normal'>r_booster</b><=
/span><b
     style=3D'mso-bidi-font-weight:normal'> </b>&#8211; Used to create
     acceleration effects, as well as friction speed dampening effects.</li>
</ol>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'><o:p>&nbsp;</o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'>NOTE:</b> <b style=3D'mso-bidi-font-weight:normal'>The game will no=
t run
if you do not have at least one <span class=3DSpellE>playerstart</span>, ch=
eckpoint
and <span class=3DSpellE>startline</span> in your map!<o:p></o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in;text-indent:-.25in'><b
style=3D'mso-bidi-font-weight:normal'><span style=3D'mso-tab-count:1'>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; </span><st1:place
w:st=3D"on">I.</st1:place> <span class=3DSpellE>r_starline</span> and <span
class=3DSpellE>r_checkpoint</span><o:p></o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>The <span class=3DSpellE>s=
tartline</span>
and checkpoints serve two functions: First, they dictate the course of the =
map
as players must touch them in increasing order to complete laps and eventua=
lly
win the race. The logic of this is pretty <span class=3DGramE>simple,</span>
every player remembers the last checkpoint he touched.</p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l0 level1 lfo5;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>a=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>If
he touches the checkpoint with index one higher than previous, he has advan=
ced
and stores the new checkpoint value. If the last checkpoint he touched was =
the
maximum, then he has to touch the <span class=3DSpellE>startline</span> to
advance.</p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l0 level1 lfo5;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>b=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>If
he touches any checkpoint with index lower than the previous index, he has
fallen back in the race (by possibly more than 1 checkpoint).</p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l0 level1 lfo5;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>c=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>If
he touches any checkpoint with index +2 or more than previous, nothing happ=
ens.
</p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>You must make the checkpoi=
nts in
such a way that players cannot accidentally skip some (<span class=3DSpellE=
>ie</span>
by jumping over them), and also so that players can&#8217;t cheat on purpos=
e by
skipping parts of the course. One other minor thing is to put a checkpoint
directly <b style=3D'mso-bidi-font-weight:normal'>before </b>your players
starting positions. This&#8217;ll ensure that if a player crosses the <span
class=3DSpellE>startline</span> in the wrong direction, his <span class=3DS=
pellE><span
class=3DGramE>hud</span></span> will update quickly to show that he&#8217;s=
 lost
a lap.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>The second purpose of chec=
kpoints
is to determine race position. The game sorts players a few times every sec=
ond
based on how far it thinks they are in the race:</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><span
style=3D'mso-spacerun:yes'>&nbsp;</span>(<span class=3DGramE>from</span> mo=
st
important to least)</p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l1 level1 lfo7;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>1=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>Players
with more laps.</p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l1 level1 lfo7;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>2=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>Players
with a higher cleared checkpoint<span class=3DGramE>..</span></p>

<p class=3DMsoNormal style=3D'margin-left:.5in;text-indent:-.25in;mso-list:=
l1 level1 lfo7;
tab-stops:list .5in'><![if !supportLists]><span style=3D'mso-list:Ignore'>3=
)<span
style=3D'font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span><![endif]>Players
closer to the next checkpoint.</p>

<p class=3DMsoNormal><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>#3 is the tricky part,
&#8220;closest&#8221; to the next checkpoint means the game will find the
absolute shortest line between the player and the next checkpoint, whether =
it
goes through walls or not.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>Consider the following dia=
gram.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><!--[if gte vml 1]><v:shap=
etype
 id=3D"_x0000_t75" coordsize=3D"21600,21600" o:spt=3D"75" o:preferrelative=
=3D"t"
 path=3D"m@4@5l@4@11@9@11@9@5xe" filled=3D"f" stroked=3D"f">
 <v:stroke joinstyle=3D"miter"/>
 <v:formulas>
  <v:f eqn=3D"if lineDrawn pixelLineWidth 0"/>
  <v:f eqn=3D"sum @0 1 0"/>
  <v:f eqn=3D"sum 0 0 @1"/>
  <v:f eqn=3D"prod @2 1 2"/>
  <v:f eqn=3D"prod @3 21600 pixelWidth"/>
  <v:f eqn=3D"prod @3 21600 pixelHeight"/>
  <v:f eqn=3D"sum @0 0 1"/>
  <v:f eqn=3D"prod @6 1 2"/>
  <v:f eqn=3D"prod @7 21600 pixelWidth"/>
  <v:f eqn=3D"sum @8 21600 0"/>
  <v:f eqn=3D"prod @7 21600 pixelHeight"/>
  <v:f eqn=3D"sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok=3D"f" gradientshapeok=3D"t" o:connecttype=3D"rect"/>
 <o:lock v:ext=3D"edit" aspectratio=3D"t"/>
</v:shapetype><v:shape id=3D"_x0000_i1025" type=3D"#_x0000_t75" style=3D'wi=
dth:222pt;
 height:190.5pt'>
 <v:imagedata src=3D"RacerMappingGuide_files/image001.png" o:title=3D""/>
</v:shape><![endif]--><![if !vml]><img width=3D296 height=3D254
src=3D"RacerMappingGuide_files/image002.jpg" v:shapes=3D"_x0000_i1025"><![e=
ndif]></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>Clearly Bob is ahead of Ji=
m, but
because the checkpoints are poorly placed, the game will not know that. As =
far
as it can see Jim is closer to the next checkpoint (#2) than Bob is. The fi=
x:</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><!--[if gte vml 1]><v:shap=
e id=3D"_x0000_i1026"
 type=3D"#_x0000_t75" style=3D'width:223.5pt;height:210pt'>
 <v:imagedata src=3D"RacerMappingGuide_files/image003.png" o:title=3D""/>
</v:shape><![endif]--><![if !vml]><img width=3D298 height=3D280
src=3D"RacerMappingGuide_files/image004.jpg" v:shapes=3D"_x0000_i1026"><![e=
ndif]></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>By adding another check, t=
he
calamity is averted. In general it is a good idea to leave a straight path
between checkpoints!</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'>Advanced Pro Tip:<o:p></o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>You can have more than one
checkpoint (or even <span class=3DSpellE>startline</span>) with the same in=
dex,
which allows you the freedom of having branching paths and shortcuts while
preserving good race position calculations. The above rules all apply as
before, though when calculating race position each player gets their distan=
ce
to the <b style=3D'mso-bidi-font-weight:normal'>nearest</b> checkpoint with=
 the
appropriate index.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'>II. <span class=3DSpellE><span class=3DGramE>l_raceevents</span></s=
pan><o:p></o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'><span style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </sp=
an></b>This
is a simple logical entity with no inputs and the following 3 outputs.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>1. <span class=3DSpellE><s=
pan
class=3DGramE>OnRaceStart</span></span><span class=3DGramE> :</span> Called=
 when
the 5 second countdown has just begun, the players are locked in place at t=
he
starting line.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>2. <span class=3DSpellE><s=
pan
class=3DGramE>OnFinishTimer</span></span><span class=3DGramE> :</span> Call=
ed once
a player has finished the race and the &#8220;Hurry up!&#8221; timer shows =
up.
You won&#8217;t see this if you&#8217;re playing by yourself, need at least=
 2
players, otherwise the race ends immediately and goes to <span class=3DSpel=
lE>warmup</span>
mode.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>3. <span class=3DSpellE><s=
pan
class=3DGramE>OnRaceEnd</span></span><span class=3DGramE> :</span> Called w=
hen the
race is over and a new <span class=3DSpellE>warmup</span> has started.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>Although you could use the=
se
outputs for all sorts of things, I created them mainly to control the
&#8220;Traffic Light&#8221;, which adds a nice visual component to the game.
The traffic light is just 3 lights (red, yellow, green) hopefully placed on=
 a
nice brush or prop model&#8230; They should behave as follows:</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>a) On the countdown, red, =
yellow
and green will each turn on in succession on a 1 second interval. The race
should begin one second after the green light has turned on. This lighting
sequence isn&#8217;t set in stone, and is quite easy to change so we&#8217;=
ll
be experimenting to see what looks best.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>b) Once the race has start=
ed, the
only light that should be on is green.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>c) When the finish timer h=
as begun
counting, green and red should turn off and yellow should start flashing.</=
p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>d) Once the race has ended=
, yellow
and green should be off and red should be turned on. (We may change this to
having all the lights off)</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'>If that all sounded compli=
cated,
you should take a look at the example provided in <span class=3DSpellE>junk=
.vmf</span>.
It implements all of the above using 2 <span class=3DSpellE>logic_timers</s=
pan>,
3 lights, and <span class=3DSpellE>l_raceevents</span>. The lights are horr=
ibly
ugly since I can&#8217;t map, but it is meant to demonstrate how the logic
works.</p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><o:p>&nbsp;</o:p></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><b style=3D'mso-bidi-font-=
weight:
normal'>III. <span class=3DSpellE><span class=3DGramE>r_booster</span></spa=
n><o:p></o:p></b></p>

<p class=3DMsoNormal style=3D'margin-left:.25in'><span style=3D'mso-tab-cou=
nt:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>This
brush entity is what you use to create speed boosting zones. It is
automatically non solid, but can be textured however you like, a good pract=
ice
in general is to make it 1 unit thick and spread it out like a surface. As =
long
as the player is touching this brush his speed is multiplied by the &#8220;=
<span
class=3DSpellE>boostfactor</span>&#8221;, which can be set by the <span
class=3DSpellE>mapper</span>. <span class=3DGramE>The higher the <span
class=3DSpellE>boostfactor</span> the higher the acceleration.</span> The <=
span
class=3DSpellE>mapper</span> may also choose to make the <span class=3DSpel=
lE>boostfactor</span>
less than 1, which will create a speed dampening effect (think mud). <span
class=3DGramE>Experiment with different values to see the effects, examples=
 of a
speed booster and speed dampener are</span> provided in <span class=3DSpell=
E>junk.vmf</span>.</p>

</div>

</body>

</html>

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide_files/image001.png
Content-Transfer-Encoding: base64
Content-Type: image/png

[encoded data, 7592 characters]

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide_files/image002.jpg
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

[encoded data, 16416 characters]
RRRQAUUUUAFFFFABRRRQB//Z

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide_files/image003.png
Content-Transfer-Encoding: base64
Content-Type: image/png

[encoded data, 8892 characters]
RgD0k0YU8oAAG4H/A8QyI3wzQrHfAAAAAElFTkSuQmCC

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide_files/image004.jpg
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

[encoded data, 18164 characters]
iigAooooAKKKKACiiigD/9k=

------=_NextPart_01C4F3DE.79B79460
Content-Location: file:///C:/52AC30E5/RacerMappingGuide_files/filelist.xml
Content-Transfer-Encoding: quoted-printable
Content-Type: text/xml; charset="utf-8"

<xml xmlns:o=3D"urn:schemas-microsoft-com:office:office">
 <o:MainFile HRef=3D"../RacerMappingGuide.htm"/>
 <o:File HRef=3D"image001.png"/>
 <o:File HRef=3D"image002.jpg"/>
 <o:File HRef=3D"image003.png"/>
 <o:File HRef=3D"image004.jpg"/>
 <o:File HRef=3D"filelist.xml"/>
</xml>
------=_NextPart_01C4F3DE.79B79460--
