by Rowsol » Sun Aug 15, 2021 10:51 am
I'm playing Doom Incarnate and once upgraded, the SSG can fire bouncing flak projectiles that have RIPPER. They just hit an actor and stop. I tried 4.6.1 and 4.3.3. Here's the code.
Spoiler:
Actor FlakProjectile
{
Speed 40
Radius 6
Height 3
Damage 2
Projectile
Obituary "%o was ripped open and made medium-rare by %k's hot, shredded metal."
Gravity 0.5
BounceType Doom
BounceFactor 0.6
BounceCount 8
// BounceSound "Hotrod/FlakBounce"
+RIPPER
-NOGRAVITY
+MTHRUSPECIES
+BLOODLESSIMPACT
Scale 0.6
var int user_c;
States
{
Spawn:
TNT1 A 0 NoDelay {
A_PlaySound("Hotrod/Loop",5,0.1,1,2);
A_ScaleVelocity(frandom(0.75,1.25));
A_ChangeVelocity(0,0,frandom(4.0,5.0));
user_c = 0;
Return A_Jump(256,2,3,4,5,6,7,8);
}
Looplet:
SRHP ABCDEFGH 2 Bright {
A_SetUserVar("user_c", user_c + 1);
A_SpawnItemEx("HotflakTrail",0,0,0,0,0,0,0,SXF_TRANSFERALPHA|SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE);
A_SpawnItemEx("HotrodSpark",
frandom(6.0,-6.0),frandom(6.0,-6.0),frandom(6.0,-6.0),
frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(1.0,2.0),
frandom(360.0,0.0),SXF_CLIENTSIDE,192);
If(user_c > 7)
{
user_c = 0;
}
}
Loop
Death:
"####" "#" 0 {
A_PlaySound("Hotrod/End",5,0.2);
A_SpawnItemEx("Hotflak",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE);
}
"####" "#" 0 A_JumpIf(user_c == 0, "FrameA") //Mad hax, but couldn't do it other way.
"####" "#" 0 A_JumpIf(user_c == 1, "FrameB")
"####" "#" 0 A_JumpIf(user_c == 2, "FrameC")
"####" "#" 0 A_JumpIf(user_c == 3, "FrameD")
"####" "#" 0 A_JumpIf(user_c == 4, "FrameE")
"####" "#" 0 A_JumpIf(user_c == 5, "FrameF")
"####" "#" 0 A_JumpIf(user_c == 6, "FrameG")
"####" "#" 0 A_JumpIf(user_c == 7, "FrameH")
FrameA:
SRH2 A 0
Goto ColdStew
FrameB:
SRH2 B 0
Goto ColdStew
FrameC:
SRH2 C 0
Goto ColdStew
FrameD:
SRH2 D 0
Goto ColdStew
FrameE:
SRH2 E 0
Goto ColdStew
FrameF:
SRH2 F 0
Goto ColdStew
FrameG:
SRH2 G 0
Goto ColdStew
FrameH:
SRH2 H 0
Goto ColdStew
ColdStew:
"####" "#" 0 A_SpawnItemEx("Coldflak",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE)
Stop
}
}
I'm playing Doom Incarnate and once upgraded, the SSG can fire bouncing flak projectiles that have RIPPER. They just hit an actor and stop. I tried 4.6.1 and 4.3.3. Here's the code. [spoiler]Actor FlakProjectile
{
Speed 40
Radius 6
Height 3
Damage 2
Projectile
Obituary "%o was ripped open and made medium-rare by %k's hot, shredded metal."
Gravity 0.5
BounceType Doom
BounceFactor 0.6
BounceCount 8
// BounceSound "Hotrod/FlakBounce"
+RIPPER
-NOGRAVITY
+MTHRUSPECIES
+BLOODLESSIMPACT
Scale 0.6
var int user_c;
States
{
Spawn:
TNT1 A 0 NoDelay {
A_PlaySound("Hotrod/Loop",5,0.1,1,2);
A_ScaleVelocity(frandom(0.75,1.25));
A_ChangeVelocity(0,0,frandom(4.0,5.0));
user_c = 0;
Return A_Jump(256,2,3,4,5,6,7,8);
}
Looplet:
SRHP ABCDEFGH 2 Bright {
A_SetUserVar("user_c", user_c + 1);
A_SpawnItemEx("HotflakTrail",0,0,0,0,0,0,0,SXF_TRANSFERALPHA|SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE);
A_SpawnItemEx("HotrodSpark",
frandom(6.0,-6.0),frandom(6.0,-6.0),frandom(6.0,-6.0),
frandom(-1.0,1.0),frandom(-1.0,1.0),frandom(1.0,2.0),
frandom(360.0,0.0),SXF_CLIENTSIDE,192);
If(user_c > 7)
{
user_c = 0;
}
}
Loop
Death:
"####" "#" 0 {
A_PlaySound("Hotrod/End",5,0.2);
A_SpawnItemEx("Hotflak",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE);
}
"####" "#" 0 A_JumpIf(user_c == 0, "FrameA") //Mad hax, but couldn't do it other way.
"####" "#" 0 A_JumpIf(user_c == 1, "FrameB")
"####" "#" 0 A_JumpIf(user_c == 2, "FrameC")
"####" "#" 0 A_JumpIf(user_c == 3, "FrameD")
"####" "#" 0 A_JumpIf(user_c == 4, "FrameE")
"####" "#" 0 A_JumpIf(user_c == 5, "FrameF")
"####" "#" 0 A_JumpIf(user_c == 6, "FrameG")
"####" "#" 0 A_JumpIf(user_c == 7, "FrameH")
FrameA:
SRH2 A 0
Goto ColdStew
FrameB:
SRH2 B 0
Goto ColdStew
FrameC:
SRH2 C 0
Goto ColdStew
FrameD:
SRH2 D 0
Goto ColdStew
FrameE:
SRH2 E 0
Goto ColdStew
FrameF:
SRH2 F 0
Goto ColdStew
FrameG:
SRH2 G 0
Goto ColdStew
FrameH:
SRH2 H 0
Goto ColdStew
ColdStew:
"####" "#" 0 A_SpawnItemEx("Coldflak",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_CLIENTSIDE)
Stop
}
}[/spoiler]