PDA

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


Sg_Jack
16th Nov 2001, 01: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, 01: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' )
{
DoFireStuff();
}

Euphoric Beaver
16th Nov 2001, 02: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.

mr.s-d
16th Nov 2001, 02:50 PM
Something like this should work:

state NormalFire
{
ignores Fire, AltFire, AnimEnd;

Begin:
FinishAnim();
// If the player is still trying to fire...
while (Pawn(Owner).bFire != 0);
{
Sleep(0.05);
if (bChangeWeapon)
GotoState('DownWeapon');
}
Finish();
}

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.

Sg_Jack
17th Nov 2001, 03: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 :)