[Download] Eigene Aufzugtür

Marvin
Wollte euch mal einen Download geben:

Habe mir eine eigene Aufzugtür gebastelt und sie funktioniert! Aber es gibt einen Nachteil, dazu kommen wir aber später. Download: http://rapidshare.de/files/45657682/elev...oor_01.map.html

Nachteile:

Die Tür funktioniert nur in einer Richtung. Ihr müsst mal ein bisschen rumprobieren. Welche Richtung richtig ist. Wenn sie in der richtigen Position liegt. Es könnte sein wenn sie nicht richtig rum ist, dass die Türen inneinander fahren oder eine in eure richtung und eine anders rum. Aber eine Position funktioniert mit garantie!

Damit sie funktioniert braucht ihr das script.
Download: http://rapidshare.de/files/45657957/_doorMover1.gsc.html Fügt dieses script in euren cod4mod/raw/maps/mp Ordner ein und macht dann noch folgende einträge in der .gsc und der .csv.

.gsc

Geht in euren cod4mod/raw/maps/mp Ordner und öffnet eure Mapname.gsc mit dem Texteditor:

maps\mp\_load::main();
Hier kommen noch weitere Einstellungen

thread maps\mp\_doorMover1::main();

Tragt die grüne Zeile ein!

.csv

Wählt bei compiele tools eure map aus und macht update zone file:

Auf der rechten Seite tragt ihr die grüne Zeile ein:

rawfile,maps/mp/_doorMover1.gsc

Drückt unten auf Save und führt bei eurer Map diese Schritte aus:

1.Compile BSP
3.Build Fast File
5.Run selected Map

Die Schritte 1. und 3. Könnten etwas dauern. Je nachdem wie groß die Map ist. Nun sollte man die Tür öffnen können wenn ihr im Auslöser (Trigger) "Benutzen" drückt. Aber ihr solltet den von mir geposteten Nachteil berücksichtigen. Einfach rumprobieren. Map öffnen, Tür drehen und die Schritte 1, 3 und 5 ausführen.

Viel Spaß damit! Augenzwinkern Wenn es Probeme gibt bitte hier posten!

Lg Marvin
steinacker
also wenn du schon tuts hier reinstellst, solltest du auch eine ahnung davon haben wie das ganze funktioniert
und du benutzt ganz ungeniert mein script dafür, das ich dir hier als hilfe angeboten hab

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:
main()
{
	level.plateDown1 = true;
	level.plateMoving1 = false;

	level.plateDown2 = true;
	level.plateMoving2 = false;

	level.plateDown3 = true;
	level.plateMoving3 = false;

	level.plateDown4 = true;
	level.plateMoving4 = false;

	thread plate_start1();
	thread plate_start2();
	thread plate_start3();
	thread plate_start4();
}

