 |
|
|
| RE: Scripten in einer Art von Schleife? |
 |
Das gehört eigentlich noch zu den Grundlagen.
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:
|
trig = getent( "triggername", "targetname" ); //trigger holen
obj = getent( "objektname", "targetname" ); // objekt für die Ereignisse
while( 1 ) // starte ab hier Endlosschleife
{
trig waittill( "trigger" ); // warte auf den trigger
obj movex( 100, 10, 1, 1 ); // bewege Objekt 100 Einheiten in der x-Achse nach rechts (lass dir 10 Sek. Zeit dafür, beschleunige die erste Sek. und bremse die letzte Sek. ab)
obj waittill( "movedone" ); // warte bis das Objekt angekommen ist
obj movez( 200, 2, 0, 1 ); // bewege Objekt 200 Einheiten in der z-Achse nach oben (lass dir 2 Sek. Zeit dafür und bremse die letzte Sek. ab)
obj waittill( "movedone" ); // warte bis Objekt angekommen
obj rotateyaw( 90, 2 ); // drehe Objekt um 90° in der Z-Achse (lass dir 2 Sek. Zeit)
obj waittill( "rotatedone" ); // warte bis Drehung beendet
} // Endlosschleife beginnt von vorne |
|
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
jump4life
5-Minuten-Ei

Dabei seit: 10.12.2009
Beiträge: 24

|
|
Ich glaube du verstehst nicht ganz wie ich es meine. Vorerst: Die Schleife benötige ich für einen Fahrstuhl. Der Fahrstuhl hat 2 Schiebetüren. Eine schiebt sich nach links auf und eine nach rechts. Das habe ich vorher so gemacht
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:
|
main()
{
thread sdoor1();
thread sdoor2();
sdoor1()
{
door=getent("sdoor1","targetname");
trig=getent("trig_sdoor","targetname");
while(1)
{
trig waittill ("trigger");
door movex (-62,1.5,0.2,0.2);
door waittill ("movedone");
wait(5);
door movex (62,1.5,0.2,0.2);
door waittill ("movedone");
}
}
sdoor2()
{
door=getent("sdoor2","targetname");
trig=getent("trig_sdoor","targetname");
while(1)
{
trig waittill ("trigger");
door movex (62,1.5,0.2,0.2);
door waittill ("movedone");
wait(5);
door movex (-62,1.5,0.2,0.2);
door waittill ("movedone");
}
}
|
|
Das funktioniert soweit ABER ich möchte das alles in einem Thread haben und dafür muss ich ja zwei (in diesem Fall) Brushmodels definieren. Also das hier
door=getent("sdoor2" Hier soll jetzt noch ein Brushmodel definiert werden ,"targetname");
Ich kann es so schlecht erklären wie ich es meine. Im grunde möchte ich nur einen Fahrstuhl der per betätigen eines Triggers erst die Türen öffnet, dann die Türen nach paar Sekunden wieder schließt, dann hoch oder runter (jeh nachdem) fährt, die Türen wieder öffnet, dann wieder runter oder hoch (jeh nachdem) fährt und auf seiner Ausgangsposition stehen bleibt.
Mit mehreren Triggern kann ich das ja aber das Problem dabei ist das man, wenn der Fahrstuhl gerade nach oben Fährt die Türen (die den Schacht absperren) öffnen kann und genau das soll nicht sein. Die Fahrstuhltür sollen erst dann wieder geöffnet werden könn wenn der Fahrstuhl wieder am Ausgangspunkt steht.
Ich hoffe das war verständlicher wie mein ersten Beiträge.
PS: Falls du Support über Xfire geben würdest: wurstwasser09 ist mein XFire.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jump4life: 26.01.2010 17:41.
|
|
|
|
|
 |
|
|
Original von jump4life
Ich glaube du verstehst nicht ganz wie ich es meine. Vorerst: Die Schleife benötige ich für einen Fahrstuhl. Der Fahrstuhl hat 2 Schiebetüren. Eine schiebt sich nach links auf und eine nach rechts. Das habe ich vorher so gemacht
Doch ich hab dich schon verstanden, aber ich nehme an, du hast mich nicht verstanden.
Hier mal eine Schleife, die nach dem aktivieren des triggers zwei türen öffnet, und dann nach einer Weile wieder schließt und dann wieder von vorne beginnt:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
trig = getent( "trigger", "targetname" ); // trigger der die Türen aktiviert
door1 = getent( "sdoor1", "targetname" ); // erste Tür
door2 = getent( "sdoor2", "targetname" ); // zweite Tür
while( 1 ) // starte Schleife
{
trig waittill( "trigger" ); // warte bis trigger aktiviert wird
door1 movex ( -62, 1.5, 0.2, 0.2 ); // bewege door1 62 Einheiten nach links
door2 movex ( 62, 1.5, 0.2, 0.2 ); // bewege door2 62 Einheiten nach rechts (passiert zur selben Zeit, in der sich door1 nach links bewegt)
door2 waittill ("movedone" ); // warte hier solange, bis door2 sich zu Ende bewegt hat (door1 können wir hier ignorieren, da sie gleich schnell ist und zur selben Zeit angekommen ist)
wait 5; // warte hier 5 Sekunden
door1 movex ( 62, 1.5, 0.2, 0.2 ); // bewege door1 wieder 62 Einheiten nach rechts zurück
door2 movex ( -62, 1.5, 0.2, 0.2 ); // bewege door2 wieder 62 Einheiten nach links zurück
door2 waittill ( "movedone" ); // warte hier solange, bis door2 sich zu Ende bewegt hat.
} // wiederhole Schleife |
|
Original von jump4life
PS: Falls du Support über Xfire geben würdest: wurstwasser09 ist mein XFire.
Support nur im Forum.
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
jump4life
5-Minuten-Ei

Dabei seit: 10.12.2009
Beiträge: 24

|
|
Ok,
ich habe es jetzt mal versucht das script so zusammen zu setzen wie ich es brauche. Es sieht jetzt so aus.
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:
55:
56:
57:
58:
59:
60:
61:
62:
63:
|
main()
{
thread ele();
}
ele()
{
trig = getent( "trig_elevator", "targetname" );
door1 = getent( "door1", "targetname" );
door2 = getent( "door2", "targetname" );
door3 = getent( "door3", "targetname" );
door4 = getent( "door4", "targetname" );
elevator=getent("elevator","targetname");
{
while( 1 )
trig waittill( "trigger" );
door1 movex ( -184, 1.5, 0.2, 0.2 );
door2 movex (184, 1.5, 0.2, 0.2 );
door2 waittill ("movedone" );
wait (5);
door1 movex ( 184, 1.5, 0.2, 0.2 );
door2 movex ( -184, 1.5, 0.2, 0.2 );
door2 waittill ( "movedone" );
wait (2);
trig waittill ("trigger");
elevator movez (-832,7,1.9,1.9);
elevator waittill ("movedone");
wait (2);
trig waittill( "trigger" );
door3 movex ( -184, 1.5, 0.2, 0.2 );
door4 movex (184, 1.5, 0.2, 0.2 );
door3 waittill ("movedone" );
wait (5);
trig waittill( "trigger" );
door3 movex ( 184, 1.5, 0.2, 0.2 );
door4 movex (-184, 1.5, 0.2, 0.2 );
door3 waittill ("movedone" );
wait(2);
elevator movez (832,7,1.9,5);
elevator waittill ("movedone");
}
}
|
|
Leider geht das so nicht. Es kommt zwa kein Fehler aber es tut sich nichts.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jump4life: 26.01.2010 21:33.
|
|
|
|
|
 | |
 | |
Badboy
Teetrinker
 
Dabei seit: 04.05.2009
Beiträge: 37

|
|
LoL ^^
Fehler a)
Du hast den Elevator nicht zum script_brushmodel gemacht und somit dem worldspawn den targetnamen zu gewiesen.
Fehler b)
Im script steht :
Warte auf den trigger!
Türen öffnen sich!
Warte kurze Zeit!
Türen schliessen sich!
Elevator wartet wieder auf den Trigger!
Wie willste denn den trigger drücken wennde im Fahrstuhl bist? ;D
So sollte es richtig sein:
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:
|
main()
{
thread ele();
}
ele()
{
trig = getent( "trig_elevator", "targetname" );
door1 = getent( "door1", "targetname" );
door2 = getent( "door2", "targetname" );
door3 = getent( "door3", "targetname" );
door4 = getent( "door4", "targetname" );
elevator=getent("elevator","targetname");
while( 1 )
{
trig waittill( "trigger" );
door1 movex ( 184, 1.5, 0.2, 0.2 );
door2 movex (-184, 1.5, 0.2, 0.2 );
door2 waittill ("movedone" );
wait (5);
door1 movex ( -184, 1.5, 0.2, 0.2 );
door2 movex ( 184, 1.5, 0.2, 0.2 );
door2 waittill ( "movedone" );
wait (2);
elevator movez (832,7,1.9,1.9);
elevator waittill ("movedone");
wait (2);
door3 movex ( 184, 1.5, 0.2, 0.2 );
door4 movex (-184, 1.5, 0.2, 0.2 );
door3 waittill ("movedone" );
wait (5);
door3 movex ( -184, 1.5, 0.2, 0.2 );
door4 movex (184, 1.5, 0.2, 0.2 );
door3 waittill ("movedone" );
wait(2);
elevator movez (-832,7,1.9,5);
elevator waittill ("movedone");
}
}
|
|
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Badboy: 28.01.2010 15:08.
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|