ShagaDoom Posted October 12, 2022 I would like to know how I can create a "Bulletpuff". I already made one before with the variant that is anchored to the original "Bulletpuff" (I don't know if I'm explaining myself). Spoiler Actor shotPuff : Bulletpuff But certain mistakes do happen. So I would prefer to create one with the same characteristics and know how I could remove the marks that remain on the walls but be able to customize the smoke that is shown when the bullets hit the walls. 0 Quote Share this post Link to post
SMG_Man Posted October 12, 2022 (edited) (I'm going off of DECORATE here since that's what I know best; this should work similarly in ZSCRIPT but I'm not as well-versed in the syntax and nuances there.) You have your custom bullet puff sprites (PUF2 for example). If there's 4 of them, you can use them pretty much as a 1-to-1 replacement for the original sprites. What you can do then is start the same way you have, with the new actor definition and inheritance from the original bullet puff actor. From there, copy and paste the original Bulletpuff's code, then pare down what you're not actually changing until you're only left with the parts that are different. To illustrate: Spoiler // Here's the code from the original actor ACTOR BulletPuff { +NOBLOCKMAP +NOGRAVITY +ALLOWPARTICLES +RANDOMIZE RenderStyle Translucent Alpha 0.5 VSpeed 1 Mass 5 States { Spawn: PUFF A 4 Bright PUFF B 4 // Intentional fall-through Melee: PUFF CD 4 Stop } } --- // Make a new actor that inherits from the original, and make the changes you want (namely changing the sprites) ACTOR NewBulletPuff : BulletPuff { +NOBLOCKMAP +NOGRAVITY +ALLOWPARTICLES +RANDOMIZE RenderStyle Translucent Alpha 0.5 VSpeed 1 Mass 5 States { Spawn: PUF2 A 4 Bright PUF2 B 4 // Intentional fall-through Melee: PUF2 CD 4 Stop } } --- // With that done, remove everything that WAS NOT changed from the original actor, and voila ACTOR NewBulletPuff : BulletPuff { States { Spawn: PUF2 A 4 Bright PUF2 B 4 // Intentional fall-through Melee: PUF2 CD 4 Stop } } // This is the necessary code for your new actor. 48 minutes ago, ShagaDoom said: know how I could remove the marks that remain on the walls The bullethole decals on walls are not actually coming from the Bulletpuff; the properties responsible for them are set through either the weapon's DECORATE/ZSCRIPT code (Custom weapons you download will probably assign it this way) or through a DECALDEF lump (This is how they are assigned to the original Doom weapons, and some custom weapons may also use this method). Decals can also be blanket activated/deactivated through the options menu in GZDoom, though that doesn't offer granular control. If you need more information on this, I recommend checking the ZDoom wiki pages here (use ctrl+f and find "Decal") and here. Edited October 12, 2022 by SMG_Man 0 Quote Share this post Link to post
ShagaDoom Posted October 12, 2022 10 hours ago, SMG_Man said: (I'm going off of DECORATE here since that's what I know best; this should work similarly in ZSCRIPT but I'm not as well-versed in the syntax and nuances there.) You have your custom bullet puff sprites (PUF2 for example). If there's 4 of them, you can use them pretty much as a 1-to-1 replacement for the original sprites. What you can do then is start the same way you have, with the new actor definition and inheritance from the original bullet puff actor. From there, copy and paste the original Bulletpuff's code, then pare down what you're not actually changing until you're only left with the parts that are different. To illustrate: Reveal hidden contents // Here's the code from the original actor ACTOR BulletPuff { +NOBLOCKMAP +NOGRAVITY +ALLOWPARTICLES +RANDOMIZE RenderStyle Translucent Alpha 0.5 VSpeed 1 Mass 5 States { Spawn: PUFF A 4 Bright PUFF B 4 // Intentional fall-through Melee: PUFF CD 4 Stop } } --- // Make a new actor that inherits from the original, and make the changes you want (namely changing the sprites) ACTOR NewBulletPuff : BulletPuff { +NOBLOCKMAP +NOGRAVITY +ALLOWPARTICLES +RANDOMIZE RenderStyle Translucent Alpha 0.5 VSpeed 1 Mass 5 States { Spawn: PUF2 A 4 Bright PUF2 B 4 // Intentional fall-through Melee: PUF2 CD 4 Stop } } --- // With that done, remove everything that WAS NOT changed from the original actor, and voila ACTOR NewBulletPuff : BulletPuff { States { Spawn: PUF2 A 4 Bright PUF2 B 4 // Intentional fall-through Melee: PUF2 CD 4 Stop } } // This is the necessary code for your new actor. The bullethole decals on walls are not actually coming from the Bulletpuff; the properties responsible for them are set through either the weapon's DECORATE/ZSCRIPT code (Custom weapons you download will probably assign it this way) or through a DECALDEF lump (This is how they are assigned to the original Doom weapons, and some custom weapons may also use this method). Decals can also be blanket activated/deactivated through the options menu in GZDoom, though that doesn't offer granular control. If you need more information on this, I recommend checking the ZDoom wiki pages here (use ctrl+f and find "Decal") and here. Perfect! you helped me a lot! 1 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.