ShagaDoom Posted October 10, 2022 (edited) I managed to make the missile of one of the rocket launchers of the ROTT game. But I have a serious problem. When the explosions meet elevations, other floor levels, the explosions are generated above them, even when the rocket is launched at another elevation level. 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. 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 October 10, 2022 by ShagaDoom 0 Quote Share this post Link to post
Kan3 Posted October 10, 2022 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 0 Quote Share this post Link to post
ShagaDoom Posted October 10, 2022 (edited) 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. But still the problem of crossing walls persists. I tried different types of hitbox and it's still the same. Edited October 10, 2022 by ShagaDoom 0 Quote Share this post Link to post
jaeden Posted October 11, 2022 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. 0 Quote Share this post Link to post
Kan3 Posted October 11, 2022 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 0 Quote Share this post Link to post
ShagaDoom Posted October 12, 2022 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! 0 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.