Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Mengo

ACS Problems?

Question

So I'm making a script that checks if enough enemies of tag 25 are dead when you kill an enemy, then lowers a door.

However I keep getting errors with this.

 

Here's the script

 

Script 256 (VOID)
{
if ThingCount(T_NONE, 25) = 0
{
Floor_LowerToLowest(4,5)
}
}

 

Here's the error

 

Line 3 in file "...AppData\Roaming\SLADE3\temp\ACS.acs" ...
...AppData\Roaming\SLADE3\temp\ACS.acs:3: Missing '('.
> if ThingCount(
>             ^
 

Share this post


Link to post

8 answers to this question

Recommended Posts

  • 1
5 hours ago, Mengo said:

Here's the script


Script 256 (VOID)
{
	if ThingCount(T_NONE, 25) = 0
	{
		Floor_LowerToLowest(4,5)
	}
}

 

Well, there are a lot of mistakes here that prevent the parser from doing anything useful.

  1. The if condition isn't within parenthesis. First change is to make it "if (ThingCount(T_NONE, 25) = 0)".
  2. The = is an assignment operator, not a comparison operator. It cannot work here. Second change is to make it "if (ThingCount(T_NONE, 25) == 0)".
  3. The instruction does not have its terminating marker (semi-colon). Third change is to make it "Floor_LowerToLowest(4,5);"

After these three changes, it should compile correctly... Whcih doesn't mean it will necessarily work! If you run that script just once before the monsters are dead, it'll see there are still some monsters, so skip the instruction, do nothing, and exit. Dexiaz's script has the logic tweak needed to keep the script running until all the monsters are dead.

 

3 minutes ago, Mengo said:

t_none : Identifier has not been declared.
>          while (ThingCount(T_NONE, 
>  

Do you have #include "zcommon.acs" at the top of your file?

Share this post


Link to post
  • 0

Try this instead:

 

script 256 (void)

{
         while (ThingCount(T_NONE, 25) > 0)
          delay(35);
    Floor_LowerToLowest(4,5)
}

 

This script is based on my DooW mod where you must kill Barons on E1M8. It represents the same system as Tag 666

Share this post


Link to post
  • 0
15 minutes ago, Deⓧiaz said:

Try this instead:

 

script 256 (void)

{
         while (ThingCount(T_NONE, 25) > 0)
          delay(35);
    Floor_LowerToLowest(4,5)
}

 

This script is based on my DooW mod where you must kill Barons on E1M8. It represents the same system as Tag 666

 

I now have another error.

Here's the error:
 

t_none : Identifier has not been declared.
>          while (ThingCount(T_NONE,2
>                                  ^
 

Share this post


Link to post
  • 0
2 hours ago, Mengo said:

Identifier has not been declared.

 

Okaaaay, let's try this:

 

script 256 (int floorTag, int time) {
         while (ThingCount(T_NONE, 25) > 0)
          delay(35);
    Floor_LowerToLowest(floorTag,5);
}

 

In doom builder select your monster(s) with tag 25, go to Actions and Setup the Action=80 (ACS Execute). Select your script 256 and type Tag of your Floor Sector.

Let the Time to be =0 (to be honest I don't remember why I've used this in my mod, but since it worked fine, I'm not complaining).

 

Share this post


Link to post
  • 0

t_none : Identifier has not been declared.
>          while (ThingCount(T_NONE, 
>  

Share this post


Link to post
  • 0
13 minutes ago, Gez said:

Do you have #include "zcommon.acs" at the top of your file?

Oh i entirely forgot!

Share this post


Link to post
  • 0
7 hours ago, Gez said:

Do you have #include "zcommon.acs" at the top of your file?

 

7 hours ago, Mengo said:

Oh i entirely forgot!

 

Oh dear...

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×