View Full Version : probelms with stopfire... (weapons)

16th Nov 2001, 02:12 PM
Hi !

sorry, it's me again :) I found this forum which i didn't knew, so i benefit a little to have you here :) Excuse me again !

Well, i have realistic weapons, and as you may know, sidearms don't fire like a machinegun ! If you take a HK mark23 (my favorite weapon) and if you hit the trigger, the weapon will fire just one bullet and will stop (in semi-auto mode).

I have made a function call "stopfire" in order to stop the autofire. It works perfectly but there is a problem : if you clik very fast, the weapon will fire at every click... So, you can fire as fast as a machingun if you are fast !

I tried to add a sleep in my stop function, but it don't works... Is anybody know what could be the problem ? I don't understand why this xxxx sleep function don't work...

Captain Kewl
16th Nov 2001, 02:30 PM
I'm assuming your firing rate is once per firing animation here...

Actors have an IsAnimating(); function that returns true if they are in the middle of an animation sequence. There's also AnimSequence which returns a string of the name of the animation currently playing. Maybe use something like this?

if ( !IsAnimating() || AnimSequence != 'Fire' )

Euphoric Beaver
16th Nov 2001, 03:37 PM
I may of misread it and you proberly know this but you can't do latent functions like sleep inside functions. They only work in states.

16th Nov 2001, 03:50 PM
Something like this should work:

state NormalFire
ignores Fire, AltFire, AnimEnd;

// If the player is still trying to fire...
while (Pawn(Owner).bFire != 0);
if (bChangeWeapon)

Should work (haven't tested it) as it's a condensed form of some code I made to do the same job, only it used two states and I can't remember why.

17th Nov 2001, 04:31 AM
Thanks, it works very well :)

Oh yes, i know that sleep only works with states... My stopfire() function refers to a state where i used sleep.. Bu it didn't work.

well, thanks again :)