Marvin
Hallo zusammen,
habe nach einigen Tagen ein Problem mit meinem elevator gehabt:
Ich will dass mein Fahrstuhl von unten nach oben fährt und von oben nach unten. Nun fährt er bei jedem zweiten Test von unten nach unten. Beim nächsten Test fährt er dann wieder von unten nach oben, dann wieder von unten nach unten etc.
Würde mich über Hilfe freuen!
Marvin
lillJack
hm villt liegts am Script...
hab hier mal eins gepostet das cih benutze..kannst ja mal ausprobieren dun einfach deine werte bei höhe und elevator name verwenden..
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:
|
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 = 2;
height =90;
if (level.elevatorDown) {
elevatormodel playsound ("mp_enemy_obj_captured"); elevatormodel movez (height, speed);
elevatormodel waittill ("movedone");
level.elevatorDown = false; }
else
{
elevatormodel playsound ("mp_enemy_obj_captured");
elevatormodel movez (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true; }
level.elevatorMoving = false; } |
|
(Der Elevator ist noch mit Sound...kannst du natürlich rausmachen wenn du willst
Marvin
Ich verwenden genau das selbe script. Nur bei height und speed habe ich etwas anderes stehen. Das ist aber normal. Weil mein Aufzug langsamer und höher fährt als deiner. Gibts da noch eine andere Lösung
lillJack
villt hast du deine switch punkte falsch gesetzt oder irgend etwas ähnliches...
ich würde mal alle targetnamen überprüfen und ob alles richtig verbunden ist
Marvin
Also nochmal wie ich es gemacht habe:
Als erstes baue ich eine Platte als script brushmodel. Jetzt baue ich jeweils oben und unten einen trigger use_touch. Der Platte gebe ich den "targetname","elevator" nun gebe ich den triggern jeweils den "targetname","switch" Nun verbinde ich die Platte mit dem Aufzug. Jetzt kopiere ich steinackers script aus dem thread
Script Frage da es mit dem vorgegebenen nicht so wollte. Dann habe ich es noch an meinen Fahrstuhl angepasst und die nötigen einträge in der .gsc und in der .csv gemacht. Das war alles.
Habe ich irgendwas falsch gemacht?
Lg Marvin
lillJack
hm... also du hast deine platte mit dem targetnamen elevator dann hast du an deinem start punkt einen trigger use touch mit dem targetname switch und an der endstelle einen trigger use touch auch mit dem targetname switch...
nun gibst du der platte einfach den key target und bei value switch dann verbinden sie sich ansonsten wüste ich jezt nicht an was es liegen sollte ansonsten musst du schauen ob bei höhe etc etwas falsches eingestellt ist...bei mir war es mal so dass ich ein script hatte für 3 wände die sich unterschiedlich bewegen sollten...hattt auch alles geklappt nur ist die eine wand nicht zurückgekommen(hat auch nicht gestopppt) sondern ist einfach immer nur in einen richtung gegangen...hab an meinem script gearbeitet udn irgenwann ging es aber weis nicht mehr an was es lag
Marvin
Original von Marvin
Nun verbinde ich die Platte mit dem Aufzug.
Ich habe die Platte doch damit verbunden! entweder man macht es so wie du gesagt hast oder man wählt die Platte und einer der trigger aus und drückt taste "W"
Edit: Habe den Fehler gefunden!
An einer stelle habe ich statt Up Down eingetragen. Für deinen Fehler habe ich auch schon eine Lösung. Wenn dein Aufzug am Anfang nach oben fahren soll muß weit oben irgendwas mit Up stehen. Wenn deiner nach unten fahren soll müsste am anfang was mit down stehen. In der mitte irgendwo müsste nochmal Up bzw. Down stehen. Wenn an beiden Down oder Up steht solltest du eins davon ändern!!! Jenach dem ob du am anfang nach oben fahren willst. Dann solltest du oben Up stehen haben und in der mitte Down. So ungefär
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
|
level.elevatorUp = true;
level.elevatorMoving = false;
thread elevator_start();
|
|
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
|
elevatormodel movez (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
|
|
Wenn du willst das dein Aufzug am Anfang nach unten fährt musst du oben Up in Down ändern und Down unten in Up ändern
lillJack
Für deinen Fehler habe ich auch schon eine Lösung.
Ich habe das Problem schon vor langem gelöst... aber trotzdem Danke für deinen Tipp falls mal wider was nicht funktionieren sollte.