I simply had to replace this in the weapon classes
(DysfunctionalWeap_BlunderBlade.uc and DysfunctionalWeap_BlunderBladeBot.uc):
simulated function vector InstantFireStartTrace()
{
return GetPhysicalFireStartLoc();
}
With this beautiful selection of code developed by Frankycfurter (http://forums.epicgames.com/threads/961286-Projectile-is-spawning-in-the-wrong-place-on-link-gun) :
simulated function vector GetPhysicalFireStartLoc(optional vector AimDir)
{
Local SkeletalMeshComponent AttachedMesh;
local vector SocketLocation;
Local DysfunctionalPawn P;
P = DysfunctionalPawn(Owner);
AttachedMesh = P.CurrentWeaponAttachment.Mesh;
AttachedMesh.GetSocketWorldLocationAndRotation(MuzzleFlashSocket, SocketLocation);
return SocketLocation;
}
And here is the wondrous result in action:
by
Mike Rowntree