header general

Problem With Character's Projectile Attack

  • cmw1986
  • cmw1986's Avatar Topic Author
  • Wraith
  • Wraith
More
8 years 1 month ago #1 by cmw1986
I seem to be having a problem with a character in my project. What I want him to do is summon the same blue 'powerup rings' like the ones
from the Powerup Ring Spawners wad in the Particle Spawners subcatergory of the SFX Shop in the Repository.

OK anyways, this is what currently happens: In the game my character is able to spawn the rings on its current target (he replaces the Archviles),
but however, the rings do not appear the same as the blue powerup rings shown within the Powerup Ring Spawners demo map.
So what I want is for the character's ring projectile to look exactly like them when I play the game. What I think needs to be fixed
might probably have to be both the 'KingRing' and 'RingSummon' actors listed below.

What I have enclosed is both the DECORATE codes of my character and the PRS wad from the Repository (just in case).
Any help will be greatly appreciated and hopefully someone understands me about what I want for my mod.

Also, my PRS sprite is perfectly fine. It's just its codes that need changing (just so you know). :)


DECORATE codes of character:
Code:
ACTOR King { Health 700 Radius 20 Height 56 Mass 500 Speed 15 MaxTargetRange 896 PainChance 10 PainChance "Disintegrate", 10 Obituary "?" Monster +FLOORCLIP +NOTARGET +QUICKTORETALIATE SeeSound "king/sight" ActiveSound "king/active" MeleeSound "king/stop" PainSound "king/pain" DeathSound "king/death" States { Spawn: KING AB 10 A_Look Loop See: KING AABBCCDDEEFF 2 A_Chase (0, "Missile", CHF_RESURRECT) Loop Missile: KING G 0 BRIGHT A_PlaySound ("king/start", CHAN_VOICE, 1.0) KING G 10 BRIGHT A_FaceTarget KING H 8 BRIGHT A_VileTarget ("KingRing") KING IJKLMN 8 BRIGHT A_FaceTarget KING O 8 BRIGHT A_VileAttack ("king/stop", 20, 70, 70, 1.0, "Fire") KING P 20 BRIGHT GoTo See Heal: KING "[\]" 10 BRIGHT GoTo See Pain: KING Q 5 KING Q 5 A_Pain GoTo See Death: KING Q 7 A_GiveToTarget ("Points", 1000) KING R 7 A_Scream KING S 7 A_NoBlocking KING TUVWXY 7 KING Z -1 Stop Death.Disintegrate: ASHB A 5 ASHB B 5 A_Scream ASHB C 5 A_NoBlocking ASHB D 5 ASHB E 5 ASHB F 5 ASHB G 5 ASHB H 5 ASHB I -1 Stop } } ACTOR KingRing { +CLIENTSIDEONLY +NOBLOCKMAP +NOCLIP +NOGRAVITY +NOINTERACTION +NOSECTOR -SOLID States { Spawn: TNT1 A 0 TNT1 A 0 A_PlaySound ("king/ringsmmn", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 0, 129, 0) TNT1 A 2 BRIGHT A_StartFire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 10, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 20, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 30, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 40, 129, 0) TNT1 A 2 BRIGHT A_FireCrackle TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 50, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 60, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 70, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 80, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 90, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 100, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 110, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 120, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 130, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 140, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 150, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 160, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 170, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 180, 129, 0) TNT1 A 2 BRIGHT A_FireCrackle TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 190, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 200, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 210, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 220, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 230, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 240, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 250, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 260, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 270, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 280, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 290, 129, 0) TNT1 A 2 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 0, 0, 0, 0.01 *random(0, 25), 0.01 *random(0, 25), 0.01 *random(300, 600), 300, 129, 0) Stop } } ACTOR RingSummon { Radius 0 Height 0 Alpha 0.01 XScale 0.4 YScale 0.1 RenderStyle Add +MISSILE +NOBLOCKMAP +NOGRAVITY +NOINTERACTION -SOLID States { Spawn: RING AAAAA 1 BRIGHT A_FadeIn (0.2) RING AAAAAAAAAAAAAAAA 1 BRIGHT A_FadeOut (0.07) Stop Death: TNT1 A 1 Stop } }

File Attachment:

File Name: PowerRingPads.zip
File Size:18 KB

Please Log in or Create an account to join the conversation.

  • MagicWazard
  • MagicWazard's Avatar
  • Moderator
  • Moderator
More
8 years 1 month ago - 8 years 4 weeks ago #2 by MagicWazard
Replied by MagicWazard on topic Problem With Character's Projectile Attack
Moving this to "The Workshop". "Let Us Know" us intended more for reporting problems with the website or Repo entries. "The Workshop" is intended more for general Q&A and works-in-progress.

EDIT: Any chance you could include an actual complete WAD to test with, as well as a more detailed description of what the attack isn't doing correctly? You say the rings "do not appear the same as the blue powerup rings shown within the Powerup Ring Spawners demo map", but you don't say exactly what you ARE seeing and how it deviates from what you expect, so it's a little hard to provide an answer. All I can tell from the DECORATE code is that you modifed the SpawnItemEx function parameters a little bit from the PRS versions', but I assume you did that on purpose, and of course changing the parameters will change the appearance of the ring. (Also, don't forget that the PRS rings have some appearance behavior controlled through args, and args are set in a map editor; therefore, the appearance can vary from map-to-map.)

Warning: Spoiler!
Last edit: 8 years 4 weeks ago by MagicWazard.

Please Log in or Create an account to join the conversation.

  • cmw1986
  • cmw1986's Avatar Topic Author
  • Wraith
  • Wraith
More
7 years 5 months ago - 7 years 5 months ago #3 by cmw1986
Replied by cmw1986 on topic Problem With Character's Projectile Attack
Okay then MagicWazard, I'll try my best to explain what is going on so far...

Here is what happens in the game:

Instead of this...



...I'm seeing this



Isn't the ring in the top picture just a bunch of little rings circled around a 64x64 sector?. So how do I do that with my character's projectile attack?. I know for sure my KingRing codes definitely need to be changed. What do I need to do?. :(

(Btw, forgive me for the late reply! :))
Last edit: 7 years 5 months ago by cmw1986.

Please Log in or Create an account to join the conversation.

  • MagicWazard
  • MagicWazard's Avatar
  • Moderator
  • Moderator
More
7 years 5 months ago #4 by MagicWazard
Replied by MagicWazard on topic Problem With Character's Projectile Attack
I just noticed that your SpawnItemEx functions (where the ring particles are produced) don't have any value for the X offset (the second parameter, right after the actor name). This basically means the actors are getting spawned right at the middle of the spawner, more or less right on top of one another. Since the X and Y velocities are negligible, they don't really spread out from there.

Also, it looks like you have the value "129" in the "flags" parameter. Using numbers as flag values is not a good idea, as it's very difficult to tell what flag(s) are supposed to be in effect. If there's supposed to be a value there, you should use the constant names instead (e.g. "SXF_TRANSFERTRANSLATION").

Please Log in or Create an account to join the conversation.

  • cmw1986
  • cmw1986's Avatar Topic Author
  • Wraith
  • Wraith
More
7 years 5 months ago - 7 years 5 months ago #5 by cmw1986
Replied by cmw1986 on topic Problem With Character's Projectile Attack
Alright, I have now changed my KingRing codes to this:

Code:
ACTOR KingRing { +CLIENTSIDEONLY +NOBLOCKMAP +NOCLIP +NOGRAVITY +NOINTERACTION +NOSECTOR -SOLID States { Spawn: Active: TNT1 A 0 TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 0, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 10, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 20, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 30, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 40, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 50, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 60, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 70, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 80, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 90, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 100, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 110, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 120, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 130, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 140, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 150, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 160, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 170, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 180, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 190, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 200, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 210, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 220, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 230, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 240, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 250, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 260, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 270, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 280, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 290, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 310, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 320, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 330, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 340, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 350, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) TNT1 A 1 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 360, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEANGLE) Loop Inactive: TNT1 A 1 Loop } }

Still not working like how the blue rings appear in the Power Ring Spawners demo map. What should I change with the offsets, velocities, flags, etc. to make it work right?.
Last edit: 7 years 5 months ago by cmw1986.

Please Log in or Create an account to join the conversation.

  • MagicWazard
  • MagicWazard's Avatar
  • Moderator
  • Moderator
More
7 years 5 months ago #6 by MagicWazard
Replied by MagicWazard on topic Problem With Character's Projectile Attack
One problem is that SXF_ABSOLUTEPOSITION is causing the ring spheres to be constricted together, like it's confining them all to one spawn point. I don't understand the flag too well, but I think it's causing the Angle parameter to be ignored, so all the spheres are spawned 32 units east of where the spawner is supposed to be, regardless of the intended angle. I'm pretty sure this flag wasn't one of the flags comprising the "129" value in the original Powerup Ring. (If my math is correct, the only flags in the original were SXF_TRANSFERTRANSLATION [which I believe = 1] and SXF_CLIENTSIDE [which I believe = 128]...but I'll need independent verification of that.) I'm pretty sure the SXF_ABSOLUTEANGLE flag is unnecessary, but I don't think it's hurting anything, either.

