Advertisement
ArcheKruz

For Sgt_Shivers

Nov 19th, 2013
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.17 KB | None | 0 0
  1. // These goes in KEYCONF
  2.  
  3. AddkeySection "Serious Sam" SeriousSam
  4. AddMenuKey "Reload (Fixed)" +SSRE_Reload
  5. alias +SSRE_Reload "use SSREReloadOn"
  6. alias -SSRE_Reload "use SSREReloadOff"
  7. defaultbind t +SSRE_Reload
  8.  
  9. // These goes in the PlayerPuppet class
  10.  
  11. Player.StartItem "SSREReloadOn",1
  12. Player.StartItem "SSREReloadOff",1
  13.  
  14. // These actors define the dummy classes needed to make it work
  15.  
  16. ACTOR SSREReloadOn : CustomInventory
  17. {
  18. Inventory.Amount 1
  19. Inventory.MaxAmount 1
  20. -INVBAR
  21. +IGNORESKILL
  22. +UNDROPPABLE
  23. States
  24. {
  25. Use:
  26. TNT1 A 0 A_GiveInventory("SSREReloadFlag",1)
  27. Fail
  28. }
  29. }
  30.  
  31. ACTOR SSREReloadOff : CustomInventory
  32. {
  33. Inventory.Amount 1
  34. Inventory.MaxAmount 1
  35. -INVBAR
  36. +IGNORESKILL
  37. +UNDROPPABLE
  38. States
  39. {
  40. Use:
  41. TNT1 A 0 A_TakeInventory("SSREReloadFlag",1)
  42. Fail
  43. }
  44. }
  45.  
  46. ACTOR SSREReloadFlag : Inventory
  47. {
  48. Inventory.Amount 1
  49. Inventory.MaxAmount 1
  50. -INVBAR
  51. +IGNORESKILL
  52. }
  53.  
  54. // This is an example of a weapon that uses this reload system.
  55.  
  56. ACTOR SSREShotgun : Weapon replaces SingleShotgun
  57. {
  58. Weapon.Selectionorder 800
  59. Weapon.SlotNumber 3
  60. Weapon.SlotPriority 0.67
  61. Weapon.AmmoUse1 1
  62. Weapon.AmmoGive1 10
  63. Weapon.AmmoType1 "SSREShotgunMag"
  64. Weapon.AmmoUse2 0
  65. Weapon.AmmoGive2 10
  66. Weapon.AmmoType2 "SSREShells"
  67. +WEAPON.NOAUTOFIRE
  68. +WEAPON.AMMO_OPTIONAL
  69. +WEAPON.NOAUTOAIM
  70. Inventory.PickupMessage "You got the shotgun!"
  71. Obituary "%k pumped %o full of buckshot."
  72. Tag "12 Gauge Pump-Action Shotgun"
  73. decal Bulletchip
  74. States
  75. {
  76. Ready:
  77. SSSS A 0 A_JumpifInventory("SSREShells",1,2)
  78. // Another sanity check for when reserves run dry, ensuring that the weapon doesn't hang.
  79. SSSS A 1 A_WeaponReady
  80. Loop
  81. SSSS A 0 A_JumpIfInventory("SSREReloadFlag",1,"ReloadStart")
  82. SSSS A 0 A_JumpIfNoAmmo("ReloadStart")
  83. SSSS A 1 A_WeaponReady
  84. Loop
  85. Select:
  86. SSSS AA 0 A_Raise
  87. SSSS A 1 A_Raise
  88. Loop
  89. Deselect:
  90. SSSS AA 0 A_Lower
  91. SSSS A 1 A_Lower
  92. Loop
  93. Fire:
  94. SSSS B 0 A_JumpIfNoAmmo("ReloadStart")
  95. SSSS B 0 A_JumpIf( ACS_ExecuteWithResult(1030) == 1 , "FireDM")
  96. SSSS B 1
  97. SSSS C 0 ACS_ExecuteAlways(772)
  98. 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)
  99. // Spread = 8 Degrees
  100. 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)
  101. // Damage = 16 x 8 = 128
  102. SSSS C 0 A_PlaySound("WEPSINGL", CHAN_WEAPON)
  103. SSSS C 2 Bright
  104. SSSS DDEFFGHHIJJKLLMNNOOPPQQRSSTUUWAA 1
  105. SSSS A 0 A_ReFire
  106. Goto Ready
  107. FireDM:
  108. SSSS B 1
  109. SSSS C 0 ACS_ExecuteAlways(772)
  110. 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)
  111. // Spread = 8 Degrees
  112. 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)
  113. // Damage = 16 x 8 = 128
  114. SSSS C 0 A_PlaySound("WEPSINGL", CHAN_WEAPON)
  115. SSSS C 1 Bright
  116. SSSS DEFGHIJKLMNNOOPQRSTUWAA 1
  117. SSSS A 0 A_ReFire
  118. Goto Ready
  119. ReloadStart:
  120. SSSS A 0 A_JumpIfInventory("SSREShells",1,2) // Sanity check for when reserves run dry
  121. SSSS A 1
  122. Goto Ready
  123. SSSR A 0 A_JumpIfInventory("SSREShotgunMag",10,2) // Check if it needs to reload
  124. SSSR A 1
  125. Goto ReloadWork
  126. SSSS A 1 A_TakeInventory("SSREReloadFlag") // Cancels reload if full
  127. Goto Ready
  128. ReloadWork:
  129. SSSR AABBBCCC 1
  130. SSSR D 0 A_PlaySound("MAGUNLOA")
  131. SSSR DEFGHIJK 2
  132. Goto ReloadLoop
  133. ReloadLoop:
  134. SSSR L 0 A_TakeInventory("SSREShells",1)
  135. SSSR L 0 A_GiveInventory("SSREShotgunMag",1)
  136. SSSR L 0 A_JumpIfInventory("SSREShotgunMag",10,"ReloadEnd")
  137. SSSR L 0 A_JumpIfInventory("SSREShells",1,"ReloadLoop")
  138. Goto ReloadEnd
  139. ReloadEnd:
  140. SSSR L 0 A_PlaySound("MAGLOAD")
  141. SSSR LMNOPQ 2
  142. SSSS N 0 A_PlaySound("WEPCOCK")
  143. SSSS NOPQRSTUW 2
  144. SSSS W 0 A_ReFire
  145. Goto Ready
  146. Spawn:
  147. WSSS A -1
  148. Stop
  149. }
  150. }
  151.  
  152. ACTOR SSREShotgunMag : Ammo
  153. {
  154. Inventory.MaxAmount 10
  155. +IGNORESKILL
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement