Jump to content

Help! Rocket ROTT


ShagaDoom

Recommended Posts

I managed to make the missile of one of the rocket launchers of the ROTT game. But I have a serious problem.

 

Screenshot-Doom-20221010-162108.png

 

 

When the explosions meet elevations, other floor levels, the explosions are generated above them, even when the rocket is launched at another elevation level.

 

Screenshot-Doom-20221010-162042.png

 

 

They also cross walls. In ROTT the remaining explosions were not generated, if they were blocked with walls, but the ones that had enough space were generated.

 

Screenshot-Doom-20221010-162123.png

 

 

And this is exactly what I need done. Maybe I'm occupying the wrong properties. That's why I need the help of all of you.

 

Here he gives you the details:

 

Spoiler

actor Rocket8 : Weapon 12008
{
  Game Doom
  Weapon.SelectionOrder 18
  radius 20
  height 16
  Weapon.AmmoUse 1
  Weapon.AmmoGive 5
  Weapon.AmmoType "Picammo"
  weapon.kickback 0
  weapon.SlotNumber 8
  Inventory.Pickupmessage "Rocket Pica"
  Inventory.PickupSound "wpn/rk8"
  scale 1.0
  +NOALERT
  States
  {
  Ready:
    CHGX A 1 A_WeaponReady
    Loop
  Deselect:
    CHGX AAAAA 1 A_Lower
    CHGX A 0 A_Lower
    Goto Deselect+4
  Select:
    CHGX A 1 A_Raise
    CHGX A 0 A_Raise
    CHGX A 1 A_Raise
    CHGX A 0 A_Raise
    CHGX A 1 A_Raise
    CHGX A 0 A_Raise
    CHGX A 1 A_Raise
    CHGX A 0 A_Raise
    CHGX A 1 A_Raise
    CHGX A 0 A_Raise
    CHGX AAAAA 1 A_Raise
    CHGX AAAAAAAAAA 2 A_Raise
    Loop
  Fire:
    CHGX B 0 BRIGHT A_FireCustomMissile("MonsterAlert",0,0,0)
    CHGX B 0 BRIGHT A_PlayWeaponSound("rkt/shoot")
    CHGX B 0 BRIGHT A_FireCustomMissile("MuzzleFlashSmall",0,0,random(-2,2))
    CHGX B 2 BRIGHT A_FireCustomMissile("RocketPica",1,1,10)
    CHGX C 2 BRIGHT
    CHGX A 18
    Goto Ready
  Spawn:
    CHGX H -1
    Stop
  }
}

 

