Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Elevatortüren aufhalten » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Elevatortüren aufhalten
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Banana2077
Turnbeutelvergesser


images/avatars/avatar-1613.jpg


Dabei seit: 13.12.2009
Beiträge: 410


Elevatortüren aufhalten Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hey leute,

ich habe in meiner map einen aufzug mit diesem 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:
106:
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");
}



Ziemlich komplex mit 4 Türen usw..

Nun möchte ich einen Trigger einbauen der verhindert das sich die türen schliessen wenn jmd diesen trigger berührt...

das allgmein der fahrstuhl anfährt soll verhindert werden...

Könnte mir das jmd erklären?

danke!

__________________
Wie wollen sie das Internet gerne bestellen?

Komplett als 204.344.554.583 Blu-Rays oder ohne Pornos auf 2CDs?

______________________________________________________

Meine Website: http://rednosemaps.com
Banana2077 ist offline E-Mail an Banana2077 senden Beiträge von Banana2077 suchen Nehmen Sie Banana2077 in Ihre Freundesliste auf
wacko
5-Minuten-Ei


Dabei seit: 17.01.2011
Beiträge: 19


RE: Elevatortüren aufhalten Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hi.
hab jetzt, muss ich gestehen, noch keine zeile für cod4 gescripted, früher aber ein bisserl für Moh:AA
Wenn hier gleich die kompetenten Antworten anrauschen, kannst Du mich also getrost links liegen lassen, wär ich nicht böse.

Ansonsten hätte ich ein paar Fragen, um in den Code reinzufinden:

1. Da gibt's in der Karte einen Trigger mit targetname 'trigger', der den Lift starten lässt!? Wo liegt der?
2. Was passiert denn jetzt, wenn man den Trigger auslöst? Es sieht so aus:
    Der Lift steht oben oder unten.
    Der Trigger wird ausgelöst
    Die Türen innen und aussen am aktuellen Haltepunkt schliessen sich
    Der Lift mit den inneren Türen fährt zum anderen Haltepunkt
    Die Türen innen und die aussen am aktuellen Haltepunkt gehen auf
Stimmt das?
3. Was willst Du nochmal? Einen zweiten Trigger, der den Lift komplett abschaltet?
wacko ist offline E-Mail an wacko senden Beiträge von wacko suchen Nehmen Sie wacko in Ihre Freundesliste auf
Banana2077
Turnbeutelvergesser


images/avatars/avatar-1613.jpg


Dabei seit: 13.12.2009
Beiträge: 410


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

1. Einmal vor den aussentüren und einer vor einem button im lift.
2. Richtig!
3. Das problem ist wenn jmd am ort steht wo die türen stehen und die türen gehen zu steckt er fest und der lift fährt zb nur mit einer innentür hoch...

__________________
Wie wollen sie das Internet gerne bestellen?

Komplett als 204.344.554.583 Blu-Rays oder ohne Pornos auf 2CDs?

______________________________________________________

Meine Website: http://rednosemaps.com
Banana2077 ist offline E-Mail an Banana2077 senden Beiträge von Banana2077 suchen Nehmen Sie Banana2077 in Ihre Freundesliste auf
wacko
5-Minuten-Ei


Dabei seit: 17.01.2011
Beiträge: 19


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ahaa smile

Dann brauchst Du also einen Trigger "schutz_trigger", der die gesamten Türen komplett einschliesst (also in dem die Türen drinstecken, sodass man zwangsläufig diesen schutz_trigger berührt, wenn man von den Türen eingequetscht werden könnte)
Dann brauchst Du am besten einen clip-brush mit targetname 'schutz_block', der "ein- und ausgeblendet" werden kann.
Und dann wird im Script
erstens der 'schutz_block' auf nonsolid gesetzt.
$schutz_block nonsolid hieß das in moh, hier weiß ich nicht.

Dann wird ja in Deiner while(1) gewartet, ob jemand den 'trigger' auslöst.

Sobald das jemand tut, wird nachgesehen, ob der 'schutz_trigger' frei also unberührt ist und wenn nicht, wird darauf gewartet.

Sobald er frei ist, wird der schutz_block auf solid gesetzt, damit da keiner mehr hin kann und jetzt

Schliessen sich die Türen und der Lift fährt los.
wacko ist offline E-Mail an wacko senden Beiträge von wacko suchen Nehmen Sie wacko in Ihre Freundesliste auf
Banana2077
Turnbeutelvergesser


images/avatars/avatar-1613.jpg


Dabei seit: 13.12.2009
Beiträge: 410


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Gut also ein Trigger_multiple brauchen wir da....

Nur habe ich leider keine Ahnung vom scripting wäre jmd so nett und baut mir die funktion in das script ein? :3


danke!

__________________
Wie wollen sie das Internet gerne bestellen?

Komplett als 204.344.554.583 Blu-Rays oder ohne Pornos auf 2CDs?

______________________________________________________

Meine Website: http://rednosemaps.com

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Banana2077: 24.01.2011 21:53.

Banana2077 ist offline E-Mail an Banana2077 senden Beiträge von Banana2077 suchen Nehmen Sie Banana2077 in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

habe auf der basis eines scriptes hier aus dem forum mein eigenes geschrieben, sieht im prinzip wie deins aus, nur ohne die move:func

macheim radiant folgendes:
-erstelle eine das je für beide ausgänge (oben und unten)
>erstelle einen clip-brush der genau so hoch und genau so bereit wie deine ausgänge am fahrstuhl sind
>die clip-brushes werden nun nach oben geschoben, sodass sie genau über den ausgängen sind
>clip-brushes jeweils als scropt_brushmodel machen und mit tartegnamen versehen
unten: targetname blocker_bot
oben: targetname blocker_top

es sind auch noch 2 anzeiger dabei, die dir zeigen wo der fahrstuhl im moment grade ist

hier im forum ist fast das gleiche nur noch mit zusätzlich eingebundenen effecten die dir zeigen, ob der aufstuhl bereit ist oder nicht (rot-grün)



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:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
main()
{
	level.liftdown = true;
	level.liftmove = false;

	thread elevator_begin();

}


elevator_begin()
{
lift_trig = getentarray ("lift_trigger","targetname");

bd_left = getent("bd_left","targetname");
bd_right = getent("bd_right","targetname");
left_d = getent("left_d","targetname");
right_d = getent("right_d","targetname");
inner_doorsize = 56;
outer_doorsize = 64;

left_d movey(inner_doorsize  - (inner_doorsize * 2) ,2,0.5,0.5);
right_d movey(inner_doorsize,2,0.5,0.5);
bd_left movey(outer_doorsize  - (outer_doorsize * 2) ,2,0.5,0.5);
bd_right movey(outer_doorsize,2,0.5,0.5);


if ( isdefined(lift_trig) )
for (i = 0; i < lift_trig.size; i++)
lift_trig[i] thread elevator_think();
}


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


elevator_move()
{
licht = getent("licht","targetname");
elevator = getent("elevator","targetname");
bd_left = getent("bd_left","targetname");
bd_right = getent("bd_right","targetname");
td_left = getent("td_left","targetname");
td_right = getent("td_right","targetname");
left_d = getent("left_d","targetname");
right_d = getent("right_d","targetname");
blocker_bot = getent("blocker_bot","targetname");
blocker_top = getent("blocker_top","targetname");
indi_bot = getent("indi_bot","targetname");
indi_top = getent("indi_top","targetname");
top_point = getent ("top_point","targetname");
bot_point = getent ("bot_point","targetname");

level.liftmove = true;
trigger_hide();
speed = 3;
height = distance( top_point.origin,bot_point.origin);
inner_doorsize = 56;
outer_doorsize = 64;
blockerhigh = 128;
indicator = 50;

wait 1;

if (level.liftdown) 
	{

	blocker_bot movez(blockerhigh - (blockerhigh * 2) ,0.2); 
	blocker_bot waittill("movedone");
	right_d movey(inner_doorsize  - (inner_doorsize * 2) ,2,0.5,0.5);
	left_d movey(inner_doorsize ,2,0.5,0.5);
	wait 0.5;
	bd_right movey(outer_doorsize  - (outer_doorsize * 2) ,2,0.5,0.5);
	bd_left movey(outer_doorsize,2,0.5,0.5);
	bd_right waittill("movedone");
	blocker_bot movez(blockerhigh,0.2); 

	wait 1.5;

	elevator movez (height, speed, 1, 1);  
	right_d  movez (height, speed, 1, 1); 
	left_d movez (height, speed, 1, 1);
	licht movez (height, speed, 1, 1);
	indi_top movex (indicator - (indicator * 2) , speed); 
	indi_bot movex (indicator - (indicator * 2) , speed);
	elevator waittill ("movedone"); 
	
	wait 1.5;
	
	td_right movey(outer_doorsize,2,0.5,0.5);
	td_left movey(outer_doorsize  - (outer_doorsize * 2) ,2,0.5,0.5);
	wait 0.5;
	right_d movey(inner_doorsize,2,0.5,0.5);
	left_d movey(inner_doorsize  - (inner_doorsize * 2) ,2 ,0.5,0.5);
	left_d waittill("movedone");
	
	level.liftdown = false; 
	
	}
else
	{
	
	blocker_top movez(blockerhigh - (blockerhigh * 2),0.2); 
	blocker_top waittill("movedone");	
	right_d movey(inner_doorsize  - (inner_doorsize * 2) ,2,0.5,0.5);
	left_d movey(inner_doorsize,2,0.5,0.5);
	wait 0.5;
	td_right movey(outer_doorsize  - (outer_doorsize * 2),2,0.5,0.5);
	td_left movey(outer_doorsize,2,0.5,0.5);
	td_left waittill("movedone");
	blocker_top movez(blockerhigh,0.2); 
	
	wait 1.5;

	elevator movez (height - (height * 2) , speed, 1, 1);  
	right_d  movez (height - (height * 2), speed, 1, 1); 
	left_d moveZ (height - (height * 2), speed, 1, 1);
	licht movez (height - (height * 2), speed, 1, 1);
	indi_top movex (indicator, speed); 
	indi_bot movex (indicator, speed);
	elevator waittill ("movedone"); 
	
	wait 1.5;

	bd_right movey(outer_doorsize,2,0.5,0.5);
	bd_left movey(outer_doorsize  - (outer_doorsize * 2) ,2,0.5,0.5);
	wait 0.5;
	left_d movey(inner_doorsize  - (inner_doorsize * 2) ,2,0.5,0.5);
	right_d movey(inner_doorsize,2,0.5,0.5);
	right_d waittill("movedone");

	level.liftdown = true; 

	}

level.liftmove = false;
}


trigger_hide()
{
switcher = getentarray ("lift_trigger","targetname");
for(i=0; i<switcher.size; i++) switcher[i] maps\mp\_utility::triggerOn();
}


trigger_show()
{
switcher = getentarray ("lift_trigger","targetname");
for(i=0; i<switcher.size; i++) switcher[i] maps\mp\_utility::triggerOff();
}

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
wacko
5-Minuten-Ei


Dabei seit: 17.01.2011
Beiträge: 19


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

trigger_hide() wird aufgerufen, und trigger_show() nicht?!

Warum blocker_bot dann um (blockerhigh - (blockerhigh * 2)) bewegt wird, würde mich auch interessieren. Darf man das hier nicht anders schreiben, z.B. (blockerhigh * -1) ?

Zudem hilft das Banana aber auch nicht wirklich weiter: Der Spieler wird halt jetzt von dem blocker eingequetscht und nicht mehr von den Türen, oder sehe ich das falsch?

Oh Mann! Und mein dreggs Radiant geht ned. Ich hätt jetzt echt Lust, das auszuprobieren Augen rollen
wacko ist offline E-Mail an wacko senden Beiträge von wacko suchen Nehmen Sie wacko in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

du merkst kaum wenn der doorblocker runtergeht
wenn du drunter stehst ist die tür offen, du kannst nur nicht mehr springen
sobald du aus dem blockerberecih weggesht gehen sofort die türen zu
ich finde das es eine gute lösung ist, fällt kaum im spiel auf
man könnte auch einen trigger multiple anstatt den doortrigger nehmen und dann es so definieren, dass wenn jmd den trigger berührt, sich die türen nicht schließen
mit hide und show bin ich vorsichtig, könnte passieren das dann ein spieler im blocker stecken bleibt

ja mein skript ist nicht perfekt, ich weiß smile
ich probiers mal mit -1 aus, prima idee von dir war zu einfach um es zu erkennen :p
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
wacko
5-Minuten-Ei


Dabei seit: 17.01.2011
Beiträge: 19


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

du merkst kaum wenn der doorblocker runtergeht
wenn du drunter stehst ist die tür offen, du kannst nur nicht mehr springen
cool, da hast du recht.
und bitte nicht angegriffen fühlen, ich will das nur alles verstehen; ein wenig anders is es ja doch als früher...
wacko ist offline E-Mail an wacko senden Beiträge von wacko suchen Nehmen Sie wacko in Ihre Freundesliste auf
Banana2077
Turnbeutelvergesser


images/avatars/avatar-1613.jpg


Dabei seit: 13.12.2009
Beiträge: 410


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Habe 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:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
	level.elevatorDown = true; // elevator starts at bottom: true/false
	level.elevatorMoving = false; // elevator is not currently moving
    level._effect[ "redflash" ]			= loadfx( "misc/lift_light_red" ); // loads the 3 different effects required - normally this would go in the _fx.gsc file
    level._effect[ "redstatic" ]		= loadfx( "misc/lift_light" );
    level._effect[ "greenstatic" ]		= loadfx( "misc/lift_light_green" );

    level.showgreen = true;
    level.redflash = false;
    level.redstatic = false;
    

	thread elevator_start();

}

elevator_start() 
{
level.elevLight = getentarray ("redlightb","targetname");
elevator = getentarray ("elevatorswitch","targetname");

toprightdoor = getent ("trightdoor","targetname");
topleftdoor = getent ("tleftdoor","targetname");
toprightdoor movex(-31,0.05);
topleftdoor moveX(31,0.05);

rightgate = getent ("rightdoor", "targetname"); 
leftgate = getent ("leftdoor", "targetname"); 


if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();


for(i=0; i<level.elevLight.size; i++)
{
    level.elevLight[i] thread flash_red();
    level.elevLight[i] thread staticRed();
    level.elevLight[i] thread staticGreen();
}
}

elevator_think() 
{

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


elevator_move() 
{
// read all required entities into script
elevatormodel = getent ("elevatormodel", "targetname");
rightgate = getent ("rightdoor", "targetname"); 
leftgate = getent ("leftdoor", "targetname"); 
topblock = getent ("topblock","targetname");
bottomblock = getent ("bottomblock","targetname");
toprightdoor = getent ("trightdoor","targetname");
topleftdoor = getent ("tleftdoor","targetname");
bottomrightdoor = getent ("brightdoor","targetname");
bottomleftdoor = getent ("bleftdoor","targetname");
topgauge = getent ("topgauge","targetname");
bottomgauge = getent ("bottomgauge","targetname");
top_point = getent ("shaft_top","targetname");
bottom_point = getent ("shaft_bottom","targetname");
lamp = getent ("elevatorlight","targetname");


level.showgreen = false;
level.redflash = true;

level.elevatorMoving = true;
hide_trigs(); // hides triggers while elevator is moving
speed = 10;

height = distance( top_point.origin, bottom_point.origin ); // calculates the distance between top and bottom
wait (0.5);

if (level.elevatorDown) 
{ // this half of the if statement executes if the elevator is at the bottom (i.e. level.elevatorDown equals true)
bottomblock moveZ(-100,0.2); // blocks gateway before closing visible gates

bottomblock waittill("movedone");

rightgate movex(-31,2,0.5,0.5); // closes right elevator gate
leftgate moveX(31,2,0.5,0.5); // closes left elevator gate
wait 0.5;

bottomrightdoor movex(-31,2,0.5,0.5); // closes right bottom door which blocks entry to elevator shaft.
bottomleftdoor moveX(31,2,0.5,0.5); // closes left bottom door which blocks entry to elevator shaft.

bottomleftdoor waittill("movedone"); // script waits until gate is closed
bottomblock moveZ(100,0.2); // unsets door block (no longer needed)
wait (1); // short pause
level.redflash = false;
level.redstatic = true;


wait (1); 

elevatormodel moveZ (height, speed, 1, 1); // moves the cage up 
rightgate  moveZ (height, speed, 1, 1); // moves the right gate up at same speed as the cage - you can use the linkto technique, but it tends to make the doors shake
leftgate moveZ (height, speed, 1, 1); // moves the left gate up with cage
lamp moveZ (height, speed, 1, 1); // moves the elevator light
topgauge moveZ (14, speed); // moves the elevator position gauge
bottomgauge moveZ (14, speed); //ditto
elevatormodel waittill ("movedone"); // script waits until cage has finished its movement

level.redstatic = false;
level.redflash = true;

wait (1); 

toprightdoor movex(31,2,0.5,0.5); // opens top right door
topleftdoor moveX(-31,2,0.5,0.5); // opens top left door
wait 0.5;
rightgate movex(31,2,0.5,0.5); // opens elevator right door
leftgate moveX(-31,2,0.5,0.5); // opens elevator left door
leftgate waittill("movedone");

level.elevatorDown = false; // this var tells the script the elevator must go down next time.

}


else {  // this half makes the elevator go down - largely the same as above, but in reverse order
topblock moveZ(-100,0.2);

topblock waittill("movedone");
rightgate movex(-31,2,0.5,0.5);
leftgate moveX(31,2,0.5,0.5);
wait 0.5;

toprightdoor movex(-31,2,0.5,0.5);
topleftdoor moveX(31,2,0.5,0.5);

leftgate waittill("movedone");
topleftdoor waittill("movedone");
topblock moveZ(100,0.2);
level.redflash = false;
level.redstatic = true;
wait (1); 



wait (1);  
elevatormodel moveZ (height - (height * 2), speed, 1, 1);
rightgate  moveZ (height - (height * 2), speed, 1, 1);
leftgate moveZ (height - (height * 2), speed, 1, 1);
lamp moveZ (height - (height * 2), speed, 1, 1);
topgauge moveZ (-14, speed);
bottomgauge moveZ (-14, speed);
elevatormodel waittill ("movedone");

level.redstatic = false;
level.redflash = true;


wait (1); 
bottomrightdoor movex(31,2,0.5,0.5);
bottomleftdoor moveX(-31,2,0.5,0.5);
wait 0.5;
rightgate movex(31,2,0.5,0.5);
leftgate moveX(-31,2,0.5,0.5);
leftgate waittill("movedone");

level.elevatorDown = true;
}
level.redflash = false;
wait 0.5;
level.showgreen = true;

level.elevatorMoving = false;
show_trigs(); // shows triggers again.
}

//=================================================//
//       These two functions show                  //
//       and hide the triggers                     //
//=================================================//


hide_trigs()
{
switches = getentarray ("elevatorswitch","targetname");

for(i=0; i<switches.size; i++) switches[i] maps\mp\_utility::triggerOff();

}

show_trigs()
{
switches = getentarray ("elevatorswitch","targetname");

for(i=0; i<switches.size; i++) switches[i] maps\mp\_utility::triggerOn();

}


//=================================================//
//       These three functions control the         //
//       elevator indicator lights                 //
//=================================================//

flash_red()
{
      while(1)
      {
             while(level.redflash)
             {
                    PlayFX( level._effect[ "redflash" ], self.origin );
                    wait 0.5;
             }
             wait 0.05;
      }
}

staticRed()
{
      while(1)
      {
              while(level.redstatic)
              {
                      PlayFX( level._effect[ "redstatic" ], self.origin );
                      wait 0.1;
              }
              wait 0.05;
      }
}

staticGreen()
{
      while(1)
      {
              while(level.showgreen)
              {
                      PlayFX( level._effect[ "greenstatic" ], self.origin );
                      wait 0.1;
              }
              wait 0.05;
      }
}



benutzt..
jetzt geht es trotzdem danke! smile

__________________
Wie wollen sie das Internet gerne bestellen?

Komplett als 204.344.554.583 Blu-Rays oder ohne Pornos auf 2CDs?

______________________________________________________

Meine Website: http://rednosemaps.com
Banana2077 ist offline E-Mail an Banana2077 senden Beiträge von Banana2077 suchen Nehmen Sie Banana2077 in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Elevatortüren aufhalten

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv