Core.Object | +--Engine.Actor | +--Engine.Inventory | +--Engine.Weapon | +--UnrealI.RazorJack
void
AltFire(float Value)
PlayAltFiring()
PlayFiring()
PlayIdleAnim()
///////////////////////////////////////////////////////////
00001 //============================================================================= 00002 // razorjack 00003 //============================================================================= 00004 class RazorJack extends Weapon; 00005 00006 #exec MESH IMPORT MESH=Razor ANIVFILE=MODELS\razor_a.3D DATAFILE=MODELS\razor_d.3D X=0 Y=0 Z=0 00007 #exec MESH ORIGIN MESH=Razor X=0 Y=0 Z=0 YAW=-64 ROLL=-8 00008 #exec MESH SEQUENCE MESH=razor SEQ=All STARTFRAME=0 NUMFRAMES=100 00009 #exec MESH SEQUENCE MESH=razor SEQ=Select STARTFRAME=0 NUMFRAMES=30 RATE=24 GROUP=Select 00010 #exec MESH SEQUENCE MESH=razor SEQ=Fire STARTFRAME=30 NUMFRAMES=10 00011 #exec MESH SEQUENCE MESH=razor SEQ=Load STARTFRAME=36 NUMFRAMES=4 00012 #exec MESH SEQUENCE MESH=razor SEQ=Idle STARTFRAME=40 NUMFRAMES=31 00013 #exec MESH SEQUENCE MESH=razor SEQ=AltFire1 STARTFRAME=71 NUMFRAMES=12 RATE=24 00014 #exec MESH SEQUENCE MESH=razor SEQ=AltFire2 STARTFRAME=83 NUMFRAMES=5 RATE=24 00015 #exec MESH SEQUENCE MESH=razor SEQ=AltFire3 STARTFRAME=88 NUMFRAMES=4 RATE=24 00016 #exec MESH SEQUENCE MESH=razor SEQ=Down STARTFRAME=92 NUMFRAMES=8 00017 00018 #exec TEXTURE IMPORT NAME=JRazor1 FILE=MODELS\razor.PCX GROUP=Skins 00019 #exec MESHMAP SCALE MESHMAP=razor X=0.005 Y=0.005 Z=0.01 00020 #exec MESHMAP SETTEXTURE MESHMAP=razor NUM=1 TEXTURE=Jrazor1 00021 00022 #exec MESH IMPORT MESH=RazPick ANIVFILE=MODELS\rapick_a.3D DATAFILE=MODELS\rapick_d.3D X=0 Y=0 Z=0 00023 #exec MESH ORIGIN MESH=RazPick X=0 Y=0 Z=0 YAW=-64 ROLL=-8 00024 #exec MESH SEQUENCE MESH=RazPick SEQ=All STARTFRAME=0 NUMFRAMES=1 00025 #exec MESH SEQUENCE MESH=RazPick SEQ=Still STARTFRAME=0 NUMFRAMES=1 00026 #exec TEXTURE IMPORT NAME=JRazor1 FILE=MODELS\razor.PCX GROUP=Skins 00027 #exec MESHMAP SCALE MESHMAP=RazPick X=0.025 Y=0.025 Z=0.05 00028 #exec MESHMAP SETTEXTURE MESHMAP=RazPick NUM=1 TEXTURE=Jrazor1 00029 00030 #exec MESH IMPORT MESH=Razor3rd ANIVFILE=MODELS\Razor3_a.3D DATAFILE=MODELS\Razor3_d.3D X=0 Y=0 Z=0 00031 #exec MESH ORIGIN MESH=Razor3rd X=0 Y=-180 Z=-95 YAW=-64 ROLL=6 00032 #exec MESH SEQUENCE MESH=Razor3rd SEQ=All STARTFRAME=0 NUMFRAMES=20 00033 #exec MESH SEQUENCE MESH=Razor3rd SEQ=Still STARTFRAME=0 NUMFRAMES=1 00034 #exec MESH SEQUENCE MESH=Razor3rd SEQ=Fire STARTFRAME=1 NUMFRAMES=9 00035 #exec MESH SEQUENCE MESH=Razor3rd SEQ=AltFire2 STARTFRAME=1 NUMFRAMES=9 00036 #exec MESH SEQUENCE MESH=Razor3rd SEQ=Idle STARTFRAME=10 NUMFRAMES=10 00037 #exec TEXTURE IMPORT NAME=Jrazor1 FILE=MODELS\razor.PCX GROUP="Skins" 00038 #exec MESHMAP SCALE MESHMAP=Razor3rd X=0.035 Y=0.035 Z=0.06 00039 #exec MESHMAP SETTEXTURE MESHMAP=Razor3rd NUM=1 TEXTURE=JRazor1 00040 00041 #exec AUDIO IMPORT FILE="Sounds\Razor\beam.WAV" NAME="beam" GROUP="RazorJack" 00042 00043 function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn) 00044 { 00045 local Vector Start, X,Y,Z; 00046 00047 if ( PlayerPawn(Owner) != None ) 00048 PlayerPawn(Owner).ClientInstantFlash( -0.4, vect(500, 0, 650)); 00049 Owner.MakeNoise(Pawn(Owner).SoundDampening); 00050 GetAxes(Pawn(owner).ViewRotation,X,Y,Z); 00051 Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Z * Z; 00052 AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); 00053 return Spawn(ProjClass,,, Start,AdjustedAim); 00054 } 00055 00056 function PlayFiring() 00057 { 00058 PlayAnim( 'Fire', 0.7,0.05 ); 00059 } 00060 00061 function PlayAltFiring() 00062 { 00063 PlayAnim('AltFire1', 0.9,0.05); 00064 } 00065 00066 function AltFire( float Value ) 00067 { 00068 if (AmmoType.UseAmmo(1)) 00069 { 00070 if ( Owner.bHidden ) 00071 CheckVisibility(); 00072 bPointing=True; 00073 PlayAltFiring(); 00074 GotoState('AltFiring'); 00075 } 00076 } 00077 00078 /////////////////////////////////////////////////////////// 00079 state AltFiring 00080 { 00081 function Projectile ProjectileFire(class<projectile> ProjClass, float ProjSpeed, bool bWarn) 00082 { 00083 local Vector Start, X,Y,Z; 00084 00085 Owner.MakeNoise(Pawn(Owner).SoundDampening); 00086 GetAxes(Pawn(owner).ViewRotation,X,Y,Z); 00087 Start = Owner.Location + CalcDrawOffset() + FireOffset.X * X + FireOffset.Y * Y + FireOffset.Z * Z; 00088 AdjustedAim = pawn(owner).AdjustAim(ProjSpeed, Start, AimError, True, bWarn); 00089 AdjustedAim.Roll += 12768; 00090 RazorBlade(Spawn(ProjClass,,, Start,AdjustedAim)); 00091 } 00092 00093 Begin: 00094 FinishAnim(); 00095 Repeater: 00096 ProjectileFire(AltProjectileClass,AltProjectileSpeed,bAltWarnTarget); 00097 PlayAnim('AltFire2', 0.4,0.05); 00098 FinishAnim(); 00099 if ( PlayerPawn(Owner) == None ) 00100 { 00101 if ( (AmmoType != None) && (AmmoType.AmmoAmount<=0) ) 00102 { 00103 Pawn(Owner).StopFiring(); 00104 Pawn(Owner).SwitchToBestWeapon(); 00105 if ( bChangeWeapon ) 00106 GotoState('DownWeapon'); 00107 } 00108 else if ( (Pawn(Owner).bAltFire == 0) || (FRand() > AltRefireRate) ) 00109 { 00110 Pawn(Owner).StopFiring(); 00111 GotoState('Idle'); 00112 } 00113 } 00114 if ( (Pawn(Owner).bAltFire!=0) 00115 && (Pawn(Owner).Weapon==Self) && AmmoType.UseAmmo(1)) 00116 { 00117 goto 'Repeater'; 00118 } 00119 PlayAnim('AltFire3', 0.9,0.05); 00120 FinishAnim(); 00121 PlayAnim('Load',0.2,0.05); 00122 FinishAnim(); 00123 if ( Pawn(Owner).bFire!=0 && Pawn(Owner).Weapon==Self) 00124 Global.Fire(0); 00125 else 00126 GotoState('Idle'); 00127 } 00128 00129 /////////////////////////////////////////////////////////// 00130 function PlayIdleAnim() 00131 { 00132 LoopAnim('Idle', 0.4); 00133 } 00134 00135 defaultproperties 00136 { 00137 AmmoName=Class'UnrealI.RazorAmmo' 00138 PickupAmmoCount=15 00139 FireOffset=(X=16.000000,Z=-15.000000) 00140 ProjectileClass=Class'UnrealI.RazorBlade' 00141 AltProjectileClass=Class'UnrealI.RazorBladeAlt' 00142 shakemag=120.000000 00143 AIRating=0.500000 00144 RefireRate=0.830000 00145 AltRefireRate=0.830000 00146 SelectSound=Sound'UnrealI.Razorjack.beam' 00147 DeathMessage="%k took a bloody chunk out of %o with the %w." 00148 AutoSwitchPriority=7 00149 InventoryGroup=7 00150 PickupMessage="You got the RazorJack" 00151 ItemName="Razorjack" 00152 PlayerViewOffset=(X=2.000000,Z=-0.900000) 00153 PlayerViewMesh=LodMesh'UnrealI.Razor' 00154 BobDamping=0.970000 00155 PickupViewMesh=LodMesh'UnrealI.RazPick' 00156 ThirdPersonMesh=LodMesh'UnrealI.Razor3rd' 00157 PickupSound=Sound'UnrealShare.Pickups.WeaponPickup' 00158 Mesh=LodMesh'UnrealI.RazPick' 00159 bNoSmooth=False 00160 CollisionRadius=28.000000 00161 CollisionHeight=7.000000 00162 Mass=17.000000 00163 }