by Plynthus » Sat Jun 29, 2019 4:18 pm
Hey,
I don't know if this is considered a bug. Or if there is a reason why it works this way.
But when I spawn a "RandomSpawner" through a "A_SpawnitemEx", the ambush flag from the replaced ACTOR is gone. Even if I use "SXF_TRANSFERAMBUSHFLAG".
Both work separately.
When I used only RandomSpawner everything was fine. Or if I spawn the ACTOR of the enemy through A_SpawnitemEx using SXF_TRANSFERAMBUSHFLAG, that works too.
Here's an example what I'm trying to do with it(from a DECORATE):
Spoiler:
Code: Select all
ACTOR ZombiemanReplacer replaces Zombieman
{
states
{
Spawn:
POSS A 0
Goto Scripted
Scripted:
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 0, "Off") //Replacers Off
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 1, "On") //Default
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 2, "More") //Replacers more frequent
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 3, "ReplOnly") //Replacers Only
POSS A 0
Goto On
Off:
POSS A 0 A_SpawnitemEx("Zombieman2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers Off
stop
On:
POSS A 0 A_SpawnitemEx("ZombiemanDefault",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Default
stop
More:
POSS A 0 A_SpawnitemEx("ZombiemanFrequent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers more frequent
stop
ReplOnly:
POSS A 0 A_SpawnitemEx("ZombiemanReplacers",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers Only
stop
}
}
ACTOR ZombiemanDefault: RandomSpawner //Default
{
DropItem "Zombieman2" 255, 2
DropItem "ZombiemanReplacers" 255, 1
}
ACTOR ZombiemanFrequent: RandomSpawner //Replacers more frequent
{
DropItem "Zombieman2" 255, 1
DropItem "ZombiemanReplacers" 255, 5
}
ACTOR ZombiemanReplacers : RandomSpawner
{
DropItem "FemaleZombie" 255, 60
DropItem "FemalePlasma" 255, 30
DropItem "ChainsawZombie" 255, 10
DropItem "Machinegunguy" 255, 50
DropItem "SmallRat" 255, 1
DropItem "KamikaziGuy" 255, 3
DropItem "ScienceDrop" 255, 18
}
ACTOR ScienceDrop : RandomSpawner
{
DropItem "FemaleScientist" 255, 5
DropItem "FemaleScientist4" 255, 4
DropItem "ZombieScientist" 255, 5
DropItem "ZombieScientist2" 255, 5
DropItem "T667TWO_Zombie" 255, 3
DropItem "HazmatZombie" 255, 4
DropItem "SegwayZombie" 255, 1
DropItem "ZombieScientistPlasma" 255, 5
DropItem "ZombieScientistHeadless" 255, 4
DropItem "FemaleScientist2" 255, 5
DropItem "FemaleScientist3" 255, 5
DropItem "ZombieScientist3" 255, 5
DropItem "ZombieScientist4" 255, 4
DropItem "StealthFighter" 255, 3
}
Yes, I'm asking because I really would love to get it to work this way on my project.
But also if that could be fixed(again... if it is a bug, and there's no intended reason why it works that way.), it would make doing these kind of options for different spawning settings(especially random) so much simpler for everyone.
Here's a video of the spawning working as I intended, and the problem with the Ambush FLAG:
Here's the .pk3 just in case the information above wasn't enough.
https://www.mediafire.com/file/hmhc7hvd ... e.pk3/file
DECORATE/Zombieman.txt
Either way... Thank you for everything you've done for GZDOOM over the years. It is the best!
EDIT:
+BossDeath doesn't seem to transfer either. (using the same type of A_SpawnItemEx + RandomSpawner combination)
If I've understood correctly that is the one needed for things like E1M8. Kill the barons to trigger tag 666.
Or maybe the +BossDeath transfers fine. But GZDOOM doesn't count them as Barons anymore. Because "replaces Baronofhell" is not in the randomspawners themselves?
Here's an example of the DECORATE I'm using:
Spoiler:
Code: Select all
ACTOR BaronofhellReplacer replaces Baronofhell
{
states
{
Spawn:
POSS A 0
Goto Scripted
Scripted:
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 0, "Off") //Replacers Off
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 1, "On") //Default
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 2, "More") //Replacers more frequent
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 3, "ReplOnly") //Replacers Only
POSS A 0
Goto On
Off:
POSS A 0 A_SpawnitemEx("Baronofhell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
On:
POSS A 0 A_SpawnitemEx("BaronofhellDefault",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
More:
POSS A 0 A_SpawnitemEx("BaronofhellFrequent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
ReplOnly:
POSS A 0 A_SpawnitemEx("BaronofhellReplacers",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
}
}
ACTOR BaronofhellReplacers : RandomSpawner
{
DropItem "Cybruiser" 255, 10
DropItem "LordOfHeresy" 255, 30
DropItem "HellstormArchon" 255, 10
DropItem "BelphegorClone" 255, 30
DropItem "Cyberbaron" 255, 10
DropItem "WarlordOfHell" 255, 20
DropItem "DeepOne" 255, 10
DropItem "ProfaneOne" 255, 20
DropItem "CyberWeaponsDude" 255, 1
}
ACTOR BaronofhellDefault: RandomSpawner
{
DropItem "Baronofhell2" 255, 4
DropItem "BaronofhellReplacers" 255, 3
}
ACTOR BaronofhellFrequent: RandomSpawner
{
DropItem "Baronofhell2" 255, 1
DropItem "BaronofhellReplacers" 255, 5
}
(not from the example pk3)
Hey,
I don't know if this is considered a bug. Or if there is a reason why it works this way.
But when I spawn a "RandomSpawner" through a "A_SpawnitemEx", the ambush flag from the replaced ACTOR is gone. Even if I use "SXF_TRANSFERAMBUSHFLAG".
Both work separately.
When I used only RandomSpawner everything was fine. Or if I spawn the ACTOR of the enemy through A_SpawnitemEx using SXF_TRANSFERAMBUSHFLAG, that works too.
Here's an example what I'm trying to do with it(from a DECORATE):
[spoiler][code]ACTOR ZombiemanReplacer replaces Zombieman
{
states
{
Spawn:
POSS A 0
Goto Scripted
Scripted:
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 0, "Off") //Replacers Off
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 1, "On") //Default
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 2, "More") //Replacers more frequent
POSS A 0 A_JumpIf(CallACS("CH_ZombieReplacer") == 3, "ReplOnly") //Replacers Only
POSS A 0
Goto On
Off:
POSS A 0 A_SpawnitemEx("Zombieman2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers Off
stop
On:
POSS A 0 A_SpawnitemEx("ZombiemanDefault",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Default
stop
More:
POSS A 0 A_SpawnitemEx("ZombiemanFrequent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers more frequent
stop
ReplOnly:
POSS A 0 A_SpawnitemEx("ZombiemanReplacers",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG) //Replacers Only
stop
}
}
ACTOR ZombiemanDefault: RandomSpawner //Default
{
DropItem "Zombieman2" 255, 2
DropItem "ZombiemanReplacers" 255, 1
}
ACTOR ZombiemanFrequent: RandomSpawner //Replacers more frequent
{
DropItem "Zombieman2" 255, 1
DropItem "ZombiemanReplacers" 255, 5
}
ACTOR ZombiemanReplacers : RandomSpawner
{
DropItem "FemaleZombie" 255, 60
DropItem "FemalePlasma" 255, 30
DropItem "ChainsawZombie" 255, 10
DropItem "Machinegunguy" 255, 50
DropItem "SmallRat" 255, 1
DropItem "KamikaziGuy" 255, 3
DropItem "ScienceDrop" 255, 18
}
ACTOR ScienceDrop : RandomSpawner
{
DropItem "FemaleScientist" 255, 5
DropItem "FemaleScientist4" 255, 4
DropItem "ZombieScientist" 255, 5
DropItem "ZombieScientist2" 255, 5
DropItem "T667TWO_Zombie" 255, 3
DropItem "HazmatZombie" 255, 4
DropItem "SegwayZombie" 255, 1
DropItem "ZombieScientistPlasma" 255, 5
DropItem "ZombieScientistHeadless" 255, 4
DropItem "FemaleScientist2" 255, 5
DropItem "FemaleScientist3" 255, 5
DropItem "ZombieScientist3" 255, 5
DropItem "ZombieScientist4" 255, 4
DropItem "StealthFighter" 255, 3
}[/code][/spoiler]
Yes, I'm asking because I really would love to get it to work this way on my project.
But also if that could be fixed(again... if it is a bug, and there's no intended reason why it works that way.), it would make doing these kind of options for different spawning settings(especially random) so much simpler for everyone.
Here's a video of the spawning working as I intended, and the problem with the Ambush FLAG:
[youtube]CA6zI29S_ig[/youtube]
Here's the .pk3 just in case the information above wasn't enough. [url]https://www.mediafire.com/file/hmhc7hvd7u4f7ca/Vanilla_Doom_Plus_-_example.pk3/file[/url]
DECORATE/Zombieman.txt
Either way... Thank you for everything you've done for GZDOOM over the years. It is the best!
EDIT:
+BossDeath doesn't seem to transfer either. (using the same type of A_SpawnItemEx + RandomSpawner combination)
If I've understood correctly that is the one needed for things like E1M8. Kill the barons to trigger tag 666.
[youtube]qYolGBp660Y[/youtube]
Or maybe the +BossDeath transfers fine. But GZDOOM doesn't count them as Barons anymore. Because "replaces Baronofhell" is not in the randomspawners themselves?
Here's an example of the DECORATE I'm using:
[spoiler][code]
ACTOR BaronofhellReplacer replaces Baronofhell
{
states
{
Spawn:
POSS A 0
Goto Scripted
Scripted:
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 0, "Off") //Replacers Off
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 1, "On") //Default
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 2, "More") //Replacers more frequent
POSS A 0 A_JumpIf(CallACS("CH_BaronsReplacer") == 3, "ReplOnly") //Replacers Only
POSS A 0
Goto On
Off:
POSS A 0 A_SpawnitemEx("Baronofhell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
On:
POSS A 0 A_SpawnitemEx("BaronofhellDefault",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
More:
POSS A 0 A_SpawnitemEx("BaronofhellFrequent",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
ReplOnly:
POSS A 0 A_SpawnitemEx("BaronofhellReplacers",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERSPECIAL|SXF_TRANSFERAMBUSHFLAG)
stop
}
}
ACTOR BaronofhellReplacers : RandomSpawner
{
DropItem "Cybruiser" 255, 10
DropItem "LordOfHeresy" 255, 30
DropItem "HellstormArchon" 255, 10
DropItem "BelphegorClone" 255, 30
DropItem "Cyberbaron" 255, 10
DropItem "WarlordOfHell" 255, 20
DropItem "DeepOne" 255, 10
DropItem "ProfaneOne" 255, 20
DropItem "CyberWeaponsDude" 255, 1
}
ACTOR BaronofhellDefault: RandomSpawner
{
DropItem "Baronofhell2" 255, 4
DropItem "BaronofhellReplacers" 255, 3
}
ACTOR BaronofhellFrequent: RandomSpawner
{
DropItem "Baronofhell2" 255, 1
DropItem "BaronofhellReplacers" 255, 5
}
[/code]
(not from the example pk3)[/spoiler]