For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com
Immediate weapon auto-switching in recent 227j builds
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Immediate weapon auto-switching in recent 227j builds
I noticed that when that recent changes in UScript code for some weapons (DP, Eightball and others) have changed the behavior when the "Auto-Switch Weapons" option is enabled (bNeverAutoSwitch is False). Previously, if you take a better weapon (according to the priorities), you could use the current weapon until you release the fire trigger or the weapon automatically makes a shot because it's fully loaded. Now, picking other weapon may instantly interrupt the loading process and force your current weapon to make a premature shot.
I wonder how this new behavior is better than the old one. Note that sometimes you can't even see what weapon you're taking - for example, when moving backwards or while strafing. Then, if you load your EightBall with rockets/grenades, you would deal with totally unexpected shooting (and potentially blowing yourself up). I think, this modification needs some discussion at least.
I wonder how this new behavior is better than the old one. Note that sometimes you can't even see what weapon you're taking - for example, when moving backwards or while strafing. Then, if you load your EightBall with rockets/grenades, you would deal with totally unexpected shooting (and potentially blowing yourself up). I think, this modification needs some discussion at least.
- Smirftsch
- Administrator
- Posts: 8999
- Joined: Wed Apr 29, 1998 10:00 pm
- Location: NaPali
- Contact:
Re: Immediate weapon auto-switching in recent 227j builds
I have to admit that I agree here, I didn't see this change, but I indeed prefer the old behavior as well- not meaning that there was not some reasoning behind nevertheless
Sometimes you have to lose a fight to win the war.
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Immediate weapon auto-switching in recent 227j builds
Perhaps, the idea was to make these weapons behave in a way that some others already do. For instance, Stinger can be automatically replaced with other weapon without waiting for out of ammo condition or releasing fire triggers by the player. However, we should keep in mind that weapon switching is often very undesirable during an intense combat. In particular, Minigun is commonly used in time-critical situations; in such cases, if the player keeps holding the fire button, he probably doesn't want to interrupt his attack.
For loadable weapons (GESBioRifle, DispersionPistol, Eightball), players would probably prefer to have a proper control over the moment when loading is finished and shooting takes place.
Having these condiserations, here are my thoughts regarding the UScript files:
UnrealI/Classes/
GESBioRifle.uc - old implementation is better, the change should be reverted;
Minigun.uc - old implementation is better, the change should be reverted;
RazorJack.uc - the change isn't valuable from my point of view;
Rifle.uc - the change isn't valuable from my point of view;
UnrealShare/Classes/
DispersionPistol.uc - old implementation is better, the change should be reverted;
Eightball.uc - old implementation is better, the change should be reverted;
For loadable weapons (GESBioRifle, DispersionPistol, Eightball), players would probably prefer to have a proper control over the moment when loading is finished and shooting takes place.
Having these condiserations, here are my thoughts regarding the UScript files:
UnrealI/Classes/
GESBioRifle.uc - old implementation is better, the change should be reverted;
Minigun.uc - old implementation is better, the change should be reverted;
RazorJack.uc - the change isn't valuable from my point of view;
Rifle.uc - the change isn't valuable from my point of view;
UnrealShare/Classes/
DispersionPistol.uc - old implementation is better, the change should be reverted;
Eightball.uc - old implementation is better, the change should be reverted;
- Hyper
- OldUnreal Member
- Posts: 3514
- Joined: Fri Oct 11, 2002 5:41 pm
- Contact:
Re: Immediate weapon auto-switching in recent 227j builds
I don't know if it is related, but I noticed that when I log in to my coop server, at least after patching, I'm not holding any weapon. I still have all weapons but I have to switch to it first. Because I don't have done any testing to this I did not yet make a report for it but maybe it is somehow related.
- .:..:
- OldUnreal Member
- Posts: 1635
- Joined: Tue Aug 16, 2005 4:35 am
Re: Immediate weapon auto-switching in recent 227j builds
Hmm the reason I did this change was to prevent one from keep firing while feing death, but didn't consider it would effect auto-switch.
Maybe auto weapon switch could instead be changed to wait until user releases fire for any weapon?
Or then feign death could be made to force bFire and bAltFire to zero.
As a modding standpoint it could be useful to have weaponchange force weapon to stop firing (such as for StrangeWorld controllable cannon where its meant to holster the weapon).
Maybe auto weapon switch could instead be changed to wait until user releases fire for any weapon?
Or then feign death could be made to force bFire and bAltFire to zero.
As a modding standpoint it could be useful to have weaponchange force weapon to stop firing (such as for StrangeWorld controllable cannon where its meant to holster the weapon).
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Immediate weapon auto-switching in recent 227j builds
I think, weapon's code is a wrong place for handling such conditions.
Can this be done without a risk to introduce other subtle side effects?
That looks like the most appropriate solution. I would also add EndZoom() for turning zooming off when using Rifle-like weapons.
Code: Select all
function BeginState()
{
local rotator NewRot;
if (Role == ROLE_Authority && CarriedDecoration != none)
DropDecoration();
NewRot = Rotation;
NewRot.Pitch = 0;
SetRotation(NewRot);
+
BaseEyeHeight = -0.5 * CollisionHeight;
+ EndZoom();
+ bFire = 0;
+ bAltFire = 0;
bIsCrouching = false;
bPressedJump = false;
bRising = false;
+
Disable('AnimEnd');
PlayFeignDeath();
PlayerReplicationInfo.bFeigningDeath = true;
bSaveClientPlayerState = true;
if (SupportsRealCrouching())
RealCrouchInfo.UpdateCrouch();
}
- Masterkent
- OldUnreal Member
- Posts: 1469
- Joined: Fri Apr 05, 2013 12:41 pm
Re: Immediate weapon auto-switching in recent 227j builds
I looked at the code of that cannon. It resets bFire and bAltFire and calls EndZoom() - similarly as described above:
Code: Select all
function ControlWeaponStart()
{
// put pawns weapon down and replace it with NoWeapon
// the if() is needed in case that the player controls
// more than one controlmover
bSwitchWeapon = False;
NoWeapon = spawn(class'NoWeaponNoFire', cControler);
if ( Pawn(cControler).Weapon.class != NoWeapon.class )
{
cWeapon = Pawn(cControler).Weapon;
NoWeapon.SetOwner(cControler);
Pawn(cControler).Weapon.TweenDown();
Pawn(cControler).Weapon = NoWeapon;
Pawn(cControler).PendingWeapon = NoWeapon;
Pawn(cControler).Weapon.BringUp();
bSwitchWeapon = True;
}
// if the tActor is firing stop firing
Pawn(cControler).bFire = 0;
Pawn(cControler).bAltFire = 0;
// if the tActor is a playerpawn
// end zoom just for the case the player is holding
// a rifle (or other weapon) in zoom mode
if ( cControler.IsA('PlayerPawn') )
PlayerPawn(cControler).EndZoom();
}