Spoiler:And here's the decorate from the creeper:Code: Select all
#library "SCRE_ACS" #include "zcommon.acs" // Health and Chance Resotre Script "screecher_chances" Enter { GiveInventory("Health", 100); TakeInventory("ARock",1); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss",50); If(GameSkill()==3) { TakeInventory("ScreecherAnger", 10); } Terminate; } Script "screecher_rock" (Void) { Delay(400); TakeInventory("ARock",1); Terminate; } str songs[3] = { "AMB01", "AMB02", "AMB03" }; int songpick; int ScreecherOn; int CreeperOn; int StalkerOn; int StalkerCount = 0; // Monster Summons Script "screecher_summon" Enter { If(GetCvar("cl_screechertoggle")==TRUE) { Spawn("Screecher", GetActorX(0), GetActorY(0), GetActorZ(0), 999); Thing_Hate(999, 0, 0); } If(GetCvar("cl_creepertoggle")==TRUE) { Spawn("Creeper", GetActorX(0), GetActorY(0), GetActorZ(0), 998); Thing_Hate(998, 0, 0); } If(GetCvar("cl_stalkertoggle")==TRUE) { ACS_NamedExecute("stalker_summon",0); } ScreecherOn = GetCvar("cl_screechertoggle"); CreeperOn = GetCvar("cl_creepertoggle"); StalkerOn = GetCvar("cl_stalkertoggle"); } // Killed by Screecher 1 Script "screecher_kill" Enter { Delay(1); If(ScreecherOn == False) { Terminate; } While(TRUE) { If(GameSkill()==3 && CheckInventory("ScreecherAnger")>=5) { Delay(100); AmbientSound("lantern_break", 75); AmbientSound("player/scream1", 255); ACS_NamedTerminate("screecher_lantern", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 50); ACS_NamedTerminate("screecher_kill2", 0); Thing_Remove(999); Thing_Remove(998); Thing_Remove(997); ACS_NamedTerminate("stalker_summon", 0); Delay(200); AmbientSound("screech/scream", 255); Delay(50); Thing_Damage(0, 999, 21); Terminate; } If(CheckInventory("ScreecherAnger")>=10) { Delay(100); AmbientSound("lantern_break", 75); AmbientSound("player/scream1", 255); ACS_NamedTerminate("screecher_lantern", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("ScreecherAnger", 10); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 50); ACS_NamedTerminate("screecher_kill2", 0); Thing_Remove(999); Thing_Remove(998); Thing_Remove(997); ACS_NamedTerminate("stalker_summon", 0); Delay(200); AmbientSound("screech/scream", 255); Delay(50); Thing_Damage(0, 999, 21); Terminate; } Delay(1); } } // Killed by Screecher 2 Script "screecher_kill2" (Void) { Delay(1); If(ScreecherOn == False) { Terminate; } Delay(700); AmbientSound("screrockech/scream", 255); AmbientSound("player/scream2", 255); Delay(50); Thing_Remove(999); Thing_Remove(998); Thing_Remove(997); ACS_NamedTerminate("stalker_summon", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("ScreecherAnger", 10); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 50); Thing_Damage(0, 999, 21); Terminate; } Script "screecher_playdeath" DEATH { Delay(50); Thing_Remove(999); Thing_Remove(998); Thing_Remove(997); ACS_NamedTerminate("stalker_summon", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 50); TakeInventory("Lantern", 1); } str shckimage[8] = { "TNT1A0", "SHCK1", "SHCK2", "SHCK3", "SHCK4", "SHCK5", "SHCK6", "SHCK7", }; // Screecher Shock Images Script "screecher_shock" (Void) { int shock = random(1,7); SetHudSize(800,600,TRUE); SetFont(shckimage[shock]); HudMessageBold(s:"A"; HUDMSG_FADEOUT, 253, 0, 400.0,300.0, 0.4, 0.3); } str shck2image[7] = { "TNT1A0", "SHCK8", "SHCK9", "SHCK10", "SHCK11", "SHCK12", "SHCK13", }; str shck2aimage[7] = { "TNT1A0", "SHCKA8", "SHCKA9", "SHCKA10", "SHCKA11", "SHCKA12", "SHCKA13", }; Script "creeper_shock" (Void) { int shock2 = random(1,6); AmbientSound("creeper/shock", 255); Delay(20); SetHudSize(800,600,TRUE); SetFont(shck2aimage[shock2]); HudMessageBold(s:"A"; HUDMSG_PLAIN, 253, 0, 400.0,300.0, 0.01); Delay(1); SetFont("TNT1A0"); HudMessageBold(s:"A"; HUDMSG_PLAIN, 253, 0, 400.0,300.0, 0.01); Delay(1); SetFont(shck2aimage[shock2]); HudMessageBold(s:"A"; HUDMSG_FADEINOUT, 253, 0, 400.0,300.0, 0.1, 0.0, 0.01); Delay(2); SetFont(shck2image[shock2]); HudMessageBold(s:"A"; HUDMSG_FADEINOUT, 253, 0, 400.0,300.0, 0.0, 0.0, 1.0); } Script "creeper_close" Enter { Delay(1); If(CreeperOn == False) { Terminate; } While(TRUE) { Delay(1); While(CheckInventory("CreeperRange")==1) { Delay(random(100,400)); If(CheckInventory("CreeperRange")==1) { ACS_NamedExecute("creeper_shock",0); } } } } Script "creeper_kill" Enter { Delay(1); If(CreeperOn == False) { Terminate; } While(TRUE) { If(CheckInventory("CreeperKill")==1) { Thing_Remove(999); Thing_Remove(998); Thing_Remove(997); ACS_NamedTerminate("stalker_summon", 0); AmbientSound("lantern_break", 75); AmbientSound("player/scream2", 255); ACS_NamedTerminate("screecher_lantern", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("ScreecherAnger", 10); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 50); Delay(50); ACS_NamedTerminate("screecher_kill2", 0); Thing_Damage(0, 999, 21); Terminate; } Delay(1); } } int StalkerNeed; Script "stalker_summon" (Void) { StalkerNeed=1; Delay(1); While(TRUE) { If(StalkerNeed==1) { Thing_Remove(997); If(CreeperOn == TRUE | ScreecherOn == TRUE ) { If(GameSkill()==3) { Delay(random(2500,2800)); } Else { Delay(random(1500,1800)); } } Else { If(GameSkill()==3) { Delay(random(1500,1800)); } Else { Delay(random(700,1000)); } } Spawn("Scre_Stalker", GetActorX(0), GetActorY(0), GetActorZ(0), 997); Thing_Hate(997, 0, 0); StalkerNeed=0; } Delay(1); } } Script "stalker_suspend" (Void) { Thing_Remove(999); Thing_Remove(998); TakeInventory("CreeperRange",1); ACS_NamedTerminate("creeper_close", 0); SetMusic("STLK_RUN"); Terminate; } Script "stalker_stab" (Void) { AmbientSound("stalker/stab2", 255); Delay(100); } Script "stalker_restore" ENTER { Delay(1); If(StalkerOn == False) { Terminate; } While(TRUE) { If(CheckInventory("StalkerGone")==1) { If(GetCvar("cl_screechertoggle")==TRUE) { Spawn("Screecher", GetActorX(0), GetActorY(0), GetActorZ(0), 999); Thing_Hate(999, 0, 0); } If(GetCvar("cl_creepertoggle")==TRUE) { Spawn("Creeper", GetActorX(0), GetActorY(0), GetActorZ(0), 998); Thing_Hate(998, 0, 0); ACS_NamedExecute("creeper_close", 0); } If(GetCVAR("cl_musictoggle")==TRUE) { SetMusic(songs[songpick]); } Else { SetMusic("DSNONE",0); } StalkerNeed=1; TakeInventory("StalkerLoss",50); TakeInventory("StalkerGone",1); } Delay(1); } } str shck3image[4] = { "TNT1A0", "SHCK14", "SHCK15", "SHCK16", }; str shck3aimage[4] = { "TNT1A0", "SHCKA14", "SHCKA15", "SHCKA16", }; Script "stalker_shock" (Void) { int shock3 = random(1,3); AmbientSound("stalker/shock", 255); SetHudSize(800,600,TRUE); SetFont(shck3aimage[shock3]); HudMessageBold(s:"A"; HUDMSG_PLAIN, 253, 0, 400.0,300.0, 0.01); Delay(1); SetFont("TNT1A0"); HudMessageBold(s:"A"; HUDMSG_PLAIN, 253, 0, 400.0,300.0, 0.01); Delay(1); SetFont(shck3aimage[shock3]); HudMessageBold(s:"A"; HUDMSG_FADEINOUT, 253, 0, 400.0,300.0, 0.1, 0.0, 0.01); Delay(2); SetFont(shck3image[shock3]); HudMessageBold(s:"A"; HUDMSG_FADEINOUT, 253, 0, 400.0,300.0, 0.0, 0.0, 7.0); AmbientSound("stalker/giggle", 255); } Script "stalker_kill" Enter { Delay(1); If(StalkerOn == False) { Terminate; } While(TRUE) { If(CheckInventory("StalkerKill")==1) { If(Gameskill() == 3 && StalkerCount == 0) { ACS_NamedExecute("stalker_shock",0); GiveInventory("StalkerGone", 1); TakeInventory("StalkerKill", 1); Stalkercount = 1; } Else { Thing_Remove(999); Thing_Remove(998); ACS_NamedTerminate("stalker_summon", 0); ACS_NamedTerminate("stalker_restore", 0); ACS_NamedTerminate("screecher_kill2", 0); AmbientSound("lantern_break", 75); AmbientSound("player/scream2", 255); ACS_NamedTerminate("screecher_lantern", 0); TakeInventory("LanternOil", 9000); TakeInventory("LampOut",1); TakeInventory("ScreecherAnger", 10); TakeInventory("CreeperRange",1); TakeInventory("StalkerLoss", 25); Delay(50); Thing_Remove(997); Thing_Damage(0, 999, 21); SetMusic("DSNONE",0); Terminate; } } Delay(1); } } // Music and Sounds Script "screecher_music" Enter { If(GetCVAR("cl_musictoggle")==TRUE) { songpick = random(0,2); SetMusic(songs[songpick]); } Else { SetMusic("DSNONE",0); } } // New Auto Map Script "screecher_map" Enter { If(GetCvar("cl_autopagetoggle")==TRUE) { SetHudSize(800,600,TRUE); SetFont("paper02"); HudMessage(s:"A"; HUDMSG_PLAIN|HUDMSG_NOTWITH3DVIEW|HUDMSG_NOTWITHOVERLAYMAP|HUDMSG_LAYER_OVERMAP, 254, 0, 400.0, 300.0, 0); } Terminate; } // Running and Stamina int prunning=FALSE; Script "screecher_stamina" ENTER { While(TRUE) { While(prunning == True) { Delay(1); } If(prunning == FALSE && CheckInventory("Stamina")!=100) { Until(CheckInventory("Stamina")==100) { If(prunning == True){restart;} GiveInventory("Stamina",1); Delay(1); } } Delay(1); } } Script "screecher_sprint" ENTER { int runinput; ACS_NamedExecute("screecher_speed",0,100); While(TRUE) { While(CheckInventory("Stamina")!=0) { runinput = GetPlayerInput(-1, INPUT_BUTTONS); If(runinput & BT_SPEED && runinput & BT_FORWARD) { If(GetActorVelX(0)+GetActorVelY(0)!=0) { ACS_NamedTerminate("screecher_runcheck",0); prunning = TRUE; ACS_NamedExecute("screecher_speed",0,250); If(GetCvar("cl_sprinttoggle")==FALSE) { TakeInventory("Stamina",1); } Delay(1); ACS_NamedExecute("screecher_runcheck",0); If(CheckInventory("Stamina")==0){restart;} Delay(1); } Delay(1); } ACS_NamedExecute("screecher_speed",0,100); Delay(1); } Delay(1); ACS_NamedExecute("screecher_speed",0,100); } } Script "screecher_speed" (int movespeed) { SetActorProperty(0,APROP_SPEED,movespeed*65535/100); } Script "screecher_runcheck" (Void) { Delay(100); prunning = FALSE; } Script "screecher_tired" ENTER { While(True) { If(CheckInventory("Stamina")<=25) { Until(CheckInventory("Stamina")>=25) { AmbientSound("player/breathing", 255); Delay(50); } } Delay(1); } } // Lantern global int 50: lanternon; Script "screecher_lanterntoggle" (Void) { If(lanternon == 0) { lanternon = 1; If(CheckInventory("LanternOil")>0) { AmbientSound("lantern_light",255); ACS_NamedTerminate("screecher_kill2",0); // StopSound(0, CHAN_BODY); } Terminate; } If(lanternon == 1) { lanternon = 0; ACS_NamedExecute("screecher_kill2",0); Terminate; } lanternon = 1; Terminate; } Script "screecher_lantern" ENTER { While(TRUE) { If(lanternon == 1) { If(CheckInventory("LanternOil")!=0) { If(GetCVAR("cl_solidlighttoggle")==TRUE) { If(GetCVAR("cl_reallighttoggle")==TRUE) { Spawn("LanternLightSolidReal1", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); Spawn("LanternLightSolidReal2", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); } Else { Spawn("LanternLightSolid", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); } } If(GetCVAR("cl_solidlighttoggle")==FALSE) { If(GetCVAR("cl_reallighttoggle")==TRUE) { Spawn("LanternLightReal1", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); Spawn("LanternLightReal2", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); } Else { Spawn("LanternLight", GetActorX(0),GetActorY(0),GetActorZ(0)+40*65536); } } If(GetCvar("cl_gastoggle")==FALSE) { TakeInventory("LanternOil", 1); } } If(CheckInventory("LanternOil")==0) { lanternon = 0; ACS_NamedExecute("screecher_lanterntoggle",0); ACS_NamedExecute("screecher_kill2",0); } Delay(1); } Delay(1); } } // Light Removal Scripts Script "screecher_lightremove" ENTER { FOR(int zid = 1; zid < 9999; zid++ ) { Light_Stop(zid); } } Script "screecher_lights" ENTER { Light_LowerByValue(0,255); FOR(int sid = 1; sid < 9999; sid++ ) { Light_LowerByValue(sid,999); } Delay(1); Restart; } // Footsteps V2 by The Zombie Killer // ACS Source // Defines //#define S_FootSteps 1 #define MaxStepSounds 148 //22 when all sounds present #define DefStepSound "player/footstep" str StepSound[MaxStepSounds][2] = { // Water { "FWATER1", "player/waterstep" }, { "FWATER2", "player/waterstep" }, { "FWATER3", "player/waterstep" }, { "FWATER4", "player/waterstep" }, // Ground { "FLOOR0_1", "player/footstep" }, { "FLOOR0_3", "player/footstep" }, { "FLOOR1_7", "player/footstep" }, { "FLOOR4_1", "player/footstep" }, { "FLOOR4_5", "player/footstep" }, { "FLOOR4_6", "player/footstep" }, { "TLITE6_1", "player/footstep" }, { "TLITE6_5", "player/footstep" }, { "CEIL3_1", "player/footstep" }, { "CEIL3_2", "player/footstep" }, { "CEIL4_2", "player/footstep" }, { "CEIL4_3", "player/footstep" }, { "CEIL5_1", "player/footstep" }, { "FLAT2", "player/footstep" }, { "FLAT5", "player/footstep" }, { "FLAT18", "player/footstep" }, { "FLOOR0_2", "player/footstep" }, { "FLOOR0_5", "player/footstep" }, { "FLOOR0_7", "player/footstep" }, { "FLAT5_3", "player/footstep" }, { "CRATOP1", "player/footstep" }, { "CRATOP2", "player/footstep" }, { "FLAT9", "player/footstep" }, { "FLAT17", "player/footstep" }, { "FLAT19", "player/footstep" }, { "COMP01", "player/footstep" }, { "GRNLITE1", "player/footstep" }, // Carpet { "FLOOR1_1", "player/carpetstep" }, { "FLAT14", "player/carpetstep" }, { "FLAT5_5", "player/carpetstep" }, { "FLOOR1_6", "player/carpetstep" }, { "CEIL4_1", "player/carpetstep" }, { "GRASS1", "player/carpetstep" }, { "GRASS2", "player/carpetstep" }, // Dirt { "RROCK16", "player/dirtstep" }, { "RROCK19", "player/dirtstep" }, // Gravel { "FLOOR6_1", "player/gravelstep" }, { "FLOOR6_2", "player/gravelstep" }, { "FLAT10", "player/gravelstep" }, { "MFLR8_3", "player/gravelstep" }, { "MFLR8_4", "player/gravelstep" }, { "RROCK17", "player/gravelstep" }, { "RROCK18", "player/gravelstep" }, // Hard { "FLOOR0_6", "player/hardstep" }, { "FLOOR4_8", "player/hardstep" }, { "FLOOR5_1", "player/hardstep" }, { "FLOOR5_2", "player/hardstep" }, { "FLOOR5_3", "player/hardstep" }, { "FLOOR5_4", "player/hardstep" }, { "TLITE6_4", "player/hardstep" }, { "TLITE6_6", "player/hardstep" }, { "FLOOR7_1", "player/hardstep" }, { "MFLR8_1", "player/hardstep" }, { "CEIL3_5", "player/hardstep" }, { "CEIL5_2", "player/hardstep" }, { "CEIL3_6", "player/hardstep" }, { "FLAT8", "player/hardstep" }, { "SLIME13", "player/hardstep" }, // Metal A { "STEP1", "player/metalastep" }, { "STEP2", "player/metalastep" }, { "GATE1", "player/metalastep" }, { "GATE2", "player/metalastep" }, { "GATE3", "player/metalastep" }, { "CEIL1_2", "player/metalastep" }, { "CEIL1_3", "player/metalastep" }, { "SLIME14", "player/metalastep" }, { "SLIME15", "player/metalastep" }, { "SLIME16", "player/metalastep" }, // Metal B { "FLAT22", "player/metalbstep" }, { "FLAT23", "player/metalbstep" }, { "CONS1_1", "player/metalbstep" }, { "CONS1_5", "player/metalbstep" }, { "CONS1_7", "player/metalbstep" }, { "GATE4", "player/metalbstep" }, { "FLAT4", "player/metalbstep" }, // Rock { "FLAT1", "player/rockstep" }, { "FLAT5_4", "player/rockstep" }, { "MFLR8_2", "player/rockstep" }, { "FLAT1_1", "player/rockstep" }, { "FLAT1_2", "player/rockstep" }, { "FLAT1_3", "player/rockstep" }, { "FLAT5_7", "player/rockstep" }, { "FLAT5_8", "player/rockstep" }, { "GRNROCK", "player/rockstep" }, { "RROCK01", "player/rockstep" }, { "RROCK02", "player/rockstep" }, { "RROCK03", "player/rockstep" }, { "RROCK04", "player/rockstep" }, { "RROCK05", "player/rockstep" }, { "RROCK06", "player/rockstep" }, { "RROCK07", "player/rockstep" }, { "RROCK08", "player/rockstep" }, { "RROCK09", "player/rockstep" }, { "RROCK10", "player/rockstep" }, { "RROCK11", "player/rockstep" }, { "RROCK12", "player/rockstep" }, { "RROCK13", "player/rockstep" }, { "RROCK14", "player/rockstep" }, { "RROCK15", "player/rockstep" }, { "RROCK20", "player/rockstep" }, { "SLIME09", "player/rockstep" }, { "SLIME10", "player/rockstep" }, { "SLIME11", "player/rockstep" }, { "SLIME12", "player/rockstep" }, // Snow { "FLAT5_6", "player/snowstep" }, // Tile A { "FLOOR3_3", "player/tileastep" }, { "FLAT20", "player/tileastep" }, { "CEIL3_3", "player/tileastep" }, { "CEIL3_4", "player/tileastep" }, { "FLAT3", "player/tileastep" }, // Tile B { "FLOOR7_2", "player/tilebstep" }, { "DEM1_1", "player/tilebstep" }, { "DEM1_2", "player/tilebstep" }, { "DEM1_3", "player/tilebstep" }, { "DEM1_4", "player/tilebstep" }, { "DEM1_5", "player/tilebstep" }, { "DEM1_6", "player/tilebstep" }, // Wood { "CEIL1_1", "player/woodstep" }, { "FLAT5_1", "player/woodstep" }, { "FLAT5_2", "player/woodstep" }, // Slime { "NUKAGE1", "player/slimestep" }, { "NUKAGE2", "player/slimestep" }, { "NUKAGE3", "player/slimestep" }, { "BLOOD1", "player/slimestep" }, { "BLOOD2", "player/slimestep" }, { "BLOOD3", "player/slimestep" }, { "SLIME01", "player/slimestep" }, { "SLIME02", "player/slimestep" }, { "SLIME03", "player/slimestep" }, { "SLIME04", "player/slimestep" }, { "SLIME05", "player/slimestep" }, { "SLIME06", "player/slimestep" }, { "SLIME07", "player/slimestep" }, { "SLIME08", "player/slimestep" }, // Slimy { "SFLR6_1", "player/slimystep" }, { "SFLR6_4", "player/slimystep" }, { "SFLR7_1", "player/slimystep" }, { "SFLR7_4", "player/slimystep" }, // Lava { "LAVA1", "player/lavastep" }, { "LAVA2", "player/lavastep" }, { "LAVA3", "player/lavastep" }, { "LAVA4", "player/lavastep" }, // None { "F_SKY1", "player/none" }, }; // Functions Function int GetVelocity(void) { int vel; int x = GetActorVelX(0); int y = GetActorVelY(0); int angle = VectorAngle(x, y); if(((angle + 0.125) % 0.5) > 0.25) { vel = FixedDiv(y, Sin(angle)); } else { vel = FixedDiv(x, Cos(angle)); } return vel >> 16; } Script "screecher_foottoggle" Enter { While(TRUE) { If(GetCVar("cl_footsteptoggle")==TRUE) { ACS_NamedExecute("screecher_foot",0); } Else { ACS_NamedTerminate("screecher_foot",0); } Delay(1); } } Script "screecher_footon" ENTER { If(GetCVar("cl_footsteptoggle")==TRUE) { Terminate;} Else { ACS_NamedExecute("screecher_foot",0); } } // Scripts //Script S_FootSteps ENTER Script "screecher_foot" (VOID) { int DelayTime, StepVolume, i, SoundPlayed; While(1) { Delay(1); DelayTime = 16 - GetVelocity() / 2; StepVolume = 7 * GetVelocity(); if(GetActorZ(0) - GetActorFloorZ(0) == 0) { for(i=0; i<MaxStepSounds; i++) { if(CheckActorFloorTexture(0, StepSound[i][0])) { ActivatorSound(StepSound[i][1], StepVolume); SoundPlayed = 1; } } if(SoundPlayed == 0) { ActivatorSound(DefStepSound, StepVolume); } } SoundPlayed = 0; Delay(DelayTime); } }
Spoiler:The "genericitem" is defined here:Code: Select all
ACTOR Creeper { Health 1 Speed 5 Radius 20 Height 40 MeleeRange 1500 MaxStepHeight 9999 MaxDropOffHeight 9999 MONSTER +INVULNERABLE +NOVERTICALMELEERANGE +LOOKALLAROUND +NEVERRESPAWN +NOTARGETSWITCH +NOTARGET +NOINFIGHTING +NOTIMEFREEZE +NOFEAR +CANTSEEK +SEEINVISIBLE +DONTMORPH +NOBLOOD +NOBLOODDECALS +SOLID +NOBLOOD +DONTGIB +NOICEDEATH +OLDRADIUSDMG -ISMONSTER -COUNTKILL -SHOOTABLE -CANUSEWALLS -ACTIVATEMCROSS +NOCLIP Obituary "" States { Spawn: TNT1 A 1 A_LookEX(0,0,0,0,0, "IntroWarp") Loop See: TNT1 A 1 A_Chase TNT1 A 0 A_TakeFromTarget("CreeperRange",1) TNT1 A 0 A_JumpIfCloser(1000, "Wander") Goto See Wander: TNT1 A 0 A_GiveToTarget("CreeperRange",1) CREE AA 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE AA 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE AA 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE BB 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE BB 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE BB 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE CC 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE CC 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE CC 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE DD 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE DD 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") CREE DD 1 BRIGHT Light("CREEP") A_Wander TNT1 A 0 A_JumpIfTargetOutsideMeleeRange("See") TNT1 A 0 A_JumpIfCloser(150, "Seen") TNT1 A 0 A_Jump(256, "Wander") Goto Death Seen: TNT1 A 0 A_StopSound(CHAN_BODY) TNT1 A 0 A_JumpIfInTargetInventory("LampOut", 1, "SeenStill") TNT1 A 0 A_Jump(256,"WarpAway") SeenStill: TNT1 A 0 A_PlaySound("creeper/anger",CHAN_BODY, 1, FALSE, ATTN_NORM) TNT1 A 0 A_PlaySound("creeper/seen", CHAN_AUTO, 1, FALSE, ATTN_NONE) CREE E 1 BRIGHT Light("CREEP") A_FaceTarget CREE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 BRIGHT Light("CREEP") TNT1 A 0 A_JumpIfInTargetInventory("LampOut", 1, "YouDie") TNT1 A 0 A_Jump(256, "WarpAway") Goto Death YouDie: TNT1 A 0 A_PlaySound("creeper/anger",CHAN_BODY, 1, FALSE, ATTN_NORM) CREE FFGG 1 BRIGHT Light("CREEP") A_FaceTarget CREE GGGGGGGGGGGGGGGGGGGG 1 BRIGHT Light("CREEP") A_FadeOut(0.05, FALSE) TNT1 A 0 A_TakeFromTarget("CreeperRange",1) TNT1 A 0 A_GiveToTarget("CreeperKill",1) TNT1 A -1 Stop WarpAway: CREE EEEEEEEEEEEEEEEEEEEE 1 BRIGHT A_FadeOut(0.05, FALSE) TNT1 A 0 A_TakeFromTarget("CreeperRange",1) TNT1 A 0 A_Jump(256, "Warp2") Goto Death Warp2: TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_FadeIn(0.05) IntroWarp: TNT1 A 1 A_Warp(AAPTR_TARGET, random(11000,-11000), random(11000,-11000), 0, 0, WARPF_STOP|WARPF_TOFLOOR|WARPF_COPYINTERPOLATION, "IntroWarpCheck") TNT1 A 1 A_Jump(256,"IntroWarp") Goto Death IntroWarpCheck: TNT1 A 1 A_JumpIfCloser(4000, "IntroWarp") TNT1 A 0 A_PlaySound("creeper/wander", CHAN_BODY, 1, TRUE, ATTN_NORM) Goto See Death: TNT1 A 0 A_PlaySound("player/breathing", 0, 1, 0, ATTN_NONE) Stop } } Actor CreeperRange : GenericItem { Inventory.MaxAmount 1 } Actor CreeperKill : GenericItem { Inventory.MaxAmount 1 }
Spoiler:I really want to know how it works to make a flashbang grenade (as it seen in other post with a different question)Code: Select all
Actor GenericItem : PuzzleItem { -INVBAR +UNDROPPABLE Inventory.MaxAmount 1 Inventory.Icon TNT1A0 States { Spawn: TNT1 A 4 Loop } }
EDIT: Here's the "weapon" from the player some lines in the script appears here so it may be important:
Spoiler:Code: Select all
ACTOR Lantern : Weapon { Weapon.BobStyle InverseSmooth Weapon.BobRangeY 1 Weapon.BobRangeX 0.5 Weapon.BobSpeed 2 +WEAPON.NOAUTOFIRE +WEAPON.NOALERT +WEAPON.AMMO_OPTIONAL +WEAPON.NOAUTOAIM States { Ready: TNT1 A 0 A_JumpIfInventory("LampOut", 1, "LampOut") TNT1 A 1 A_WeaponReady Loop LampOut: LANT ABC 1 A_WeaponReady TNT1 A 0 A_JumpIfInventory("LanternOil", 1, "LampOut") TNT1 A 0 A_Jump(256, "AllOut") Goto Ready AllOut: TNT1 A 0 A_TakeInventory("LampOut", 1) Goto Ready Deselect: TNT1 A 1 A_Lower Loop Select: TNT1 A 0 A_SetCrosshair(10) TNT1 A 0 SetPlayerProperty(0,1,2) TNT1 A 1 A_Raise Loop Fire: TNT1 A 0 A_JumpIfInventory("LampOut", 1, "LampAway") LampBring: LANT B 1 Offset(69, 142) LANT A 1 Offset(66, 135) LANT C 1 Offset(63, 128) LANT B 1 Offset(60, 121) LANT A 1 Offset(57, 115) LANT C 1 Offset(54, 109) LANT B 1 Offset(51, 103) TNT1 A 0 ACS_NamedExecute("screecher_lanterntoggle",0) TNT1 A 0 A_GiveInventory("LampOut", 1) LANT A 1 Offset(48, 97) LANT C 1 Offset(45, 91) LANT B 1 Offset(42, 86) LANT A 1 Offset(39, 81) LANT C 1 Offset(36, 76) LANT B 1 Offset(33, 71) LANT A 1 Offset(30, 66) LANT C 1 Offset(27, 62) LANT B 1 Offset(24, 58) LANT A 1 Offset(21, 54) LANT C 1 Offset(18, 50) LANT B 1 Offset(15, 47) LANT A 1 Offset(12, 44) LANT C 1 Offset(9, 41) LANT B 1 Offset(6, 38) LANT A 1 Offset(3, 35) TNT1 A 0 A_Jump(256, "LampOut") Goto Ready LampAway: LANT A 1 Offset(3, 35) LANT B 1 Offset(6, 38) LANT C 1 Offset(9, 41) LANT A 1 Offset(12, 44) LANT B 1 Offset(15, 47) LANT C 1 Offset(18, 50) LANT A 1 Offset(21, 54) LANT B 1 Offset(24, 58) LANT C 1 Offset(27, 62) LANT A 1 Offset(30, 66) LANT B 1 Offset(33, 71) LANT C 1 Offset(36, 76) LANT A 1 Offset(39, 81) LANT B 1 Offset(42, 86) LANT C 1 Offset(45, 91) LANT A 1 Offset(48, 97) LANT B 1 Offset(51, 103) LANT C 1 Offset(54, 109) LANT A 1 Offset(57, 115) LANT B 1 Offset(60, 121) LANT C 1 Offset(63, 128) LANT A 1 Offset(66, 135) LANT B 1 Offset(69, 142) TNT1 A 0 A_TakeInventory("LampOut", 1) TNT1 A 0 ACS_NamedExecute("screecher_lanterntoggle",0) Goto Ready AltFire: TNT1 A 0 A_JumpIfInventory("ARock",1,"AltRemove") TNT1 A 0 A_GunFlash TNT1 A 0 A_GiveInventory("ARock", 1) TNT1 A 1 ACS_NamedExecute("screecher_rock",0) TNT1 A 0 A_JumpIfInventory("LampOut", 1, "AltLampOut") TNT1 AAAAAA 1 TNT1 A 0 A_FireCustomMissile("ThrownRock",0,0,0,0,0,0) TNT1 AAAAAAAAA 1 Goto Ready AltLampOut: LANT ABCABC 1 A_WeaponReady(14) TNT1 A 0 A_FireCustomMissile("ThrownRock",0,0,0,0,0,0) LANT CABCABCAB 1 A_WeaponReady(14) TNT1 A 0 A_Jump(256, "LampOut") Goto Ready Flash: LANT FGHJKL 1 LANT MNOPQRSTU 1 Goto LightDone AltRemove: TNT1 A 0 A_JumpIfInventory("LampOut", 1, "LampOut") Goto Ready } } Actor LampOut : Inventory { Inventory.MaxAmount 1 } Actor ARock : Inventory { Inventory.MaxAmount 1 } ACTOR ThrownRock { Radius 2 Height 2 Speed 25 Damage 0 Projectile +RANDOMIZE SeeSound "rock/woosh" DeathSound "rock/hit" States { Spawn: TNT1 AA 1 BRIGHT Loop Death: TNT1 A 0 A_SpawnDebris("RockDebris",0) TNT1 A 1 Light("ROCKHIT2") TNT1 A 1 Light("ROCKHIT") TNT1 A 1 Light("ROCKHIT2") Stop } } ACTOR RockDebris { Health 1 Radius 2 Height 2 Speed 4 Mass 5 BounceFactor 0.4 +THRUACTORS +DROPOFF +MISSILE +NOTELEPORT +FLOORCLIP +FORCEXYBILLBOARD +DOOMBOUNCE -SHOOTABLE // SeeSound "weapons/handguncasing" States { Spawn: SCRK A 1 Loop Death: SCRK A 500 SCRK AAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.05) Stop } }