Thread View: alt.games.unreal.tournament
15 messages
15 total messages
Started by §ď×darts
Wed, 17 Dec 2008 09:27
The final skill to master ... any advice?
Author: §ď×darts
Date: Wed, 17 Dec 2008 09:27
Date: Wed, 17 Dec 2008 09:27
13 lines
1993 bytes
1993 bytes
OK. I can rocket jump. I can hammer jump. .. I can shoot my teleporter puck all the way across a map with rockets or a shock ball. I've done skeet shooting with teleporter pucks and the shock rifle. I can even slide across the floor and break dance. Other UT skills I have gained over the years are too numerous to name. What I can not figure out how to do is block incoming fire with my impact hammer. I've seen it done and I know guys who can do it fairly regularly. I did it accidentally once, but I'll be dipped in shit if I know how I did it. So, any tips? What weapons can be blocked? What weapons can not be blocked? And how the hell does one accomplish this?
Re: The final skill to master ... any advice?
Author: MB
Date: Wed, 17 Dec 2008 12:31
Date: Wed, 17 Dec 2008 12:31
46 lines
3216 bytes
3216 bytes
§ï×darts skrev: > OK. I can rocket jump. I can hammer jump. .. I can shoot my teleporter > puck all the way across a map with rockets or a shock ball. I've done skeet > shooting with teleporter pucks and the shock rifle. I can even slide across > the floor and break dance. Other UT skills I have gained over the years are > too numerous to name. > > What I can not figure out how to do is block incoming fire with my impact > hammer. I've seen it done and I know guys who can do it fairly regularly. > I did it accidentally once, but I'll be dipped in shit if I know how I did > it. > > So, any tips? What weapons can be blocked? What weapons can not be > blocked? And how the hell does one accomplish this? I got two other tips. First off, it's not well known and very hard to master but you can actually do high speed bunny jumping in UT (99 version). A good place to try it out is on Liandri. Out in the big room you have the bio gun up on a "shelf" and under it is an almost diagonal pillar. This is where you usually take the shortcut up to bio by dodging up on the pillar. If you stand behind the pillar and walk up right next to it touching it and jump in the correct moment, you'll notice you're speed increases alot and you'll land far away from the pillar. Doing this jump alone can seem difficult, but try it a few times and you'll see what I mean. Now, if you time it *exactly* right when you land and push jump again, you will keep this high speed through the next jump and the next and so forth. I haven't practised it alot and I found it very hard to do. I only succeeded 3 jumps in a row and doubt that it is very useful in game unless you have perfected your skills on doing it. I used that pillar on Liandri as an example, but it probably works on similar surfaces on other maps too. Another trick that you can also try out on Liandri is making a similar high speed long distance jump through the teleporter leading to the belt area. When approaching the teleporter, jump in the right moment right before you enter it and you'll gain the same high speed and long distance jump as in the previous trick. This is much easier to do and can be a good thing to do when attacking the belt area. MB
Re: The final skill to master ... any advice?
Author: goPostal
Date: Wed, 17 Dec 2008 14:32
Date: Wed, 17 Dec 2008 14:32
24 lines
2222 bytes
2222 bytes
"§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message news:VsadnYncI41oWNXUnZ2dnUVZ_gednZ2d@giganews.com... > OK. I can rocket jump. I can hammer jump. .. I can shoot my teleporter > puck all the way across a map with rockets or a shock ball. I've done > skeet > shooting with teleporter pucks and the shock rifle. I can even slide > across > the floor and break dance. Other UT skills I have gained over the years > are > too numerous to name. > > What I can not figure out how to do is block incoming fire with my impact > hammer. I've seen it done and I know guys who can do it fairly regularly. > I did it accidentally once, but I'll be dipped in shit if I know how I did > it. > > So, any tips? What weapons can be blocked? What weapons can not be > blocked? And how the hell does one accomplish this? Six if you want to test one evening, I'm all for it. I could run a passworded server and see. I'll pull the code and see what's blocked for you.
Re: The final skill to master ... any advice?
Author: goPostal
Date: Wed, 17 Dec 2008 14:38
Date: Wed, 17 Dec 2008 14:38
25 lines
17338 bytes
17338 bytes
"§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message
news:VsadnYncI41oWNXUnZ2dnUVZ_gednZ2d@giganews.com...
> OK. I can rocket jump. I can hammer jump. .. I can shoot my teleporter
> puck all the way across a map with rockets or a shock ball. I've done
> skeet
> shooting with teleporter pucks and the shock rifle. I can even slide
> across
> the floor and break dance. Other UT skills I have gained over the years
> are
> too numerous to name.
>
> What I can not figure out how to do is block incoming fire with my impact
> hammer. I've seen it done and I know guys who can do it fairly regularly.
> I did it accidentally once, but I'll be dipped in shit if I know how I did
> it.
>
> So, any tips? What weapons can be blocked? What weapons can not be
> blocked? And how the hell does one accomplish this?
OK I pulled the code for the hammer. There is a very small area in which to
block the incoming weapon fire, so timing is crucial. Here is the weapon
code (I'll explain it later when I get home):
//=============================================================================// ImpactHammer.//=============================================================================class ImpactHammer extends TournamentWeapon;#exec MESH IMPORT MESH=ImpactHammer ANIVFILE=MODELS\impact_a.3DDATAFILE=MODELS\impact_d.3D X=0 Y=0 Z=0#exec MESH ORIGIN MESH=ImpactHammer X=0 Y=0 Z=0 YAW=64 PITCH=0 ROLL=-56#exec MESH SEQUENCE MESH=ImpactHammer SEQ=All STARTFRAME=0NUMFRAMES=56#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Select STARTFRAME=0NUMFRAMES=17#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Still STARTFRAME=17NUMFRAMES=1#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Pull STARTFRAME=17NUMFRAMES=5#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Shake STARTFRAME=22NUMFRAMES=10#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Fire STARTFRAME=35NUMFRAMES=16#exec MESH SEQUENCE MESH=ImpactHammer SEQ=Down STARTFRAME=51NUMFRAMES=5#exec TEXTURE IMPORT NAME=JImpactHammer1 FILE=MODELS\imp1.PCX GROUP=SkinsLODSET=2#exec TEXTURE IMPORT NAME=JImpactHammer2 FILE=MODELS\imp2.PCX GROUP=SkinsLODSET=2#exec TEXTURE IMPORT NAME=JImpactHammer3 FILE=MODELS\imp3.pCX GROUP=SkinsLODSET=2#exec TEXTURE IMPORT NAME=JImpactHammer4 FILE=MODELS\imp4.PCX GROUP=SkinsLODSET=2#exec MESHMAP SCALE MESHMAP=ImpactHammer X=0.006 Y=0.006 Z=0.007#exec MESHMAP SETTEXTURE MESHMAP=ImpactHammer NUM=0 TEXTURE=JImpactHammer1#exec MESHMAP SETTEXTURE MESHMAP=ImpactHammer NUM=1 TEXTURE=JImpactHammer2#exec MESHMAP SETTEXTURE MESHMAP=ImpactHammer NUM=2 TEXTURE=JImpactHammer3#exec MESHMAP SETTEXTURE MESHMAP=ImpactHammer NUM=3 TEXTURE=JImpactHammer4#exec MESH IMPORT MESH=ImpPick ANIVFILE=MODELS\imppick_a.3DDATAFILE=MODELS\imppick_d.3D X=0 Y=0 Z=0#exec MESH ORIGIN MESH=ImpPick X=0 Y=0 Z=0 YAW=0 ROLL=-64#exec MESH SEQUENCE MESH=ImpPick SEQ=All STARTFRAME=0 NUMFRAMES=1#exec MESH SEQUENCE MESH=ImpPick SEQ=Still STARTFRAME=0 NUMFRAMES=1#exec TEXTURE IMPORT NAME=JImpPick1 FILE=MODELS\imp0.PCX GROUP=SkinsLODSET=2#exec MESHMAP SCALE MESHMAP=ImpPick X=0.1 Y=0.1 Z=0.2#exec MESHMAP SETTEXTURE MESHMAP=ImpPick NUM=1 TEXTURE=JImpPick1#exec MESH IMPORT MESH=ImpactHandm ANIVFILE=MODELS\impacthand_a.3DDATAFILE=MODELS\impacthand_d.3D#exec MESH ORIGIN MESH=ImpactHandm X=30 Y=-130 Z=-157 YAW=64 ROLL=-64#exec MESH SEQUENCE MESH=ImpactHandm SEQ=All STARTFRAME=0 NUMFRAMES=13#exec MESH SEQUENCE MESH=ImpactHandm SEQ=Pull STARTFRAME=1 NUMFRAMES=10#exec MESH SEQUENCE MESH=ImpactHandm SEQ=Shake STARTFRAME=12 NUMFRAMES=1#exec MESH SEQUENCE MESH=ImpactHandm SEQ=Still STARTFRAME=0 NUMFRAMES=1#exec MESHMAP SCALE MESHMAP=ImpactHandm X=0.06 Y=0.06 Z=0.12#exec MESHMAP SETTEXTURE MESHMAP=ImpactHandm NUM=1 TEXTURE=JImpPick1#exec TEXTURE IMPORT NAME=IconHammer FILE=TEXTURES\HUD\WpnMpact.PCXGROUP="Icons" MIPS=OFF#exec TEXTURE IMPORT NAME=UseHammer FILE=TEXTURES\HUD\UseMpact.PCXGROUP="Icons" MIPS=OFF#exec AUDIO IMPORT FILE="Sounds\ImpactHammer\impact-regularfire.WAV"NAME="ImpactFire" GROUP="ASMD"#exec AUDIO IMPORT FILE="Sounds\ImpactHammer\impact-altfireSTART.WAV"NAME="ImpactAltFireStart" GROUP="ASMD"#exec AUDIO IMPORT FILE="Sounds\ImpactHammer\impact-altfireRELEASE.WAV"NAME="ImpactAltFireRelease" GROUP="ASMD"#exec AUDIO IMPORT FILE="Sounds\ImpactHammer\impacthammerloop.WAV"NAME="ImpactLoop" GROUP="ASMD"#exec AUDIO IMPORT FILE="Sounds\ImpactHammer\impactpickup.WAV"NAME="ImpactPickup" GROUP="ASMD"var float ChargeSize, Count;var() sound AltFireSound;var() sound TensionSound;function float RateSelf( out int bUseAltMode ){ local float EnemyDist; local bool bRetreating; local Pawn P; bUseAltMode = 0; P = Pawn(Owner); if ( (P == None) || (P.Enemy == None) ) return 0; EnemyDist = VSize(P.Enemy.Location - Owner.Location); if ( (EnemyDist < 750) && P.IsA('Bot') && Bot(P).bNovice && (P.Skill <=2) && !P.Enemy.IsA('Bot') && (ImpactHammer(P.Enemy.Weapon) != None) ) return FClamp(300/(EnemyDist + 1), 0.6, 0.75); if ( EnemyDist > 400 ) return 0.1; if ( (P.Weapon != self) && (EnemyDist < 120) ) return 0.25; return ( FMin(0.8, 81/(EnemyDist + 1)) );}function float SuggestAttackStyle(){ return 10.0;}function float SuggestDefenseStyle(){ return -2.0;}simulated function PlayPostSelect(){ local Bot B; if ( Level.NetMode == NM_Client ) { Super.PlayPostSelect(); return; } B = Bot(Owner); if ( (B != None) && (B.Enemy != None) ) { B.PlayFiring(); B.bFire = 1; B.bAltFire = 0; Fire(1.0); }}simulated function bool ClientFire( float Value ){ if ( bCanClientFire ) { if ( (PlayerPawn(Owner) != None) && ((Level.NetMode == NM_Standalone) ||PlayerPawn(Owner).Player.IsA('ViewPort')) ) { if ( InstFlash != 0.0 ) PlayerPawn(Owner).ClientInstantFlash( InstFlash, InstFog); PlayerPawn(Owner).ShakeView(ShakeTime, ShakeMag, ShakeVert); } if ( Affector != None ) Affector.FireEffect(); Owner.PlayOwnedSound(Misc1Sound, SLOT_Misc,1.3*Pawn(Owner).SoundDampening); PlayAnim('Pull', 0.2, 0.05); if ( Role < ROLE_Authority ) GotoState('ClientFiring'); return true; } return false;}function Fire( float Value ){ bPointing=True; bCanClientFire = true; ClientFire(Value); Pawn(Owner).PlayRecoil(FiringSpeed); GoToState('Firing');}function AltFire( float Value ){ bPointing=True; bCanClientFire = true; Pawn(Owner).PlayRecoil(FiringSpeed); TraceAltFire(); ClientAltFire(value); GoToState('AltFiring');}simulated function ClientWeaponEvent(name EventType){ if ( EventType == 'FireBlast' ) { PlayFiring(); GotoState('ClientFireBlast'); }}simulated function PlayFiring(){ if (Owner != None) { if ( Affector != None ) Affector.FireEffect(); Owner.PlayOwnedSound(FireSound, SLOT_Misc,1.7*Pawn(Owner).SoundDampening,,,); if ( PlayerPawn(Owner) != None ) PlayerPawn(Owner).ShakeView(ShakeTime, ShakeMag, ShakeVert); PlayAnim( 'Fire', 0.65 ); }}simulated function PlayAltFiring(){ if (Owner != None) { if ( Affector != None ) Affector.FireEffect(); PlayOwnedSound(AltFireSound, SLOT_Misc,1.7*Pawn(Owner).SoundDampening,,,); LoopAnim( 'Fire', 0.65); }}state Firing{ function AltFire(float F) { } function Tick( float DeltaTime ) { local Pawn P; local Rotator EnemyRot; local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z; local actor HitActor; if ( bChangeWeapon ) GotoState('DownWeapon'); if ( Bot(Owner) != None ) { if ( Bot(Owner).Enemy == None ) Bot(Owner).bFire = 0; else Bot(Owner).bFire = 1; } P = Pawn(Owner); if ( P == None ) { AmbientSound = None; GotoState(''); return; } else if( P.bFire==0 ) { TraceFire(0); PlayFiring(); GoToState('FireBlast'); return; } ChargeSize += 0.75 * DeltaTime; Count += DeltaTime; if ( Count > 0.2 ) { Count = 0; Owner.MakeNoise(1.0); } if (ChargeSize > 1) { if ( !P.IsA('PlayerPawn') && (P.Enemy != None) ) { EnemyRot = Rotator(P.Enemy.Location - P.Location); EnemyRot.Yaw = EnemyRot.Yaw & 65535; if ( (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) > 8000) && (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) <57535) ) return; GetAxes(EnemyRot,X,Y,Z); } else GetAxes(P.ViewRotation, X, Y, Z); StartTrace = P.Location + CalcDrawOffset() + FireOffset.X * X +FireOffset.Y * Y + FireOffset.Z * Z; if ( (Level.NetMode == NM_Standalone) && P.IsA('PlayerPawn') ) EndTrace = StartTrace + 25 * X; else EndTrace = StartTrace + 60 * X; HitActor = Trace(HitLocation, HitNormal, EndTrace, StartTrace,true); if ( (HitActor != None) && (HitActor.DrawType == DT_Mesh) ) { ProcessTraceHit(HitActor, HitLocation, HitNormal,vector(AdjustedAim), Y, Z); PlayFiring(); GoToState('FireBlast'); } } } function BeginState() { ChargeSize = 0.0; Count = 0.0; } function EndState() { Super.EndState(); AmbientSound = None; }Begin: FinishAnim(); AmbientSound = TensionSound; SoundVolume = 255*Pawn(Owner).SoundDampening; LoopAnim('Shake', 0.9);}state ClientFiring{ simulated function AnimEnd() { AmbientSound = TensionSound; SoundVolume = 255*Pawn(Owner).SoundDampening; LoopAnim('Shake', 0.9); Disable('AnimEnd'); }}state FireBlast{ function Fire(float F) { } function AltFire(float F) { }Begin: if ( (Level.NetMode != NM_Standalone) && Owner.IsA('PlayerPawn') && (ViewPort(PlayerPawn(Owner).Player) == None) ) PlayerPawn(Owner).ClientWeaponEvent('FireBlast'); FinishAnim(); Finish();}state ClientFireBlast{ simulated function bool ClientFire(float Value) { return false; } simulated function bool ClientAltFire(float Value) { return false; } simulated function AnimEnd() { if ( Pawn(Owner) == None ) { PlayIdleAnim(); GotoState(''); } else if ( !bCanClientFire ) GotoState(''); else if ( Pawn(Owner).bFire != 0 ) Global.ClientFire(0); else if ( Pawn(Owner).bAltFire != 0 ) Global.ClientAltFire(0); else { PlayIdleAnim(); GotoState(''); } }}function TraceFire(float accuracy){ local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z; local actor Other; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation, X, Y, Z); StartTrace = Owner.Location + CalcDrawOffset() + FireOffset.Y * Y +FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(1000000, StartTrace, AimError,False, False); EndTrace = StartTrace + 120.0 * vector(AdjustedAim); Other = Pawn(Owner).TraceShot(HitLocation, HitNormal, EndTrace,StartTrace); ProcessTraceHit(Other, HitLocation, HitNormal, vector(AdjustedAim), Y,Z);}function ProcessTraceHit(Actor Other, Vector HitLocation, Vector HitNormal,Vector X, Vector Y, Vector Z){ if ( (Other == None) || (Other == Owner) || (Other == self) || (Owner ==None)) return; ChargeSize = FMin(ChargeSize, 1.5); if ( (Other == Level) || Other.IsA('Mover') ) { ChargeSize = FMax(ChargeSize, 1.0); if ( VSize(HitLocation - Owner.Location) < 80 ) Spawn(class'ImpactMark',,, HitLocation+HitNormal,Rotator(HitNormal)); Owner.TakeDamage(36.0, Pawn(Owner), HitLocation, -69000.0 *ChargeSize * X, MyDamageType); } if ( Other != Level ) { if ( Other.bIsPawn && (VSize(HitLocation - Owner.Location) > 90) ) return; Other.TakeDamage(60.0 * ChargeSize, Pawn(Owner), HitLocation,66000.0 * ChargeSize * X, MyDamageType); if ( !Other.bIsPawn && !Other.IsA('Carcass') ) spawn(class'UT_SpriteSmokePuff',,,HitLocation+HitNormal*9); }}function TraceAltFire(){ local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z; local actor Other; local Projectile P; local float speed; Owner.MakeNoise(Pawn(Owner).SoundDampening); GetAxes(Pawn(owner).ViewRotation, X, Y, Z); StartTrace = Owner.Location + CalcDrawOffset() + FireOffset.X * X +FireOffset.Y * Y + FireOffset.Z * Z; AdjustedAim = pawn(owner).AdjustAim(1000000, StartTrace, AimError,False, False); EndTrace = StartTrace + 180 * vector(AdjustedAim); Other = Pawn(Owner).TraceShot(HitLocation, HitNormal, EndTrace,StartTrace); ProcessAltTraceHit(Other, HitLocation, HitNormal, vector(AdjustedAim),Y, Z); // push aside projectiles ForEach VisibleCollidingActors(class'Projectile', P, 550,Owner.Location) if ( ((P.Physics == PHYS_Projectile) || (P.Physics == PHYS_Falling)) && (Normal(P.Location - Owner.Location) Dot X) > 0.9 ) { P.speed = VSize(P.Velocity); if ( P.Velocity Dot Y > 0 ) P.Velocity = P.Speed * Normal(P.Velocity + (750 -VSize(P.Location - Owner.Location)) * Y); else P.Velocity = P.Speed * Normal(P.Velocity - (750 -VSize(P.Location - Owner.Location)) * Y); }}function ProcessAltTraceHit(Actor Other, Vector HitLocation, VectorHitNormal, Vector X, Vector Y, Vector Z){ local vector realLoc; local float scale; if ( (Other == None) || (Other == Owner) || (Other == self) || (Owner ==None) ) return; realLoc = Owner.Location + CalcDrawOffset(); scale = VSize(realLoc - HitLocation)/180; if ( (Other == Level) || Other.IsA('Mover') ) { Owner.TakeDamage(24.0 * scale, Pawn(Owner), HitLocation, -40000.0 *X * scale, MyDamageType); } else { Other.TakeDamage(20 * scale, Pawn(Owner), HitLocation, 30000.0 * X *scale, MyDamageType); if ( !Other.bIsPawn && !Other.IsA('Carcass') ) spawn(class'UT_SpriteSmokePuff',,,HitLocation+HitNormal*9); }}simulated function PlayIdleAnim(){ local Bot B; B = Bot(Owner); if ( (B != None) && (B.Enemy != None) ) { B.PlayFiring(); B.bFire = 1; B.bAltFire = 0; Fire(1.0); } else if ( Mesh != PickupViewMesh ) TweenAnim( 'Still', 1.0);}defaultproperties{ InstFlash=0.0 InstFog=(X=475.00000,Y=325.00000,Z=145.00000) MyDamageType=Impact InventoryGroup=1 AltFireSound=Sound'Botpack.ImpactFire' TensionSound=Sound'Botpack.ImpactLoop' bMeleeWeapon=True bRapidFire=true RefireRate=1.000000 AltRefireRate=1.000000 FireSound=Sound'Botpack.ImpactAltFireRelease' Misc1Sound=Sound'Botpack.ImpactAltFireStart' DeathMessage="%o got smeared by %k's piston." PickupMessage="You got the Impact Hammer." ItemName="Impact Hammer" PlayerViewOffset=(X=3.800000,Y=-1.600000,Z=-1.800000) PlayerViewMesh=Mesh'Botpack.ImpactHammer' PickupViewMesh=Mesh'Botpack.ImpPick' Mesh=Mesh'Botpack.ImpPick' ThirdPersonMesh=Mesh'Botpack.ImpactHandm' StatusIcon=Texture'Botpack.Icons.UseHammer' PickupSound=Sound'UnrealShare.Pickups.WeaponPickup' SelectSound=Sound'Botpack.ImpactPickup' Icon=Texture'Botpack.Icons.UseHammer' bMeshCurvy=False bNoSmooth=False SoundRadius=50 SoundVolume=200 WeaponDescription="Classification: Melee Piston\\n\\nPrimary Fire: Whentrigger is held down, touch opponents with this piston to inflict massivedamage.\\n\\nSecondary Fire: Damages opponents at close range and has theability to deflect projectiles.\\n\\nTechniques: Shoot at the ground whilejumping to jump extra high." NameColor=(R=255,G=192,B=0)}
Re: The final skill to master ... any advice?
Author: goPostal
Date: Wed, 17 Dec 2008 14:39
Date: Wed, 17 Dec 2008 14:39
36 lines
2746 bytes
2746 bytes
"goPostal" <agutgopostal@hotmail.com> wrote in message news:T982l.10123$297.4107@newsfe23.iad... > > "§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message > news:VsadnYncI41oWNXUnZ2dnUVZ_gednZ2d@giganews.com... >> OK. I can rocket jump. I can hammer jump. .. I can shoot my teleporter >> puck all the way across a map with rockets or a shock ball. I've done >> skeet >> shooting with teleporter pucks and the shock rifle. I can even slide >> across >> the floor and break dance. Other UT skills I have gained over the years >> are >> too numerous to name. >> >> What I can not figure out how to do is block incoming fire with my impact >> hammer. I've seen it done and I know guys who can do it fairly >> regularly. >> I did it accidentally once, but I'll be dipped in shit if I know how I >> did >> it. >> >> So, any tips? What weapons can be blocked? What weapons can not be >> blocked? And how the hell does one accomplish this? > > OK I pulled the code for the hammer. There is a very small area in which > to block the incoming weapon fire, so timing is crucial. Here is the > weapon code (I'll explain it later when I get home): > > //=============================================================================// > ImpactHammer.//=============================================================================class > ImpactHammer extends TournamentWeapon;#exec Stupid OE screwed up the format. I'll fix it tonight.
Re: The final skill to master ... any advice?
Author: Vis
Date: Thu, 18 Dec 2008 15:11
Date: Thu, 18 Dec 2008 15:11
17 lines
1876 bytes
1876 bytes
Sixdarts a new skill for you???????????? maybe Wall climbing with an impact hammer. Only seen it done once that was from the bottom path on lava giant. I had this dude cornered he had taken full sheild and a mega health off me, I had a pistol he had the hammer, I had him , time to die scum. Then he turned jumped hit the wall and went PowpowPow striaght up the vertical wall over the top and was gone. WTF and i carried on playing. It was not a fluke it was deliberate move. I thought i was dreaming. Vis
Re: The final skill to master ... any advice?
Author: §ď×darts
Date: Thu, 18 Dec 2008 18:13
Date: Thu, 18 Dec 2008 18:13
8 lines
1747 bytes
1747 bytes
On 18-Dec-2008, "Vis" <darrend43removethis--Bit@hotmail.com> wrote: > Then he turned jumped hit the wall and went PowpowPow striaght up the > vertical wall over the top and was gone. Oh. I like that. I wonder if both "pow pow's" were primary or secondary fire.
Re: The final skill to master ... any advice?
Author: §ď×darts
Date: Thu, 18 Dec 2008 18:18
Date: Thu, 18 Dec 2008 18:18
13 lines
1987 bytes
1987 bytes
On 17-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote: > Stupid OE screwed up the format. I'll fix it tonight. I know that feeling. Where did you learn all this stuff? A couple years back when we first "met" in this group, it was a different situation. Anyway, I'm very interested to know what can and can't be blocked. I'm also trying to figure out if blocking stuff can be done with either primary or secondary fire.
Re: The final skill to master ... any advice?
Author: Vis
Date: Thu, 18 Dec 2008 21:53
Date: Thu, 18 Dec 2008 21:53
9 lines
1359 bytes
1359 bytes
definately primary fire there was no buld up just pow pow pow and over and gone. Very impressive. I did look a bit thinking wow ttfn Vis
Re: The final skill to master ... any advice?
Author: goPostal
Date: Fri, 19 Dec 2008 00:46
Date: Fri, 19 Dec 2008 00:46
100 lines
4370 bytes
4370 bytes
"§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message
news:F-edneZLT_mYCdfUnZ2dnUVZ_u-dnZ2d@giganews.com...
>
> On 17-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote:
>
>> Stupid OE screwed up the format. I'll fix it tonight.
>
> I know that feeling.
>
> Where did you learn all this stuff? A couple years back when we first
> "met"
> in this group, it was a different situation.
>
> Anyway, I'm very interested to know what can and can't be blocked. I'm
> also
> trying to figure out if blocking stuff can be done with either primary or
> secondary fire.
OK, I'll try dots and see if that holds the code right. If it does, I'll
post an explanation in a moment:
.state Firing
.{
. function AltFire(float F)
. {
. }
.
. function Tick( float DeltaTime )
. {
. local Pawn P;
. local Rotator EnemyRot;
. local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y, Z;
. local actor HitActor;
.
. if ( bChangeWeapon )
. GotoState('DownWeapon');
.
. if ( Bot(Owner) != None )
. {
. if ( Bot(Owner).Enemy == None )
. Bot(Owner).bFire = 0;
. else
. Bot(Owner).bFire = 1;
. }
. P = Pawn(Owner);
. if ( P == None )
. {
. AmbientSound = None;
. GotoState('');
. return;
. }
. else if( P.bFire==0 )
. {
. TraceFire(0);
. PlayFiring();
. GoToState('FireBlast');
. return;
. }
.
. ChargeSize += 0.75 * DeltaTime;
.
. Count += DeltaTime;
. if ( Count > 0.2 )
. {
. Count = 0;
. Owner.MakeNoise(1.0);
. }
. if (ChargeSize > 1)
. {
. if ( !P.IsA('PlayerPawn') && (P.Enemy != None) )
. {
. EnemyRot = Rotator(P.Enemy.Location - P.Location);
. EnemyRot.Yaw = EnemyRot.Yaw & 65535;
. if ( (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) > 8000)
. && (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) <
57535) )
. return;
. GetAxes(EnemyRot,X,Y,Z);
. }
. else
. GetAxes(P.ViewRotation, X, Y, Z);
. StartTrace = P.Location + CalcDrawOffset() + FireOffset.X * X +
FireOffset.Y * Y + FireOffset.Z * Z;
. if ( (Level.NetMode == NM_Standalone) && P.IsA('PlayerPawn') )
. EndTrace = StartTrace + 25 * X;
. else
. EndTrace = StartTrace + 60 * X;
. HitActor = Trace(HitLocation, HitNormal, EndTrace, StartTrace,
true);
. if ( (HitActor != None) && (HitActor.DrawType == DT_Mesh) )
. {
. ProcessTraceHit(HitActor, HitLocation, HitNormal,
vector(AdjustedAim), Y, Z);
. PlayFiring();
. GoToState('FireBlast');
. }
. }
. }
Re: The final skill to master ... any advice?
Author: goPostal
Date: Fri, 19 Dec 2008 01:02
Date: Fri, 19 Dec 2008 01:02
114 lines
4833 bytes
4833 bytes
"goPostal" <agutgopostal@hotmail.com> wrote in message
news:2aC2l.8410$%z5.1580@newsfe09.iad...
>
Yay, it worked!
To answer you, I've never stopped learning UT stuff. I've been making mods
and monsters for both UT and 2K4 pretty much non-stop. Got a couple of
websites and a bunch of released things. It's my nirvana. I figured I sucked
as a player so I should try to do other UT things :P
Now your question. It's secondary fire, and I'll show you where:
> .state Firing
> .{
> . function AltFire(float F)
> . {
> . }
> .
This part sets up the alt fire itself:
> . function Tick( float DeltaTime )
> . {
> . local Pawn P;
> . local Rotator EnemyRot;
> . local vector HitLocation, HitNormal, StartTrace, EndTrace, X, Y,
> Z;
> . local actor HitActor;
> .
> . if ( bChangeWeapon )
> . GotoState('DownWeapon');
> .
> . if ( Bot(Owner) != None )
> . {
> . if ( Bot(Owner).Enemy == None )
> . Bot(Owner).bFire = 0;
> . else
> . Bot(Owner).bFire = 1;
> . }
> . P = Pawn(Owner);
> . if ( P == None )
> . {
> . AmbientSound = None;
> . GotoState('');
> . return;
> . }
> . else if( P.bFire==0 )
> . {
> . TraceFire(0);
> . PlayFiring();
> . GoToState('FireBlast');
> . return;
> . }
> .
> . ChargeSize += 0.75 * DeltaTime;
> .
> . Count += DeltaTime;
> . if ( Count > 0.2 )
> . {
> . Count = 0;
> . Owner.MakeNoise(1.0);
> . }
> . if (ChargeSize > 1)
> . {
Here it wants to know if the alt fire hits another player/bot (thats a
playerpawn). If it does it add yaw to them (pushes them back basically):
> . if ( !P.IsA('PlayerPawn') && (P.Enemy != None) )
> . {
> . EnemyRot = Rotator(P.Enemy.Location - P.Location);
> . EnemyRot.Yaw = EnemyRot.Yaw & 65535;
> . if ( (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) >
> 8000)
> . && (abs(EnemyRot.Yaw - (P.Rotation.Yaw & 65535)) <
> 57535) )
> . return;
> . GetAxes(EnemyRot,X,Y,Z);
> . }
If it doesn't then it hits any other actors (like an incoming rocket :P)
effectively canceling them out:
> . else
> . GetAxes(P.ViewRotation, X, Y, Z);
> . StartTrace = P.Location + CalcDrawOffset() + FireOffset.X * X
> + FireOffset.Y * Y + FireOffset.Z * Z;
> . if ( (Level.NetMode == NM_Standalone) &&
> P.IsA('PlayerPawn') )
> . EndTrace = StartTrace + 25 * X;
> . else
> . EndTrace = StartTrace + 60 * X;
> . HitActor = Trace(HitLocation, HitNormal, EndTrace,
> StartTrace, true);
If there's nothing to hit then it just does the animation:
> . if ( (HitActor != None) && (HitActor.DrawType == DT_Mesh) )
> . {
> . ProcessTraceHit(HitActor, HitLocation, HitNormal,
> vector(AdjustedAim), Y, Z);
> . PlayFiring();
> . GoToState('FireBlast');
> . }
> . }
> . }
>
I hope this helps you out. The "window" for this is incredibly small. The
timing is gonna be tough to get correct.
Re: The final skill to master ... any advice?
Author: §ď×darts
Date: Sat, 20 Dec 2008 07:23
Date: Sat, 20 Dec 2008 07:23
20 lines
2370 bytes
2370 bytes
On 18-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote:
> > . else
> > . GetAxes(P.ViewRotation, X, Y, Z);
> > . StartTrace = P.Location + CalcDrawOffset() + FireOffset.X *
> > X
> > + FireOffset.Y * Y + FireOffset.Z * Z;
> > . if ( (Level.NetMode == NM_Standalone) &&
> > P.IsA('PlayerPawn') )
> > . EndTrace = StartTrace + 25 * X;
> > . else
> > . EndTrace = StartTrace + 60 * X;
> > . HitActor = Trace(HitLocation, HitNormal, EndTrace,
> > StartTrace, true);
Ok... so there is really no limit to what actors it can cancel?
Could I theoreticaly cancel a shock ball? Or is the fact that the damage
area of the shock ball being bigger than the window make that impossible?
Re: The final skill to master ... any advice?
Author: goPostal
Date: Sat, 20 Dec 2008 22:59
Date: Sat, 20 Dec 2008 22:59
44 lines
3495 bytes
3495 bytes
"§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message
news:vN6dnRw29PjoANHUnZ2dnUVZ_vCdnZ2d@giganews.com...
>
> On 18-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote:
>
>> > . else
>> > . GetAxes(P.ViewRotation, X, Y, Z);
>> > . StartTrace = P.Location + CalcDrawOffset() + FireOffset.X
>> > *
>> > X
>> > + FireOffset.Y * Y + FireOffset.Z * Z;
>> > . if ( (Level.NetMode == NM_Standalone) &&
>> > P.IsA('PlayerPawn') )
>> > . EndTrace = StartTrace + 25 * X;
>> > . else
>> > . EndTrace = StartTrace + 60 * X;
>> > . HitActor = Trace(HitLocation, HitNormal, EndTrace,
>> > StartTrace, true);
>
> Ok... so there is really no limit to what actors it can cancel?
>
Kinda. Depends on the attributes the actor has inherited. Can it be
destroyed? Can you even have contact with it in the map? Stuff like that.
It's very logical, but detailed. If you are interested I could show you how
to follow the classes in about 15 minutes so you can see for yourself if you
are interested.
> Could I theoreticaly cancel a shock ball? Or is the fact that the damage
> area of the shock ball being bigger than the window make that impossible?
Depends. I'd have to follow the shock actor back and see. The shock
explosion shouldn't trigger on a block like that but I can't be sure without
checking. The shock ball is a funny animal anyway. I actually use it some on
invasion monsters because the code does such freaky things.
Also, don't confuse the shock ball with the shock explosion. They are two
different actors with the explosion called after the ball is destroyed.
Additionally, uscript doesn't care about size like you are thinking. If I
script a weapon that destroys a particular actor as a side effect, it
wouldn't matter if the actor were the size of a small house, one touch would
destroy it (without factoring in any sort of health issues you might give
said actor).
Re: The final skill to master ... any advice?
Author: §ď×darts
Date: Mon, 22 Dec 2008 10:46
Date: Mon, 22 Dec 2008 10:46
17 lines
2222 bytes
2222 bytes
On 20-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote: > I could show you how > to follow the classes in about 15 minutes so you can see for yourself if > you > are interested. Yes, please. > Also, don't confuse the shock ball with the shock explosion. I was just thinking ball for the moment... but if I could save myself from an exploding shock ball, that would be amazing and I would probably practice that one until I got good at it even if I'm 90 years old by the time I master it.
Re: The final skill to master ... any advice?
Author: goPostal
Date: Mon, 22 Dec 2008 23:58
Date: Mon, 22 Dec 2008 23:58
31 lines
2719 bytes
2719 bytes
"§ď×darts" <sixdartsREMOVE@hotmail.com> wrote in message news:xtOdnV4rwZBs8tLUnZ2dnUVZ_jOdnZ2d@giganews.com... > > On 20-Dec-2008, "goPostal" <agutgopostal@hotmail.com> wrote: > >> I could show you how >> to follow the classes in about 15 minutes so you can see for yourself if >> you >> are interested. > > Yes, please. > Drop me an email or better yet catch me on messenger. I'll hang some in the teamspeak channel for PMH too if you like voice chat. It's not hard and once you get the gist of it, you'll be amazed at how fast you can find things out you never knew were in there. > >> Also, don't confuse the shock ball with the shock explosion. > > I was just thinking ball for the moment... but if I could save myself from > an exploding shock ball, that would be amazing and I would probably > practice > that one until I got good at it even if I'm 90 years old by the time I > master it. I'm guessing it would cancel the shock without an explosion. IIRC the smaller "explosion" you get when a ball strikes bsp is strictly for show and there is no damage call. If you block it I'm pretty sure you'd get that one.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads