Elevator Sound

Banana2077
Hallo Leute

ich habe jetzt einen Aufzug und würde gerne:

1.ein sound wenn sich die türen öffnen
2.einen loop sound wenn der elevator fährt einfügen


hier das script


Code einblendenCode 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:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
 main()
{
  level.elevDown=true;
  level.elevMove=false;
  switchTOP=getentarray("ups","targetname");
  for(i=0; i<switchTOP.size; i++)
   switchTOP[i] thread elev_think();
}

elev_think()
{
  IdoorLEFT=getent("leftindoor", "targetname");
  IdoorRIGHT=getent("rightindoor", "targetname");
  OdoorTL=getent("topleftdoor", "targetname");
  OdoorTR=getent("toprightdoor", "targetname");
  OdoorBL=getent("bottomleftdoor", "targetname");
  OdoorBR=getent("bottomrightdoor", "targetname");
  thread door_open(IdoorLEFT, IdoorRIGHT, OdoorBL, OdoorBR);
  while(1)
  {
   self waittill ("trigger");
   if(level.elevMove==false)
    {
     level.elevMove=true;
     thread elev_move();
    }
  }
}

elev_move()
{
  etime=5;
  zdirec="z";
  zdist1=440;
  zdist2=-440;
  IdoorLEFT=getent("leftindoor", "targetname");
  IdoorRIGHT=getent("rightindoor", "targetname");
  OdoorTL=getent("topleftdoor", "targetname");
  OdoorTR=getent("toprightdoor", "targetname");
  OdoorBL=getent("bottomleftdoor", "targetname");
  OdoorBR=getent("bottomrightdoor", "targetname");
  Elevator=getent("elevator", "targetname");
  if(level.elevDown==true)
   {
    door_close(IdoorLEFT, IdoorRIGHT, OdoorBL, OdoorBR);
    wait(.1);
    Elevator thread move_func(zdist1, etime, zdirec);
    IdoorLEFT thread move_func(zdist1, etime, zdirec);
    IdoorRIGHT thread move_func(zdist1, etime, zdirec);
    Elevator waittill ("movedone");
    door_open(IdoorLEFT, IdoorRIGHT, OdoorTL, OdoorTR);
    level.elevDown=false;
    level.elevMove=false;
   }
  else
  {
   door_close(IdoorLEFT, IdoorRIGHT, OdoorTL, OdoorTR);
   wait(.1);
   Elevator thread move_func(zdist2, etime, zdirec);
   IdoorLEFT thread move_func(zdist2, etime, zdirec);
   IdoorRIGHT thread move_func(zdist2, etime, zdirec);
   Elevator waittill ("movedone");
   door_open(IdoorLEFT, IdoorRIGHT, OdoorBL, OdoorBR);
   level.elevDown=true;
   level.elevMove=false;
  }
  wait(.1);
}

door_close(leftIN, rightIN, leftOUT, rightOUT)
{
  LDclose=41;
  RDclose=-41;	
  ydirec="x";
  dtime=1.1;
  leftIN thread move_func(LDclose,dtime, ydirec);
  rightIN thread move_func(RDclose,dtime, ydirec);
  wait(1);
  leftOUT thread move_func(LDclose,dtime, ydirec);
  rightOUT thread move_func(RDclose,dtime, ydirec);
  wait(1);
 }

door_open(leftyIN, rightyIN, leftyOUT, rightyOUT)
{
  LDopen=-41;
  RDopen=41;
  ydirec="x";
  dtime=1.1;
  leftyOUT thread move_func(LDopen,dtime, ydirec);
  rightyOUT thread move_func(RDopen,dtime, ydirec);
  wait(1);
  leftyIN thread move_func(LDopen,dtime, ydirec);
  rightyIN thread move_func(RDopen,dtime, ydirec);
 }

move_func(dist,time,direc)
{
  if(direc=="z")
  self movez (dist, time, (time/2), (time/2));
  if(direc=="x")
   self movex (dist, time, (time/2), (time/2));
   self waittill ("movedone");
}



