This thing basically replaces the actor meat which is called in A_TossGib (in bleeding actors) and makes the gibs leave a blood trail. It works as desired.
I had to use the custom inventory items to keep track of which graphic was using and change the graphic in the "crash" state according to the one randomly selected.
My actual question is: What did I miss to make this lower with the floor? As is right now, if the meat ends in a platform that will lower/raise, when it happens, the gib stands in the same place: floating in the middle of nothing (if the platform lowered) or inside the platform (if it raised).
I tried to change the "FloorHugger" flag in the crash state, it didnt work.
Code: Select all
Actor NewMeat replaces Meat
{
radius 6
height 5
+NOBLOCKMAP
+DROPOFF
+NOTELEPORT
+CORPSE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Jump(255,"m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","m20")
stop
m1:
TNT1 A 0 A_GiveInventory("MeatCheck",1)
MEAT A 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m2:
TNT1 A 0 A_GiveInventory("MeatCheck",2)
MEAT B 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m3:
TNT1 A 0 A_GiveInventory("MeatCheck",3)
MEAT C 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m4:
TNT1 A 0 A_GiveInventory("MeatCheck",4)
MEAT D 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m5:
TNT1 A 0 A_GiveInventory("MeatCheck",5)
MEAT E 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m6:
TNT1 A 0 A_GiveInventory("MeatCheck",6)
MEAT F 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m7:
TNT1 A 0 A_GiveInventory("MeatCheck",7)
MEAT G 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m8:
TNT1 I 0 A_GiveInventory("MeatCheck",8)
MEAT H 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m9:
TNT1 A 0 A_GiveInventory("MeatCheck",9)
MEAT I 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m10:
TNT1 A 0 A_GiveInventory("MeatCheck",10)
MEAT J 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m11:
TNT1 A 0 A_GiveInventory("MeatCheck",11)
MEAT K 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m12:
TNT1 A 0 A_GiveInventory("MeatCheck",12)
MEAT L 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m13:
TNT1 A 0 A_GiveInventory("MeatCheck",13)
MEAT M 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m14:
TNT1 A 0 A_GiveInventory("MeatCheck",14)
MEAT N 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m15:
TNT1 A 0 A_GiveInventory("MeatCheck",15)
MEAT O 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m16:
TNT1 A 0 A_GiveInventory("MeatCheck",16)
MEAT P 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m17:
TNT1 A 0 A_GiveInventory("MeatCheck",17)
MEAT Q 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m18:
TNT1 A 0 A_GiveInventory("MeatCheck",18)
MEAT R 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m19:
TNT1 A 0 A_GiveInventory("MeatCheck",19)
MEAT S 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
m20:
TNT1 A 0 A_GiveInventory("MeatCheck",20)
MEAT T 4 A_SpawnItemEx("GibBloodTrailMediumSize",random(3,-3),random(3,-3),random(3,-3),0,0,0,0,1)
Wait
Crash:
TNT1 A 0 A_JumpIfInventory("MeatCheck",20,"md20")
TNT1 A 0 A_JumpIfInventory("MeatCheck",19,"md19")
TNT1 A 0 A_JumpIfInventory("MeatCheck",18,"md18")
TNT1 A 0 A_JumpIfInventory("MeatCheck",17,"md17")
TNT1 A 0 A_JumpIfInventory("MeatCheck",16,"md16")
TNT1 A 0 A_JumpIfInventory("MeatCheck",15,"md15")
TNT1 A 0 A_JumpIfInventory("MeatCheck",14,"md14")
TNT1 A 0 A_JumpIfInventory("MeatCheck",13,"md13")
TNT1 A 0 A_JumpIfInventory("MeatCheck",12,"md12")
TNT1 A 0 A_JumpIfInventory("MeatCheck",11,"md11")
TNT1 A 0 A_JumpIfInventory("MeatCheck",10,"md10")
TNT1 A 0 A_JumpIfInventory("MeatCheck",9,"md9")
TNT1 A 0 A_JumpIfInventory("MeatCheck",8,"md8")
TNT1 A 0 A_JumpIfInventory("MeatCheck",7,"md7")
TNT1 A 0 A_JumpIfInventory("MeatCheck",6,"md6")
TNT1 A 0 A_JumpIfInventory("MeatCheck",5,"md5")
TNT1 A 0 A_JumpIfInventory("MeatCheck",4,"md4")
TNT1 A 0 A_JumpIfInventory("MeatCheck",3,"md3")
TNT1 A 0 A_JumpIfInventory("MeatCheck",2,"md2")
TNT1 A 0 A_JumpIfInventory("MeatCheck",1,"md1")
md1:
MEAT A 350
MEAT A 1 A_FadeOut
Wait
md2:
MEAT B 350
MEAT B 1 A_FadeOut
Wait
md3:
MEAT C 350
MEAT C 1 A_FadeOut
Wait
md4:
MEAT D 350
MEAT D 1 A_FadeOut
Wait
md5:
MEAT E 350
MEAT E 1 A_FadeOut
Wait
md6:
MEAT F 350
MEAT F 1 A_FadeOut
Wait
md7:
MEAT G 350
MEAT G 1 A_FadeOut
Wait
md8:
MEAT H 350
MEAT H 1 A_FadeOut
Wait
md9:
MEAT I 350
MEAT I 1 A_FadeOut
Wait
md10:
MEAT J 350
MEAT J 1 A_FadeOut
Wait
md11:
MEAT K 350
MEAT K 1 A_FadeOut
Wait
md12:
MEAT L 350
MEAT L 1 A_FadeOut
Wait
md13:
MEAT M 350
MEAT M 1 A_FadeOut
Wait
md14:
MEAT N 350
MEAT N 1 A_FadeOut
Wait
md15:
MEAT O 350
MEAT O 1 A_FadeOut
Wait
md16:
MEAT P 350
MEAT P 1 A_FadeOut
Wait
md17:
MEAT Q 350
MEAT Q 1 A_FadeOut
Wait
md18:
MEAT R 350
MEAT R 1 A_FadeOut
Wait
md19:
MEAT S 350
MEAT S 1 A_FadeOut
Wait
md20:
MEAT T 350
MEAT T 1 A_FadeOut
Wait
}
}
Actor MeatCheck : Inventory
{
Inventory.MaxAmount 20
Inventory.Amount 1
}