Custom Super shotgun reload issue.

Discuss all aspects related to modding Zandronum here.
Post Reply
ninja2000
 
Posts: 25
Joined: Fri Aug 03, 2012 3:10 pm

Custom Super shotgun reload issue.

#1

Post by ninja2000 » Sun Jan 10, 2016 2:12 pm

Hi!

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
}
Last edited by ninja2000 on Mon Jan 11, 2016 10:47 am, edited 1 time in total.

Code: Select all

D:!

Post Reply