do crossbows even have recoil? i would assume like longbows, they do not. they are pulling the arrow forward, not pushing it with propellants.
Unfortunately the bullet will continuously go through everything and never stop.
do crossbows even have recoil? i would assume like longbows, they do not. they are pulling the arrow forward, not pushing it with propellants.
It won't, if you look at the code you'll see there's a limit.
"To every action there is always an equal and opposite reaction"
I did look in the code, I see that it gradually loses damage as it goes through, but it doesn't feel like it will ever stop... Maybe. In this case you might want to adjust it so it loses way more damage as it goes through.
While( (HitCount++)<10 )
Meaning that the action of the arrow going forward away from you exerts a force on the string of the bow which pulls the bow against your hand, therefore making a recoil. Rockets work by throwing flames out of the back of the tube instead of throwing flames up against the inside of the tube. It's also why you will never see anyone fly backwards from getting a shotgun blast to the chest because in real life such a shotgun would also throw the person who fired it.
Meaning that the action of the arrow going forward away from you exerts a force on the string of the bow which pulls the bow against your hand, therefore making a recoil. Rockets work by throwing flames out of the back of the tube instead of throwing flames up against the inside of the tube. It's also why you will never see anyone fly backwards from getting a shotgun blast to the chest because in real life such a shotgun would also throw the person who fired it.
The penetration code can be easily taken from the class DeagleFire.uc, just copy everything but the class extends line and default properties into your new gun.
}
X = Vector(Dir);
End = Start + TraceRange * X;
HitDamage = DamageMax;
While( (HitCount++)<10 )
{
DamageActor = none;
Other = Instigator.HitPointTrace(HitLocation, HitNormal, End, HitPoints, Start,, 1);
if( Other==None )
{
Break;
}
else if( Other==Instigator || Other.Base == Instigator )
{
IgnoreActors[IgnoreActors.Length] = Other;
Other.SetCollision(false);
Start = HitLocation;
Continue;
}
if( ExtendedZCollision(Other)!=None && Other.Owner!=None )
{
IgnoreActors[IgnoreActors.Length] = Other;
IgnoreActors[IgnoreActors.Length] = Other.Owner;
Other.SetCollision(false);
Other.Owner.SetCollision(false);
DamageActor = Pawn(Other.Owner);
}
if ( !Other.bWorldGeometry && Other!=Level )
{
HitPawn = KFPawn(Other);
if ( HitPawn != none )
{
// Hit detection debugging
/*log("PreLaunchTrace hit "$HitPawn.PlayerReplicationInfo.PlayerName);
HitPawn.HitStart = Start;
HitPawn.HitEnd = End;*/
if(!HitPawn.bDeleteMe)
HitPawn.ProcessLocationalDamage(int(HitDamage), Instigator, HitLocation, Momentum*X,DamageType,HitPoints);
// Hit detection debugging
/*if( Level.NetMode == NM_Standalone)
HitPawn.DrawBoneLocation();*/
IgnoreActors[IgnoreActors.Length] = Other;
IgnoreActors[IgnoreActors.Length] = HitPawn.AuxCollisionCylinder;
Other.SetCollision(false);
HitPawn.AuxCollisionCylinder.SetCollision(false);
DamageActor = Other;
}
else
{
if( KFMonster(Other)!=None )
{
IgnoreActors[IgnoreActors.Length] = Other;
Other.SetCollision(false);
DamageActor = Other;
}
else if( DamageActor == none )
{
DamageActor = Other;
}
Other.TakeDamage(int(HitDamage), Instigator, HitLocation, Momentum*X, DamageType);
}
if( (HCounter++)>=4 || Pawn(DamageActor)==None )
{
Break;
}
HitDamage/=2;
Start = HitLocation;
}
else if ( HitScanBlockingVolume(Other)==None )
{
if( KFWeaponAttachment(Weapon.ThirdPersonActor)!=None )
KFWeaponAttachment(Weapon.ThirdPersonActor).UpdateHit(Other,HitLocation,HitNormal);
Break;
}
}
// Turn the collision back on for any actors we turned it off
if ( IgnoreActors.Length > 0 )
{
for (i=0; i<IgnoreActors.Length; i++)
{
IgnoreActors[i].SetCollision(true);
}
}
}
Don't get me wrong, you've got a great concept here. I'm all for enhanced realism, as I'm actually quite fed up with many fps games today that just fail at realism (CoD).
But I'm going to stress the point right now that if you are dedicated to making the game as real as possible, many guns in Killing Floor are going to become overpowered, bar none. In real life, guns are not designed to be balanced, they are designed to be better than what the other guy's got.
Try and find Candlejack on this forum. He knows a little too much about guns.
Meaning that the action of the arrow going forward away from you exerts a force on the string of the bow which pulls the bow against your hand, therefore making a recoil. Rockets work by throwing flames out of the back of the tube instead of throwing flames up against the inside of the tube. It's also why you will never see anyone fly backwards from getting a shotgun blast to the chest because in real life such a shotgun would also throw the person who fired it.
I need help to do the following, or at lest the code lines to do:
*Change magazine size of specific weapon.
*Change ammo type for specific weapon.
*Add penetration to non-projectile weapon.
*Remove yellow trace of bullets.
Im quite sure some of these cant be done, but oh well, please help.
You called?
BTW, i noticed you said the Desert Eagle fired .50AP.
It's .50AE. AE for Action Express; though it's also been called the .50 Magnum.
Though the Desert Eagle in Killing Floor fires .44 Magnum.
The Desert Eagle can fire .357 Magnum, .44 Magnum and .50AE (.50 Magnum), with 9, 8 and 7 rounds per mag; respectively.
Add to that the fact that a gun shoots a tiny piece of metal that's many times smaller than the gun itself. The sheer size and weight of the gun helps absorb recoil.