////////////////////////////////////////////plate1////////////////////
plate_start1()
{
	plate1 = getentarray ("switch1","targetname");

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

plate_think1()
{
	while (1)
	{
	self waittill ("trigger");

	if (!level.plateMoving1)
		thread plate_move1();
	}
}

plate_move1()
{
	platemodel1 = getent ("plate1", "targetname");

	level.plateMoving1 = true;

	speed = 3;
	height = 75;

	if (level.plateDown1)
	{
		platemodel1 movez (height, speed);	//bewegt sich nach oben um 52 WE
		platemodel1 waittill ("movedone");
		level.plateDown1 = false;


	}
	else
	{
		platemodel1 movez (height - (height * 2), speed);	//und dann wieder zurück um 52 WE
		platemodel1 waittill ("movedone");
		level.plateDown1 = true;
	}
	level.plateMoving1 = false;
}

////////////////////////////////////////////plate2////////////////////
plate_start2()
{
	plate2 = getentarray ("switch1","targetname");

	if ( isdefined(plate2) )
		for (j = 0; j < plate2.size; j++)
		plate2[j] thread plate_think2();
}

plate_think2()
{
	while (1)
	{
	self waittill ("trigger");

	if (!level.plateMoving2)
		thread plate_move2();
	}
}
plate_move2()
{
	platemodel2 = getent ("plate2", "targetname");

	level.plateMoving2 = true;

	speed = 3;
	height = 52;

	if (level.plateDown2)
	{

		platemodel2 movex (height, speed);	//platte2 nach rechts
		platemodel2 waittill ("movedone");
		level.plateDown2 = false;
	}
	else
	{
		platemodel2 movex (height - (height * 2), speed);	//und wieder zurück
		platemodel2 waittill ("movedone");
		level.plateDown2 = true;
	}
	level.plateMoving2 = false;
}

////////////////////////////////////////////plate3////////////////////
plate_start3()
{
	plate3 = getentarray ("switch1","targetname");

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

plate_think3()
{
	while (1)
	{
	self waittill ("trigger");

	if (!level.plateMoving3)
		thread plate_move3();
	}
}

plate_move3()
{
	platemodel3 = getent ("plate3", "targetname");

	level.plateMoving3 = true;

	speed = 3;
	height = -52;

	if (level.plateDown3)
	{
		platemodel3 movez (height, speed);	//platte 3 nach unten
		platemodel3 waittill ("movedone");
		level.plateDown3 = false;
	}
	else
	{
		platemodel3 movez (height - (height * 2), speed);	//und wieder zurück
		platemodel3 waittill ("movedone");
		level.plateDown3 = true;
	}
	level.plateMoving3 = false;
}

////////////////////////////////////////////plate4////////////////////
plate_start4()
{
	plate4 = getentarray ("switch1","targetname");

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

plate_think4()
{
	while (1)
	{
	self waittill ("trigger");

	if (!level.plateMoving4)
		thread plate_move4();
	}
}

plate_move4()
{
	platemodel4 = getent ("plate4", "targetname");

	level.plateMoving4 = true;

	speed = 3;
	height = -52;

	if (level.plateDown4)
	{
		platemodel4 movex (height, speed);	//platte 4 nach links
		platemodel4 waittill ("movedone");
		level.plateDown4 = false;
	}
	else
	{

		platemodel4 movex (height - (height * 2), speed);	//und wieder zurück
		platemodel4 waittill ("movedone");
		level.plateDown4 = true;
	}
	level.plateMoving4 = false;
}


und das noch nicht mal angepasst - für was sind denn plate1 und plate3 wenn das nur eine 2-teilige tür ist und warum geht das nur in einer richtung
solche dinge solltest du schon wissen
Marvin

Zitat:

Original von steinacker
also wenn du schon tuts hier reinstellst, solltest du auch eine ahnung davon haben wie das ganze funktioniert
und du benutzt ganz ungeniert mein script dafür

und das noch nicht mal angepasst - für was sind denn plate1 und plate3 wenn das nur eine 2-teilige tür ist und warum geht das nur in einer richtung
solche dinge solltest du schon wissen


Sorry, dass ich deinen Script benutzt habe. Vieleicht hätte ich ja noch oben reinschreiben sollen dass das script dir gehört!!! Ich hatte nur vergessen plate1 und plate3 raus zu nehmen. Habe nur den Zusatz: switch1 an den 2 Stellen mit targetname gemacht. Ansonsten nochmal sorry, sorry, sorry. Außerdem: Ich habe nur nicht gewusst in welche Richtung ich das Prefab rotieren musste damit es geklappt hat!

Marvin

Ps: Für alle: Das script ist von steinacker. Ich bin zu dumm einen eigenen script zu basteln! (Wie steinacker oben schon geschrieben hat)
steinacker
das okinol-script stammt auch nicht von mir, ich habe das für diese türe, die ich dir gegeben habe nur abgeändert und angepasst.
im prinzip isses mir ja wurschd, aber du hättest wenigstens das script anpassen können und dir gedanken machen, warum die türe nur in einer richtung funktioniert, denn wenn einer dein tut ausprobiert und es nicht funktioniert, dann kommt als nächstes genau diese frage

der grund liegt in den befehlen
movex --> bewegung entlang an der x-achse (move x, bewege x)
movey --> bewegung entlang an der y-achse (move y, bewege y)
movez --> bewegung entlang an der z-achse (move z, bewege z)

jetzt kannst du dein tut nochmal überarbeiten

wenn die türe nach oben öffnen soll: movez
wenn die türen seitlich öffnen sollen, dann movex oder movey, je nachdem auf welcher achse die türe ausgerichtet ist