Added AI info
parent
8ca01fe724
commit
a8d4a6be55
Binary file not shown.
After Width: | Height: | Size: 1.3 MiB |
@ -0,0 +1,18 @@
|
||||
AI Patrol Paths
|
||||
|
||||
Patrol Paths are used as either straight lines or splines so in the editor you should set the
|
||||
"Spline Type" under the path menu to "Linear" or "C-R".
|
||||
|
||||
|
||||
|
||||
Path Properties (set in the editor for each path):
|
||||
|
||||
"type" = "PatrolPath" : need this part, its what tells the game its a patrol path
|
||||
|
||||
|
||||
|
||||
Node Properties (set in the editor for specific nodes on a path):
|
||||
|
||||
"WaitMin" = "1.0" : When the unit gets to this node, they will wait for a time between
|
||||
"WaitMax" = "2.5" : waitmin and waitmax before going on.
|
||||
|
@ -0,0 +1,75 @@
|
||||
<html><head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252"><meta content="True" name="vs_showGrid">
|
||||
<style type="text/css">#play_btn_up { position:fixed; right:0; bottom:53%;z-index:1001; height:36px; width:36px; cursor:pointer; background:url(data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB+SURBVDhPY1i1atV/amAGahgCMoNhaIGlS5cKAp19BoRBbLJcj2QILDJINwzoAmMgfoclIkBixkS5DI8hMJcRNgxoSBoOl6CnNZBhaVhdBjWE1MSJahjQkA4KEmYH2GUrV66cSYEhYB+AzKBtFiHkQqKiH6Ro1CDCQTWgYQQAs81DU0G/83sAAAAASUVORK5CYII=) no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7); border-radius:5px 0 0 5px; margin-top:-24px; }#play_btn_dn { position:fixed; right:0; top:53%; z-index:1001; height:36px; width:36px; cursor:pointer; background:url(data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACPSURBVDhPY2DAAlatWvUfH8amB6vYqEGEg2pgw4iQ7cTKM6xcuXImsYpxqQOZAQ4woIIOCgzrQAl1oEFpZBiWhitFgwx7R4SBIDXYDYGZDFRgTMAwkCHGhBMRJMxwGUa8ITCbli5dKgg08AySN8+AxIhyCboiJMPIN4Qsm6miiYioxltawvSDYogohYTUAQC80UNTOht/YwAAAABJRU5ErkJggg==) no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7); border-radius:5px 0 0 5px; margin-top:-24px; }.play_btn { -webkit-transition-duration:0.5s linear; -o-transition-duration:0.5s linear; -moz-transition-duration:0.5s linear; transition-duration:0.5s linear; opacity:0.65; }.play_btn:hover { opacity:1; }</style></head><body><p><font size="5"> AI Visibility</font></p>
|
||||
<p>You have three ways to play with the AI view distances. They all work at
|
||||
the same time, so a character's vis value is: Lua * Foliage * Region</p>
|
||||
<hr>
|
||||
<p></p>
|
||||
<p><strong>Lua Vis Factor</strong></p>
|
||||
<p>You can set the overall view distance in the level lua:</p>
|
||||
<pre> SetAIViewMultiplier(0.45)
|
||||
</pre>
|
||||
<p>
|
||||
That means that over the entire level, AI can see 45% as far as normal.
|
||||
</p><p>
|
||||
</p><hr>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<p>
|
||||
</p><p><strong>Foliage Vis Factors</strong></p>
|
||||
<p>You can set visibility modifiers on foliage, which, for example, allows you
|
||||
to hide inside bushes on endor. Do this by adding a line into the .prp
|
||||
(foliage prop file) for the level. As an example, here is layer from the endor
|
||||
prop file ("worlds/end/world1/end.prp"):</p>
|
||||
<pre>Layer(1)
|
||||
{
|
||||
SpreadFactor(0.5);
|
||||
Mesh()
|
||||
{
|
||||
File("end_prop_fern5.msh", 30);
|
||||
Frequency(20);
|
||||
Scale(1);
|
||||
Stiffness(0.0);
|
||||
CollisionSound("foliage_collision");
|
||||
<font color="#ff0066"> AIVisibilityFactor(0.7,1.0);</font>
|
||||
}
|
||||
|
||||
Mesh()
|
||||
{
|
||||
File("end_prop_treeclump_1.msh", 50);
|
||||
Frequency(50);
|
||||
Scale(1);
|
||||
Stiffness(0.0);
|
||||
CollisionSound("foliage_collision");
|
||||
<font color="#ff0066"> AIVisibilityFactor(0.35,0.6);</font>
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
<p>The two red lines should be added. You can adjust the visibility per model, with
|
||||
a value for crouching and standing.</p>
|
||||
<p>The first means that for the foliage model "end_prop_fern5", you will
|
||||
be 70% visible from AI if you're crouched inside it, but 100% visible if
|
||||
standing inside it.
|
||||
</p>
|
||||
<p>The second model ("end_prop_treeclump_1") will give you 35% visibility when
|
||||
crouched, and 60% when standing.</p>
|
||||
<p>
|
||||
</p><hr>
|
||||
<p></p>
|
||||
<p></p>
|
||||
<p><strong>AI Vis Regions</strong></p>
|
||||
<p><img src="AI%20Visibility_files/aivisregion.jpg" width="393" height="341" align="right"> AI
|
||||
Visibility Regions allow you to set regions in the world editor that affect the
|
||||
AI's visibility of anything inside that region. Vis Regions work on both
|
||||
players and AI, but not so well on vehicles.
|
||||
</p>
|
||||
<p>To make them in the editor, create a new region and hit the "Change Type" button
|
||||
to select the type "AIVis".
|
||||
</p>
|
||||
<p>Then set the vis multipliers for crouch and stand. These are a multiplier
|
||||
on normal visibility, so 0.5 means that you're 50% covered, while 2.0 would
|
||||
mean that you're visible twice as far away as normal.</p>
|
||||
<p>You can only be inside one vis region at a time, so if the regions overlap, it
|
||||
will randomly pick one of them and use that value. This is fine as long
|
||||
as the overlapping regions all have the same values.</p>
|
||||
<span id="play_btn_up" class="play_btn" style="display: none;"></span><span id="play_btn_dn" class="play_btn"></span></body></html>
|
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
@ -0,0 +1,102 @@
|
||||
<html><head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252"><meta content="True" name="vs_showGrid">
|
||||
<style type="text/css">#play_btn_up { position:fixed; right:0; bottom:53%;z-index:1001; height:36px; width:36px; cursor:pointer; background:url(data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAB+SURBVDhPY1i1atV/amAGahgCMoNhaIGlS5cKAp19BoRBbLJcj2QILDJINwzoAmMgfoclIkBixkS5DI8hMJcRNgxoSBoOl6CnNZBhaVhdBjWE1MSJahjQkA4KEmYH2GUrV66cSYEhYB+AzKBtFiHkQqKiH6Ro1CDCQTWgYQQAs81DU0G/83sAAAAASUVORK5CYII=) no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7); border-radius:5px 0 0 5px; margin-top:-24px; }#play_btn_dn { position:fixed; right:0; top:53%; z-index:1001; height:36px; width:36px; cursor:pointer; background:url(data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAUCAYAAACAl21KAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACPSURBVDhPY2DAAlatWvUfH8amB6vYqEGEg2pgw4iQ7cTKM6xcuXImsYpxqQOZAQ4woIIOCgzrQAl1oEFpZBiWhitFgwx7R4SBIDXYDYGZDFRgTMAwkCHGhBMRJMxwGUa8ITCbli5dKgg08AySN8+AxIhyCboiJMPIN4Qsm6miiYioxltawvSDYogohYTUAQC80UNTOht/YwAAAABJRU5ErkJggg==) no-repeat scroll 50% 50% rgba(0, 0, 0, 0.7); border-radius:5px 0 0 5px; margin-top:-24px; }.play_btn { -webkit-transition-duration:0.5s linear; -o-transition-duration:0.5s linear; -moz-transition-duration:0.5s linear; transition-duration:0.5s linear; opacity:0.65; }.play_btn:hover { opacity:1; }</style></head><body><p><font size="5">AI Difficulty</font></p>
|
||||
<p>Command Line Options:</p>
|
||||
<p>
|
||||
<table id="Table3" width="100%" cellspacing="1" cellpadding="1" border="1">
|
||||
<tbody><tr>
|
||||
<td width="143"><pre>/DisableAIAutoBalance</pre>
|
||||
</td>
|
||||
<td>
|
||||
<p> </p>
|
||||
<p>This will disable auto balancing for the entire game. Use this to pure balance
|
||||
your levels.</p>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p>Console debugging commands:</p>
|
||||
<p>
|
||||
<table id="Table1" width="100%" cellspacing="1" cellpadding="1" border="1">
|
||||
<tbody><tr>
|
||||
<td width="143"><pre>aidiff</pre>
|
||||
</td>
|
||||
<td>
|
||||
<p>Dumps the difficulty to the console, and also to the debug output (TTY on ps2,
|
||||
DrWatson for xbox):</p>
|
||||
<pre>Profile setting: MEDIUM
|
||||
AutoBalance: ACTIVE
|
||||
base lua auto = total
|
||||
Player : 10 + 0 + 0 = 10
|
||||
Enemy : 12 + 0 + 0 = 12
|
||||
</pre>
|
||||
<p>This shows the current profile difficulty setting (EASY, MEDIUM, HARD).</p>
|
||||
<p>Then it says if AutoBalance is turned on. You can control this with the
|
||||
lua EnableAIAutoBalance() command. The modes shown are:<br>
|
||||
ACTIVE - AutoBalance is enabled and currently working.<br>
|
||||
INACTIVE - Its turned on, but not currently active. Probably because one
|
||||
side has infinite reinforcements.<br>
|
||||
DISABLED - not turned on.</p>
|
||||
<p>Then it shows the difficulty setting calculation. "Base" is the base value
|
||||
that it gets from the profile setting. "Lua" is the adjustment modifier
|
||||
that you can set in the lua with the SetAIDifficulty() command. "Auto" is
|
||||
the modifier from the auto balancer. "Total" is the final value that it
|
||||
uses.</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p>Lua Script commands:</p>
|
||||
<table id="Table2" width="100%" cellspacing="1" cellpadding="1" border="1">
|
||||
<tbody><tr>
|
||||
<td width="229" height="24">EnableAIAutoBalance()</td>
|
||||
<td height="24">
|
||||
<p>
|
||||
Turn on AutoBalancing. This will work for Conquest/Assault/CTF
|
||||
games. Not campaign. Basically if the score gets too far in
|
||||
one teams favor (+/- 40 conquest, 60 assault, 1 ctf) it will make the loosing
|
||||
team better and the winning team worse until things get back to close again.</p>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="229">DisableAIAutoBalance()</td>
|
||||
<td>
|
||||
<p>Turn off AutoBalancing. It is on by default so you should use this for
|
||||
your campaign mode scripts.</p>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="229">SetAIDifficulty(player, enemy)</td>
|
||||
<td>
|
||||
<p>This will set the current difficulty modifier. The two values are for the
|
||||
player's team and for the enemy's team. These are only modifiers on the
|
||||
current profile setting, so you don't need to set these at all if you
|
||||
want. All maps default to (0,0).</p>
|
||||
<pre>SetAIDifficulty(-2, 3)</pre>
|
||||
<p>This will make the AI on the players team 2 settings easier, and the AI on the
|
||||
enemy team 3 settings harder.</p>
|
||||
<p>This can be called from any point within a mission. So if you want the bad
|
||||
guys to be more difficult on just one objective, call this with say (0,2)
|
||||
in the OnStart function, then call it again with (0,0) to reset it in the
|
||||
OnComplete function.</p>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="229">SetAIDifficulty(player, enemy, diff)</td>
|
||||
<td>
|
||||
<p>This works just like the above, but only for a specific profile setting.
|
||||
So if you want to leave medium alone, but make hard mode harder, you could do:</p>
|
||||
<pre> SetAIDifficulty(0, 3, "hard")</pre>
|
||||
<p>The last value can be "easy", "medium", or "hard".</p>
|
||||
<p> </p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
<p> </p>
|
||||
<span id="play_btn_up" class="play_btn" style="display: none;"></span><span id="play_btn_dn" class="play_btn"></span></body></html>
|
Loading…
Reference in New Issue