You can use the DIRP method and have something else spawn the random spawner. Like this:
Actor ActualBaseSpawner
{
Height 1
Radius 1
Scale 2.5
states
{
Spawn:
TNT1 A 1
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(975,0)==2,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(696,0)==1,"AllWeps")
TNT1 A 0 A_SpawnItemEx("BaseSpawner",0,0,0,0,0,0,0)
stop
Death:
TNT1 A 0
stop
AllWeps:
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("AllBaseSpawner",0,0,0,0,0,0,0)
stop
}
}
actor BaseSpawner : RandomSpawner
{
//spawn stuff here
}
actor DangerWrapSpawn : ActualBaseSpawner 10085 {} //10085 is the doomed number of the actor you want to replace.
(http://img833.imageshack.us/img833/9655/screenshotdoom201302192.png)
Victory.
I used something almost exactly like that:
actor SakugarnePickup 10075
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(302,0)==1,"No")
TNT1 A 0 A_SpawnItem("SakugarneMarker",0,0)
TNT1 A 0 A_SpawnItem("SakugarneSpawn",0,0)
No:
TNT1 A 1
stop
}
}
actor SakugarneMarker : MapMarker
{
Scale .8
States
{
Spawn:
WMA2 Z -1
Stop
}
}
actor SakugarneSpawn : RandomSpawner
{
DropItem "SakugarneGiver" 255 1
}
I tried everything. I looked at Gummywormz's but it looked like it was ment to spawn a random weapon for each spawner. As I said, it works perfectly fine for weapons that stay upon pickup, but weapons that don't stay don't respawn on the 3D floor properly. I'm starting to think this is a bug in Zandronum itself, as this is clearly not intended respawning behaviour. Prehaps someone here who has an account on the Zandronum fourms (like Balrog or Laggy Blazko) could let the developers know about this?