Jump to content

Home

Variables in ICARUS


CalcProgrammer1

Recommended Posts

Posted

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?

  • 2 weeks later...
Posted

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.

Posted

Well, I did try the 1, 0 thing before, and since it didn't work that is why I went with strings, I'll retry it, and about the Rotate, I figured out how that worked making rotating doors (which worked ok), my problem is I'm too used to BASIC where you don't have to declare everything...

 

I'll try that out.

Posted

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...

Archived

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

×
×
  • Create New...