actor RocketPica
{
  Radius 11
  Height 8
  Speed 30
  Damage (100)
  Projectile
  DeathSound "rk8/boom"
  scale 0.35
  decal Scorch
  DamageType "Explosion"
  States
  {
  Spawn:
    RPGX A -1 bright
    loop
  Death:
    TNT1 A 0 A_Explode(300,120,0,1,30)
    TNT1 A 0 A_Explode(100,120,1,0,30)
    TNT1 A 0 A_PlaySound("rk8/Boom")
    TNT1 A 3 A_SpawnItemEx("PicaExplosion",0,0,2,0,0,0,0,0)
    TNT1 A 0 A_Quake(4,12,0,400)
    TNT1 A 0 A_Quake(2,12,0,800)
    TNT1 A 3 A_SpawnItemEx("PicaBoom",50,50,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",50,-50,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-50,50,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-50,-50,4,0,0,0,0,0)
    TNT1 A 3 A_SpawnItemEx("PicaBoom",80,80,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",80,-80,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-80,80,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-80,-80,4,0,0,0,0,0)
    TNT1 A 3 A_SpawnItemEx("PicaBoom",110,110,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",110,-110,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-110,110,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-110,-110,4,0,0,0,0,0)
    TNT1 A 3 A_SpawnItemEx("PicaBoom",140,140,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",140,-140,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-140,140,4,0,0,0,0,0)
    TNT1 A 0 A_SpawnItemEx("PicaBoom",-140,-140,4,0,0,0,0,0)
    stop
  }
}

 

actor PicaBoom
{
  radius 1
  height 1
  speed 0
  +NOCLIP
  PROJECTILE
  scale 0.50
  DamageType "Explosion"
  states
  {
  Spawn:
    RPGX B 0 A_Explode(50,150,0,1,30)
    RPGX B 0 A_Explode(50,150,1,0,30)
    RPGX BCDEFGHIJKLMNOPQRSTUV 2 BRIGHT
    stop
  }
}

 

actor PicaExplosion
{
  radius 1
  height 1
  speed 0
  +NOCLIP
  PROJECTILE
  scale 0.50
  states
  {
  Spawn:
    RPGX BCDEFGHIJKLMNOPQRSTUV 2 BRIGHT
    stop
  }
}

 

Beforehand thank you very much!

Edited by ShagaDoom

Share this post


Link to post

I believe it's due to the very small hitbox and the NOCLIP flag, the explosion actor won't collide with anything basically an can almost spawn everywhere

Share this post


Link to post
1 hour ago, Kan3 said:

I believe it's due to the very small hitbox and the NOCLIP flag, the explosion actor won't collide with anything basically an can almost spawn everywhere

You are very good at this! Precisely the noclip caused the explosions to go up the elevations. Thank you very much.

 

crf.png

 

But still the problem of crossing walls persists. I tried different types of hitbox and it's still the same.

Edited by ShagaDoom

Share this post


Link to post

The code spawns explosions at some offsets from the normal explosions. If there is a free space at that offset, it will spawn there, no matter on hitbox size and no matter if there is something (wall) between the origin and the spawning destination.

 

Preventing this spawning behind wall is not easy. Don't know how to do that without ZScript.

Share this post


Link to post
12 hours ago, ShagaDoom said:

But still the problem of crossing walls persists. I tried different types of hitbox and it's still the same.

The only way I can think of is to let the nearest explosions to spawn the other explosions and since you want them to be spawned at 30 units away from each other, give them a radius of at least 15.

 

So that if 1 explosion would be spawned in a wall, it won't be spawned and so the explosions that it should've been spawned also won't spawn.


Something like this to be more clear:

Spoiler



...
Death:
	...
	TNT1 A 3 A_SpawnItemEx("PicaBoom1",50,50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom2",50,-50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom3",-50,50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom4",-50,-50,4,0,0,0,0,0)
	Stop
	}
}

actor PicaBoom
{
	radius 16
	...
	states
	{
	Spawn:
	Explode:
		RPGX B 0 A_Explode(50,150,0,1,30)
		RPGX B 0 A_Explode(50,150,1,0,30)
		RPGX BCDEFGHIJKLMNOPQRSTUV 2 BRIGHT
		stop
	}
}

Actor PicaBoom1 : PicaBoom
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom11", 80,80,4,0,0,0,0,0)
		Goto Explode
	}
}

Actor PicaBoom11 : PicaBoom
{
  	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom12", 110,110,4,0,0,0,0,0)
		Goto Explode
	}
}

Actor PicaBoom12 : PicaBoom
{
  	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom", 140,140,4,0,0,0,0,0)
		Goto Explode
	}
}


 

 

And so for the other 3 "PicaBoom" actors.

I know, tons of actors, but if you don't want to enter acs realms or something else, I think this is the best solution for that

Share this post


Link to post
17 hours ago, Kan3 said:

The only way I can think of is to let the nearest explosions to spawn the other explosions and since you want them to be spawned at 30 units away from each other, give them a radius of at least 15.

 

So that if 1 explosion would be spawned in a wall, it won't be spawned and so the explosions that it should've been spawned also won't spawn.


Something like this to be more clear:

  Reveal hidden contents

 



...
Death:
	...
	TNT1 A 3 A_SpawnItemEx("PicaBoom1",50,50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom2",50,-50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom3",-50,50,4,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("PicaBoom4",-50,-50,4,0,0,0,0,0)
	Stop
	}
}

actor PicaBoom
{
	radius 16
	...
	states
	{
	Spawn:
	Explode:
		RPGX B 0 A_Explode(50,150,0,1,30)
		RPGX B 0 A_Explode(50,150,1,0,30)
		RPGX BCDEFGHIJKLMNOPQRSTUV 2 BRIGHT
		stop
	}
}

Actor PicaBoom1 : PicaBoom
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom11", 80,80,4,0,0,0,0,0)
		Goto Explode
	}
}

Actor PicaBoom11 : PicaBoom
{
  	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom12", 110,110,4,0,0,0,0,0)
		Goto Explode
	}
}

Actor PicaBoom12 : PicaBoom
{
  	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PicaBoom", 140,140,4,0,0,0,0,0)
		Goto Explode
	}
}

 

 

 

 

 

And so for the other 3 "PicaBoom" actors.

I know, tons of actors, but if you don't want to enter acs realms or something else, I think this is the best solution for that

A kind of bug occurs, even if it shows some improvement. I've been playing with variations and it's getting closer and closer to what I'm looking for, even though the main problem persists. Anyway, I know it's hard to fix but not impossible. Thanks for all the help!

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...