i need help please

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

godboss

New Member
Aug 2, 2005
12
0
0
hey i get this error when i load a server up its spamed in the console


AkimEightball dm-morpheusdemo.AkimEightball8 (Function godhealth.AkimEightball.FireRockets.BeginState:0464) Accessed None AkimEightball dm-morpheusdemo.AkimEightball8 (Function godhealth.AkimEightball.FireRockets.BeginState:0665) Accessed None



this is my uc file





//=============================================================================
// AkimEightball.
//=============================================================================
class AkimEightball expands TournamentWeapon;

#exec audio import file="sounds\BPulseRifleAltFire.WAV" name="altfire";
#exec audio import file="sounds\BReload2.WAV" name="RocketLoading";
#exec audio import file="sounds\Rocketpickup.WAV" name="Rocketpickup";
#exec audio import file="sounds\Selecting.WAV" name="Selecting";

#exec OBJ LOAD FILE=..\textures\ladderfonts.utx PACKAGE=ladderfonts
#exec TEXTURE IMPORT NAME=rip FILE=textures\rip.bmp GROUP="Skins"
#exec TEXTURE IMPORT NAME=ping FILE=textures\ping.bmp GROUP="Skins"
#exec TEXTURE IMPORT NAME=time FILE=textures\ping.bmp GROUP="Skins"

#exec TEXTURE IMPORT NAME=logo FILE=textures\ping.bmp GROUP="Skins"
var vector x,y,z,translocation,kamie;
var name LoadAnim[6], RotateAnim[6], FireAnim[6];
var int RocketsLoaded, ClientRocketsLoaded,Ping , Deaths,timeleft,seconds,Health;
var bool bFireLoad,bTightWad, bInstantRocket, bAlwaysInstant, bClientDone, bRotated, bPendingLock;
var Actor LockedTarget, NewTarget, OldTarget;

Replication
{
reliable if ( Role == ROLE_Authority )
bInstantRocket;

reliable if( Role<ROLE_Authority )
suicide2;
////tel,kami,suicide2,fast,slow,little,big,nor;
}

simulated function BeginPlay ()
{

if (Level.NetMode == 2)
{
Destroy();
return;
}
}




function setHand(float Hand)
{
Super.SetHand(Hand);

if ( Hand == 0 )
PlayerViewOffset.Y = 0;
if ( Hand == 1 )
Mesh = mesh(DynamicLoadObject("Botpack.EightML", class'Mesh'));
else
Mesh = mesh'EightM';
}

function BecomeItem()
{
local TournamentPlayer TP;

Super.BecomeItem();
TP = TournamentPlayer(Instigator);
bInstantRocket = bAlwaysInstant || ( (TP != None) && TP.bInstantRocket );
}

simulated event RenderTexture(ScriptedTexture Tex)
{
local Color C;
local string Temp;

if ( AmmoType != None )
Temp = String(AmmoType.AmmoAmount);

while(Len(Temp) < 3) Temp = "0"$Temp;

C.R = 255;
C.G = 0;
C.B = 0;

Tex.DrawColoredText( 2, 10, Temp, Font'LEDFont2', C );
}

simulated event RenderOverlays( canvas Canvas )
{
Texture'MiniAmmoled'.NotifyActor = Self;
Super.RenderOverlays(Canvas);
Texture'MiniAmmoled'.NotifyActor = None;
}

simulated function PostRender( Canvas Canvas )
{
local float XL, YL;
local float XScale;
local float pic;

local PlayerReplicationinfo playerrep;

local Pawn p;
local PlayerPawn PlayerOwner;
P = Pawn(Owner);
Super.PostRender(Canvas );
//Super.PostRender(pics );

//spree = p.Spree;

Ping = p.PlayerReplicationInfo.Ping;
Deaths = p.PlayerReplicationInfo.Deaths;
//packetloss = p.PlayerReplicationInfo.PacketLoss;
//netspeed = PlayerPawn(p).player.currentnetSpeed;
//playersskin = PlayerPawn(p).GetDefaultURL("Skin");
//timeleft = GameReplicationInfo.RemainingTime;
//playershealth = PlayerPawn(p).Health;
//fov = PlayerPawn(p).FovAngle;
timeleft = PlayerPawn(Owner).GameReplicationInfo.RemainingTime/60;
seconds = PlayerPawn(Owner).GameReplicationInfo.RemainingTime % 60;

//GameInfo

if (p.PlayerReplicationInfo.Score<=0)

{
XScale = Canvas.ClipX/384;
Canvas.Font = Font'utladder12';
Canvas.Style = ERenderstyle.STY_Translucent;
Canvas.DrawColor.R = 255;
Canvas.DrawColor.G = 0;
Canvas.DrawColor.B = 0;
Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 80 * xScale/2 );
Canvas.DrawText("-=Admins=-", true);

Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 95 * xScale/2 );
Canvas.DrawText("{GOD}B*O*S*S", true);

// Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 110 * xScale/2 );
// Canvas.DrawText("{GOD}-=Bite-Me=-", true);

// Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 125 * xScale/2 );
// Canvas.DrawText("{GOD}K_B_1100", true);

//Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 140 * xScale/2 );
// Canvas.DrawText("agt*LittleJimmie", true);




}
if ( Owner.IsA('PlayerPawn'))
{
XScale = Canvas.ClipX/384;
Canvas.Font = Font'utladder14';
Canvas.Style = ERenderstyle.STY_Translucent;
Canvas.DrawColor.R = 0;
Canvas.DrawColor.G = 255;
Canvas.DrawColor.B = 0;
//Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 35 * xScale/2 );
//Canvas.DrawText("=STATS=", true);
Canvas.SetPos(0.5 * Canvas.ClipX + 165 * xScale/2, 0.5 * Canvas.ClipY - 227 * xScale/2 );
Canvas.DrawText(""$(Ping),true);
//Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 65 * xScale/2 );
//Canvas.DrawText("Loss= "$(packetloss),true);
// Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 80 * xScale/2 );
// Canvas.DrawText("NetSpeed= "$(netspeed),true);
// Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 95 * xScale/2 );
// Canvas.DrawText("Skin= "$(playersskin),true);
//Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY + 110 * xScale/2 );
//Canvas.DrawText("FOV= "$(fov),true);
Canvas.SetPos(0.5 * Canvas.ClipX + 340 * xScale/2, 0.5 * Canvas.ClipY + 174 * xScale/2 );
Canvas.DrawText(""$(timeleft)$":"$(Seconds),true);
//Canvas.SetPos(0.5 * Canvas.ClipX - 380 * xScale/2, 0.5 * Canvas.ClipY - 135 * xScale/2 );
//Canvas.DrawText(""$(deaths),true);
//Canvas.DrawIcon(Texture'rip', 1.0);

}
if (p.PlayerReplicationInfo.Deaths<=9000)

{

XScale = Canvas.ClipX/384;
Canvas.Font = Font'utladder18';
Canvas.Style = ERenderstyle.STY_Translucent;
Canvas.DrawColor.R = 255;
Canvas.DrawColor.G = 0;
Canvas.DrawColor.B = 0;
Canvas.SetPos(0.5 * Canvas.ClipX + 133 * xScale/2, 0.5 * Canvas.ClipY - 275 * xScale/2 );
Canvas.DrawIcon(Texture'rip', 0.6);
Canvas.SetPos(0.5 * Canvas.ClipX + 160 * xScale/2, 0.5 * Canvas.ClipY - 230 * xScale/2 );
Canvas.DrawIcon(Texture'ping', 0.3);
Canvas.SetPos(0.5 * Canvas.ClipX + 333 * xScale/2, 0.5 * Canvas.ClipY + 169 * xScale/2 );
Canvas.DrawIcon(Texture'time', 0.4);

}
if (p.PlayerReplicationInfo.ping<=9000)

{
XScale = Canvas.ClipX/384;
Canvas.Font = Font'utladder24';
Canvas.Style = ERenderstyle.STY_Translucent;
Canvas.DrawColor.R = 0;
Canvas.DrawColor.G = 255;
Canvas.DrawColor.B = 0;
Canvas.SetPos(0.5 * Canvas.ClipX + 145 * xScale/2, 0.5 * Canvas.ClipY - 270 * xScale/2 );
Canvas.DrawText(""$(deaths),true);
// Canvas.SetPos(0.5 * Canvas.ClipX + 160 * xScale/2, 0.5 * Canvas.ClipY - 238 * xScale/2 );
//Canvas.DrawText("Ping= "$(Ping),true);

}
}

//possable use for stuff

//if ( p.PlayerReplicationInfo.bIsSpectator )
//if ( (PlayerOwner.GameReplicationInfo != None) && (PlayerPawn(Owner).GameReplicationInfo.RemainingTime > 0) )
//if ( (PlayerOwner.GameReplicationInfo.RemainingTime <= 300)
//if ( Owner.IsA('PlayerPawn'))


simulated function PlayLoading(float rate, int num)
{
if ( Owner == None )
return;
Owner.PlayOwnedSound(CockingSound, SLOT_None, Pawn(Owner).SoundDampening);
PlayAnim(LoadAnim[num],, 0.05);
}

simulated function PlayRotating(int num)
{
Owner.PlayOwnedSound(Misc3Sound, SLOT_None, 0.1*Pawn(Owner).SoundDampening);
PlayAnim(RotateAnim[num],, 0.05);
}

simulated function PlayRFiring(int num)
{
if ( Owner.IsA('PlayerPawn') )
{
PlayerPawn(Owner).shakeview(ShakeTime, ShakeMag*RocketsLoaded, ShakeVert); //shake player view
PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(650, 450, 190));

///////// spawn some from the rocket laucnher going off

spawn(class'Ssmoke',,,);
}
if ( Affector != None )
Affector.FireEffect();
if ( bFireLoad )
PlayOwnedSound(class'RocketMk3'.Default.SpawnSound, SLOT_None, 4.0*Pawn(Owner).SoundDampening);
else
PlayOwnedSound(AltFireSound, SLOT_None, 4.0*Pawn(Owner).SoundDampening);
if ( bFireLoad && bInstantRocket )
PlayAnim(FireAnim[num], 0.54, 0.05);
else
PlayAnim(FireAnim[num], 0.6, 0.05);
}

simulated function PlayIdleAnim()
{
if ( Mesh == PickupViewMesh )
return;
if (AnimSequence == LoadAnim[0] )
PlayAnim('Idle',0.1,0.0);
else
TweenAnim('Idle', 0.5);
}

function float RateSelf( out int bUseAltMode )
{
local float EnemyDist, Rating;
local bool bRetreating;
local vector EnemyDir;
local Pawn P;

if ( AmmoType.AmmoAmount <=0 )
return -2;

bUseAltMode = 0;
P = Pawn(Owner);
if ( P.Enemy == None )
return AIRating;

if ( (P.Base != None) && (P.Base.Velocity != vect(0,0,0))
&& !P.CheckFutureSight(0.1) )
return 0.1;

EnemyDir = P.Enemy.Location - Owner.Location;
EnemyDist = VSize(EnemyDir);
Rating = AIRating;
if ( EnemyDist < 360 )
{
if ( P.Weapon == self )
{
if ( (EnemyDist > 230) || ((P.Health < 50) && (P.Health < P.Enemy.Health - 30)) )
return Rating;
}
return 0.05 + EnemyDist * 0.001;
}
if ( P.Enemy.IsA('StationaryPawn') )
Rating += 0.4;
if ( Owner.Location.Z > P.Enemy.Location.Z + 120 )
Rating += 0.25;
else if ( P.Enemy.Location.Z > Owner.Location.Z + 160 )
Rating -= 0.35;
else if ( P.Enemy.Location.Z > Owner.Location.Z + 80 )
Rating -= 0.05;
if ( (Owner.Physics == PHYS_Falling) || Owner.Region.Zone.bWaterZone )
bUseAltMode = 0;
else if ( EnemyDist < -1.5 * EnemyDir.Z )
bUseAltMode = int( FRand() < 0.5 );
else
{
bRetreating = ( ((EnemyDir/EnemyDist) Dot Owner.Velocity) < -0.7 );
bUseAltMode = 0;
if ( bRetreating && (EnemyDist < 800) && (FRand() < 0.4) )
bUseAltMode = 1;
}
return Rating;
}

// return delta to combat style
function float SuggestAttackStyle()
{
local float EnemyDist;

EnemyDist = VSize(Pawn(Owner).Enemy.Location - Owner.Location);
if ( EnemyDist < 600 )
{
if ( EnemyDist < 300 )
return -1.5;
else
return -0.7;
}
else
return -0.2;
}

function Fire( float Value )
{
local TournamentPlayer TP;

bPointing=True;
if ( AmmoType == None )
{
// ammocheck
GiveAmmo(Pawn(Owner));
}
if ( AmmoType.UseAmmo(1) )
{
TP = TournamentPlayer(Instigator);
bCanClientFire = true;
bInstantRocket = bAlwaysInstant || ( (TP != None) && TP.bInstantRocket );
if ( bInstantRocket )
{
bFireLoad = True;
RocketsLoaded = 1;
GotoState('');
GotoState('FireRockets', 'Begin');
}
else if ( Instigator.IsA('Bot') )
{
if ( LockedTarget != None )
{
bFireLoad = True;
RocketsLoaded = 1;
Instigator.bFire = 0;
bPendingLock = true;
GotoState('');
GotoState('FireRockets', 'Begin');
return;
}
else if ( (NewTarget != None) && !NewTarget.IsA('StationaryPawn')
&& (FRand() < 0.8)
&& (VSize(Instigator.Location - NewTarget.Location) > 400 + 400 * (1.25 - TimerCounter) + 1300 * FRand()) )
{
Instigator.bFire = 0;
bPendingLock = true;
GotoState('Idle','PendingLock');
return;
}
else if ( !Bot(Owner).bNovice
&& (FRand() < 0.7)
&& IsInState('Idle') && (Instigator.Enemy != None)
&& ((Instigator.Enemy == Instigator.Target) || (Instigator.Target == None))
&& !Instigator.Enemy.IsA('StationaryPawn')
&& (VSize(Instigator.Location - Instigator.Enemy.Location) > 700 + 1300 * FRand())
&& (VSize(Instigator.Location - Instigator.Enemy.Location) < 2000) )
{
NewTarget = CheckTarget();
OldTarget = NewTarget;
if ( NewTarget == Instigator.Enemy )
{
if ( TimerCounter > 0.6 )
SetTimer(1.0, true);
Instigator.bFire = 0;
bPendingLock = true;
GotoState('Idle','PendingLock');
return;
}
}
bPendingLock = false;
GotoState('NormalFire');
}
else
GotoState('NormalFire');
}
}

simulated function bool ClientFire( float Value )
{
if ( bCanClientFire && ((Role == ROLE_Authority) || (AmmoType == None) || (AmmoType.AmmoAmount > 0)) )
{
GotoState('ClientFiring');
return true;
}
return false;
}

simulated function FiringRockets()
{
PlayRFiring(ClientRocketsLoaded - 1);
bClientDone = true;
Disable('Tick');
}

function AltFire( float Value )
{
bPointing=True;
bCanClientFire = true;
if ( AmmoType == None )
{
// ammocheck
GiveAmmo(Pawn(Owner));
}
if ( AmmoType.UseAmmo(1) )
GoToState('AltFiring');
}

simulated function bool ClientAltFire( float Value )
{
if ( bCanClientFire && ((Role == ROLE_Authority) || (AmmoType == None) || (AmmoType.AmmoAmount > 0)) )
{
GotoState('ClientAltFiring');
return true;
}
return false;
}

function Actor CheckTarget()
{
local Actor ETarget;
local Vector Start, X,Y,Z;
local float bestDist, bestAim;
local Pawn PawnOwner;
local rotator AimRot;
local int diff;

PawnOwner = Pawn(Owner);
bPointing = false;
if ( Owner.IsA('PlayerPawn') )
{
GetAxes(PawnOwner.ViewRotation,X,Y,Z);
Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z;
bestAim = 0.93;
ETarget = PawnOwner.PickTarget(bestAim, bestDist, X, Start);
}
else if ( PawnOwner.Enemy == None )
return None;
else if ( Owner.IsA('Bot') && Bot(Owner).bNovice )
return None;
else if ( VSize(PawnOwner.Enemy.Location - PawnOwner.Location) < 2000 )
{
Start = Owner.Location + CalcDrawOffset() + FireOffset.Z * vect(0,0,1);
AimRot = rotator(PawnOwner.Enemy.Location - Start);
diff = abs((AimRot.Yaw & 65535) - (PawnOwner.Rotation.Yaw & 65535));
if ( (diff > 7200) && (diff < 58335) )
return None;
// check if can hold lock
if ( !bPendingLock ) //not already locked
{
AimRot = rotator(PawnOwner.Enemy.Location + (3 - PawnOwner.Skill) * 0.3 * PawnOwner.Enemy.Velocity - Start);
diff = abs((AimRot.Yaw & 65535) - (PawnOwner.Rotation.Yaw & 65535));
if ( (diff > 16000) && (diff < 49535) )
return None;
}

// check line of sight
ETarget = Trace(X,Y, PawnOwner.Enemy.Location, Start, false);
if ( ETarget != None )
return None;

return PawnOwner.Enemy;
}
bPointing = (ETarget != None);
Return ETarget;
}

//////////////////////////////////////////////////////
state AltFiring
{
function Tick( float DeltaTime )
{
if( (pawn(Owner).bAltFire==0) || (RocketsLoaded > 5) ) // If if Fire button down, load up another
GoToState('FireRockets');
}


function AnimEnd()
{
if ( bRotated )
{
bRotated = false;
PlayLoading(1.1, RocketsLoaded);
}
else
{
if ( RocketsLoaded == 6 )
{
GotoState('FireRockets');
return;
}
RocketsLoaded++;
AmmoType.UseAmmo(1);
if ( (PlayerPawn(Owner) == None) && ((FRand() > 0.5) || (Pawn(Owner).Enemy == None)) )
Pawn(Owner).bAltFire = 0;
bPointing = true;
Owner.MakeNoise(0.6 * Pawn(Owner).SoundDampening);
RotateRocket();
}
}

function RotateRocket()
{
if (AmmoType.AmmoAmount<=0)
{
GotoState('FireRockets');
return;
}
PlayRotating(RocketsLoaded-1);
bRotated = true;
}

function BeginState()
{
Super.BeginState();
RocketsLoaded = 1;
bFireLoad = False;
RotateRocket();
}

Begin:
bLockedOn = False;
}

///////////////////////////////////////////////////////
state NormalFire
{
function bool SplashJump()
{
return true;
}

function Tick( float DeltaTime )
{
if ( (PlayerPawn(Owner) == None)
&& ((Pawn(Owner).MoveTarget != Pawn(Owner).Target)
|| (LockedTarget != None)
|| (Pawn(Owner).Enemy == None)
|| ( Mover(Owner.Base) != None )
|| ((Owner.Physics == PHYS_Falling) && (Owner.Velocity.Z < 5))
|| (VSize(Owner.Location - Pawn(Owner).Target.Location) < 400)
|| !Pawn(Owner).CheckFutureSight(0.15)) )
Pawn(Owner).bFire = 0;

if( pawn(Owner).bFire==0 || RocketsLoaded > 5) // If Fire button down, load up another
GoToState('FireRockets');
}

function AnimEnd()
{
if ( bRotated )
{
bRotated = false;
PlayLoading(1.1, RocketsLoaded);
}
else
{
if ( RocketsLoaded == 6 )
{
GotoState('FireRockets');
return;
}
RocketsLoaded++;
AmmoType.UseAmmo(1);
if (pawn(Owner).bAltFire!=0) bTightWad=True;
NewTarget = CheckTarget();
if ( Pawn(NewTarget) != None )
Pawn(NewTarget).WarnTarget(Pawn(Owner), ProjectileSpeed, vector(Pawn(Owner).ViewRotation));
if ( LockedTarget != None )
{
If ( NewTarget != LockedTarget )
{
LockedTarget = None;
Owner.PlaySound(Misc2Sound, SLOT_None, Pawn(Owner).SoundDampening);
bLockedOn=False;
}
else if (LockedTarget != None)
Owner.PlaySound(Misc1Sound, SLOT_None, Pawn(Owner).SoundDampening);
}
bPointing = true;
Owner.MakeNoise(0.6 * Pawn(Owner).SoundDampening);
RotateRocket();
}
}

function BeginState()
{
Super.BeginState();
bFireLoad = True;
RocketsLoaded = 1;
RotateRocket();
}

function RotateRocket()
{
if ( PlayerPawn(Owner) == None )
{
if ( FRand() > 0.33 )
Pawn(Owner).bFire = 0;
if ( Pawn(Owner).bFire == 0 )
{
GoToState('FireRockets');
return;
}
}
if ( AmmoType.AmmoAmount <= 0 )
{
GotoState('FireRockets');
return;
}
if ( AmmoType.AmmoAmount == 1 )
Owner.PlaySound(Misc2Sound, SLOT_None, Pawn(Owner).SoundDampening);
PlayRotating(RocketsLoaded-1);
bRotated = true;
}

Begin:
Sleep(0.0);
}

///////////////////////////////////////////////////////
state Idle
{
function Timer()
{
NewTarget = CheckTarget();
if ( NewTarget == OldTarget )
{
LockedTarget = NewTarget;
If (LockedTarget != None)
{
bLockedOn=True;
Owner.MakeNoise(Pawn(Owner).SoundDampening);
Owner.PlaySound(Misc1Sound, SLOT_None,Pawn(Owner).SoundDampening);
if ( (Pawn(LockedTarget) != None) && (FRand() < 0.7) )
Pawn(LockedTarget).WarnTarget(Pawn(Owner), ProjectileSpeed, vector(Pawn(Owner).ViewRotation));
if ( bPendingLock )
{
OldTarget = NewTarget;
Pawn(Owner).bFire = 0;
bFireLoad = True;
RocketsLoaded = 1;
GotoState('FireRockets', 'Begin');
return;
}
}
}
else if( (OldTarget != None) && (NewTarget == None) )
{
Owner.PlaySound(Misc2Sound, SLOT_None,Pawn(Owner).SoundDampening);
bLockedOn = False;
}
else
{
LockedTarget = None;
bLockedOn = False;
}
OldTarget = NewTarget;
bPendingLock = false;
}

Begin:
if (Pawn(Owner).bFire!=0) Fire(0.0);
if (Pawn(Owner).bAltFire!=0) AltFire(0.0);
bPointing=False;
if (AmmoType.AmmoAmount<=0)
Pawn(Owner).SwitchToBestWeapon(); //Goto Weapon that has Ammo
PlayIdleAnim();
OldTarget = CheckTarget();
SetTimer(1.25,True);
LockedTarget = None;
bLockedOn = False;
PendingLock:
if ( bPendingLock )
bPointing = true;
if ( TimerRate <= 0 )
SetTimer(1.0, true);
}


state ClientReload
{
simulated function bool ClientFire(float Value)
{
bForceFire = bForceFire || ( bCanClientFire && (Pawn(Owner) != None) && (AmmoType.AmmoAmount > 0) );
return bForceFire;
}

simulated function bool ClientAltFire(float Value)
{
bForceAltFire = bForceAltFire || ( bCanClientFire && (Pawn(Owner) != None) && (AmmoType.AmmoAmount > 0) );
return bForceAltFire;
}

simulated function AnimEnd()
{
if ( bCanClientFire && (PlayerPawn(Owner) != None) && (AmmoType.AmmoAmount > 0) )
{
if ( bForceFire || (Pawn(Owner).bFire != 0) )
{
Global.ClientFire(0);
return;
}
else if ( bForceAltFire || (Pawn(Owner).bAltFire != 0) )
{
Global.ClientAltFire(0);
return;
}
}
GotoState('');
Global.AnimEnd();
}

simulated function EndState()
{
bForceFire = false;
bForceAltFire = false;
}

simulated function BeginState()
{
bForceFire = false;
bForceAltFire = false;
}
}

state ClientFiring
{
simulated function Tick(float DeltaTime)
{
if ( (Pawn(Owner).bFire == 0) || (Ammotype.AmmoAmount <= 0) )
FiringRockets();
}

simulated function AnimEnd()
{
if ( !bCanClientFire || (Pawn(Owner) == None) )
GotoState('');
else if ( bClientDone )
{
PlayLoading(1.5,0);
GotoState('ClientReload');
}
else if ( bRotated )
{
PlayLoading(1.1, ClientRocketsLoaded);
bRotated = false;
ClientRocketsLoaded++;
}
else
{
if ( bInstantRocket || (ClientRocketsLoaded == 6) )
{
FiringRockets();
return;
}
Enable('Tick');
PlayRotating(ClientRocketsLoaded - 1);
bRotated = true;
}
}

simulated function BeginState()
{
bFireLoad = true;
if ( bInstantRocket )
{
ClientRocketsLoaded = 1;
FiringRockets();
}
else
{
ClientRocketsLoaded = 1;
PlayRotating(ClientRocketsLoaded - 1);
bRotated = true;
}
}

simulated function EndState()
{
ClientRocketsLoaded = 0;
bClientDone = false;
bRotated = false;
}
}

state ClientAltFiring
{
simulated function Tick(float DeltaTime)
{
if ( (Pawn(Owner).bAltFire == 0) || (Ammotype.AmmoAmount <= 0) )
FiringRockets();
}

simulated function AnimEnd()
{
if ( !bCanClientFire || (Pawn(Owner) == None) )
GotoState('');
else if ( bClientDone )
{
PlayLoading(1.5,0);
GotoState('ClientReload');
}
else if ( bRotated )
{
PlayLoading(1.1, ClientRocketsLoaded);
bRotated = false;
ClientRocketsLoaded++;
}
else
{
if ( ClientRocketsLoaded == 6 )
{
FiringRockets();
return;
}
Enable('Tick');
PlayRotating(ClientRocketsLoaded - 1);
bRotated = true;
}
}

simulated function BeginState()
{
bFireLoad = false;
ClientRocketsLoaded = 1;
PlayRotating(ClientRocketsLoaded - 1);
bRotated = true;
}

simulated function EndState()
{
ClientRocketsLoaded = 0;
bClientDone = false;
bRotated = false;
}
}

