iddevnet/quake4/LevelEditor_DifficultySettings
Daniel Gibson ef46a7566e Quake4 part of Yamagis dump
will need heavy cleaning up before it becomes usable at all
2021-04-10 03:29:43 +02:00

243 lines
14 KiB
Text

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="robots" content="index,nofollow">
<title>LevelEditor DifficultySettings - Quake 4 SDK Documentation</title>
<script type="text/javascript" src="/wiki/common/js/common.js"></script>
<script type="text/javascript">
<!--// common functions
// We keep here the state of the search box
searchIsDisabled = false;
function searchChange(e) {
// Update search buttons status according to search box content.
// Ignore empty or whitespace search term.
var value = e.value.replace(/\s+/, '');
if (value == '' || searchIsDisabled) {
searchSetDisabled(true);
} else {
searchSetDisabled(false);
}
}
function searchSetDisabled(flag) {
// Enable or disable search
document.getElementById('fullsearch').disabled = flag;
document.getElementById('titlesearch').disabled = flag;
}
function searchFocus(e) {
// Update search input content on focus
if (e.value == 'Search') {
e.value = '';
e.className = '';
searchIsDisabled = false;
}
}
function searchBlur(e) {
// Update search input content on blur
if (e.value == '') {
e.value = 'Search';
e.className = 'disabled';
searchIsDisabled = true;
}
}
function actionsMenuInit(title) {
// Initialize action menu
for (i = 0; i < document.forms.length; i++) {
var form = document.forms[i];
if (form.className == 'actionsmenu') {
// Check if this form needs update
var div = form.getElementsByTagName('div')[0];
var label = div.getElementsByTagName('label')[0];
if (label) {
// This is the first time: remove label and do buton.
div.removeChild(label);
var dobutton = div.getElementsByTagName('input')[0];
div.removeChild(dobutton);
// and add menu title
var select = div.getElementsByTagName('select')[0];
var item = document.createElement('option');
item.appendChild(document.createTextNode(title));
item.value = 'show';
select.insertBefore(item, select.options[0]);
select.selectedIndex = 0;
}
}
}
}
//-->
</script>
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/wiki/modern/css/common.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="/wiki/modern/css/screen.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="/wiki/modern/css/print.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="/wiki/modern/css/projection.css">
<!-- css only for MSIE browsers -->
<!--[if IE]>
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/wiki/modern/css/msie.css">
<![endif]-->
<link rel="Start" href="/quake4/Quake4SDK">
<link rel="Alternate" title="Wiki Markup" href="/quake4/LevelEditor_DifficultySettings?action=raw">
<link rel="Alternate" media="print" title="Print View" href="/quake4/LevelEditor_DifficultySettings?action=print">
<link rel="Search" href="/quake4/FindPage">
<link rel="Index" href="/quake4/TitleIndex">
<link rel="Glossary" href="/quake4/WordIndex">
<link rel="Help" href="/quake4/HelpOnFormatting">
</head>
<body lang="en" dir="ltr">
<div id="header">
<div id="logo"><a href="/quake4/Quake4SDK"><img src="/wiki/common/moinmoin.png" alt="MoinMoin Logo"></a></div>
<form id="searchform" method="get" action="">
<div>
<input type="hidden" name="action" value="fullsearch">
<input type="hidden" name="context" value="180">
<label for="searchinput">Search:</label>
<input id="searchinput" type="text" name="value" value="" size="20"
onfocus="searchFocus(this)" onblur="searchBlur(this)"
onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
<input id="titlesearch" name="titlesearch" type="submit"
value="Titles" alt="Search Titles">
<input id="fullsearch" name="fullsearch" type="submit"
value="Text" alt="Search Full Text">
</div>
</form>
<script type="text/javascript">
<!--// Initialize search form
var f = document.getElementById('searchform');
f.getElementsByTagName('label')[0].style.display = 'none';
var e = document.getElementById('searchinput');
searchChange(e);
searchBlur(e);
//-->
</script>
<ul id="username"><li><a href="/quake4/LevelEditor_DifficultySettings?action=login" id="login">Login</a></li></ul>
<div id="locationline">
<ul id="pagelocation">
<li><a class="backlink" title="Click to do a full-text search for this title" href="/quake4/LevelEditor_DifficultySettings?action=fullsearch&amp;value=linkto%3A%22LevelEditor+DifficultySettings%22&amp;context=180">LevelEditor DifficultySettings</a></li>
</ul>
</div>
<ul id="navibar">
<li class="wikilink"><a href="/quake4/GettingStarted">GettingStarted</a></li><li class="wikilink"><a href="/quake4/ScriptFile">ScriptFile</a></li><li class="wikilink"><a href="/quake4/MakeAMod">MakeAMod</a></li><li class="wikilink"><a href="/quake4/LevelEditor">LevelEditor</a></li><li class="wikilink"><a href="/quake4/FXEditor">FXEditor</a></li><li class="wikilink"><a href="/quake4/GUIEditor">GUIEditor</a></li><li class="wikilink"><a href="/quake4/Sounds">Sounds</a></li><li class="wikilink"><a href="/quake4/Animations">Animations</a></li><li class="wikilink"><a href="/quake4/ArtReference">ArtReference</a></li><li class="wikilink"><a href="/quake4/DownloadableContent">DownloadableContent</a></li><li class="wikilink"><a href="/quake4/RecentChanges">RecentChanges</a></li><li class="wikilink"><a href="/quake4/FindPage">FindPage</a></li><li class="wikilink"><a href="/quake4/HelpContents">HelpContents</a></li><li class="current"><a href="/quake4/LevelEditor_DifficultySettings">LevelEditor...ltySettings</a></li>
</ul>
<div id="pageline"><hr style="display:none;"></div>
<ul class="editbar"><li><span class="disabled">Immutable Page</span></li><li><a href="/quake4/LevelEditor_DifficultySettings?action=info">Info</a></li><li><a href="/quake4/LevelEditor_DifficultySettings?action=AttachFile">Attachments</a></li><li>
<form class="actionsmenu" method="get" action="">
<div>
<label>More Actions:</label>
<select name="action"
onchange="if ((this.selectedIndex != 0) &&
(this.options[this.selectedIndex].disabled == false)) {
this.form.submit();
}
this.selectedIndex = 0;">
<option value="raw">Raw Text</option>
<option value="print">Print View</option>
<option value="RenderAsDocbook">Render as Docbook</option>
<option value="refresh">Delete Cache</option>
<option value="show" disabled class="disabled">------------</option>
<option value="SpellCheck">Check Spelling</option>
<option value="LikePages">Like Pages</option>
<option value="LocalSiteMap">Local Site Map</option>
<option value="show" disabled class="disabled">------------</option>
<option value="RenamePage" disabled class="disabled">Rename Page</option>
<option value="DeletePage" disabled class="disabled">Delete Page</option>
<option value="show" disabled class="disabled">------------</option>
<option value="MyPages">My Pages</option>
<option value="SubscribeUser">Subscribe User</option>
<option value="show" disabled class="disabled">------------</option>
<option value="Despam">Remove Spam</option>
<option value="PackagePages">Package Pages</option>
</select>
<input type="submit" value="Do">
</div>
<script type="text/javascript">
<!--// Init menu
actionsMenuInit('More Actions:');
//-->
</script>
</form>
</li></ul>
</div>
<div id="page" lang="en" dir="ltr">
<div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span>
<span class="anchor" id="line-1"></span><p class="line867">
<h2 id="head-3f7b3d8f8728f2728e734847c6253d8e5c3b3fd1">Effects of Difficulty Setting</h2>
<span class="anchor" id="line-2"></span><span class="anchor" id="line-3"></span><p class="line862">Difficulty in quake4 is driven by the cvar <strong>g_skill</strong>, which is modified when the player picks a difficulty level at the console and preserved when the player saves his game. What this means for the designer: <span class="anchor" id="line-4"></span><span class="anchor" id="line-5"></span><ul><li>AI aggressiveness is modified by changing their aggressiveScale, which determines frequency of attacks among other things: <span class="anchor" id="line-6"></span><ul><li>Easy: combat.aggressiveScale will be 1.0. <span class="anchor" id="line-7"></span></li><li>Normal: combat.aggressiveScale will be between 1.0 and 1.25. <span class="anchor" id="line-8"></span></li><li>Hard: combat.aggressiveScale will be between 1.25 and 1.5. <span class="anchor" id="line-9"></span></li><li>Hardest: combat.aggressiveScale will be between 1.5 and 1.75. <span class="anchor" id="line-10"></span></li></ul></li><li>Marine Buddy Health Changes: <span class="anchor" id="line-11"></span><ul><li>Easy: Adjusted health is 1.2 times the original health. <span class="anchor" id="line-12"></span></li><li>Hard: Adjusted health is 1.2 times the original health. <span class="anchor" id="line-13"></span></li><li>Hardest: Adjusted health is 1.4 times the original health. <span class="anchor" id="line-14"></span></li></ul></li><li>Strogg Health Changes: <span class="anchor" id="line-15"></span><ul><li>Easy: Adjusted health is 0.7 times the original health. <span class="anchor" id="line-16"></span></li><li>Normal: Adjusted health is 1.0 times the original health. <span class="anchor" id="line-17"></span></li><li>Hard: Adjusted health is 1.4 times the original health. <span class="anchor" id="line-18"></span></li><li>Hardest: Adjusted health is 1.8 times the original health. <span class="anchor" id="line-19"></span></li></ul></li><li>Scale of damage taken by player (excluding melee): <span class="anchor" id="line-20"></span><ul><li>Easy: Adjusted damage will be 0.8 times the original damage (rounded up to a minimum 1 damage). <span class="anchor" id="line-21"></span></li><li>Normal: Adjusted damage will be 1.0 times the original damage. <span class="anchor" id="line-22"></span></li><li>Hard: Adjusted damage will be 1.7 times the original damage. <span class="anchor" id="line-23"></span></li><li>Hardest: Adjusted damage will be 3.5 times the original damage. <span class="anchor" id="line-24"></span></li></ul></li><li>Minimum player health on savegame restore: <span class="anchor" id="line-25"></span><ul><li>Easy or Normal: You will have at least 25 health on spawn. <span class="anchor" id="line-26"></span></li></ul></li><li>AI will never intentionally miss melee attacks on the hardest setting. <span class="anchor" id="line-27"></span></li><li>Dynamic protection (which reduces damage incrementally for high frequency attacks) isn't enabled on the hardest setting. <span class="anchor" id="line-28"></span></li><li>Certain entities will not spawn depending on certain key values at certain difficulty levels: <span class="anchor" id="line-29"></span><ul><li>Easy: Will not spawn if "not_easy" "1" is specified on the entity or in its entityDef. <span class="anchor" id="line-30"></span></li><li>Normal: Will not spawn if "not_medium" "1" is specified on the entity or in its entityDef. <span class="anchor" id="line-31"></span></li><li>Hard: Will not spawn if "not_hard" "1" is specified on the entity or in its entityDef. <span class="anchor" id="line-32"></span></li><li>Hardest: Also will not spawn if "not_hard" "1" is specified on the entity or in its entityDef. <span class="anchor" id="line-33"></span><span class="anchor" id="line-34"></span></li></ul></li></ul><p class="line862">Note that on the harder difficulties, the buddy AI actually gets <em>healthier</em>, and this is simply to offset the punshing damage dealt by the enemies in those harder difficulties. In addition, marine buddies who are flagged as mission critical (i.e. you will game over if they die) get an additional boost to their health on hard / hardest difficulties. <span class="anchor" id="line-35"></span><span class="anchor" id="bottom"></span></div><p id="pageinfo" class="info" lang="en" dir="ltr">LevelEditor DifficultySettings (last edited 2005-12-05 23:21:25 by <span title="JimShepard @ 67.129.250.254[67.129.250.254]"><a class="nonexistent" href="/quake4/JimShepard" title="JimShepard @ 67.129.250.254[67.129.250.254]">JimShepard</a></span>)</p>
<div id="pagebottom"></div>
</div>
<div id="footer">
<ul class="editbar"><li><span class="disabled">Immutable Page</span></li><li><a href="/quake4/LevelEditor_DifficultySettings?action=info">Info</a></li><li><a href="/quake4/LevelEditor_DifficultySettings?action=AttachFile">Attachments</a></li><li>
<form class="actionsmenu" method="get" action="">
<div>
<label>More Actions:</label>
<select name="action"
onchange="if ((this.selectedIndex != 0) &&
(this.options[this.selectedIndex].disabled == false)) {
this.form.submit();
}
this.selectedIndex = 0;">
<option value="raw">Raw Text</option>
<option value="print">Print View</option>
<option value="RenderAsDocbook">Render as Docbook</option>
<option value="refresh">Delete Cache</option>
<option value="show" disabled class="disabled">------------</option>
<option value="SpellCheck">Check Spelling</option>
<option value="LikePages">Like Pages</option>
<option value="LocalSiteMap">Local Site Map</option>
<option value="show" disabled class="disabled">------------</option>
<option value="RenamePage" disabled class="disabled">Rename Page</option>
<option value="DeletePage" disabled class="disabled">Delete Page</option>
<option value="show" disabled class="disabled">------------</option>
<option value="MyPages">My Pages</option>
<option value="SubscribeUser">Subscribe User</option>
<option value="show" disabled class="disabled">------------</option>
<option value="Despam">Remove Spam</option>
<option value="PackagePages">Package Pages</option>
</select>
<input type="submit" value="Do">
</div>
<script type="text/javascript">
<!--// Init menu
actionsMenuInit('More Actions:');
//-->
</script>
</form>
</li></ul>
<ul id="credits">
<li><a href="http://moinmoin.wikiwikiweb.de/">MoinMoin Powered</a></li><li><a href="http://www.python.org/">Python Powered</a></li><li><a href="http://validator.w3.org/check?uri=referer">Valid HTML 4.01</a></li>
</ul>
</div>
</body>
</html>