simulated state UR_Reload extends WeaponLoadAmmo { simulated function BeginFire(byte FireModeNum) { if (Role == ROLE_Authority) { if (FireModeNum == 1) { ReloadAmmmoMegaRox(); GotoState('Active'); } else if (FireModeNum == 0) { //LoadedFireMode = ERocketFireMode((int(LoadedFireMode) + 1) % RFM_Max); //WeaponPlaySound(AltFireModeChangeSound); GotoState('UR_FireState'); } global.BeginFire(FireModeNum); } } function ReloadAmmmoMegaRox() { if (AmmoCount < MaxAmmoCount) { AmmoCount += 1; } } begin : if (Role == ROLE_Authority) { ReloadAmmmoMegaRox(); } }
It goes to Active state the second time you click on alt fire, the first time it reloads, but does not enters BeginFire. I put the GoToState('Active') inside the reload ammo function, but that makes an infinite loop :O
There should be a better solution, this is working, though.