<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Epic Games Forums - UDK Programming and Unrealscript</title>
		<link>http://forums.epicgames.com/</link>
		<description>Game programming using the Unreal Development Kit.</description>
		<language>en</language>
		<lastBuildDate>Fri, 24 May 2013 10:36:20 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>http://forums.epicgames.com/images/styles/TwistedDark/misc/rss.png</url>
			<title>Epic Games Forums - UDK Programming and Unrealscript</title>
			<link>http://forums.epicgames.com/</link>
		</image>
		<item>
			<title>Feign Death Replication Accuracy</title>
			<link>http://forums.epicgames.com/threads/964099-Feign-Death-Replication-Accuracy?goto=newpost</link>
			<pubDate>Fri, 24 May 2013 09:40:15 GMT</pubDate>
			<description>Hi everyone, 
 
I have implemented a quick melee attack which will knock an enemy backwards and put them in a temporary ragdoll state. The system...</description>
			<content:encoded><![CDATA[<div>Hi everyone,<br />
<br />
I have implemented a quick melee attack which will knock an enemy backwards and put them in a temporary ragdoll state. The system works perfectly offline but I'm having some trouble getting it to work properly in multiplayer.<br />
<br />
The instigator and the observer see the attack play out perfectly, the victim is knocked backwards and falls to the ground before getting back up again a second or two later. However on the victim's screen, they appear to crumple up in a heap at the feet of the instigator, before suddenly teleporting back a couple of feet when they get up.<br />
<br />
This is the code I'm using for the actual knock back attack:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">simulated exec function KnockBack()<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; local Actor Hit;<br />
&nbsp; &nbsp; &nbsp; &nbsp; local Vector HitLocation, HitNormal;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(!bCanKnockBack)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; Hit = Trace(HitLocation, HitNormal, Location+Vector(Rotation)*100, Location, true);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(Hit != none)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ServerKnockBack(self, Hit, HitNormal);<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
}<br />
<br />
<br />
reliable server function ServerKnockBack(RedoubtPawn Hitter, Actor Hit, Vector HitNormal)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(Hit.IsA('RedoubtPawn'))<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RedoubtPawn(Hit).TakeDamage(5, Controller, HitNormal, Vector(Hitter.Rotation)*35000, class'DamageType');<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RedoubtPawn(Hit).FeignDeath();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PlaySound(SoundCue'BD-Sounds.Whack_Cue');<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; else if (Hit.IsA('RedoubtKActor'))<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; RedoubtKActor(Hit).ApplyImpulse(Vector(Hitter.Rotation), 800, HitNormal);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PlaySound(SoundCue'BD-Sounds.Whack_Cue');<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; bCanKnockBack = false;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SetTimer(KnockbackCooldown, false, 'EnableKnockback');<br />
}</code><hr />
</div>So in a nutshell when I hit my quick melee key, it runs a trace for 100 units in front of me, and if the trace hits a Pawn then it will apply damage and momentum and tell the victim to feign death. The momentum applied before the feign death ensures they fly backwards and not crumple in a heap The problem seems to be that the momentum isn't being replicated to the victim for some reason, so they take the damage but just drop where they're standing instead.<br />
<br />
Here is the code for actually playing the ragdoll state when feigning death. This is adapted from some sample code that I found online, so there are elements of this that I'm not familiar with. There is more code but I didn't want to do a massive code dump, so I figured that this would be the most likely place if there is a mistake made with the ragdoll code. This will be executed on the server if the role of the pawn is not authority:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">simulated function PlayPhys(optional bool Permanent)<br />
{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; StartFallImpactTime = WorldInfo.TimeSeconds;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bCanPlayFallingImpacts=true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GotoState('FeigningDeath');<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // if we had some other rigid body thing going on, cancel it<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (Physics == PHYS_RigidBody)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //@note: Falling instead of None so Velocity/Acceleration don't get cleared<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setPhysics(PHYS_Falling);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Ensure we are always updating kinematic<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.MinDistFactorForKinematicUpdate = 0.0;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetPawnRBChannels(TRUE);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.ForceSkelUpdate();<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Move into post so that we are hitting physics from last frame, rather than animated from this<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetTickGroup(TG_PostAsyncWork);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bBlendOutTakeHitPhysics = false;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PreRagdollCollisionComponent = CollisionComponent;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CollisionComponent = Mesh;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Turn collision on for skelmeshcomp and off for cylinder<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CylinderComponent.SetActorCollision(false, false);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetActorCollision(true, true);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetTraceBlocking(true, true);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetPhysics(PHYS_RigidBody);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.PhysicsWeight = 1.0;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // If we had stopped updating kinematic bodies on this character due to distance from camera, force an update of bones now.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( Mesh.bNotUpdatingKinematicDueToDistance )<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.UpdateRBBonesFromSpaceBases(TRUE, TRUE);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.PhysicsAssetInstance.SetAllBodiesFixed(FALSE);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.bUpdateKinematicBonesFromAnimation=FALSE;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Set all kinematic bodies to the current root velocity, since they may not have been updated during normal animation<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // and therefore have zero derived velocity (this happens in 1st person camera mode).<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetRBLinearVelocity(Velocity, false);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FeignDeathStartTime = WorldInfo.TimeSeconds;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // reset mesh translation since adjustment code isn't executed on the server<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // but the ragdoll code uses the translation so we need them to match up for the<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // most accurate simulation<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetTranslation(vect(0,0,1) * BaseTranslationOffset);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // we'll use the rigid body collision to check for falling damage<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.ScriptRigidBodyCollisionThreshold = 600;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetNotifyRigidBodyCollision(true);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.WakeRigidBody();<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (Role == ROLE_Authority)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetTimer(0.15, true, 'FeignDeathDelayTimer');<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
}</code><hr />
</div>If anyone could help me get momentum and feigning death sync'd up for everyone playing, I would be very grateful! :)<br />
<br />
<br />
EDIT: Incidentally, in case you've noticed, there is a security issue around letting the client decide who they've hit with the melee attack before telling the server to deal with the consequences. Much of this code was written when I was still getting to grips with replication and security, so this will of course be rewritten. However I wanted to get this bug fixed before doing so!</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>Neoptolemus</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964099-Feign-Death-Replication-Accuracy</guid>
		</item>
		<item>
			<title><![CDATA[Weapon overlapping with pawn's mesh]]></title>
			<link>http://forums.epicgames.com/threads/964098-Weapon-overlapping-with-pawn-s-mesh?goto=newpost</link>
			<pubDate>Fri, 24 May 2013 09:29:38 GMT</pubDate>
			<description><![CDATA[Hey 
 
My problem is that my weapon is basically overlapping with the pawn's mesh, which means I can see the weapon "through" the pawn. 
I am...]]></description>
			<content:encoded><![CDATA[<div>Hey<br />
<br />
My problem is that my weapon is basically overlapping with the pawn's mesh, which means I can see the weapon &quot;through&quot; the pawn.<br />
I am extending from GamePlayerController for my PlayerController class, and from UT with pretty much everything else<br />
<br />
At the beginning, the weapon was hidden, but I added a SetHidden(false) in ClientGivenTo() and that made the weapon unhidden but overlapping with the mesh<br />
<br />
Here is the Weapon's code:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">class MyWeapon extends UTWeapon;<br />
<br />
reliable client function ClientGivenTo(Pawn NewOwner, bool bDoNotActivate)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; local MyPawn MyPawn;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; super.ClientGivenTo(NewOwner, bDoNotActivate);<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if(NewOwner != none &amp;&amp; NewOwner.Mesh != none)<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MyPawn = MyPawn(NewOwner);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(MyPawn != none &amp;&amp; MyPawn.Mesh.GetSocketByName(MyPawn.WeaponSocket) != none )<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetBase(NewOwner);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetHidden(false);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetShadowParent(MyPawn.Mesh);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Mesh.SetLightEnvironment(MyPawn.LightEnvironment);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(MyPawn.Mesh.GetSocketByName(MyPawn.WeaponSocket) != none)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MyPawn.Mesh.AttachComponentToSocket(Mesh, MyPawn.WeaponSocket);<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
}</code><hr />
</div></div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>WindRyder</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964098-Weapon-overlapping-with-pawn-s-mesh</guid>
		</item>
		<item>
			<title>Video Spline Pawn that patrols Spline and rotates along it.</title>
			<link>http://forums.epicgames.com/threads/964097-Spline-Pawn-that-patrols-Spline-and-rotates-along-it?goto=newpost</link>
			<pubDate>Fri, 24 May 2013 06:57:13 GMT</pubDate>
			<description><![CDATA[As I have been focusing on creating a player capable of moving along a spline perfectly with no deviation, I realized there's basically only SGDK...]]></description>
			<content:encoded><![CDATA[<div>As I have been focusing on creating a player capable of moving along a spline perfectly with no deviation, I realized there's basically only SGDK that has managed to create something close to that effect.<br />
<br />
As I researched the internet for anything to do with splines in unrealscript, I came across a few tutorials that were starters for splines, however when I decided to start using a <a href="http://www.youtube.com/watch?v=Eq0N7yvV3Zc" target="_blank">spline mover tutorial</a> it wasn't perfect.<br />
<br />
So here's a video of what I've managed to accomplish so far...<br />
<br />
<a href="http://www.youtube.com/watch?v=Wh1vAygrpgM" target="_blank">http://www.youtube.com/watch?v=Wh1vAygrpgM</a><br />
<br />
<br />
Also some code, cause I'd love to be able to figure out why my pawn has some glitches, but it's too messy for anyone to make any sense of it atm.<br />
<br />
<a href="http://forums.epicgames.com/attachment.php?attachmentid=12022&amp;d=1369378592"  title="Name:  SplineMover.txt
Views: 3
Size:  2.3 KB">SplineMover.txt</a><br />
<a href="http://forums.epicgames.com/attachment.php?attachmentid=12023&amp;d=1369378603"  title="Name:  SplinePawn.txt
Views: 3
Size:  4.5 KB">SplinePawn.txt</a><br />
<br />
Just remember to change extension from txt to uc</div>


	<div style="padding:10px">

	

	

	

	
		<fieldset class="fieldset">
			<legend>Attached Files</legend>
			<ul>
			<li>
	<img class="inlineimg" src="http://forums.epicgames.com/images/styles/TwistedDark/attach/txt.gif" alt="File Type: txt" />
	<a href="http://forums.epicgames.com/attachment.php?attachmentid=12022&amp;d=1369378592">SplineMover.txt</a> 
(2.3 KB)
</li><li>
	<img class="inlineimg" src="http://forums.epicgames.com/images/styles/TwistedDark/attach/txt.gif" alt="File Type: txt" />
	<a href="http://forums.epicgames.com/attachment.php?attachmentid=12023&amp;d=1369378603">SplinePawn.txt</a> 
(4.5 KB)
</li>
			</ul>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>JUGGERNUT</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964097-Spline-Pawn-that-patrols-Spline-and-rotates-along-it</guid>
		</item>
		<item>
			<title>problem switching camera style on client side, help needed</title>
			<link>http://forums.epicgames.com/threads/964073-problem-switching-camera-style-on-client-side-help-needed?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 23:21:17 GMT</pubDate>
			<description><![CDATA[hi, i'm trying to switch my camera modes when my player dies in the game, it works on my server side and i assuming the code is right, but the...]]></description>
			<content:encoded><![CDATA[<div>hi, i'm trying to switch my camera modes when my player dies in the game, it works on my server side and i assuming the code is right, but the problem is in my client side, i tried using &quot;simulated&quot; function, server/client function and didn't work.<br />
<br />
i searched on the forum, but i only found one thread about switching cameras on a client side without any answers.<br />
<br />
can someone point me in the right direction to figure out this ?<br />
<br />
thanks in advance for all the help.</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>daimaku</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964073-problem-switching-camera-style-on-client-side-help-needed</guid>
		</item>
		<item>
			<title>Getting custom pawn to spawn</title>
			<link>http://forums.epicgames.com/threads/964065-Getting-custom-pawn-to-spawn?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 22:33:37 GMT</pubDate>
			<description><![CDATA[Hi, I need help getting a custom pawn to spawn. 
 
Yes, I know it's basic, but for the life of me, I can't figure out what I am doing wrong. From...]]></description>
			<content:encoded><![CDATA[<div>Hi, I need help getting a custom pawn to spawn.<br />
<br />
Yes, I know it's basic, but for the life of me, I can't figure out what I am doing wrong. From every tutorial I've seen, many google searches, and forum searches, it appears (at least to me) that I am doing everything that is required to get a custom pawn to spawn.<br />
<br />
When testing my game, I see the log messages from my SGame class, but am unable to see the log messages from my SPawn class. When using the &quot;GetAllState Pawn&quot; command in the console, I also see that the pawn being spawned is SimplePawn and not SPawn.<br />
<br />
I am using the UDK-2013-02 version. All of my classes are under the folder BillTheBull (odd name, I know).<br />
<br />
The files that I have created are as follows:<br />
Development/Src/BillTheBull/Classes/SCamera.uc<br />
Development/Src/BillTheBull/Classes/SGame.uc<br />
Development/Src/BillTheBull/Classes/SPawn.uc<br />
Development/Src/BillTheBull/Classes/SPlayerController.uc<br />
<br />
The edited .ini files are as follows:<br />
UDKGame/Config/DefaultGame.ini<br />
UDKGame/Config/DefaultGameUDK.ini<br />
UDKGame/Config/DefaultEngine.ini<br />
<br />
The actual source code that I have created is very simple thus far.<br />
<br />
SCamera.uc<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">class SCamera extends Camera;</code><hr />
</div>SGame.uc<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">class SGame extends UDKGame;<br />
<br />
event InitGame(String Options, out String Error) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; super.InitGame(Options, Error);<br />
&nbsp; &nbsp; &nbsp; &nbsp; `log(&quot;SGame Created and Intilized.&quot;);<br />
}<br />
<br />
defaultproperties {<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; DefaultPawnClass=class'BillTheBull.SPawn'<br />
&nbsp; &nbsp; &nbsp; &nbsp; PlayerControllerClass=class'BillTheBull.SPlayerController'<br />
&nbsp; &nbsp; &nbsp; &nbsp; bDelayedStart=false<br />
&nbsp; &nbsp; &nbsp; &nbsp; bRestartLevel=false<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
}</code><hr />
</div>SPawn.uc<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">class SPawn extends UDKPawn;<br />
<br />
event Tick(float DeltaTime) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; super.Tick(DeltaTime);<br />
&nbsp; &nbsp; &nbsp; &nbsp; `Log(&quot;This is a log message from SPawn&quot;);<br />
}</code><hr />
</div>SPlayerController.uc<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">class SPlayerController extends UDKPlayerController;</code><hr />
</div><br />
The edits in the .ini files are as follows, everything left out has been left as the default settings.<br />
DefaultGame.ini<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">[Engine.GameInfo]<br />
DefaultGame=BillTheBull.SGame<br />
DefaultServerGame=BillTheBull.SGame<br />
PlayerControllerClassName=BillTheBull.SPlayerController<br />
GameDifficulty=+1.0<br />
MaxPlayers=32<br />
DefaultGameType=&quot;BillTheBull.SGame&quot;;<br />
+DefaultMapPrefixes=(Prefix=&quot;DM&quot;,bUsesCommonPackage=FALSE,GameType=&quot;UTGame.UTDeathmatch&quot;)<br />
+DefaultMapPrefixes=(Prefix=&quot;CTF&quot;,bUsesCommonPackage=FALSE,GameType=&quot;UTGameContent.UTCTFGame_Content&quot;)<br />
+DefaultMapPrefixes=(Prefix=&quot;VCTF&quot;,bUsesCommonPackage=FALSE,GameType=&quot;UTGameContent.UTVehicleCTFGame_Content&quot;)</code><hr />
</div>DefaultGameUDK.ini<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">[Engine.GameInfo]<br />
DefaultGame=BillTheBull.SGame<br />
DefaultServerGame=BillTheBull.SGame<br />
PlayerControllerClassName=BillTheBull.SPlayerController<br />
DefaultGameType=&quot;UDKBase.UDKGame&quot;;</code><hr />
</div>DefaultEngine.ini<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">[UnrealEd.EditorEngine]<br />
;EditPackages=UTGame<br />
;EditPackages=UTGameContent<br />
+EditPackages=BillTheBull</code><hr />
</div>Thank you for any help.</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>someone9999</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964065-Getting-custom-pawn-to-spawn</guid>
		</item>
		<item>
			<title>Tutorial Probability for Role-Playing Games in UnrealScript</title>
			<link>http://forums.epicgames.com/threads/964059-Probability-for-Role-Playing-Games-in-UnrealScript?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 22:02:24 GMT</pubDate>
			<description><![CDATA[I thought I'd make up for the incredibly convoluted method of using probability I posted a couple of years ago, so here's a (hopefully) better way....]]></description>
			<content:encoded><![CDATA[<div>I thought I'd make up for the incredibly convoluted method of using probability I posted a couple of years ago, so here's a (hopefully) better way. This tutorial is meant for beginners and people wanting to learn the basic ideas and logic behind generating chance-based events in UnrealScript. The provided functions should work in any class unless designated as pseudo-code.<br />
<br />
 I will be demonstrating two methods, one that can have one of two outcomes (success/failure), and a slightly more advanced system with four outcomes (critical success/success/failure/critical failure).<br />
<br />
Two common methods of generating a random number in UnrealScript are <i>FRand()</i>, which generates a random floating point number between 0.0 and 1.0, and <i>Rand(int n)</i>, which generates a random number between 0 and n-1. There are up- and downsides to using either approach: FRand() can never (or almost never?) be 0 or 1, which simulates real probability but it comes with the additional slight cost of using floating point numbers. Rand() uses integers, which are a less accurate representation of probability if no additional calculations are added, but cheaper. I will be using FRand() for the examples in this tutorial.<br />
<br />
NOTE: FRand() returns a decimal with 4 places, i. e. 0.0115, which can be simulated by generating a random integer between 0 and 10000 instead of 100 like in this example.<br />
<br />
<b>Example of FRand():</b><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">function bool ProbabilisticActionFloat(float fChance) <br />
{<br />
// fChance is the probability (as a floating point number between 0.0 and 1.0)<br />
// that the function will return true<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (FRand() &lt;= fChance) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; return false;<br />
}</code><hr />
</div><b>Example of Rand():</b><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">function bool ProbabilisticActionInt(int iChance) <br />
{<br />
//same as above, takes an integer input representing the<br />
//percent chance of function returning true<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; if (Rand(101) &lt; iChance) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; return false;<br />
}</code><hr />
</div>These two functions have the same logic: A number is passed to the function, which then generates a random number and checks if if said number falls within the range of 0 to (input number), returning true if it does. This simulates probability since the chance of the random generator picking a number in this range equals the input number.<br />
<br />
<b>Function Usage</b> (pseudo-code):<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">function SomeFunction() <br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; local float fChance;&nbsp; &nbsp; &nbsp; &nbsp; //chance of something happening<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; fChance = fChanceOfEvent; //change to float number between 0.0000 and 1.0000<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (ProbabilisticActionFloat(fChance)) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoSomething();<br />
&nbsp; &nbsp; &nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoSomethingElse();<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
}</code><hr />
</div><b>Critical Chance</b><br />
<br />
These can also be nested to simulate Bayes' rule (don't worry, no math needed here), or multiple events having different chances of occurring depending on previous events. A good example of this is the use of critical success and failure events common in older role-playing games. Using the previous <i>ProbabilisticActionFloat()</i> function, a critical effect system could be implemented like this: <br />
<br />
NOTE: You could just use the FRand() or Rand() check from each function, but since I've already written the two, I'll use one of them for the example. If you want to use the same random chance for all checks in this function (a local variable or something), use <i>1 &#8211; fCritFRate</i> for the critical failure check.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">/*<br />
returns an integer between 1 and 4<br />
&nbsp; &nbsp; &nbsp; &nbsp;  0 = error, shouldn't see this<br />
&nbsp; &nbsp; &nbsp; &nbsp;  1 = crit success<br />
&nbsp; &nbsp; &nbsp; &nbsp;  2 = success<br />
&nbsp; &nbsp; &nbsp; &nbsp;  3 = failure<br />
&nbsp; &nbsp; &nbsp; &nbsp;  4 = crit failure<br />
&nbsp; &nbsp; input = success rate, crit success rate, crit failure rate (all floats between 0 and 1)<br />
&nbsp; &nbsp; - no need to normalize, crit chances are separate <br />
*/<br />
function int CheckProbability(float fSuccessRate, float fCritSRate, float fCritFRate)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; // check if success<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (ProbabilisticActionFloat (fSuccessRate)) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; //Success, now check if critical<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (ProbabilisticActionFloat(fCritSRate)) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Critical success<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  //success<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 2;<br />
&nbsp; &nbsp; &nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; &nbsp; // Failure, now check if critical<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (ProbabilisticActionFloat(fCritFRate)) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Critical failure<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 4; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  //failure<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 3;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />
}</code><hr />
</div><b>Function Usage:</b> (pseudo-code)<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">function SomeFunction()<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; local int iProbVar;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; // 55 % success,<br />
&nbsp; &nbsp; &nbsp; &nbsp; // 3 % critical success,<br />
&nbsp; &nbsp; &nbsp; &nbsp; // 3 % critical failure<br />
&nbsp; &nbsp; &nbsp; &nbsp; iProbVar =&nbsp; CheckProbability(0.55, 0.03, 0.03); <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; // switch seems to be (very) slightly faster here than if-else<br />
&nbsp; &nbsp; &nbsp; &nbsp; switch (iProbVar) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 1:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // critical success<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoCritSuccessStuff();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 2:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // success<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoSuccessStuff();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 3:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // critical failure<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoCritFailureStuff();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; case 4:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //failure<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DoFailureStuff();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; default:&nbsp; &nbsp; &nbsp; &nbsp; // 0<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SomethingWentWrong();<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break; // not really needed at this point<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
}</code><hr />
</div>If anyone is interested, I'm working on a second part to this tutorial that will go into details on how to generate a list from a weighted list (loot), using character stats and probability to influence weapon damage, and building spreadsheets for testing out damage or chance values outside of the game.<br />
<br />
Hopefully this is useful to someone :) Questions, critiques, corrections, etc are welcome.</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>isathar</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964059-Probability-for-Role-Playing-Games-in-UnrealScript</guid>
		</item>
		<item>
			<title>Does anyone know how to use DrawStringMat?</title>
			<link>http://forums.epicgames.com/threads/964042-Does-anyone-know-how-to-use-DrawStringMat?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 18:44:30 GMT</pubDate>
			<description><![CDATA[I'm looking into creating dynamically generated text that does not use the ScriptedTexture, as I need to be able to use True Type Fonts in the...]]></description>
			<content:encoded><![CDATA[<div>I'm looking into creating dynamically generated text that does not use the ScriptedTexture, as I need to be able to use True Type Fonts in the material.<br />
<br />
The function for DrawStringMat looks like the way to go, but I've go no idea how to setup the material so that the DrawStringMat function can use it.<br />
<br />
If anyone has an example of how this works please let me know.<br />
<br />
Thanks</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>mciccarone</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964042-Does-anyone-know-how-to-use-DrawStringMat</guid>
		</item>
		<item>
			<title>Issues with True First Person</title>
			<link>http://forums.epicgames.com/threads/964028-Issues-with-True-First-Person?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 15:34:51 GMT</pubDate>
			<description>Am working on implementing True First Person (http://forums.epicgames.com/threads/823325-True-First-Person-Demo-2012-04-18) by slowJusko in my game...</description>
			<content:encoded><![CDATA[<div>Am working on implementing <a href="http://forums.epicgames.com/threads/823325-True-First-Person-Demo-2012-04-18" target="_blank">True First Person</a> by slowJusko in my game but now i have 2 issues which i cant figure out how to fix.<br />
<br />
1st issue is when crouching and moving forward camera zooms too much like the head is above players foot. It only happens when the player is crouching and moving. If player is idle, camera doesnt zoom. Here is a screenshot.<br />
<img src="http://img17.imageshack.us/img17/9375/crouchingy.jpg" border="0" alt="" /><br />
<br />
2nd issue is when strafing left or right the forward animation is played instead of left/right animation. But when ironsight is active left/right animations is played correctly when strafing left/right. Once ironsight is deactivated strafing left/right will play forward animation.<br />
<br />
My Pawn Code:<br />
<div class="bbcode_container">
	<div class="bbcode_description">PHP Code:</div>
	<hr /><code class="bbcode_code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">EngagePawn&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">tfpPawn<br /><br /></span><span style="color: #007700">var&nbsp;</span><span style="color: #0000BB">bool&nbsp;bCanDodge</span><span style="color: #007700">;<br />var&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone&nbsp;IronSlot</span><span style="color: #007700">;<br />var&nbsp;</span><span style="color: #0000BB">bool&nbsp;bIsIronSight</span><span style="color: #007700">;<br /><br />function&nbsp;</span><span style="color: #0000BB">bool&nbsp;Dodge</span><span style="color: #007700">(</span><span style="color: #0000BB">eDoubleClickDir&nbsp;DoubleClickMove</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">bCanDodge</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">super</span><span style="color: #007700">.</span><span style="color: #0000BB">Dodge</span><span style="color: #007700">(</span><span style="color: #0000BB">DoubleClickMove</span><span style="color: #007700">);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">simulated&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">CheckWeaponCollision</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">simulated&nbsp;</span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">ToggleAim</span><span style="color: #007700">()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//if&nbsp;((GunAimAdjustNode&nbsp;==&nbsp;None)&nbsp;||&nbsp;(CurrentWeaponAttachment&nbsp;==&nbsp;None)&nbsp;||&nbsp;IsLongFall()&nbsp;||&nbsp;(Physics&nbsp;==&nbsp;PHYS_Swimming))<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;return;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">local&nbsp;Engage_AnimBlendByIdle&nbsp;SwitchIron</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">local&nbsp;AnimNodeBlendPerBone&nbsp;SwitchIronAnim</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">local&nbsp;AnimNodeBlendPerBone&nbsp;SwitchIronAnim2</span><span style="color: #007700">;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bWeaponAiming&nbsp;</span><span style="color: #007700">=&nbsp;!</span><span style="color: #0000BB">bWeaponAiming</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SetAimState</span><span style="color: #007700">(</span><span style="color: #0000BB">bWeaponAiming</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!</span><span style="color: #0000BB">bIsIronSight</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIron&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Engage_AnimBlendByIdle</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIron'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIron</span><span style="color: #007700">.</span><span style="color: #0000BB">IronOn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IronSlot&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'IronsightSlot_Start'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IronSlot</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIronAnim'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIronAnim2'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim2</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bIsIronSight&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIron&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">Engage_AnimBlendByIdle</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIron'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIron</span><span style="color: #007700">.</span><span style="color: #0000BB">IronOn&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IronSlot&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'IronsightSlot_End'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">IronSlot</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIronAnim'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">AnimNodeBlendPerBone</span><span style="color: #007700">(</span><span style="color: #0000BB">Mesh</span><span style="color: #007700">.</span><span style="color: #0000BB">FindAnimNode</span><span style="color: #007700">(</span><span style="color: #DD0000">'SwitchIronAnim2'</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SwitchIronAnim2</span><span style="color: #007700">.</span><span style="color: #0000BB">SetBlendTarget</span><span style="color: #007700">(</span><span style="color: #0000BB">1</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0.1</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bIsIronSight&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;if&nbsp;client&nbsp;(non-authorive),&nbsp;call&nbsp;server<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">Role&nbsp;</span><span style="color: #007700">&lt;&nbsp;</span><span style="color: #0000BB">Role_Authority</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ServerToggleAim</span><span style="color: #007700">();<br />}<br /><br /></span><span style="color: #0000BB">event&nbsp;OnAnimEnd</span><span style="color: #007700">(</span><span style="color: #0000BB">AnimNodeSequence&nbsp;SeqNode</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">float&nbsp;PlayedTime</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">float&nbsp;ExcessTime</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">super</span><span style="color: #007700">.</span><span style="color: #0000BB">OnAnimEnd</span><span style="color: #007700">(</span><span style="color: #0000BB">SeqNode</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">PlayedTime</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">ExcessTime</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">SeqNode</span><span style="color: #007700">.</span><span style="color: #0000BB">AnimSeqName&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">'CH_Ironsight_Slot'</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SeqNode</span><span style="color: #007700">.</span><span style="color: #0000BB">bCauseActorAnimEnd&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br /></span><span style="color: #0000BB">defaultproperties<br /></span><span style="color: #007700">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DecalDissolveParamName</span><span style="color: #007700">=</span><span style="color: #DD0000">"DissolveAmount"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">DurationOfDecal</span><span style="color: #007700">=</span><span style="color: #0000BB">5.0<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GroundSpeed</span><span style="color: #007700">=</span><span style="color: #0000BB">250.0&nbsp;</span><span style="color: #FF8000">//320.0<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">AccelRate</span><span style="color: #007700">=</span><span style="color: #0000BB">1024.0<br />&nbsp;&nbsp;&nbsp;&nbsp;BaseEyeHeight</span><span style="color: #007700">=</span><span style="color: #0000BB">50.0<br />&nbsp;&nbsp;&nbsp;&nbsp;EyeHeight</span><span style="color: #007700">=</span><span style="color: #0000BB">50.0<br />&nbsp;&nbsp;&nbsp;&nbsp;LandBob&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;JumpBob&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;AppliedBob&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;bobtime&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;WalkBob&nbsp;</span><span style="color: #007700">=&nbsp;(</span><span style="color: #0000BB">X</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Y</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">Z</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bIsIronSight&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Begin&nbsp;Object&nbsp;Name</span><span style="color: #007700">=</span><span style="color: #0000BB">WPawnSkeletalMeshComponent<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bOwnerNoSee</span><span style="color: #007700">=</span><span style="color: #0000BB">False<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnimTreeTemplate</span><span style="color: #007700">=</span><span style="color: #0000BB">AnimTree</span><span style="color: #DD0000">'SWAT.Anims.SWAT_AnimTree_TFP2'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SkeletalMesh</span><span style="color: #007700">=</span><span style="color: #0000BB">SkeletalMesh</span><span style="color: #DD0000">'SWAT.Mesh.SWAT_TFP_Body'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">PhysicsAsset&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">PhysicsAsset</span><span style="color: #DD0000">'SWAT.Mesh.Swat_Character_Physics'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">AnimSets</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">)=</span><span style="color: #0000BB">AnimSet</span><span style="color: #DD0000">'SWAT.Anims.SWAT_AnimSet'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bUpdateSkelWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bIgnoreControllersWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">false<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTickAnimNodesWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bUpdateKinematicBonesFromAnimation</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scale</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1.55<br />&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Object<br />&nbsp;&nbsp;&nbsp;&nbsp;Mesh</span><span style="color: #007700">=</span><span style="color: #0000BB">WPawnSkeletalMeshComponent<br />&nbsp;&nbsp;&nbsp;&nbsp;Components</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">WPawnSkeletalMeshComponent</span><span style="color: #007700">)<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Begin&nbsp;Object&nbsp;</span><span style="color: #007700">Class=</span><span style="color: #0000BB">SkeletalMeshComponent&nbsp;Name</span><span style="color: #007700">=</span><span style="color: #0000BB">PawnHeadMesh<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bCacheAnimSequenceNodes</span><span style="color: #007700">=</span><span style="color: #0000BB">FALSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlwaysLoadOnClient</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AlwaysLoadOnServer</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CastShadow</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BlockRigidBody</span><span style="color: #007700">=</span><span style="color: #0000BB">TRUE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bUpdateSkelWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bIgnoreControllersWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">false<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTickAnimNodesWhenNotRendered</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bUpdateKinematicBonesFromAnimation</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bCastDynamicShadow</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Translation</span><span style="color: #007700">=(</span><span style="color: #0000BB">Z</span><span style="color: #007700">=</span><span style="color: #0000BB">0.0</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">RBChannel</span><span style="color: #007700">=</span><span style="color: #0000BB">RBCC_Untitled3<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RBCollideWithChannels</span><span style="color: #007700">=(</span><span style="color: #0000BB">Untitled3</span><span style="color: #007700">=</span><span style="color: #0000BB">true</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">LightEnvironment</span><span style="color: #007700">=</span><span style="color: #0000BB">MyLightEnvironment<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bOverrideAttachmentOwnerVisibility</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bAcceptsDynamicDecals</span><span style="color: #007700">=</span><span style="color: #0000BB">FALSE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bHasPhysicsAssetInstance</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TickGroup</span><span style="color: #007700">=</span><span style="color: #0000BB">TG_PreAsyncWork<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MinDistFactorForKinematicUpdate</span><span style="color: #007700">=</span><span style="color: #0000BB">0.2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bChartDistanceFactor</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//bSkipAllUpdateWhenPhysicsAsleep=TRUE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">RBDominanceGroup</span><span style="color: #007700">=</span><span style="color: #0000BB">20<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Nice&nbsp;lighting&nbsp;for&nbsp;hair<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bUseOnePassLightingOnTranslucency</span><span style="color: #007700">=</span><span style="color: #0000BB">TRUE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bPerBoneMotionBlur</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SkeletalMesh</span><span style="color: #007700">=</span><span style="color: #0000BB">SkeletalMesh</span><span style="color: #DD0000">'SWAT.Mesh.SWAT_TFP_HEad'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Assign&nbsp;the&nbsp;parent&nbsp;animation&nbsp;component&nbsp;to&nbsp;the&nbsp;head&nbsp;skeletal&nbsp;mesh&nbsp;component.&nbsp;This&nbsp;ensures&nbsp;that<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;pawn&nbsp;animates&nbsp;as&nbsp;if&nbsp;it&nbsp;was&nbsp;one&nbsp;skeletal&nbsp;mesh&nbsp;component.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ParentAnimComponent</span><span style="color: #007700">=</span><span style="color: #0000BB">WPawnSkeletalMeshComponent<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Assign&nbsp;the&nbsp;shadow&nbsp;parent&nbsp;component&nbsp;to&nbsp;the&nbsp;head&nbsp;skeletal&nbsp;mesh&nbsp;component.&nbsp;This&nbsp;is&nbsp;used&nbsp;to&nbsp;speed&nbsp;up<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;rendering&nbsp;of&nbsp;the&nbsp;shadow&nbsp;for&nbsp;this&nbsp;pawn&nbsp;and&nbsp;to&nbsp;prevent&nbsp;shadow&nbsp;overlaps&nbsp;from&nbsp;occur.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">ShadowParent</span><span style="color: #007700">=</span><span style="color: #0000BB">WPawnSkeletalMeshComponent<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;can't&nbsp;see&nbsp;own&nbsp;head<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bOwnerNoSee</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;but&nbsp;make&nbsp;sure&nbsp;our&nbsp;owner&nbsp;can&nbsp;still&nbsp;see&nbsp;our&nbsp;shadow...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bCastHiddenShadow</span><span style="color: #007700">=</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scale</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">1.0<br />&nbsp;&nbsp;&nbsp;&nbsp;End&nbsp;Object<br />&nbsp;&nbsp;&nbsp;&nbsp;HeadMesh</span><span style="color: #007700">=</span><span style="color: #0000BB">PawnHeadMesh<br />&nbsp;&nbsp;&nbsp;&nbsp;Components</span><span style="color: #007700">.</span><span style="color: #0000BB">Add</span><span style="color: #007700">(</span><span style="color: #0000BB">PawnHeadMesh</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">SpawnSound&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">None<br />&nbsp;&nbsp;&nbsp;&nbsp;SoundGroupClass</span><span style="color: #007700">=</span><span style="color: #0000BB">None<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;InventoryManagerClass</span><span style="color: #007700">=class</span><span style="color: #DD0000">'EngageInventoryManager'<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">MaxMultiJump</span><span style="color: #007700">=</span><span style="color: #0000BB">0&nbsp;</span><span style="color: #FF8000">//Set&nbsp;this&nbsp;to&nbsp;1&nbsp;to&nbsp;enable&nbsp;Double&nbsp;Jump<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">bCanDodge</span><span style="color: #007700">=</span><span style="color: #0000BB">false&nbsp;</span><span style="color: #FF8000">//Set&nbsp;this&nbsp;to&nbsp;true&nbsp;to&nbsp;enable&nbsp;Dodging<br /></span><span style="color: #007700">}&nbsp;<br /></span><span style="color: #0000BB"></span>
</span>
</code></code><hr />
</div>Here is my AnimTree screenshots:<br />
<br />
<img src="http://imageshack.us/a/img17/423/anim1b.jpg" border="0" alt="" /><br />
<br />
Continued...<br />
<img src="http://imageshack.us/a/img839/4793/anim2.jpg" border="0" alt="" /><br />
<br />
Continued...<br />
<img src="http://imageshack.us/a/img28/3223/anim3t.jpg" border="0" alt="" /></div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>ryanjon2040</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964028-Issues-with-True-First-Person</guid>
		</item>
		<item>
			<title>About show 3D  help?</title>
			<link>http://forums.epicgames.com/threads/964027-About-show-3D-help?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 15:31:18 GMT</pubDate>
			<description><![CDATA[Help me: 
 
    I use the static mesh in unrealscript to show 3D in pc is good, But on the xbox360, It does't show, and I check that I have send the...]]></description>
			<content:encoded><![CDATA[<div>Help me:<br />
<br />
    I use the static mesh in unrealscript to show 3D in pc is good, But on the xbox360, It does't show, and I check that I have send the resource to <br />
<br />
the flash, but it doesn't to show it, what's the difference with the pc and the xbox360????</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>roger_jin</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964027-About-show-3D-help</guid>
		</item>
		<item>
			<title>Changing material parameters with triggers</title>
			<link>http://forums.epicgames.com/threads/964023-Changing-material-parameters-with-triggers?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 12:39:18 GMT</pubDate>
			<description>Hi, I have a problem with changing RGB (vector material param in matinee) using triggers where each trigger changing the colors of eg 0.1. Could...</description>
			<content:encoded><![CDATA[<div>Hi, I have a problem with changing RGB (vector material param in matinee) using triggers where each trigger changing the colors of eg 0.1. Could anyone help me? Thanks for any advice .<br />
I attached a screenshot too.<br />
<a href="http://s24.postimg.org/conzzk28l/UDKcolorhelp.png" target="_blank">http://s24.postimg.org/conzzk28l/UDKcolorhelp.png</a></div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>stevyno</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964023-Changing-material-parameters-with-triggers</guid>
		</item>
		<item>
			<title>AnimTrees and animation setup/layout</title>
			<link>http://forums.epicgames.com/threads/964019-AnimTrees-and-animation-setup-layout?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 12:23:34 GMT</pubDate>
			<description><![CDATA[Hello All, 
 
This question is more from a design perspective than anything.  I'm just looking for some input as to the best method for implementing...]]></description>
			<content:encoded><![CDATA[<div>Hello All,<br />
<br />
This question is more from a design perspective than anything.  I'm just looking for some input as to the best method for implementing my animations.  Originally, I only had about 5 or 6 animations which made it really easy to just create an AnimTree and blend from UnrealScript (with AnimNodeBlend, etc).  Now I'm up to about 48 different animations (attacks, deaths, run, walk, crouch, etc).  Originally I thought the best thing to do was to create the AnimTree with only the basic functionality of the pawn (idle, walking, running, crouching, etc), and then call other animations from a custom node (using AnimNodeSlot and AnimNodePlayCustomAnim).  However, I'm not sure if this is the best way to go about this.  How would you guys set up your tree design in a scenario such as this.  Any input/feedback is greatly appreciated.  Thanks!</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>LynxSolaris</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/964019-AnimTrees-and-animation-setup-layout</guid>
		</item>
		<item>
			<title>WorldInfo Pawn Reference</title>
			<link>http://forums.epicgames.com/threads/963997-WorldInfo-Pawn-Reference?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 05:27:18 GMT</pubDate>
			<description><![CDATA[I trying to reference the pawn from within PlayerInput. I guess I need a WorldInfo something right? 
 
Since PawnRef= pawn"THGame.THPawn"; Isn't...]]></description>
			<content:encoded><![CDATA[<div>I trying to reference the pawn from within PlayerInput. I guess I need a WorldInfo something right?<br />
<br />
Since PawnRef= pawn&quot;THGame.THPawn&quot;; Isn't gving me access. I guess the class path wont give you access to the instance of the pawn or <br />
<br />
something. Anyway I just want to do something like this<br />
<br />
<br />
PawnRef= // somthing to reference the player pawn<br />
<br />
<br />
exec function EWshooting()<br />
{<br />
    PawnRef.NotifyShooting;<br />
}<br />
<br />
Are there any references of the many WorldInfo paths to classes? Or is it thee old learn as you go. The Docs are pretty bad with details.<br />
<br />
<br />
BIG THANKS TO GUYS LIKE     BLADE   willyg302   Spoof   Im still feasting on script bread crumbs they left months ago!!!</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>Udk_Can_Save_Us_Al</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/963997-WorldInfo-Pawn-Reference</guid>
		</item>
		<item>
			<title>Need help with inventory</title>
			<link>http://forums.epicgames.com/threads/963988-Need-help-with-inventory?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 03:42:22 GMT</pubDate>
			<description>Hey Code warriors, question for you, 
 
How would go about adding an inventory to my character? So I could spawn with my rifle, shotgun, pistol etc....</description>
			<content:encoded><![CDATA[<div>Hey Code warriors, question for you,<br />
<br />
How would go about adding an inventory to my character? So I could spawn with my rifle, shotgun, pistol etc. I'm still learning UnrealScript, so if anyone of you kind folk could maybe type an example script, that'd be great!<br />
<br />
Thanks.</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>Norman Maverick</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/963988-Need-help-with-inventory</guid>
		</item>
		<item>
			<title><![CDATA[Moving the level into a new "phase"]]></title>
			<link>http://forums.epicgames.com/threads/963985-Moving-the-level-into-a-new-quot-phase-quot?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 03:15:31 GMT</pubDate>
			<description>Hi im fairly new to UDK and just trying to get some basics down of a game im looking into creating, just wondering if there is a way after clearing a...</description>
			<content:encoded><![CDATA[<div>Hi im fairly new to UDK and just trying to get some basics down of a game im looking into creating, just wondering if there is a way after clearing a room of enemies there is a way to &quot;restart&quot; that room with DIFFERENT mobs spawning in the same way.<br />
<br />
The game is a &quot;Brawler&quot; stylr game i guess with the player selecting 1 &quot;hero&quot; to play and fighting off wave after wave of enemies, so i guess im asking what is the best way after the first wave to transition into the next?<br />
<br />
Thanks for any help!</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>RefleKt</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/963985-Moving-the-level-into-a-new-quot-phase-quot</guid>
		</item>
		<item>
			<title>Fighting game script</title>
			<link>http://forums.epicgames.com/threads/963976-Fighting-game-script?goto=newpost</link>
			<pubDate>Thu, 23 May 2013 01:22:14 GMT</pubDate>
			<description>Just wondering if anyone has any script for making a fighting game</description>
			<content:encoded><![CDATA[<div>Just wondering if anyone has any script for making a fighting game</div>

]]></content:encoded>
			<category domain="http://forums.epicgames.com/forums/367-UDK-Programming-and-Unrealscript">UDK Programming and Unrealscript</category>
			<dc:creator>khilla2392</dc:creator>
			<guid isPermaLink="true">http://forums.epicgames.com/threads/963976-Fighting-game-script</guid>
		</item>
	</channel>
</rss>
