Jump to content

Home

Variables in ICARUS


CalcProgrammer1

Recommended Posts

I have a problem with a simple script (I am just starting scripting), and for some reason I can't get a script to use variables correctly, my spawnscript has

 

declare ( <DECLARE_TYPE> STRING, "OPEN" )

set ( "OPEN","NO")

 

OPEN is the state of a door, open or closed, and No means its closed

My trigger_multiple targets a target_scriptrunner, which uses the script, this part works so far, its the script that doesn't work cause it tells me it is comparing unlike types or something similar when developer is 1

 

My problem is with the script for the button

 

if ( $OPEN$,$=$,$"YES"$)

set ("OPEN","NO")

affect ("door",<AFFECT_TYPE>INSERT)

rotate ( <0 0 0 >, 1000)

 

if ( $OPEN$,$=$,$"NO"$ )

set ( "OPEN","YES" )

affect ( "door", <AFFECT_TYPE>INSERT)

rotate (<0 90 0>, 1000)

 

I also don't know how the Rotate function works, does it rotate by the given amount or rotate to the given position?

Link to comment
Share on other sites

  • 2 weeks later...

I hope there's an else somewhere in that script... But other than that, adopt better programming conventions and use a float (like 1=open, 0=closed). Nobody uses strings to check for such things. That should sort your problem without the need of even explaining what's wrong with your current one.

 

And rotate sets new absolute angles. JA doesn't unfortunately recognize relative rotation.

Link to comment
Share on other sites

Something like this:

 

if ( $get( FLOAT, "open") = 1$ )
{
	rem ( "case 1" );
	affect ( "door", /*@AFFECT_TYPE*/ FLUSH )
	{
		rotate ( < 0.000 0.000 0.000 >, 1000.000 );
	}

	set ( "open", "0" );
}


else (  )
{
	rem ( "case 2" );
	affect ( "door", /*@AFFECT_TYPE*/ FLUSH )
	{
		rotate ( < 0.000 90.000 0.000 >, 1000.000 );
	}

	set ( "open", "1" );
}

 

That code could be something of a Frankenstein; I just put it together from bits and pieces, but it should give some ideas.

 

You gotta get your syntax right first, then logic and such things.

 

And declaring variables is essential. It guarantees no typos and also JA has a limited amount of variables allowed (32 per type or something), so requiring declaring makes it easier to keep track of them. Although I can't imagine anybody needing 32 variables at the same time in JA...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...