Mostly Harmless

Difference between revisions of "User:00zX"

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
m
m (Work)
 
(201 intermediate revisions by 2 users not shown)
Line 1: Line 1:
__TOC__
+
__NOTOC__
===Contributions===
+
==Wiki==
:*[[UE2:Using_the_UT2004_mod_system|Using the UT2004 Mod System]]
+
====General====
 +
:[[User:00zX/Setting_Up_Your_UScript_Environment|Setting Up Your UScript Environment]]
 +
====UE3====
 +
:[[User:00zX/Using_The_Unreal_Engine_3_Preprocessor|Using The Unreal Engine 3 Preprocessor]]
 +
====UE2.5====
 +
:[[UE2:Using_the_UT2004_mod_system|Using The UT2004 Mod System]]
 +
====Rants====
 +
[[User:00zX/Rants|Rants]]
  
===Contact Me===
+
==Work==
======IRC======  
+
====Unreal Development Kit====
_00zX on [irc://irc.enterthegame.com EnterTheGame]
+
:[[User:00zX/Plugin_(UDK)|UDK: ReDeX]] ''Status:'' '''Testing'''
;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]
+
:''Description:'' PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.
;* [irc://irc.enterthegame.com/unrealwiki #unrealwiki on EnterTheGame]
+
::''GamedGFx:''' Scaleform interface along with object saving/loading.
;* [irc://irc.enterthegame.com/unrealed #unrealed on EnterTheGame]
+
::'''GamedEx:''' GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.
;* [irc://irc.enterthegame.com/chaoticdreams #chaoticdreams on EnterTheGame]
+
::'''GamedCaster:''' First Person Multiplayer PvP.
;* [irc://irc.enterthegame.com/ausgamers #ausgamers on EnterTheGame]
+
 
+
======Other/Profiles======
+
[[Special:Emailuser/00zX|E-mail 00zX]] or on
+
;* [http://delicious.com/00zX delicious]
+
;* [http://photobucket.com/00zX Photobucket]
+
 
+
--------<br><br><br><br>
+
==Proposal - Noir theme with highlighter adjustments==
+
 
+
===Code Noir Redex===
+
:stylish - userstyle -[[User:00zX|00zX]] 07:58, 28 March 2009 (UTC)
+
<source lang=css>
+
@-moz-document domain(wiki.beyondunreal.com) {
+
 
+
/*================================================================================*/
+
/** CODENOIR.CSS */
+
/*================================================================================*/
+
/* #bcb936 - UC3 Gold */
+
/* #66bcd9 - UnrealEd Blue */
+
 
+
/* #090909 - Noir */
+
/* #151515 - Full Moon */
+
/* #8f8f8f - Grey Metal */
+
 
+
/* #adcc63 - light green */
+
/* #99aadd - light blue metal / lilac */
+
/* #59939c - greyish blue light / teal */
+
/* #494949 - midish grey metal */
+
/* #7b749b - purple metal*/
+
 
+
/* #257ec2 - shell beach */
+
/* #fd3e1c - oraed */
+
/* #ffcc00 - yellow ambox */
+
/* #0a44aa - H2 blue deep */
+
 
+
/* #b8b634 - welloy */
+
/*================================================================================*/
+
 
+
/* UE1 namespace content */
+
.ns-102 #content, .ns-103 #content {
+
/*background: #eff7ff url(/w/images/UE1Background.png) top right no-repeat;*/
+
border-color: #66bcd9 !important; border-width: 1px !important;
+
}
+
.ns-102 h1, .ns-103 h1 {color:#66bcd9 !important; border-bottom: #66bcd9 solid 1px !important; }
+
 
+
/* UE2 namespace content */
+
.ns-104 #content, .ns-105 #content {
+
border-color: #257ec2 !important; border-width: 1px !important;
+
}
+
.ns-104 h1, .ns-105 h1 {color:#257ec2 !important; border-bottom: #257ec2 solid 1px !important; }
+
 
+
/* UE3 namespace content */ /* #fd3e1c - Old Red */
+
.ns-106 #content, .ns-107 #content {
+
border-color: #bcb936 !important; border-width: 1px !important;
+
}
+
.ns-106 h1, .ns-107 h1 {color:#bcb936 !important; border-bottom: #bcb936 solid 1px !important; }
+
 
+
/* Legacy namespace content */
+
.ns-100 #content, .ns-101 #content {
+
border-color: #7b749b !important; border-width: 1px !important;
+
}
+
.ns-100 h1, .ns-101 h1 {color:#7b749b !important; border-bottom: #7b749b solid 1px !important; }
+
 
+
.topic-list{}
+
 
+
tbody tr table tbody tr td ul li:hover{
+
text-decoration: none !important;
+
}
+
 
+
table.recentedits tbody tr td ul li{}
+
table.recentedits tbody tr td ul li a{}
+
 
+
/*================================================================================*/
+
/** MONOBOOK-NOIR.CSS */
+
/*================================================================================*/
+
 
+
/* p a{}*/
+
/* div.bodyContent p a{} */
+
 
+
a:link{ color: #99c9ff !important; text-decoration: none !important;
+
background: none !important; line-height: 0.6em !important;
+
}
+
a:visited{ color: #959595 !important; font-style: italic !important;}
+
a:hover{ color: #59939c !important;
+
text-decoration: none !important; line-height: 0.6em !important;
+
}
+
 
+
/* a { background: inherit !important;}*/
+
div { color: white !important; background-color: #090909 !important; }
+
table { color: white !important; background-color: inherit !important; }
+
/* p { color: white !important; background-color: #151515 !important; }*/
+
 
+
body { font-size-adjust:none !important;
+
font-style:normal !important;
+
font-variant:normal !important;
+
font-weight:normal !important;
+
line-height:normal !important;
+
}
+
 
+
/* #bodyContent .plainlinks a { background: none !important; padding: 0 !important; }*/
+
/* .p-cactions{}*/
+
 
+
#pbody a{ border: 1px solid #99aadd !important;}
+
 
+
#toc { background-color: #494949 !important;
+
border: 1px solid #59939c !important;
+
}
+
 
+
#content { background: #151515 !important;
+
font-family: trebuchet, arial !important;
+
font-size: 10pt !important;
+
/*border: 0 !important;*/
+
}
+
 
+
#bodyContent{ background-color: #151515 !important; }
+
#div.bodyContent{ background-color: #151515 !important; }
+
div.plainlinks,
+
div.noprint{ background-color: #494949 !important; }
+
 
+
/*================================================================================*/
+
/** COMMON.CSS (noir/uscript) */
+
/*================================================================================*/
+
/** Article message boxes - Description: Various display styles for the ambox template.*/
+
.ambox{ background: #000000 !important; }
+
.ambox-text{ background: #000000 !important; }
+
/* #ambox-image{ background: #000000 !important; }*/
+
 
+
table.ambox {
+
margin: 0px 10%;
+
border-collapse: collapse;
+
background: none !important;
+
border: 1px solid #b8b634 !important;    /* new yellow */
+
border-left-width: 10px;
+
}
+
 
+
table.ambox a{color: #000000 !important;}
+
 
+
/* type 'info' */
+
table.ambox-info{
+
border-width: 1px; border-color: #88a;
+
background: #000000 !important;
+
}
+
 
+
/** Infobox layout - Description: General style for infobox-like content objects.*/
+
table.infobox, div.infobox {
+
background: #494949 !important;
+
/*border: 1px solid #000000  !important;*/
+
border: 2px solid #000000 !important;
+
padding: 1em;
+
}
+
 
+
/* heading and line color */
+
/* h1, h2 { background: #151515 !important; }*/
+
 
+
h1, h2, h3, h4 {
+
background: none !important; /*background: #151515 !important;*/
+
font-family: arial, trebuchet !important;
+
font: 100 normal 130%/100% "Arial Narrow", sans-serif !important;
+
border-bottom: none !important;
+
}
+
 
+
h1 { color: #7b749b !important; border-bottom: #7b749b solid 1px !important;
+
font: 500 normal 160%/180% "Arial Narrow", sans-serif !important;
+
}
+
h2 { color:#99aadd !important; border-bottom: 1px solid #99aadd !important;
+
font: 300 normal 140%/120%  "Arial Narrow", sans-serif !important;
+
/* line-height: 0.6em !important;
+
letter-spacing: 0.025em !important; word-spacing: 0.4em !important;*/
+
}
+
/* h3 { color: #adcc63 !important;
+
font: 250 normal 120%/130% "Arial Narrow", sans-serif !important;
+
}
+
h4 { background: none !important; color:#257ec2 !important;
+
font: 150 normal 100%/120% "Arial Narrow", sans-serif !important;
+
}*/
+
hr { background: #151515 !important; color: #909;
+
margin-top: 1em; margin-bottom: 1em;
+
}
+
li { background: inherit !important; }
+
ul{ background: inherit !important; }
+
 
+
/* #mw-subcategories h3,
+
#mw-category-media h3,
+
#mw-pages h3 { color: black; border-bottom: none; }*/
+
#mw-headline { background: inherit !important; }
+
.site-notice p{ background: inherit !important; }
+
 
+
/** Quote style - Description: Display style for quote template. */
+
blockquote.quote-text {
+
background: #b9c3ca !important; border: 1px solid #aaa;
+
margin: 1em 10%; padding: 0 0.5em;
+
}
+
 
+
blockquote.quote-text .quote-source {
+
text-align: right; font-size: 88%;
+
font-style: italic; margin-bottom: 0.5em;
+
}
+
 
+
/*================================================================================*/
+
/**make a few corners round, only supported by moz/firefox/other gecko browsers for now */
+
/*================================================================================*/
+
#content {
+
-moz-border-radius-topleft: 0.5em !important;
+
/* -moz-border-radius-bottomleft: 0.5em !important;*/
+
}
+
/* #div.pBody {
+
-moz-border-radius-topright: 0.5em !important;
+
-moz-border-radius-bottomright: 0.5em !important;
+
}*/
+
#toc {
+
-moz-border-radius: 6px !important;
+
/* -moz-border-radius-topleft: 6px !important;
+
-moz-border-radius-topright: 6px !important;
+
-moz-border-radius-bottomleft: 6px !important;
+
-moz-border-radius-bottomright: 6px !important;*/
+
}
+
 
+
table.infobox, div.infobox {
+
-moz-border-radius: 6px !important;
+
/* -moz-border-radius-topleft: 6px !important;
+
-moz-border-radius-topright: 6px !important;
+
-moz-border-radius-bottomleft: 6px !important;
+
-moz-border-radius-bottomright: 6px !important;*/
+
}
+
  
.ambox{
+
:[[User:00zX/Project Silky_(UDK)|UDK: Project Silky]] ''Status:'' '''Alpha''' (on hold)
-moz-border-radius: 6px !important;
+
====Unreal Tournament 3====
}
+
:[[User:00zX/GameDex Framework_(UT3)|UT3: GameDex Framework]] ''Status:'' '''Beta''' (on hold)
}
+
::[[User:00zX/GameDex_Framework_(UT3)#Newtators (Mutator pack)|Newtators-v1.9e]] ''Status:'' '''Point Release'''
</source>
+
::[[User:00zX/GameDex_Framework_(UT3)#Attrition (Gametype)|Attrition-v0.5pb]] ''Status:'' '''Public Beta'''
 +
====Unreal Tournament 2004====
 +
:[[User:00zX/UC2004_(UT2004)|UT2004: Unreal Championship 2004]] ''Status:'' '''Beta''' (dissolved)
 +
:[http://www.divshare.com/download/16967446-918|UT2004: Turbo Instagib] ''Status:'' '''Beta'''
 +
:[http://www.divshare.com/download/16967454-2c0|UT2004: CrapLink]] ''Status:'' '''Beta'''
 
<br>
 
<br>
<source lang=php>
 
<?php
 
/*************************************************************************************
 
* uscript.php
 
* ----------
 
* Author: Graham Knop (haarg@beyondunreal.com)
 
* Copyright: (c) 2007-2009 Graham Knop
 
* Release Version: 0.0.0.1
 
* Date Started: 2007/12/17
 
*
 
* UScript language file for GeSHi.
 
*
 
* 00zX - Modified version to suit Noir Theme!
 
************************************************************************************/
 
  
$language_data = array (
+
==Highlighters==
'LANG_NAME' => 'UnrealScript',
+
'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
+
'COMMENT_MULTI' => array('/*' => '*/'),
+
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+
'QUOTEMARKS' => array("'", '"'),
+
'ESCAPE_CHAR' => '\\',
+
'KEYWORDS' => array(
+
1 => array(
+
'while', 'until', 'switch', 'stop', 'return', 'replication', 'if', 'goto', 'foreach',
+
'for', 'else', 'do', 'defaultproperties', 'default', 'cpptext', 'continue', 'case', 'break', 'assert',
+
'false','true', 'none'
+
),
+
2 => array(
+
#NOTE: Exec's also!
+
'#undef', '#ucpp', '#pragma', '#include', '#ifndef', '#ifdef',
+
'#if', '#exec', '#endif', '#else', '#elif', '#define',
+
  
'`include', '`define', '`if', '`isdefined', '`else', '`endif','`undefine',
+
===UnrealWiki - Code Noir Redex Theme===  
'`log', '`logd', '#endif', '#else', '#elif', '#define',
+
[[File:Monobook-noir-alpha3.gif|700px|thumb|left]]
),
+
====Status: Beta====
3 => array(
+
To Install copy the contents of the following page into your own ''''User:[name]/monobook.css'''' page.
'dot', 'cross', 'clockwisefrom',
+
::[[User:00zX/monobook.css]]
),
+
::[http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fwiki.beyondunreal.com%2FUser%3A00zX%2Fmonobook.css&profile=css21&usermedium=all&warning=1&lang=en W3C CSS Validator]
4 => array(
+
::[http://i10.photobucket.com/albums/a123/OlympusMons/CodeNoirRedeX.png High Resolution Image]<br>
'Vector2D', 'Vector', 'vect', 'struct', 'string', 'Scale', 'Rotator', 'ret', 'RangeVector',
+
=====Features=====
'Range', 'Quaternion', 'Quat', 'pointer', 'Plane', 'name', 'Matrix', 'InterpCurvePoint',
+
:Dark Theme
'InterpCurve', 'IntBox', 'int', 'GUID', 'FloatBox', 'float', 'enum', 'Coords', 'CompressedPosition',
+
:High Contrast
'Color', 'byte', 'Box', 'BoundingVolume', 'bool'
+
:Improved Readability
),
+
:Highlighter adjustments for UScript, CSS and XML
5 => array(
+
:Different coloured borders per GameNameSpace
'within', 'var', 'state', 'local', 'function', 'extends', 'expands', 'event', 'delegate', 'const', 'class'
+
:Curved Borders in supporting browsers
),
+
=====Known Issues=====
6 => array(
+
:Edit/Input boxes are still black text on white.
'unreliable', 'travel', 'transient', 'super', 'static', 'skip', 'singular', 'simulated',
+
:Profile settings page unreadable.
'showcategories', 'safereplace', 'remove', 'reliable', 'protected', 'private', 'preoperator',
+
<br><br><br>
'postoperator', 'placeable', 'perobjectconfig', 'parseconfig', 'out', 'optional', 'operator',
+
'nousercreate', 'notplaceable', 'noteditinlinenew', 'nonativereplication', 'noexport',
+
'noexport', 'new', 'nativereplication', 'native', 'localized', 'length', 'length', 'latent',
+
'iterator', 'intrisic', 'instanced', 'insert', 'input', 'import', 'ignores', 'hidedropdown',
+
'hidecategories', 'globalconfig', 'global', 'final', 'exportstructs', 'export', 'exec',
+
'enumcount', 'editinlineuse', 'editinlinenotify', 'editinlinenew', 'editinline', 'editconst',
+
'edfindable', 'edconstarray', 'dontcollapsecategories', 'deprecated', 'dependson', 'config',
+
'collapsecategories', 'coerce', 'cacheexempt', 'automated', 'auto', 'arraycount', 'array', 'abstract'
+
#UE2+:Editor
+
'CollapseCatergories','DontCollapseCategories','HideCategories','HideDropDown','NotEditInlineNew','NotPlaceable',
+
'Placeable','ExportStructs',
+
'SafeReplace'
+
#UE3:Editor
+
'AutoExpandCategories'
+
),
+
7 => array(
+
'warn', 'tan', 'strcmp', 'StopWatch', 'StaticSaveConfig', 'StaticClearConfig', 'sqrt',
+
'sqare', 'split', 'smerp', 'sin', 'setpropertytext', 'SaveConfig', 'round', 'right',
+
'ResetConfig', 'replacetext', 'repl', 'randrange', 'rand', 'PlatformIsWindows',
+
'PlatformIsUnix', 'PlatformIsMacOs', 'PlaformIs64Bit', 'min', 'mid', 'max', 'loge', 'log',
+
'locs', 'localize', 'lerp', 'len', 'left', 'IsSoaking', 'IsOnConsole', 'isinstate', 'isa',
+
'InterpCurveGetOutputRange', 'InterpCurveGetInputDomain', 'InterpCurveEval', 'instr',
+
'gotostate', 'getstatename', 'GetReferencers', 'GetPerObjectNames', 'GetItemName', 'getenum',
+
'gertpropertytext', 'frand', 'fmin', 'fmax', 'FindObject', 'fclamp', 'exp', 'eval',
+
'endstate', 'enable', 'eatstr', 'DynamicLoadObject', 'divide', 'disable', 'cos', 'ClearConfig',
+
'classischildof', 'clamp', 'chr', 'cell', 'caps', 'beginstate', 'atan', 'asin', 'asc', 'acos', 'abs'
+
),
+
8 => array(
+
'Tick', 'Self', 'Role', 'RemoteRole', 'NetMode', 'Level'
+
),
+
9 => array(
+
'ROLE_SimulatedProxy', 'ROLE_None', 'ROLE_DumbProxy', 'ROLE_AutonomousProxy',
+
'ROLE_Authority', 'NM_Standalone', 'NM_ListenServer', 'NM_DedicatedServer', 'NM_Client',
+
),
+
10 => array(
+
#UE
+
'Object', 'DamageType', 'Actor', 'Controller','Pawn','PlayerController',
+
'Material','Texture','Effects',
+
'Info', 'Mutator', 'GameInfo', 'GameRules', 'ZoneInfo',
+
 
+
#UE2
+
'sound','Inventory'#'level','range',
+
 
+
#UE2+
+
'Projector','PlayerReplicationInfo','GameReplicationInfo','StaticMesh','Emitter',
+
 
+
#UE2.5+
+
'Vehicle',
+
 
+
#UE3
+
'WorldInfo', 'SoundNode', 'SoundCue', 'InventoryManager'
+
#UE3:Components
+
'Component', 'ActorComponent', 'PrimitiveComponent', 'SVehicleSimBase', 'StaticMeshComponent', 'SkeletalMeshComponent', 'UTSkeletalMeshComponent'
+
)
+
),
+
'SYMBOLS' => array(
+
0 => array('~=', '~', '||', '|', '^^', '^', '@=', '@', '>>>', '>>', '>=', '>', '==', '<=', '<<', '<', '/='
+
, '/', '-=', '--', '-', '+=', '++', '+', '*=', '**', '*', '&&', '&', '%', '$=', '$', '!=', '!')
+
),
+
'CASE_SENSITIVE' => array(
+
GESHI_COMMENTS => false,
+
1 => false,
+
2 => false,
+
3 => false,
+
4 => false,
+
5 => false,
+
),
+
'STYLES' => array(
+
'KEYWORDS' => array(
+
1  => 'color: #66bcd9;', # control structures - unrealed blu!
+
=> 'color: #8f8f8f;', # preprocessor commands - grey metal!
+
=> 'color: #008000;', # operations
+
=> 'color: #66bcd9;', # variable types - unrealed blu!
+
=> 'color: #009090;', # class/function definitions
+
6  => 'color: #66bcd9;', # variable modifiers - unrealed blu! / some of these could be grey metal
+
7  => 'color: #000000;', # built in functions
+
8  => 'color: #000000;', # replication keywords
+
9  => 'color: #000000;', # enum values
+
10 => 'color: #bcb936;', # common classes - uc3 gold!
+
),
+
'COMMENTS' => array(
+
1 => 'color: #00c000; font-style: italic;', #comment green!
+
2 => 'color: #00c000;', #- Updated color!
+
'MULTI' => 'color: #6bcc00; font-style: italic;' #apple green!
+
),
+
'ESCAPE_CHAR' => array(
+
0 => 'color: #008080; font-weight: bold;'
+
),
+
'BRACKETS' => array(
+
0 => 'color: #ffffff;' #white!
+
),
+
'STRINGS' => array(
+
0 => 'color: #fd3e1c;' #oraed!
+
),
+
'NUMBERS' => array(
+
0 => 'color: #ff6600;' #orange!
+
),
+
'METHODS' => array(
+
1 => 'color: #0000FF;',
+
2 => 'color: #0000FF;'
+
),
+
'SYMBOLS' => array(
+
0 => 'color: #008000;'
+
),
+
'REGEXPS' => array(
+
0 => 'color: #FF0000;' #numbers
+
),
+
'SCRIPT' => array(
+
)
+
),
+
'URLS' => array(
+
1 => '', # control structures
+
2 => '', # preprocessor commands
+
3 => '', # operations
+
4 => '', # variable types
+
5 => '', # class/function definitions
+
6 => '', # variable modifiers
+
7 => '', # built in functions
+
8 => '', # replication control structures
+
9 => '', # enum values
+
10 => '/{FNAME}' # common objects
+
),
+
'OOLANG' => true,
+
'OBJECT_SPLITTERS' => array(
+
1 => '.',
+
2 => '::'
+
),
+
'REGEXPS' => array(
+
0 => '\d+(?:.\d+)?f?'
+
),
+
'STRICT_MODE_APPLIES' => GESHI_NEVER,
+
'SCRIPT_DELIMITERS' => array(
+
),
+
'HIGHLIGHT_STRICT_BLOCK' => array(
+
),
+
'TAB_WIDTH' => 4
+
);
+
 
+
?>
+
 
+
 
+
?>
+
 
+
</source>
+
 
+
==Proposal - Replication==
+
 
+
===Replication===
+
-[[User:00zX|00zX]] 07:58, 28 March 2009 (UTC)<br>
+
:[[Replication]]/[[Replication_(computer_science)]]
+
::''Declaring Replication'' using the[[Legacy:Replication_Block|Replication Block]]
+
::''Function Replication'' using the replication block?
+
:: Booleans Declared in actor that are useful in replication
+
http://wiki.beyondunreal.com/Introduction_to_replication#
+
 
+
===Replication Block===
+
[[Legacy:Replication_Block]]
+
 
+
'''replication'''
+
'''{'''
+
  ''reliable/unreliable'' '''if (''' ''replication condition'' ''')'''
+
    ''identifiers'';
+
'''}'''
+
 
+
: ''Identifiers'' can be of many types, certain types however arnt allowed like dynamic arrays.
+
 
+
[[UE3:Actor_(UT3)]] - link to replication block
+
 
+
* Actor Replication
+
 
+
* Variable Value Replication
+
Repnotify
+
 
+
* Function call replication
+
: Like replicated variables, the replication of a function call can be tied to certain conditions. In Unreal Engine 1 and 2 this condition is specified via the replication block and typically involves comparing the actor's Role to the value ROLE_Authority, Unreal Engine 3 provides the special function modifiers client and server instead.
+
* Using [[Functions#Network_modifiers|Network modifiers]] for Functions
+
<uscript>
+
reliable client function bool DoSomething()
+
{
+
return true;
+
}</uscript>
+
 
+
taken from controller.uc (ut3)
+
<uscript>
+
reliable server function ServerRestartPlayer()
+
{
+
if (WorldInfo.NetMode != NM_Client &&
+
Pawn != None)
+
{
+
ServerGivePawn();
+
}
+
}
+
</uscript>
+
 
+
===Role and RemoteRole===
+
 
+
Definition
+
:The [[Actor]] class defines the NetRole enumeration and two variables, [[Role and RemoteRole]], as follows:
+
 
+
:*[[UE3:Actor_(UT3)#ENetRole]]
+
:*[[UE2:Actor_enums_(UT2003)#ENetRole]]
+
:*[[UE2:Actor_enums_(UT2004)#ENetRole]]
+
:*[[UE2:Actor_enums_(U2)#ENetRole]]
+
 
<br>
 
<br>
<uscript>
 
enum ENetRole
 
{
 
ROLE_None,              // No role at all.
 
ROLE_SimulatedProxy, // Locally simulated proxy of this actor.
 
ROLE_AutonomousProxy, // Locally autonomous proxy of this actor.
 
ROLE_Authority, // Authoritative control over the actor.
 
};
 
var ENetRole RemoteRole, Role;
 
</uscript>
 
<br>
 
====usage:====
 
<uscript>
 
if (Role == ROLE_Authority)
 
{
 
// This is the authorative copy of this actor, it was spawned on this machine.
 
// It is not a guarantee that we are on the server or in single player!
 
}
 
  
if (Role < ROLE_Authortity)
+
==Contact Me==
{
+
====IRC====
// This is a non-authorative copy of this actor that was replicated
+
_00zX on [irc://irc.enterthegame.com EnterTheGame]
// from the server. In other words, we must be on a client.
+
;* [irc://irc.enterthegame.com/unrealscript #unrealscript on EnterTheGame]
}</uscript>
+
;* [irc://irc.enterthegame.com/beyondunreal #beyondunreal on EnterTheGame]
<br>
+
_00zX on [irc://irc.gamesurge.net GameSurge]
As in the replication block of Actor.uc UT3
+
;* [irc://irc.irc.gamesurge.net/udkc #udkc on GameSurge]
<uscript>
+
// Physics
+
if( (!bSkipActorPropertyReplication || bNetInitial) && bReplicateMovement
+
&& ((RemoteRole == ROLE_SimulatedProxy) && (bNetInitial || bUpdateSimulatedPosition)) )
+
</uscript>
+
  
===NetMode===
+
====Other/Profiles====
Definition
+
[[Special:Emailuser/00zX|E-mail 00zX]] or on
:The [[UE3:WorldInfo_(UT3)|WorldInfo]] (previously Level Class [ut2kx]) class defines the [[UE3:WorldInfo_(UT3)#ENetMode|NetMode]] enumeration and two variables, [[Role and RemoteRole]], as follows:
+
;* MonsOlympus @ [www.pastebin.org]
 
+
:*[[UE3:WorldInfo_(UT3)#ENetMode]]
+
:*[[UE2:Actor_enums_(UT2003)#ENetRole]]
+
:*[[UE2:Actor_enums_(UT2004)#ENetRole]]
+
:*[[UE2:Actor_enums_(U2)#ENetRole]]
+
<uscript>
+
var enum ENetMode
+
{
+
NM_Standalone,        // Standalone game.
+
NM_DedicatedServer,  // Dedicated server, no local client.
+
NM_ListenServer,      // Listen server, local client+server.
+
NM_Client            // Client only, no local server.
+
} NetMode;
+
</uscript>
+
 
+
=====Examples=====
+
<uscript>
+
if (WorldInfo.NetMode != NM_DedicatedServer)
+
{
+
// This could be offline, a listen server or a client, but we know
+
// we have a local player on this machine, someone who can see or hear things.
+
}</uscript>
+
<br>
+
====usage:====
+
<uscript>
+
simulated event Tick (float DeltaTime)
+
{
+
if(WorldInfo.NetMode != NM_DedicatedServer)
+
{
+
// Code here will only be executed on Listen servers and game clients.
+
}
+
+
if(WorldInfo.NetMode == NM_DedicatedServer)
+
{
+
// Code here will only be executed on a server.
+
}
+
}</uscript>
+
 
+
==Useful Replication Properties==
+
 
+
===UT3 actor.uc===
+
<uscript>
+
// Networking flags
+
var   const bool bNetTemporary; // Tear-off simulation in network play.
+
var   const bool bOnlyRelevantToOwner; // this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.
+
var transient bool bNetDirty; // set when any attribute is assigned a value in unrealscript, reset when the actor is replicated
+
var bool bAlwaysRelevant; // Always relevant for network.
+
var bool bReplicateInstigator; // Replicate instigator to client (used by bNetTemporary projectiles).
+
var bool bReplicateMovement; // if true, replicate movement/location related properties
+
var bool bSkipActorPropertyReplication; // if true, dont replicate actor class variables for this actor
+
var bool bUpdateSimulatedPosition; // if true, update velocity/location after initialization for simulated proxies
+
var bool bTearOff; // if true, this actor is no longer replicated to new clients, and
+
// is "torn off" (becomes a ROLE_Authority) on clients to which it was being replicated.
+
var bool bOnlyDirtyReplication; // if true, only replicate actor if bNetDirty is true - useful if no C++ changed attributes (such as physics)
+
// bOnlyDirtyReplication only used with bAlwaysRelevant actors
+
 
+
 
+
/** Demo recording variables */
+
var transient bool bDemoRecording; /** set when we are currently replicating this Actor into a demo */
+
var transient bool bClientDemoRecording; /** set when we are recording a clientside demo */
+
var transient bool bRepClientDemo; /** set if remote client is recording a clientside demo */
+
var bool bDemoOwner; // Demo recording driver owns this actor.
+
 
+
/** Should replicate initial rotation.  This property should never be changed during execution, as the client and server rely on the default value of this property always being the same. */
+
var const          bool    bNetInitialRotation;
+
 
+
/** If true, never replicate rotation */
+
var bool bNeverReplicateRotation;
+
 
+
var bool bReplicateRigidBodyLocation; // replicate Location property even when in PHYS_RigidBody
+
var bool bKillDuringLevelTransition; // If set, actor and its components are marked as pending kill during seamless map transitions
+
/** whether we already exchanged Role/RemoteRole on the client, as removing then readding a streaming level
+
* causes all initialization to be performed again even though the actor may not have actually been reloaded
+
*/
+
var const bool bExchangedRoles;
+
</uscript>
+
 
+
 
+
=====booleans=====
+
* <code>(Level.NetMode == NM_Client && bNetOwner)</code> &ndash; owner clients (special case of client where the local player is the Owner of the actor in question)
+
 
+
'''UT2004'''
+
 
+
NetUpdateFrequency
+
 
+
NetUpdateFrequency is another variable useful in replication. It effectively causes an otherwise relevant (not useful when the actor is not relevant) actor to be relevant NetUpdateFrequency times per second. This is useful when the data changes frequently but you only want periodic updates. For example, PlayerReplicationInfo contains a lot of data about the client. Stuff like the various player's pings may change quite frequently, and having the client keep track of such information would be quite a network hog. But since PlayerReplicationInfo has a NetUpdateFrequency of 2, it is only updated twice a second, which is much nicer for that player's bandwidth. The list of the current NetUpdateFrequency's for all UT classes are listed below:
+
 
+
Actor - 100 Hz (times per second)<br>
+
ZoneInfo - 4 Hz<br>
+
GameReplicationInfo - 4 Hz<br>
+
PlayerReplicationInfo - 2 Hz<br>
+
Inventory - 8 Hz<br>
+
 
+
===Variables only valid during replication===
+
; bClientDemoNetFunc : True if we're client-side demo recording and this call originated from the remote.
+
; bClientDemoRecording : This machine is currently recording a clientside demo.
+
; bDemoRecording : This machine is currently recording a demo.
+
; bNetInitial : True during the first time all variables are replicated for this actor.
+
; bNetOwner : True when the replication target is this actor's Owner. ((true if the player we are replicating to owns this actor directly. ))
+
 
+
====Only UT====
+
; bNetFeel : Player collides with/feels it in network play. ((Not used anymore, never even set. - UT200x?))
+
; bNetHear : Player hears it in network play.
+
; bNetSee : Player sees it in network play.
+
; bSimulatedPawn : True if this is a [[Legacy:Pawn (UT)|Pawn (UT)]] and simulated proxy. ((true if the actor is a pawn (or a pawn subclass) with Role == ROLE_SimulatedProxy. In other words, true if it's a pawn that's not the client.))
+
 
+
====Only UT2003====
+
; bDemoOwner : Demo recording driver owns this actor.
+
; bNetDirty : True when a property was changes since the last time it was replicated.
+
; bNetRelevant : Actor is currently relevant. Only valid server side and only when replicating variables.
+
; bRepClientDemo : The remote machine is currently recording a demo.
+
; Level.ReplicationViewer : during replication, set to the playercontroller to which actors are currently being replicated
+
; Level.ReplicationViewTarget : during replication, set to the viewtarget to which actors are currently being replicated
+
 
+
====Only UT2004====
+
;bNetInitial : ((True if this is the first time this actor is being replicated across the network. Useful for variables that differ from the defaultproperties, yet will not change over the life of the actor.))
+
 
+
===Other Useful Variables===
+
 
+
====In UT====
+
; bClientAnim : If True, AmbientSound and animations are replicated also to the owning client.
+
 
+
====In UT2003====
+
 
+
These properties are used in the Actor class replication block.
+
; bNoRepMesh : Don't replicate the Mesh.
+
; bReplicateAnimations : Whether SimAnim should be replicated.
+
; bReplicateInstigator : Whether the Instigator should be replicated.
+
; bReplicateMovement : Whether properties relevant for movement like Location, Rotation, Velocity, etc. should be replicated. Unlike bSkipActorPropertyReplication this also affects the initial replication.
+
; bSkipActorPropertyReplication : Used by [[Legacy:ReplicationInfo|ReplicationInfo]] classes that don't need to know all the Actor class properties on the clients. When set to True only the initial replication replicates the Actor class properties.
+
; bUpdateSimulatedPosition : Whether the actor's Location, Rotation and Velocity should be updated for Simulated Proxies.
+
  
==Related Topics==
+
--------<br>
* [[Legacy:Introduction_To_Replication|Introduction To Replication]]
+
* [[Legacy:Replication|Replication]]
+
* [[Legacy:Replication Block|Replication Block]]
+
* [[Legacy:Role|Role]] and RemoteRole, and [[Legacy:NetMode|NetMode]]
+
* [[Legacy:Netcode Idioms|Netcode Idioms]]
+
* [[Legacy:Replication Examples|Replication Examples]]
+
* [[Legacy:Replication_De-Obfuscation|Replication De-Obfuscation]]
+

Latest revision as of 09:15, 8 December 2012

Wiki

General

Setting Up Your UScript Environment

UE3

Using The Unreal Engine 3 Preprocessor

UE2.5

Using The UT2004 Mod System

Rants

Rants

Work

Unreal Development Kit

UDK: ReDeX Status: Testing
Description: PC Framework for UDK, its a combination of a framework and macros along with associated parser functionality.
GamedGFx:' Scaleform interface along with object saving/loading.
GamedEx: GPAK Game framework built using Redux, support for many features; round based play, archetype systems, additions to particles, materials, etc.
GamedCaster: First Person Multiplayer PvP.
UDK: Project Silky Status: Alpha (on hold)

Unreal Tournament 3

UT3: GameDex Framework Status: Beta (on hold)
Newtators-v1.9e Status: Point Release
Attrition-v0.5pb Status: Public Beta

Unreal Tournament 2004

UT2004: Unreal Championship 2004 Status: Beta (dissolved)
Turbo Instagib Status: Beta
CrapLink] Status: Beta


Highlighters

UnrealWiki - Code Noir Redex Theme

Monobook-noir-alpha3.gif

Status: Beta

To Install copy the contents of the following page into your own 'User:[name]/monobook.css' page.

User:00zX/monobook.css
W3C CSS Validator
High Resolution Image
Features
Dark Theme
High Contrast
Improved Readability
Highlighter adjustments for UScript, CSS and XML
Different coloured borders per GameNameSpace
Curved Borders in supporting browsers
Known Issues
Edit/Input boxes are still black text on white.
Profile settings page unreadable.





Contact Me

IRC

_00zX on EnterTheGame

_00zX on GameSurge

Other/Profiles

E-mail 00zX or on

  • MonsOlympus @ [www.pastebin.org]