Jump to content
The Dark Mod Forums
Sign in to follow this  
Jasp

Does TDM know '>' and '<'?

Recommended Posts

Hi,

 

what i want is to compare two floats. It's about checking the distance between the player and an AI and start a script if the distance is bigger than 128. I wrote:

 

void folgehelfer()

{

boolean eingreifen;

string abstand;

abstand = $player1.distanceTo($helfer1);

sys.println(abstand);

eingreifen = abstand > 128;

if (eingreifen = true)

{

call unbefugt();

}

}

 

it doesnt work: type mismatch for '>'

 

Does TDM / D3 know '>' and '<'? What is wrong?

Edited by Jasp

$guard.moveToPosition($player1.getOrigin());

Share this post


Link to post
Share on other sites

The syntax is fine, it's just the data type is wrong. Make abstand a float instead of a string and it'll work.

Share this post


Link to post
Share on other sites
void folgehelfer()
{
 float abstand;
 abstand = $player1.distanceTo($helfer1);
 sys.println(abstand);
 if (abstand > 128)
 {
	  call unbefugt();
 }
}

Share this post


Link to post
Share on other sites

but this doesnt work.

 

if (eingreifen = true)

{

call unbefugt();

}

 

it works without the 'call'

 

(no, script doesnt work.. they are attacking the player right from the start... but im new to this and im on it :) )

Edited by Jasp

$guard.moveToPosition($player1.getOrigin());

Share this post


Link to post
Share on other sites

As an aside, even though I took it out of my response, this statement:

 

if (eingreifen = true)

 

is going to set eingreifen to TRUE, and the logic test will always be TRUE.

 

What you want to use when you do this sort of thing is

 

if (eingreifen == true)

Share this post


Link to post
Share on other sites

but this doesnt work.

 

if (eingreifen = true)

{

call unbefugt();

}

 

it works without the 'call'

 

(no, script doesnt work.. they are attacking the player right from the start... but im new to this and im on it :) )

 

Yes, mea culpa. Should have noticed that.

 

Edit: It's probably not working because your logic statement is wrong. See my note above.

Share this post


Link to post
Share on other sites

If you want to continue to use 'eingreifen' (it's not necessary), then what you want is

 

if (eingreifen)

Share this post


Link to post
Share on other sites

this is the whole thing. Works now, thanks alot!

 

void befugt()

{

$wache1.setEntityRelation($player1,1);

$wache1.setAlertLevel(0);

$wache2.setEntityRelation($player1,1);

$wache2.setAlertLevel(0);

sys.println("befugt");

}

 

void unbefugt()

{

$wache1.setEntityRelation($player1,-1);

$wache2.setEntityRelation($player1,-1);

sys.println("unbefugt");

}

 

void folgehelfer()

{

boolean eingreifen;

float abstand;

abstand = $player1.distanceTo($helfer1);

sys.println(abstand);

eingreifen = abstand > 128;

if (eingreifen)

{

unbefugt ();

}

else

{

befugt ();

}

}


$guard.moveToPosition($player1.getOrigin());

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...