Jedenfalls habe ich keine ahnung wie ich das machen muss...

Die Sounds habe ich schon..

DANKE!!


--- Edit by Nightwing: Thema in Scripthilfe verschoben ---
Banana2077
Hat den GAR keiner eine Idee???
Nightwing
WIe OMWG hier schon geschrieben hat, ist das Script fehlerhaft:

Zitat:

Original von OLD MAN WITH GUN

Ich hab mir jetzt mal den script etwas genauer angeschaut.
Der steckt voller Fehler.
z.B. werden in Zeile 44 die Türen geöffnet (aber als eigenständige Funktion). Dadurch wartet die Funktion elev_move nicht, bis die Funktion door_open fertig ist, sondern läuft sofort weiter. Und in Zeile 51 bzw. 67 werden die Türen schon wieder geschlossen. Die Türen bekommen also den Befehl sich zu öffnen und nur Millisekunden später gleich den Befehl sich wieder zu schließen. Öffnen und schließen läuft also gleichzeitig. Was wird da wohl passieren? Wahrscheinlich nichts.
Und wenn der Aufzug sich nach oben bzw. unten bewegt hat werden die Türen geöffnet (Zeile 58 bzw. 74) und bleiben offen, da kein weiterer Schließbefehl kommt. Und wenn der Aufzug jetzt wieder getriggert wird, sollen die Türen geöffnet werden (aber die sind doch schon offen, und werden jetzt noch weiter geöffnet).


Du könntest mal dieses Script probieren, da sind schon Sounds drin.

Code einblendenCode 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:
main(){

	level.elevatorDown = true;
	level.elevatorMoving = false;
	
	thread elevator_start();
}

elevator_start(){

	elevator = getentarray ("switch","targetname");
	
	if ( isdefined(elevator) )
		for (n = 0; n < elevator.size; n++)
			elevator2[n] thread elevator_think();
}

elevator_think(){

	while (1){
	
		self waittill ("trigger");
		
		if (!level.elevatorMoving)
			thread elevator_move();
	}
}

elevator_move(){

	elevator = getentarray ("switch","targetname");
	elevatormodel = getent ("elevator", "targetname");
	
	level.elevatorMoving = true;
	
	speed = 5;
	height = 5600;
	
	if (level.elevatorDown){
	
		elevatormodel playloopsound ("elevator_move");
		elevatormodel movex (height, speed);
		elevator linkto (elevatormodel2);
		elevatormodel waittill ("movedone");
		elevatormodel stoploopsound();
		level.elevatorDown = false;
	}

	else{
	
		elevatormodel playloopsound ("elevator_move");
		elevatormodel movex (height - (height * 2), speed);
		elevator linkto (elevatormodel);
		elevatormodel waittill ("movedone");
		elevatormodel stoploopsound();
		level.elevatorDown = true;
	}
	
	level.elevatorMoving = false;
}


ToM
Banana2077
Hmh das habe ich auch schon in einem anderen elevator verwendet , da hier aber keine türen verwendet werden ist das dann wohl unbrauchbar..
sorry
Nightwing
Nimm doch dieses Script, das OMWG im andern Thread angegeben hat.
Sounds kannst Du an der entsprechenden Stelle selbst einscripten:

Code einblendenCode 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:
main
{
[...]

	level.scr_sound["sound_1"] = "sound_1"; // Hier wird der Sound definiert
	level.scr_sound["sound_2"] = "sound_2"; // Hier wird der Sound definiert
	level.scr_sound["sound_3"] = "sound_3"; // Hier wird der Sound definiert
	
[...]
}

[...]

elevator_move() 
{
[...]

	elevatormodel playsound ("sound_1"); // Hier wird der zuvor definierte Sound abgespielt
	// oder
	elevatormodel playsound ("sound_2"); // Hier wird der zuvor definierte Sound abgespielt
	// oder
	elevatormodel playsound ("sound_3"); // Hier wird der zuvor definierte Sound abgespielt
	
[...]
}


ToM
Banana2077
sorry dafür bin ich zu doof :/

kann mir das jmd einbinden?