hirschzopf
ich habe mal eine frage zum aufzug script ich habe diesen script genommen:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
|
main()
{
level.elevatorDown = true;
level.elevatorMoving = false;
thread elevator_start();
}
elevator_start()
{
elevator = getentarray ("switch","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();
}
elevator_think()
{
while (1)
{
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move()
{
elevatormodel = getent ("elevator", "targetname");
level.elevatorMoving = true;
speed = 16;
height =581;
if (level.elevatorDown) {
elevatormodel playsound ("elevator");
elevatormodel movez (height, speed);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else
{
elevatormodel playsound ("elevator");
elevatormodel movez (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
|
|
und würde gerne mal wissen, was ich in den script ändern muss, das der aufzug nach paar sekunden alleine wieder runter fährt
danke für die hilfe mfg hirschzopf
serthy
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
|
elevator_start()
{
elevator = getEntArray( "switch" , "targetname" );
if( isDefined( elevator ) )
{
for( i = 0 ; i < elevator.size ; i++ )
{
elevator[i] thread elevator_think();
}
}
}
elevator_think()
{
speed = 16; //zeit in der sich der aufzug von A nach B bewegt
height = 581;
delay = 5; //zeit zwischen Bewegungen
elevatormodel = getEnt( "elevator" , "targetname" );
if( !isDefined( elevatormodel ) )
{
wait( 10.0 ); //falls i-was fehlt...
iprintLn( "NO ELEVATOR FOUND!" );
return;
}
// aufzug ist zuerst oben!
elevatormodel.up_org = elevatormodel.origin;
elevatormodel.down_org = elevatormodel.origin - ( 0 , 0 , height );
while( isDefined( elevatormodel ) )
{
self waittill( "trigger" );
elevatormodel playSound( "elevator" );
elevatormodel moveTo( elevatormodel.down_org , speed );
wait( speed + delay );
elevatormodel playSound( "elevator" );
elevatormodel moveTo( elevatormodel.up_org , speed );
wait( speed + delay );
}
} |
|
hirschzopf
vielen dank für die schnelle hilfe danke danke
hirschzopf
aber noch eine frage wie mach ich das der aufzug nach oben fährt weil bei den script geht der nach unten
serthy
entweder den aufzug so bauen das er zuerst oben ist, oder an die zahl bei height ein minus davor
hirschzopf
ach mehr nicht sorry wusst ich nicht wenn es ums scripten geht habe ich bis jetzt nicht so viel ahnung danke nochmals für die schnelle hilfe
hirschzopf
hätte noch eine frage was muss ich an den script ändern das der aufzug nicht hoch und runter geht sondern links und rechts ^^
OLD MAN WITH GUN
Original von hirschzopf
hätte noch eine frage was muss ich an den script ändern das der aufzug nicht hoch und runter geht sondern links und rechts ^^
Das hängt vom verwendeten Befehl ab.
Du nutzt hier move
z, also Bewegung in der Z-Achse. Es gibt neben movez dann noch die Befehle move
x für die X-Achse und move
y für die... na rate mal... richtig, die Y-Achse.
hirschzopf
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
|
elevator_start()
{
elevator = getEntArray( "switch" , "targetname" );
if( isDefined( elevator ) )
{
for( i = 0 ; i < elevator.size ; i++ )
{
elevator[i] thread elevator_think();
}
}
}
elevator_think()
{
speed = 16; //zeit in der sich der aufzug von A nach B bewegt
height = 581;
delay = 5; //zeit zwischen Bewegungen
elevatormodel = getEnt( "elevator" , "targetname" );
if( !isDefined( elevatormodel ) )
{
wait( 10.0 ); //falls i-was fehlt...
iprintLn( "NO ELEVATOR FOUND!" );
return;
}
// aufzug ist zuerst oben!
elevatormodel.up_org = elevatormodel.origin;
elevatormodel.down_org = elevatormodel.origin - ( 0 , 0 , height );
while( isDefined( elevatormodel ) )
{
self waittill( "trigger" );
elevatormodel playSound( "elevator" );
elevatormodel moveTo( elevatormodel.down_org , speed );
wait( speed + delay );
elevatormodel playSound( "elevator" );
elevatormodel moveTo( elevatormodel.up_org , speed );
wait( speed + delay );
}
}
|
|
in dem script ist aber kein movez drin weil ich möchte ja das der dann auch nach paar sekunden wieder zurück kommt.
danke für die hilfe
hirschzopf
Was ich bei mein aufzug nicht verstehe, ist ich kann den speed erhöhen wie ich will, aber der aufzug geht extrem langsam, und ich habe den speed schon bei 200 bitte um hilfe.
OLD MAN WITH GUN
Original von hirschzopf
Was ich bei mein aufzug nicht verstehe, ist ich kann den speed erhöhen wie ich will, aber der aufzug geht extrem langsam, und ich habe den speed schon bei 200 bitte um hilfe.
Das liegt wohl daran, das du in die Bezeichnung der Variable (speed) was anderes hinein interpretierst, als das, was sie wirklich bewirkt.
Du denkst wahrscheinlich "speed" = Geschwindigkeit = je höher der Wert, desto schneller
Dem ist aber nicht so.
Schau dir mal folgende Zeile in deinem Script an (da findest du nämlich schon des Rätsels Lösung)
speed = 16; //zeit in der sich der aufzug von A nach B bewegt
Speed gibt also nicht die Geschwindigkeit an, sondern die Zeit, die der Aufzug von A nach B brauchen soll (also je größer der Wert, desto länger ist der Aufzug unterwegs).
hirschzopf
Vielen dank OLD MAN WITH GUN für die schnelle hilfe da hätte ich ja lange probieren können ^^