by Arch-vile90 » Thu Jul 12, 2018 2:30 pm
ok i find the real thing that generate the bad situation.
THIS ONE ( you can find it into the
NeutronMine+Teleporter.dec from the Part 3 of the mod) :
Code: Select all
ACTOR NeutronExplosion
{Scale 0.4 Damage 0
+GHOST +FRIENDLY
+MTHRUSPECIES +NOGRAVITY
+FORCERADIUSDMG
+NODAMAGETHRUST
+DONTTHRUST
+THRUSPECIES
+NOGRAVITY
DamageType "BlackHole"
States{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("NBomb/Explosion",14)
NeutronLoop:
TNT1 A 0 A_PlaySound("BHBall2/Explode",15)
TNT1 A 0 A_JumpIfInventory("StrikerBallTimer",30,"Death")
TNT1 AAAAAA 1 bright Light("NeutronExplosionLight") { //A_Explode(1,128,1);
A_SpawnItemEx("HellsingLightningFog",random(96,-96),random(96,-96),Random(96,-96),0,0,0,Random(-20,20),128);
A_SpawnItemEx("NeutronSmoke",random(64,-64),random(64,-64),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),128,0);
A_RadiusGive("NeutronPower",128,RGF_MONSTERS|RGF_CORPSES|RGF_NOMASTER,1);
A_RadiusGive("NeutronConvulsionEffect",180,RGF_GIVESELF|RGF_PLAYERS,1); }
TNT1 A 0 A_GiveInventory("StrikerBallTimer",1)
Loop
Death:
TNT1 A 0 A_ChangeFlag("NoGravity",0)
TNT1 A 0 A_PlaySound("Volcabus/Cannon",7)
TNT1 AAAAA 0 A_SpawnItemEx("ObeliskTrailSpark",random(19,-19),random(19,-19),random(19,-19),0,0,0,0,128,0)
TNT1 A 0 A_SpawnItemEx("ObeliskExplode",0,0,48,0,0,0,0,128,0)
Stop
}}
Actor NeutronTimer : Inventory { Inventory.MaxAmount 1 }
Actor NeutronPower : CustomInventory
{ Inventory.MaxAmount 0
+Inventory.AutoActivate
States{
Spawn:
TNT1 A 1
Fail
Use: // ------------------- THE MAGIC NIGHTMARE
TNT1 A 0 A_JumpIfHealthLower(1,"NeutronEnd")
TNT1 A 0 A_JumpIfInventory("NeutronTimer",1,"BecomeEnemy")
TNT1 A 0 A_ChangeFlag("FRIENDLY",Random(0,1))
TNT1 A 0 ACS_NamedExecute("NeutronGiver")
TNT1 A 0 A_GiveInventory("NeutronTimer",1)
Stop
NeutronEnd:
TNT1 A 0 A_Die
Stop
BecomeEnemy:
TNT1 A 0 A_ChangeFlag("FRIENDLY",0)
TNT1 A 0 A_TakeInventory("NeutronTimer",1)
Stop
}}
ACTOR NeutronConvulsionEffect : CustomInventory
{radius 160
Inventory.PickupMessage ""
Inventory.PickupSound "BHBall2/Explode"
-INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
States{
Spawn:
TNT1 A 2
stop
Pickup:
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
Stop
}}
This is the script "ACS_NamedExecute("NeutronGiver")", and it is really simple:
#library "NeutronExplosionEffect"
#include "zcommon.acs"
// ------------ Neutron Grenade
script "NeutronGiver" (void)
{
delay(random(random(32,16),random(64,96)));
GiveInventory("NeutronPower",1);
}
Tested just now, same situation. Not throwing the bomb no problem. Throwing him the nightmare begins.
The idea is like a missile from Russian Overkill, the Berta bomb which causes the monsters to beat themselves and then generate flames.
My is a bomb that effect plus a dangerous dark smoke area that damages and confuses the monsters, so as to be able to transform them, in rare cases, into friends.
If i remove this line "A_RadiusGive("NeutronPower",128,RGF_MONSTERS|RGF_CORPSES|RGF_NOMASTER,1); all will work fine but the idea of the bomb become useless.
And now the real problem: how to fix it?
ok i find the real thing that generate the bad situation.
THIS ONE ( you can find it into the[size=150] NeutronMine+Teleporter.dec[/size] from the Part 3 of the mod) :
[code]ACTOR NeutronExplosion
{Scale 0.4 Damage 0
+GHOST +FRIENDLY
+MTHRUSPECIES +NOGRAVITY
+FORCERADIUSDMG
+NODAMAGETHRUST
+DONTTHRUST
+THRUSPECIES
+NOGRAVITY
DamageType "BlackHole"
States{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySound("NBomb/Explosion",14)
NeutronLoop:
TNT1 A 0 A_PlaySound("BHBall2/Explode",15)
TNT1 A 0 A_JumpIfInventory("StrikerBallTimer",30,"Death")
TNT1 AAAAAA 1 bright Light("NeutronExplosionLight") { //A_Explode(1,128,1);
A_SpawnItemEx("HellsingLightningFog",random(96,-96),random(96,-96),Random(96,-96),0,0,0,Random(-20,20),128);
A_SpawnItemEx("NeutronSmoke",random(64,-64),random(64,-64),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),128,0);
A_RadiusGive("NeutronPower",128,RGF_MONSTERS|RGF_CORPSES|RGF_NOMASTER,1);
A_RadiusGive("NeutronConvulsionEffect",180,RGF_GIVESELF|RGF_PLAYERS,1); }
TNT1 A 0 A_GiveInventory("StrikerBallTimer",1)
Loop
Death:
TNT1 A 0 A_ChangeFlag("NoGravity",0)
TNT1 A 0 A_PlaySound("Volcabus/Cannon",7)
TNT1 AAAAA 0 A_SpawnItemEx("ObeliskTrailSpark",random(19,-19),random(19,-19),random(19,-19),0,0,0,0,128,0)
TNT1 A 0 A_SpawnItemEx("ObeliskExplode",0,0,48,0,0,0,0,128,0)
Stop
}}
Actor NeutronTimer : Inventory { Inventory.MaxAmount 1 }
Actor NeutronPower : CustomInventory
{ Inventory.MaxAmount 0
+Inventory.AutoActivate
States{
Spawn:
TNT1 A 1
Fail
Use: // ------------------- THE MAGIC NIGHTMARE
TNT1 A 0 A_JumpIfHealthLower(1,"NeutronEnd")
TNT1 A 0 A_JumpIfInventory("NeutronTimer",1,"BecomeEnemy")
TNT1 A 0 A_ChangeFlag("FRIENDLY",Random(0,1))
TNT1 A 0 ACS_NamedExecute("NeutronGiver")
TNT1 A 0 A_GiveInventory("NeutronTimer",1)
Stop
NeutronEnd:
TNT1 A 0 A_Die
Stop
BecomeEnemy:
TNT1 A 0 A_ChangeFlag("FRIENDLY",0)
TNT1 A 0 A_TakeInventory("NeutronTimer",1)
Stop
}}
ACTOR NeutronConvulsionEffect : CustomInventory
{radius 160
Inventory.PickupMessage ""
Inventory.PickupSound "BHBall2/Explode"
-INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
States{
Spawn:
TNT1 A 2
stop
Pickup:
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
TNT1 A 35
TNT1 A 1 A_SetBlend("Black",0.9,150)
Stop
}}
This is the script "ACS_NamedExecute("NeutronGiver")", and it is really simple:
#library "NeutronExplosionEffect"
#include "zcommon.acs"
// ------------ Neutron Grenade
script "NeutronGiver" (void)
{
delay(random(random(32,16),random(64,96)));
GiveInventory("NeutronPower",1);
}
[/code]
Tested just now, same situation. Not throwing the bomb no problem. Throwing him the nightmare begins.
The idea is like a missile from Russian Overkill, the Berta bomb which causes the monsters to beat themselves and then generate flames.
My is a bomb that effect plus a dangerous dark smoke area that damages and confuses the monsters, so as to be able to transform them, in rare cases, into friends.
If i remove this line "A_RadiusGive("NeutronPower",128,RGF_MONSTERS|RGF_CORPSES|RGF_NOMASTER,1); all will work fine but the idea of the bomb become useless.
And now the real problem: how to fix it?