Another problem is that each A_SpawnItemEx function call is taking 1 tic, so the whole ring isn't spawning at one time--instead, it takes about 1 whole second for the ring to spawn. Because of this, if SXF_ABSOLUTEPOSITION is removed, the ring will spawn as more of a spiral instead (which actually looks kind of cool, but is wrong). Each call to A_SpawnItemEx should take 0 tics, so they all spawn at once. By contrast, the first line in the Active state (TNT1 A 0) should take more than 0 tics. This line will determine the "delay" between each ring. (So, changing it to, say, TNT1 A 5 would result in 7 rings spawned per second).

Also, I notice that no ring sphere is spawned at 300 degrees. Spheres are spawned at 0 and 360 degrees, but this is actually the same angle (since going 360 degrees takes you a full circle).

Here's an example that should work the way you want.

Please Log in or Create an account to join the conversation.

  • cmw1986
  • cmw1986's Avatar Topic Author
  • Wraith
  • Wraith
More
7 years 5 months ago - 7 years 5 months ago #7 by cmw1986
Replied by cmw1986 on topic Problem With Character's Projectile Attack
We're almost there! The codes work seriously awesome! :)

But however, there is one thing that's not right... My character replaces the Archviles and I want the rings to behave like the original character's fire attack, so how do I make the rings pulse for a certain number of times first (let's say 30 for example) and then stop (or vanish) and injure/destroy the player afterwards?. If I change the loop to stop, then it stops but only one ring gets summoned. The KingRing actor is missing something...

I have enclosed the DECORATE codes for the Archvile fire attack and an updated KingRing codes to help you solve this problem. Also, I really appreciate your wonderful help with this. I really thank you for your cooperation and advice!. :)

Peace!
-cmw1986
Code:
ACTOR ArchvileFire { +NOBLOCKMAP +NOGRAVITY RenderStyle Add Alpha 1 States { Spawn: FIRE A 2 BRIGHT A_StartFire FIRE BAB 2 BRIGHT A_Fire FIRE C 2 BRIGHT A_FireCrackle FIRE BCBCDCDCDEDED 2 BRIGHT A_Fire FIRE E 2 BRIGHT A_FireCrackle FIRE FEFEFGHGHGH 2 BRIGHT A_Fire Stop } }
Code:
ACTOR KingRing { +CLIENTSIDEONLY +NOBLOCKMAP +NOCLIP +NOGRAVITY +NOINTERACTION +NOSECTOR -SOLID States { Spawn: TNT1 A 4 TNT1 A 0 A_PlaySound ("king/ringsmmn", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 0, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_StartFire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 10, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 20, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 30, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 40, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_FireCrackle TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 50, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 60, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 70, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 80, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 90, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 100, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 110, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 120, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 130, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 140, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 150, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 160, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 170, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 180, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_FireCrackle TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 190, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 200, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 210, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 220, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 230, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 240, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 250, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 260, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 270, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 280, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 290, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 300, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 310, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 320, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 330, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 340, SXF_ABSOLUTEANGLE) TNT1 A 0 BRIGHT A_Fire TNT1 A 0 A_PlaySound ("king/ringpulse", CHAN_VOICE, 1.0) TNT1 A 0 A_SpawnItemEx ("RingSummon", 32, 0, 0, 0, 0, 3, 350, SXF_ABSOLUTEANGLE) Loop } }
Last edit: 7 years 5 months ago by cmw1986.

Please Log in or Create an account to join the conversation.

  • MagicWazard
  • MagicWazard's Avatar
  • Moderator
  • Moderator
More
7 years 5 months ago - 7 years 5 months ago #8 by MagicWazard
Replied by MagicWazard on topic Problem With Character's Projectile Attack
For giving the ring spawner a "lifespan", try something like this, which uses a user variable to track how many times the spawner has looped, and an A_JumpIf command to terminate the loop once the variable has hit a certain value:

Warning: Spoiler!


Change the "30" in the first line of "Active" to something larger or smaller depending on how many times you want the ring spawner to loop. There's probably a slightly tider way of coding this, but I don't deal with user variables often, so I'm not real good with the syntax. :D
Last edit: 7 years 5 months ago by MagicWazard. Reason: One extra "loop"

Please Log in or Create an account to join the conversation.

  • cmw1986
  • cmw1986's Avatar Topic Author
  • Wraith
  • Wraith
More
7 years 5 months ago #9 by cmw1986
Replied by cmw1986 on topic Problem With Character's Projectile Attack
Sweet frickin' Moses, it worked!!! All I have to do now is improve the sounds for the character, which I probably can do on my own unless I need help again. But anyways, thank you so very much!. :cool:

Peace!
-cmw1986

Please Log in or Create an account to join the conversation.