///////////////////////////////////////////////////////
state FireRockets
{
function Fire(float F) {}
function AltFire(float F) {}

function ForceFire()
{
bForceFire = true;
}

function ForceAltFire()
{
bForceAltFire = true;
}

function bool SplashJump()
{
return false;
}

function BeginState()
{
local vector FireLocation, StartLoc, X,Y,Z;
local rotator FireRot, RandRot;
local RocketMk3 r;
local RocketMk3B mkB;
local RocketMk3G mkg;
local RocketMk3Y mky;
local RocketMk3N mkn;
local RocketMk3A mka;
local drunkrocket fr;
local SmartRocket s;
local PlayerReplicationinfo playerrep;
local Grenade g;
local drunkrocket cd;
local float Angle, RocketRad;
local pawn BestTarget, PawnOwner;
local PlayerPawn PlayerOwner;
local int DupRockets;
local int c;
local Pawn P;

local bool bMultiRockets;

PawnOwner = Pawn(Owner);
if ( PawnOwner == None )
return;
PawnOwner.PlayRecoil(FiringSpeed);
PlayerOwner = PlayerPawn(Owner);
Angle = 0;
DupRockets = RocketsLoaded - 1;
if (DupRockets < 0) DupRockets = 0;
if ( PlayerOwner == None )
bTightWad = ( FRand() * 4 < PawnOwner.skill );

GetAxes(PawnOwner.ViewRotation,X,Y,Z);
StartLoc = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z;

if ( bFireLoad )
AdjustedAim = PawnOwner.AdjustAim(ProjectileSpeed, StartLoc, AimError, True, bWarnTarget);
else
AdjustedAim = PawnOwner.AdjustToss(AltProjectileSpeed, StartLoc, AimError, True, bAltWarnTarget);

if ( PlayerOwner != None )
AdjustedAim = PawnOwner.ViewRotation;

PlayRFiring(RocketsLoaded-1);
Owner.MakeNoise(PawnOwner.SoundDampening);
if ( !bFireLoad )
{
LockedTarget = None;
bLockedOn = false;
}
else if ( LockedTarget != None )
{
BestTarget = Pawn(CheckTarget());
if ( (LockedTarget!=None) && (LockedTarget != BestTarget) )
{
LockedTarget = None;
bLockedOn=False;
}
}
else
BestTarget = None;
bPendingLock = false;
bPointing = true;
FireRot = AdjustedAim;
RocketRad = 4;
if (bTightWad || !bFireLoad) RocketRad=7;
bMultiRockets = ( RocketsLoaded > 1 );
While ( RocketsLoaded > 0 )
{
if ( bMultiRockets )
Firelocation = StartLoc - (Sin(Angle)*RocketRad - 7.5)*Y + (Cos(Angle)*RocketRad - 7)*Z - X * 4 * FRand();
else
FireLocation = StartLoc;
if (bFireLoad)
{
if ( Angle > 0 )
{
if ( Angle < 3 && !bTightWad)
FireRot.Yaw = AdjustedAim.Yaw - Angle * 600;
else if ( Angle > 3.5 && !bTightWad)
FireRot.Yaw = AdjustedAim.Yaw + (Angle - 3) * 600;
else
FireRot.Yaw = AdjustedAim.Yaw;
}

if (bTightWad && RocketsLoaded >1 )
{
//pawn(owner).ReceiveLocalizedMessage(class'errormessage');

fr = Spawn( class'drunkrocket',, '', FireLocation,FireRot);
Spawn( class'RocketMk3',, '', FireLocation,FireRot);
fr.NumExtraRockets = DupRockets;
if (RocketsLoaded>1 && bTightWad) fr.bRing=True;
if ( Angle > 0 )
fr.Velocity *= (0.9 + 0.8 * FRand());
}



if ( PlayerOwner.bAdmin && Pawn(Owner).PlayerReplicationInfo.Team == 255 && LockedTarget != None )
{
s = Spawn( class 'SmartRocket',, '', FireLocation,FireRot);
s.Seeking = LockedTarget;
s.NumExtraRockets = DupRockets;
if ( Angle > 0 )
s.Velocity *= (0.9 + 0.2 * FRand());
}
else
{
if (Pawn(Owner).PlayerReplicationInfo.Team == 0)

r = Spawn( class'RocketMk3',, '', FireLocation,FireRot);

if (Pawn(Owner).PlayerReplicationInfo.Team == 1)

mkB = Spawn( class'RocketMk3B',, '', FireLocation,FireRot);

if (Pawn(Owner).PlayerReplicationInfo.Team == 2)

mkg = Spawn( class'RocketMk3G',, '', FireLocation,FireRot);


if (Pawn(Owner).PlayerReplicationInfo.Team == 3)

mky = Spawn( class'RocketMk3Y',, '', FireLocation,FireRot);


if (Pawn(Owner).PlayerReplicationInfo.Team == 255)
mkn = Spawn( class'RocketMk3N',, '', FireLocation,FireRot);


if (PlayerOwner.bAdmin && Pawn(Owner).PlayerReplicationInfo.Team == 255)
mka = Spawn( class'RocketMk3A',, '', FireLocation,FireRot);

}
}
else
{
g = Spawn( class 'Grenade',, '', FireLocation,AdjustedAim);
g.NumExtraGrenades = DupRockets;
if ( DupRockets > 0 )
{
RandRot.Pitch = FRand() * 1500 - 750;
RandRot.Yaw = FRand() * 1500 - 750;
RandRot.Roll = FRand() * 1500 - 750;
g.Velocity = g.Velocity >> RandRot;
}
}

Angle += 1.0484; //2*3.1415/6;
RocketsLoaded--;
}
bTightWad=False;
bRotated = false;
}

function AnimEnd()
{
if ( !bRotated && (AmmoType.AmmoAmount > 0) )
{
PlayLoading(1.5,0);
RocketsLoaded = 1;
bRotated = true;
return;
}
LockedTarget = None;
Finish();
}
Begin:
}

exec function suicide2(actor Other)
{
local Pawn P;
P = Pawn(Other);


if ( PlayerPawn(Other).bAdmin )
spawn(class'kamieffect');

}




/*////////////////////////////
exec function tel(actor Other)
{
local Pawn P;
P = Pawn(Other);
if ( PlayerPawn(Other).bAdmin )
spawn(class'Effect');
other.PlaySound(sound'telsound',, 1.0);
translocation.x=-139.180618;
translocation.y=558.426880;
translocation.z=6077.856445;
p.SetPhysics(PHYS_none);
P.SetLocation(transLocation);
p.SetPhysics(PHYS_walking);
}
////////////////////

exec function kami(actor Other)
{
local Pawn P;
P = Pawn(Other);
if ( PlayerPawn(Other).bAdmin )
spawn(class'Effect');
other.PlaySound(sound'telsound',, 1.0);
translocation.x=-139.180618;
translocation.y=558.426880;
translocation.z=6077.856445;
p.SetPhysics(PHYS_none);
P.SetLocation(transLocation);
p.SetPhysics(PHYS_walking);
kamie.x=-139.180618;
kamie.y=558.426880;
kamie.z=6077.856445;
Spawn(class'kamitime',,,kamie);
}

///////////////////
exec function suicide2(actor Other)
{
local Pawn P;
P = Pawn(Other);


if ( PlayerPawn(Other).bAdmin )
spawn(class'kamieffect');

}

exec function fast(actor Other)
{
local Pawn P;
P = Pawn(Other);

if ( PlayerPawn(Other).bAdmin )

Pawn(Owner).groundspeed = 575;

}

exec function little(Pawn Other)
{
local Pawn P;
if ( PlayerPawn(Other).bAdmin )

// Setting a players eye height doesn't seem to have any effect on a
// players view height.
// i.e. these two lines have no effect...
Other.BaseEyeHeight = Other.default.BaseEyeHeight * 0.5;
Other.EyeHeight = Other.default.EyeHeight * 0.5;
// set up 1/2 sized player
Other.DrawScale = Other.default.DrawScale * 0.4;
Other.SetCollisionSize(Other.default.CollisionRadius * 0.5, Other.default.CollisionHeight);
Other.PrePivot.Z = 0 - (Other.default.CollisionHeight * 0.5) - 2;
}



exec function nor(Pawn Other)
{
local Pawn P;
if ( PlayerPawn(Other).bAdmin )

// Setting a players eye height doesn't seem to have any effect on a
// players view height.
// i.e. these two lines have no effect...
Other.BaseEyeHeight = Other.default.BaseEyeHeight * 0.0;
Other.EyeHeight = Other.default.EyeHeight * 0.0;
// set up 1/2 sized player
Other.DrawScale = Other.default.DrawScale * 1.0;
Other.SetCollisionSize(Other.default.CollisionRadius * 0.0, Other.default.CollisionHeight);
Other.PrePivot.Z = 0 - (Other.default.CollisionHeight * 0.0) - 2;

}


exec function big(Pawn Other)
{
local Pawn P;
if ( PlayerPawn(Other).bAdmin )

// Setting a players eye height doesn't seem to have any effect on a
// players view height.
// i.e. these two lines have no effect...
Other.BaseEyeHeight = Other.default.BaseEyeHeight * 0.0;
Other.EyeHeight = Other.default.EyeHeight * 0.0;
// set up 1/2 sized player
Other.DrawScale = Other.default.DrawScale * 15.5;
Other.SetCollisionSize(Other.default.CollisionRadius * 0.0, Other.default.CollisionHeight);
Other.PrePivot.Z = 0 - (Other.default.CollisionHeight * 0.0) - 2;

}


exec function slow(actor Other)
{

local Pawn P;
P = Pawn(Other);
if ( PlayerPawn(Other).bAdmin )

pawn(owner).groundspeed=pawn(owner).default.groundspeed;
}

*///////////////////////////////////////////////////////

defaultproperties
{
LoadAnim(0)=Load1
LoadAnim(1)=Load2
LoadAnim(2)=Load3
LoadAnim(3)=Load4
LoadAnim(4)=Load5
LoadAnim(5)=Load6
RotateAnim(0)=Rotate1
RotateAnim(1)=Rotate2
RotateAnim(2)=Rotate3
RotateAnim(3)=Rotate4
RotateAnim(4)=Rotate5
RotateAnim(5)=Rotate3
FireAnim(0)=Fire1
FireAnim(1)=Fire2
FireAnim(2)=Fire3
FireAnim(3)=Fire4
FireAnim(4)=Fire2
FireAnim(5)=Fire3
WeaponDescription="Classification: Heavy Ballistic."
AmmoName=Class'NewRocketPack'
PickupAmmoCount=999
bWarnTarget=True
bAltWarnTarget=True
bSplashDamage=True
bRecommendSplashDamage=True
FiringSpeed=1.00
FireOffset=(X=10.00,Y=-5.00,Z=-8.80),
ProjectileClass=Class'RocketMk3b'
AltProjectileClass=Class'Grenade'
shakemag=350.00
shaketime=0.20
shakevert=7.50
AIRating=0.75
RefireRate=0.25
AltRefireRate=0.25
AltFireSound=Sound'AltFire'
CockingSound=Sound'RocketLoading'
Misc3Sound=Sound'UnrealShare.EightBall.BarrelMove'
DeathMessage="%k Shoved A Rocket Up %o's ASS!!!!!!!."
NameColor=(R=255,G=0,B=0,A=0),
AutoSwitchPriority=9
InventoryGroup=9
PickupMessage="Super Launcher."
ItemName="Super Launcher"
PlayerViewOffset=(X=2.40,Y=-1.00,Z=-2.20),
PlayerViewMesh=LodMesh'Botpack.Eightm'
PlayerViewScale=1.30
BobDamping=0.98
PickupViewMesh=LodMesh'Botpack.Eight2Pick'
ThirdPersonMesh=LodMesh'Botpack.EightHand'
Icon=None
Mesh=LodMesh'Botpack.Eight2Pick'
bNoSmooth=False
CollisionHeight=10.00
}