Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // These goes in KEYCONF
- AddkeySection "Serious Sam" SeriousSam
- AddMenuKey "Reload (Fixed)" +SSRE_Reload
- alias +SSRE_Reload "use SSREReloadOn"
- alias -SSRE_Reload "use SSREReloadOff"
- defaultbind t +SSRE_Reload
- // These goes in the PlayerPuppet class
- Player.StartItem "SSREReloadOn",1
- Player.StartItem "SSREReloadOff",1
- // These actors define the dummy classes needed to make it work
- ACTOR SSREReloadOn : CustomInventory
- {
- Inventory.Amount 1
- Inventory.MaxAmount 1
- -INVBAR
- +IGNORESKILL
- +UNDROPPABLE
- States
- {
- Use:
- TNT1 A 0 A_GiveInventory("SSREReloadFlag",1)
- Fail
- }
- }
- ACTOR SSREReloadOff : CustomInventory
- {
- Inventory.Amount 1
- Inventory.MaxAmount 1
- -INVBAR
- +IGNORESKILL
- +UNDROPPABLE
- States
- {
- Use:
- TNT1 A 0 A_TakeInventory("SSREReloadFlag",1)
- Fail
- }
- }
- ACTOR SSREReloadFlag : Inventory
- {
- Inventory.Amount 1
- Inventory.MaxAmount 1
- -INVBAR
- +IGNORESKILL
- }
- // This is an example of a weapon that uses this reload system.
- ACTOR SSREShotgun : Weapon replaces SingleShotgun
- {
- Weapon.Selectionorder 800
- Weapon.SlotNumber 3
- Weapon.SlotPriority 0.67
- Weapon.AmmoUse1 1
- Weapon.AmmoGive1 10
- Weapon.AmmoType1 "SSREShotgunMag"
- Weapon.AmmoUse2 0
- Weapon.AmmoGive2 10
- Weapon.AmmoType2 "SSREShells"
- +WEAPON.NOAUTOFIRE
- +WEAPON.AMMO_OPTIONAL
- +WEAPON.NOAUTOAIM
- Inventory.PickupMessage "You got the shotgun!"
- Obituary "%k pumped %o full of buckshot."
- Tag "12 Gauge Pump-Action Shotgun"
- decal Bulletchip
- States
- {
- Ready:
- SSSS A 0 A_JumpifInventory("SSREShells",1,2)
- // Another sanity check for when reserves run dry, ensuring that the weapon doesn't hang.
- SSSS A 1 A_WeaponReady
- Loop
- SSSS A 0 A_JumpIfInventory("SSREReloadFlag",1,"ReloadStart")
- SSSS A 0 A_JumpIfNoAmmo("ReloadStart")
- SSSS A 1 A_WeaponReady
- Loop
- Select:
- SSSS AA 0 A_Raise
- SSSS A 1 A_Raise
- Loop
- Deselect:
- SSSS AA 0 A_Lower
- SSSS A 1 A_Lower
- Loop
- Fire:
- SSSS B 0 A_JumpIfNoAmmo("ReloadStart")
- SSSS B 0 A_JumpIf( ACS_ExecuteWithResult(1030) == 1 , "FireDM")
- SSSS B 1
- SSSS C 0 ACS_ExecuteAlways(772)
- SSSS C 0 A_FireCustomMissile("SSREBuckshot",(random(-320,320) + random(-320,320) + random(-320,320))/100.0,1,0,0,0,(random(-100,100) + random(-100,100) + random(-100,100))/100.0)
- // Spread = 8 Degrees
- SSSS CCCCCCC 0 A_FireCustomMissile("SSREBuckshot",(random(-320,320) + random(-320,320) + random(-320,320))/100.0,0,0,0,0,(random(-100,100) + random(-100,100) + random(-100,100))/100.0)
- // Damage = 16 x 8 = 128
- SSSS C 0 A_PlaySound("WEPSINGL", CHAN_WEAPON)
- SSSS C 2 Bright
- SSSS DDEFFGHHIJJKLLMNNOOPPQQRSSTUUWAA 1
- SSSS A 0 A_ReFire
- Goto Ready
- FireDM:
- SSSS B 1
- SSSS C 0 ACS_ExecuteAlways(772)
- SSSS C 0 A_FireCustomMissile("SSREBuckshot",(random(-320,320) + random(-320,320) + random(-320,320))/100.0,1,0,0,0,(random(-100,100) + random(-100,100) + random(-100,100))/100.0)
- // Spread = 8 Degrees
- SSSS CCCCCCC 0 A_FireCustomMissile("SSREBuckshot",(random(-320,320) + random(-320,320) + random(-320,320))/100.0,0,0,0,0,(random(-100,100) + random(-100,100) + random(-100,100))/100.0)
- // Damage = 16 x 8 = 128
- SSSS C 0 A_PlaySound("WEPSINGL", CHAN_WEAPON)
- SSSS C 1 Bright
- SSSS DEFGHIJKLMNNOOPQRSTUWAA 1
- SSSS A 0 A_ReFire
- Goto Ready
- ReloadStart:
- SSSS A 0 A_JumpIfInventory("SSREShells",1,2) // Sanity check for when reserves run dry
- SSSS A 1
- Goto Ready
- SSSR A 0 A_JumpIfInventory("SSREShotgunMag",10,2) // Check if it needs to reload
- SSSR A 1
- Goto ReloadWork
- SSSS A 1 A_TakeInventory("SSREReloadFlag") // Cancels reload if full
- Goto Ready
- ReloadWork:
- SSSR AABBBCCC 1
- SSSR D 0 A_PlaySound("MAGUNLOA")
- SSSR DEFGHIJK 2
- Goto ReloadLoop
- ReloadLoop:
- SSSR L 0 A_TakeInventory("SSREShells",1)
- SSSR L 0 A_GiveInventory("SSREShotgunMag",1)
- SSSR L 0 A_JumpIfInventory("SSREShotgunMag",10,"ReloadEnd")
- SSSR L 0 A_JumpIfInventory("SSREShells",1,"ReloadLoop")
- Goto ReloadEnd
- ReloadEnd:
- SSSR L 0 A_PlaySound("MAGLOAD")
- SSSR LMNOPQ 2
- SSSS N 0 A_PlaySound("WEPCOCK")
- SSSS NOPQRSTUW 2
- SSSS W 0 A_ReFire
- Goto Ready
- Spawn:
- WSSS A -1
- Stop
- }
- }
- ACTOR SSREShotgunMag : Ammo
- {
- Inventory.MaxAmount 10
- +IGNORESKILL
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement