The shotty works perfectly fine.. at least if You don't hold the primary mouse button. The problem is this:
1. Fire right barrel (altfire)
2. Insert new shell to the right bareel (press left mouse button = fire)
3. Hold the left mouse button (goto DONOTHING)
4. Now you can only use the Fire2 mode (fire left barrel), but no way to to use primary fire (firing both barrels)
5. After firing left barrel (despite of the fact that there are 2 shells inside of the shotgun barrels) and than reloading the weapon, now You can acctually fire the both barrels.
The problem disappears when You wont HOLD down the primary button, but just after the insertion of the shell to the right barrel You will release the button.
@EDIT: UPDATED THE CODE. WORKS
Code: Select all
ACTOR SSG : Supershotgun// replaces Supershotgun
{
Weapon.AmmoGive 8
weapon.ammouse 2
weapon.ammotype "shell"
weapon.ammouse2 1
weapon.ammotype2 "shell"
ATTACKSOUND "SG"
decal Bulletchip
Inventory.PickupMessage "You got the double barreled Shotgun!"
Obituary "%o was splattered by %k double barreled shotgun."
TAG "Double Barreled Shotgun"
States
{
Ready:
SHT2 A 1 A_WeaponReady
Loop
Deselect:
SHT2 A 0 A_Lower
SHT2 A 1 A_Lower
Loop
Select:
SHT2 A 0 A_Raise
SHT2 A 1 A_Raise
Loop
Fire:
TNT1 A 0 A_JUMPIFINVENTORY ("EMPTYSSG",1,"READY1")
TNT1 A 0 A_JUMPIFINVENTORY ("SSGSINGLE",1,"RILOWD")
SHT2 A 1
//TNT1 A 0 A_TAKEINVENTORY ("PRIMARYFIRE",1)
TNT1 A 0 A_TAKEINVENTORY ("SSGSTOPRELOADER",1)
SHT2 A 0 A_FireBullets (10, 6, 20, random(6,8), "BulletPuff")
TNT1 A 0 a_setpitch(pitch-2.0)
TNT1 A 0 A_RECOIL (1.0)
//TNT1 A 0 A_TAKEINVENTORY ("SHELL",2)
SHT2 A 0 A_PlaySound ("SG", CHAN_WEAPON)
TNT1 A 0 A_GUNFLASH
SHT2 A 1 BRIGHT OFFSET (0,38)
SHT2 A 2 BRIGHT Offset(0,44) a_setpitch(pitch+0.4)
SHT2 A 2 BRIGHT Offset(0,39) a_setpitch(pitch+0.4)
SHT2 A 2 BRIGHT Offset(0,37)
SHT2 A 2 BRIGHT Offset(0,35)
SHT2 A 1 BRIGHT Offset(0,32)
TNT1 A 0 A_JUMPIFNOAMMO ("NOAMMOLEL")
SHT2 B 7
SHT2 C 7 A_CheckReload
SHT2 D 7 A_OpenShotgun2
SHT2 E 7
SHT2 F 7 A_LoadShotgun2
SHT2 G 7 //hehe
SHT2 H 7 A_CloseShotgun2
SHT2 A 6 A_ReFire
Goto Ready
READY1:
TNT1 A 0 A_TAKEINVENTORY ("EMPTYSSG",1)
SHT2 B 7
SHT2 C 7 A_CheckReload
SHT2 D 7 A_OpenShotgun2
SHT2 E 7
SHT2 F 7 A_LoadShotgun2
SHT2 G 7 //hehe
SHT2 H 7 A_CloseShotgun2
SHT2 A 5
GOTO READY
ALTFIRE:
TNT1 A 0 A_JUMPIFINVENTORY ("SSGSINGLE",1,"FIRE2")
TNT1 A 0 A_JUMPIFINVENTORY ("EMPTYSSG",1,"READY1")
TNT1 A 0 A_GIVEINVENTORY ("SSGSINGLE",1)
TNT1 A 0 A_TAKEINVENTORY ("SSGSTOPRELOADER",1)
SHT2 A 1
SHT2 A 0 A_FireBullets (6, 6, 10, random(6,8), "BulletPuff")
TNT1 A 0 A_RECOIL (0.5)
TNT1 A 0 a_setpitch(pitch-1.2)
SHTR A 0 A_PlaySound ("SGS", CHAN_WEAPON)
//TNT1 A 0 A_TAKEINVENTORY ("SHELL",1)
TNT1 A 0 A_LIGHT1
SHTR A 1 BRIGHT OFFSET (0,33)
SHTR A 2 BRIGHT Offset(0,38) a_setpitch(pitch+0.4)
SHTR A 1 BRIGHT Offset(0,37) a_setpitch(pitch+0.2)
TNT1 A 0 A_LIGHT2
SHTR B 1 BRIGHT Offset(0,37)
SHT2 A 2 BRIGHT Offset(0,36)
TNT1 A 0 A_LIGHT0
SHT2 A 2 BRIGHT Offset(0,35)
SHT2 A 1 BRIGHT Offset(0,32)
goto ready
FIRE2:
TNT1 A 0 A_JUMPIFINVENTORY ("EMPTYSSG",1,"READY1")
SHT2 A 1
//TNT1 A 0 A_TAKEINVENTORY ("SSGSTOPRELOADER",1)
SHT2 A 0 A_FireBullets (6, 6, 10, random(6,8), "BulletPuff")
//TNT1 A 0 A_TAKEINVENTORY ("SHELL",1)
SHTR A 0 A_PlaySound ("SGS", CHAN_WEAPON)
TNT1 A 0 A_RECOIL (0.5)
TNT1 A 0 a_setpitch(pitch-1.2)
TNT1 A 0 A_LIGHT1
SHTL A 1 BRIGHT OFFSET (0,33)
SHTL A 2 BRIGHT Offset(0,38) a_setpitch(pitch+0.4)
SHTL A 1 BRIGHT Offset(0,37) a_setpitch(pitch+0.2)
TNT1 A 0 A_LIGHT2
SHTL B 1 BRIGHT Offset(0,37)
SHT2 A 2 BRIGHT Offset(0,36)
TNT1 B 0 A_LIGHT0
SHT2 A 2 BRIGHT Offset(0,35)
SHT2 A 1 BRIGHT Offset(0,32)
TNT1 A 0 A_TAKEINVENTORY ("SSGSINGLE",1)
TNT1 A 0 A_JUMPIFNOAMMO ("NOAMMOLEL")
SHT2 B 7
SHT2 C 7 A_CheckReload
SHT2 D 7 A_OpenShotgun2
SHT2 E 7
SHT2 F 7 A_LoadShotgun2
SHT2 G 7 //hehe
SHT2 H 7 A_CloseShotgun2
SHT2 A 6 A_ReFire
Goto Ready
NOAMMOLEL:
TNT1 A 0 A_GIVEINVENTORY ("EMPTYSSG",1)
goto ready
RILOWD:
TNT1 A 0 A_JUMPIFINVENTORY ("SSGSTOPRELOADER",1,"DONOTHING")
TNT1 A 0 A_GIVEINVENTORY ("SSGSTOPRELOADER",1)
SHT2 B 7
//TNT1 A 0 A_GIVEINVENTORY ("PRIMARYFIRE",1)
SHT2 C 7 A_CheckReload
SHT2 D 7 A_OpenShotgun2
//TNT1 A 0 A_TAKEINVENTORY ("SHELL",1)
GREL L 7
SHT2 F 7 A_LoadShotgun2
SHT2 G 7 //hehe
SHT2 H 7 A_CloseShotgun2
TNT1 A 0 A_TAKEINVENTORY ("SSGSINGLE",1)
SHT2 A 5
GOTO READY
DONOTHING:
SHT2 A 1 A_TAKEINVENTORY ("SSGSINGLE",1)
goto ready
Flash:
SHT2 I 5 Bright A_Light1
SHT2 J 3 Bright A_Light2
Goto LightDone
Spawn:
SGN2 A -1
Stop
}
}
ACTOR PRIMARYFIRE : INVENTORY
{
Inventory.maxamount 1
}
ACTOR EMPTYSSG : INVENTORY
{
Inventory.maxamount 1
}
ACTOR SSGSINGLE : INVENTORY
{
Inventory.maxamount 1
}