Code: Select all
ACTOR NewZombie
{
//$Category "Monsters/Zombie Troppers"
//$Arg0 Move: 1 Defending, 2 Camping
//$Arg1 Drop: 1 No
SeeSound"zombie/see"
PainSound "zombie/pain"
DeathSound "zombie/death"
ActiveSound "zombie/active"
Obituary "%o was killed by a zombie."
DamageFactor "Zombie", 0
DamageFactor "ZombieFlash", 0
DamageFactor "ZombieFire", 0
DamageFactor "ZombiePlasma", 0
Species "Zombie"
MaxDropOffHeight 32
MaxStepHeight 32
MaxTargetRange 2048
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NODROPOFF
MONSTER
Decal Bulletchip
Speed 8
Mass 100
PainChance 160
Radius 15
Height 56
var int user_script;
var int user_beacon;
var int user_wander;
var int user_dead;
var int user_patrol;
States
{
See:
"####" A 0 A_JumpIf(user_script == 1,6)
"####" A 0 A_CustomMissile("InfantryStrafingSpawner",0,0,0,CMF_AIMDIRECTION)
"####" A 0 A_JumpIf(Args[1] == 1,2)
"####" A 0 A_JumpIf(256,2)
"####" A 0 A_GiveInventory("NoDrop",1)
"####" A 0 A_SetUserVar("user_script",1)
"####" A 0 A_JumpIf(Args[0] == 2,"Camping")
"####" A 0 A_JumpIf(Args[0] == 1,"SeeStaying")
"####" A 0 A_SetShootable
"####" A 0 A_StopSoundEx("SoundSlot7")
"####" A -1 A_Jump(256,"Chasing")
Goto Chasing
Camping:
"####" A 2 A_FaceTarget
"####" A 2 A_Chase("","Missile",CHF_DONTMOVE)
"####" A 0 A_ChangeFlag("Ambush",1)
"####" A 1 A_Jump(200,2)
"####" A 0 A_ClearTarget
"####" A 0 A_ChangeFlag("Ambush",1)
"####" A 0 A_ChangeFlag("LookAllAround",1)
"####" A -1 A_Jump(256,"See")
Goto See
SeeStaying:
"####" A 1 A_JumpIfTargetInLOS(8)
"####" A 4 A_FaceTarget
"####" A 4 A_Chase("","Missile",CHF_DONTMOVE)
"####" A 1 A_Jump(200,2)
"####" A 0 A_ClearTarget
"####" A 0 A_ChangeFlag("Ambush",1)
"####" A 0 A_ChangeFlag("LookAllAround",1)
"####" A -1 A_Jump(256,"See")
Goto See
"####" A 0 ThrustThing(angle*256/360+64,4,0,0)
"####" AAA 2 A_FaceTarget
"####" B 0 ThrustThing(angle*256/360+64,4,0,0)
"####" BBB 2 A_FaceTarget
"####" C 0 ThrustThing(angle*256/360+64,4,0,0)
"####" CCC 2 A_FaceTarget
"####" D 0 ThrustThing(angle*256/360+64,4,0,0)
"####" DDD 2 A_FaceTarget
"####" A 2 A_Chase("","Missile",CHF_DONTMOVE)
"####" A 0 ThrustThing(angle*256/360+192,4,0,0)
"####" AAA 2 A_FaceTarget
"####" B 0 ThrustThing(angle*256/360+192,4,0,0)
"####" BBB 2 A_FaceTarget
"####" C 0 ThrustThing(angle*256/360+192,4,0,0)
"####" CCC 2 A_FaceTarget
"####" D 0 ThrustThing(angle*256/360+192,4,0,0)
"####" DDD 2 A_FaceTarget
"####" A 2 A_Chase("","Missile",CHF_DONTMOVE)
"####" A -1 A_Jump(256,"See")
Goto See
TooClose:
"####" A 1 A_Jump(188,"See")
"####" A 0 A_Chase("","Missile",CHF_DONTMOVE)
"####" A 2 A_FaceTarget
"####" A 2 A_Recoil(2)
"####" B 2 A_FaceTarget
"####" B 2 A_Recoil(2)
"####" C 0 A_Chase("","Missile",CHF_DONTMOVE)
"####" C 2 A_FaceTarget
"####" C 2 A_Recoil(2)
"####" D 2 A_FaceTarget
"####" D 2 A_Recoil(2)
"####" A 0 A_Chase("","Missile",CHF_DONTMOVE)
"####" A 2 A_FaceTarget
"####" A 2 A_Recoil(2)
"####" B 2 A_FaceTarget
"####" B 2 A_Recoil(2)
"####" C 0 A_Chase("","Missile",CHF_DONTMOVE)
"####" C 2 A_FaceTarget
"####" C 2 A_Recoil(2)
"####" D 2 A_FaceTarget
"####" D 2 A_Recoil(2)
"####" A -1 A_Jump(256,"See")
Goto See
Strafing:
"####" A 0 A_Jump(50,"Jump")
"####" AABB 3 A_FastChase
"####" C 0 A_Jump(160,2)
"####" C 0 A_GiveInventory("Jumping",1)
"####" CCDD 3 A_FastChase
"####" A -1 A_Jump(256,"See")
Goto See
GiveUp:
"####" A 0 A_JumpIfTargetInLos("See")
"####" A 0 A_ClearTarget
"####" A 0 A_PlaySound("zombie/clear")
"####" A -1 A_Jump(256,"Idle")
Goto Idle
Idle:
"####" A 0 A_JumpIf(Args[0] == 2,"Camping")
"####" A 0 A_JumpIf(Args[0] == 1,"SeeStaying")
"####" A 0 A_JumpIf(user_wander >= 6,"Checking")
"####" A 0 A_Look
"####" A 0 A_ChangeFlag("Ambush",1)
"####" AA 3 A_Wander
"####" B 0 A_Look
"####" BB 3 A_Wander
"####" C 0 A_Look
"####" CC 3 A_Wander
"####" D 0 A_Look
"####" D 0 A_SetUserVar("user_wander",user_wander+1)
"####" DD 3 A_Wander
Loop
Checking:
"####" A 0 A_JumpIf(Args[0] == 2,"Camping")
"####" A 0 A_JumpIf(Args[0] == 1,"SeeStaying")
"####" A 0 A_SetUserVar("user_wander",0)
"####" A 0 A_SetAngle(angle+40)
"####" A 15 A_Look
"####" A 0 A_SetAngle(angle+40)
"####" A 15 A_Look
"####" A 0 A_SetAngle(angle+40)
"####" A 15 A_Look
"####" A 0 A_SetAngle(angle+40)
"####" A 15 A_Look
"####" A 0 A_Jump(128,"Checking")
"####" A -1 A_Jump(256,"Idle")
Goto Idle
MissileEnd:
"####" E 4 A_Jump(60,"Jump","Dash")
"####" E -1 A_Jump(256,"See")
Goto See
MissileEnd2:
"####" E 4 A_Jump(60,"Jump")
"####" E -1 A_Jump(256,"See")
Goto See
Jump:
"####" A 0 A_JumpIf (momz != 0,3)
"####" A 0 ThrustThingZ(0,25,0,1)
"####" A 3 A_Recoil(-6)
"####" A -1 A_Jump(256,"See")
Goto See
BigJump:
"####" A 0 A_JumpIf (momz != 0,3)
"####" A 0 A_SpawnItemEx("JumpDashEffect",0,0,32)
"####" A 0 ThrustThingZ(0,48,0,1)
"####" A 3 A_Recoil(-18)
"####" A -1 A_Jump(256,"See")
Goto See
Dash:
"####" E 0 A_JumpIfTargetInLos(2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 2 A_FaceTarget
"####" E 0 ACS_ExecuteAlways(154,0,100,0,0)
"####" EEEEEEEEEEEEEEE 1 Bright A_SpawnItemEx("ZombieDashTrail")
"####" E -1 A_Jump(256,"See")
Goto See
Teleport:
"####" E 0 A_JumpIfTargetInLos(2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 10 A_FaceTarget
"####" E 0 A_SpawnItemEx("TeleportDashEffect",0,0,32)
"####" E 0 A_UnsetShootable
"####" E 20 ACS_ExecuteAlways(154,0,103,0,0)
"####" AAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
"####" AAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
"####" E 70 A_FastChase
"####" E 0 A_SpawnItemEx("TeleportDashEffect",0,0,32)
"####" E 20 A_FaceTarget
"####" E 1 A_SetShootable
"####" E -1 A_Jump(256,"See")
Goto See
FragGrenade:
"####" E 0 A_JumpIfCloser(1000,2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 0 A_JumpIfCloser(280,"Missile")
"####" E 10 A_FaceTarget
"####" EEEEE 4 A_FaceTarget
"####" E 6 A_CustomMissile("ZombieGrenade",32,0,0,2,10)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
FlashBang:
"####" E 0 A_JumpIfCloser(1000,2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 2 A_JumpIfCloser(280,"Missile")
"####" E 10 A_FaceTarget
"####" EEEEE 4 A_FaceTarget
"####" E 6 A_CustomMissile("ZombieFlashBang",32,0,0,2,10)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
FlyingGrenade:
"####" E 0 A_JumpIfCloser(1000,2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 0 A_JumpIfCloser(280,"Missile")
"####" E 10 A_FaceTarget
"####" EEEEE 4 A_FaceTarget
"####" E 6 A_CustomMissile("ZombieFlyingGrenade",32,0,0)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
PlasmaGrenade:
"####" E 0 A_JumpIfCloser(1000,2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 1 A_JumpIfCloser(280,"Missile")
"####" E 10 A_FaceTarget
"####" EEEEE 4 A_FaceTarget
"####" E 6 A_CustomMissile("ZombiePlasmaGrenade",32,0,0,2,10)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
IncendiaryGrenade:
"####" E 0 A_JumpIfCloser(1000,2)
"####" E -1 A_Jump(256,"See")
Goto See
"####" E 1 A_JumpIfCloser(280,"Missile")
"####" E 10 A_FaceTarget
"####" EEEEE 4 A_FaceTarget
"####" E 6 A_CustomMissile("ZombieIncendiaryGrenade",32,0,0,2,10)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
SmallBeacon:
"####" E 0 A_JumpIf(user_beacon == 1,"Missile")
"####" E 6 A_FaceTarget
"####" EEEEEE 2
"####" E 0 A_SetUserVar("user_beacon",1)
"####" E 0 A_SpawnItemEx("ZombieSmallBeacon",0,0,16,8,0,4,0)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
Beacon:
"####" E 0 A_JumpIf(user_beacon == 1,"Missile")
"####" E 6 A_FaceTarget
"####" EEEEEE 2
"####" E 0 A_SetUserVar("user_beacon",1)
"####" E 0 A_SpawnItemEx("ZombieBeacon",0,0,16,8,0,4,0)
"####" E 35
"####" E -1 A_Jump(256,"See")
Goto See
HeavyBeacon:
"####" E 0 A_JumpIf(user_beacon == 1,"Missile")
"####" E 6 A_FaceTarget
"####" EEEEEE 2
"####" E 0 A_SetUserVar("user_beacon",1)
"####" E 0 A_SpawnItemEx("ZombieHeavyBeacon",0,0,16,8,0,4,0)
"####" E 25
"####" E -1 A_Jump(256,"See")
Goto See
NormalPain:
"####" G 6 A_Pain
"####" G -1 A_Jump(256,"See")
Goto See
ProPain:
"####" G 0 A_Jump(10,"Teleport")
"####" G 0 A_Jump(40,"Dash")
"####" G 6 A_Pain
"####" G -1 A_Jump(256,"See")
Goto See
SuperProPain:
"####" G 0 A_Jump(25,"Teleport")
"####" G 0 A_Jump(75,"Dash")
"####" G 6 A_Pain
"####" G -1 A_Jump(256,"See")
Goto See
Pain.Flash:
"####" G 0 A_StopSoundEx("SoundSlot7")
"####" G 0 A_ChangeFlag("NOPAIN",1)
"####" G 0 A_Pain
"####" GGGGGGGGGGGGGGGGGGGGGGGGGGGG 8 A_Wander
"####" G 0 A_ChangeFlag("NOPAIN",0)
"####" G -1 A_Jump(256,"See")
Goto See
Death:
"####" A 0 A_SetUserVar("user_dead",1)
"####" A 0 A_GiveInventory("ImDead",1)
"####" A -1 A_Jump(256,"Dead")
Goto Dead
Death.Fire:
"####" A 0 A_SetUserVar("user_dead",1)
"####" A 0 A_GiveInventory("ImDead",1)
"####" A 0 A_GiveInventory("NoBlocking",1)
"####" A 1 A_SpawnItemEx("ZBurningCorpse")
Stop
Death.Plasma:
"####" A 0 A_SetUserVar("user_dead",1)
"####" A 0 A_GiveInventory("ImDead",1)
"####" A 0 A_GiveInventory("NoBlocking",1)
"####" A 0 A_Scream
"####" A 1 A_SpawnItemEx("LiquifiedBody")
Stop
XDeath:
"####" A 0 A_SetUserVar("user_dead",1)
"####" A 0 A_GiveInventory("ImDead",1)
"####" A -1 A_Jump(256,"XDead")
Goto XDead
XDead:
ZASG O 0 A_PlaySound("gibbage/xsplat")
ZASG O 3 A_SpawnItemEx("GibGenerator")
ZASG P 3 A_XScream
ZASG Q 3 A_GiveInventory("NoBlocking",1)
ZASG RSTUV 3
ZASG W -1
Stop
Raise:
"####" A 0 A_SetUserVar("user_script",0)
"####" A 0 A_TakeInventory("ImDead",1)
"####" A 0 A_SetSolid
"####" A 1 A_Jump(256,"Raising")
Goto Raising
}
}
Code: Select all
ACTOR ZombieSoldier : NewZombie 18300
{
Health 150
DropItem "NewArmorBonus" 64
DropItem "FragGrenadeAmmo" 8
DropItem "BouncingBettyAmmo" 4
DropItem "AdrenalineKit" 2
DropItem "LightArmor" 2
DropItem "AssaultRifle" 16
DropItem "NewClip" 256 30
AttackSound "arifle/fire"
Obituary "%o was killed by a zombie soldier."
States
{
Spawn:
ZPOS A 10 A_Look
Loop
Chasing:
"####" A 0 A_JumpIf(user_patrol == 1,2)
"####" A 0 A_JumpIfCloser(100,"TooClose")
"####" A 0 A_Jump(10,"GiveUp")
ZPOS AABBCCDD 3 A_Chase
Goto See
Missile:
ZPOS E 10 A_FaceTarget
ZPOS E 0 A_GiveInventory("StrafeTime",3)
ZPOS E 0 A_CustomMissile("BulletCasing",32,0,315+random(-8,8))
ZPOS F 2 Bright A_CustomBulletAttack(4,4,1,3,"ZBulletPuff")
ZPOS E 3 A_FaceTarget
ZPOS E 0 A_CustomMissile("BulletCasing",32,0,315+random(-8,8))
ZPOS F 2 Bright A_CustomBulletAttack(4,4,1,3,"ZBulletPuff")
ZPOS E 3 A_FaceTarget
ZPOS E 0 A_CustomMissile("BulletCasing",32,0,315+random(-8,8))
ZPOS F 2 Bright A_CustomBulletAttack(4,4,1,3,"ZBulletPuff")
ZPOS E 3 A_FaceTarget
ZPOS A 0 A_CustomMissile("BulletCasing",32,0,315+random(-8,8))
ZPOS F 2 Bright A_CustomBulletAttack(4,4,1,3,"ZBulletPuff")
ZPOS E 3 A_FaceTarget
Goto See
Pain:
ZPOS G 1
Goto NormalPain
Dead:
ZPOS H 5
ZPOS I 5 A_Scream
ZPOS J 5 A_GiveInventory("NoBlocking",1)
ZPOS K 5
ZPOS L -1
Stop
XDead:
ZPOS A 0 A_PlaySound("gibbage/xsplat")
ZPOS M 3 A_SpawnItemEx("GibGenerator")
ZPOS N 3 A_XScream
ZPOS O 3 A_GiveInventory("NoBlocking",1)
ZPOS PQRST 3
ZPOS U -1
Stop
Raising:
ZPOS KJIH 5
Goto See
}
}
As I said the problem is when they walk around online, sometimes it's fine and sometimes they teleport by that I mean that their sprite it still at the same position when the actor itself is somewhere else, and when he enters in his fire state the teleport end.