Author |
Topic: Advanced (AI) slider doorr |
ahoji |
|
General Member Since: May 16, 2006 Posts: 74 Last: Jun 27, 2008 [view latest posts] |
|
|
Category: CoD2 Scripting Posted: Sunday, Apr. 29, 2007 07:54 am |
|
Hi all.
I found this script for some lide doors.
Code:
main()
{
thread slidedoor_slider ();
}
slidedoor_slider()
{
slidedoor=getent("slidedoor","targetname");
trig=getent("slideopen","targetname");
while(1)
{
trig waittill ("trigger");
//wait (4);
slidedoor movey (-64,2,0.5,0.5);
slidedoor waittill ("movedone");
wait (4);
//trig waittill ("trigger");
slidedoor movey(64,2,0.5,0.5);
slidedoor waittill ("movedone");
}
}
But this door is "stupid" and they will trap player if he is standing under them when closing.
So i want to make AI dors which doesn't close while player is nearby.
I prepared this byt I'm not sure if it's right.
Code:
main()
{
thread slidedoor_slider ();
}
slidedoor_slider()
{
slidedoor=getent("slidedoor","targetname");
trig=getent("slideopen","targetname");
while(1)
{
trig waittill ("trigger");
slidedoor movey (-64,2,0.5,0.5);
slidedoor waittill ("movedone");
wait (4);
player = getentarray( "player", "classname" );
if(player isnotTouching(trig))
{
slidedoor movey(64,2,0.5,0.5);
slidedoor waittill ("movedone");
}
}
}
I don't know if is function 'isnotTouching' or something similar so pls correct me if I'm wrong |
|
|
|
Dibbes65 |
|
General Member Since: Oct 3, 2005 Posts: 89 Last: May 25, 2008 [view latest posts] |
|
|
|
tomalla |
|
General Member Since: Jan 16, 2007 Posts: 393 Last: Jun 10, 2012 [view latest posts] |
|
|
|
|
OLD_MAN_WITH_GUN |
General Member Since: May 13, 2006 Posts: 754 Last: Jan 23, 2010 [view latest posts] |
|
|
Category: CoD2 Scripting Posted: Sunday, Apr. 29, 2007 10:15 am |
|
tomalla writes...Quote: Try this instead:
if(!player isTouching(trig))
"!" make negative in syntax That will be work to block the door.
But then he will run into a further problem.
If the player leave the door, the door won't be close and stays open. |
|
|
|
ahoji |
|
General Member Since: May 16, 2006 Posts: 74 Last: Jun 27, 2008 [view latest posts] |
|
|
|
ahoji |
|
General Member Since: May 16, 2006 Posts: 74 Last: Jun 27, 2008 [view latest posts] |
|
|
|
The_Caretaker |
General Member Since: Jun 8, 2004 Posts: 11625 Last: Jul 7, 2009 [view latest posts] |
|
|
|
OLD_MAN_WITH_GUN |
General Member Since: May 13, 2006 Posts: 754 Last: Jan 23, 2010 [view latest posts] |
|
|
Category: CoD2 Scripting Posted: Sunday, Apr. 29, 2007 11:12 am |
|
The_Caretaker writes...Quote: not sure if elseif works, but you can easily try that yourself.
Works.
if (...)
{
}
else if (...)
{
} |
|
|
|
ahoji |
|
General Member Since: May 16, 2006 Posts: 74 Last: Jun 27, 2008 [view latest posts] |
|
|
Category: CoD2 Scripting Posted: Sunday, Apr. 29, 2007 01:47 pm |
|
Can be trigger_use used for function isTouching?
________________________________________
ok so i saw script where is command "return;"
Code:
main()
{
thread alert_sound();
}
alert_sound()
{
alerts = getentarray ("enginesound", "targetname");
while (1)
{
{
for (i=1;i<alerts.size;i++)
alerts[0] playsound("T34engine");
alerts[0] playsound("T34engine");
wait (3);
self thread alert_sound();
return;
}
}
}
I dont know if I'm using 'return;' well but this is what i did.
Code:
main()
{
thread slidedoor_slider ();
}
slidedoor_slider()
{
slidedoor=getent("slidedoor","targetname");
trig=getent("slideopen","targetname");
while(1)
{
trig waittill ("trigger");
slidedoor movey (-64,2,0.5,0.5);
slidedoor waittill ("movedone");
wait (4);
player = getentarray( "player", "classname" );
if(!player isTouching(trig))
{
slidedoor movey(64,2,0.5,0.5);
slidedoor waittill ("movedone");
}
else if(player isTouching(trig))
{
wait(1); //time between returning = rechecking if player is touching
return; //should return script to if(!player isTouching(trig))
}
}
}
or should i use only 'else' instead of 'else if'
edited on Apr. 29, 2007 09:55 am by ahoji |
|
|
|
The_Caretaker |
General Member Since: Jun 8, 2004 Posts: 11625 Last: Jul 7, 2009 [view latest posts] |
|
|
|