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-Tutorials / Wiki » [Tutorial] Öffnende Tür erstellen * » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (3): « vorherige 1 2 [3] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Tutorial] Öffnende Tür erstellen * 2 Bewertungen - Durchschnitt: 10,002 Bewertungen - Durchschnitt: 10,002 Bewertungen - Durchschnitt: 10,002 Bewertungen - Durchschnitt: 10,002 Bewertungen - Durchschnitt: 10,00
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Sorkan
Teetrinker


Dabei seit: 18.01.2006
Beiträge: 30


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

Es tut mir leid, aber ich raffs alleine nicht. Habe genau das unten stehende Script eins zu eins per copy and paste übertragen. Habe auch die Trigger in meinem Tür-Prefab so bezeichnet wie im Script, also trigger_1_tuer_, und trigger_2_tuer_1...
Jedoch bringt er mir jedesmal diesen Fehler, auch wenn ichs erstmal nur mit einer Tür probiere.



Ich möchte für meine Map eben solch einen Schiebetürmechanismus a la Supermarkt. Aber auch nachdem ich im Wiki die Rubrik Scripten mir angesehen habe, verstehe ich zwar,was da (also im Script) steht, kanns aber nicht nachvollziehen, bzw. den Fehler selbst lokalisieren.

Zitat:

Original von Nightwing

Script ist logischerweise auf mehrere Türen erweiterbar:

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

	thread door1();
	thread door2();
}

door1(){

	level.door1_open = false;
	
	thread door1_trigger_right();
	thread door1_trigger_left();
}

door1_trigger_right(){

	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("trigger_1_tuer_1","targetname");
	
	while (1){
	
		door1_trigger_right waittill ("trigger");

		if (level.door1_open == true){

			thread door1_trigger_left();

			return;
		}

		else if (level.door1_open == false){

			level.door1_open = true;

			door1 rotateroll(-90,3.8,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait 5;
			
			door1 rotateroll(90,3.3,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			
			thread door1_trigger_right();
			thread door1_trigger_left();
			
			return;
		}
	}
}

door1_trigger_left(){

	door1 = getent ("door1","targetname");
	door1_trigger_left = getent ("trigger_2_tuer_1","targetname");

	while (1){

		door1_trigger_left waittill ("trigger");

		if (level.door1_open == true){

			thread door1_trigger_right();

			return;
		}

		else if (level.door1_open == false){

			level.door1_open = true;
			
			door1 rotateroll(90,3.8,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait 5;
			
			door1 rotateroll(-90,3.3,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			
			thread door1_trigger_left();
			thread door1_trigger_right();
			
			return;
		}
	}
}

door2(){

	level.door2_open = false;
	
	thread door2_trigger_right();
	thread door2_trigger_left();
}

door2_trigger_right(){

	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("trigger_1_tuer_2","targetname");
	
	while (1){
	
		door2_trigger_right waittill ("trigger");

		if (level.door2_open == true){

			thread door2_trigger_left();

			return;
		}

		else if (level.door2_open == false){

			level.door2_open = true;

			door2 rotateroll(-90,3.8,0.5,0.5);
			door2 playsound ("door_open");
			door2 waittill ("rotatedone");
			
			wait 5;
			
			door2 rotateroll(90,3.3,0.5,0.5);
			door2 playsound ("door_close");
			door2 waittill ("rotatedone");
			
			level.door2_open = false;
			
			thread door2_trigger_right();
			thread door2_trigger_left();
			
			return;
		}
	}
}

door2_trigger_left(){

	door2 = getent ("door2","targetname");
	door2_trigger_left = getent ("trigger_2_tuer_2","targetname");

	while (1){

		door2_trigger_left waittill ("trigger");

		if (level.door2_open == true){

			thread door2_trigger_right();

			return;
		}

		else if (level.door2_open == false){

			level.door1_open = true;
			
			door2 rotateroll(90,3.8,0.5,0.5);
			door2 playsound ("door_open");
			door2 waittill ("rotatedone");
			
			wait 5;
			
			door2 rotateroll(-90,3.3,0.5,0.5);
			door2 playsound ("door_close");
			door2 waittill ("rotatedone");
			
			level.door2_open = false;
			
			thread door2_trigger_left();
			thread door2_trigger_right();
			
			return;
		}
	}
}



Anstelle des rotateRoll, rotateYaw oder rotatePitch kann man auch moveX, moveY oder moveZ eingeben für eine Schiebetür a la Supermarkt bzw einen Fahrstuhl.

Dann heissts eben waittill ("movedone"); anstelle von waittill ("rotatedone");

ToM
Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan in Ihre Freundesliste auf
steinacker
Milupa-Fan


images/avatars/avatar-1080.gif


Dabei seit: 13.03.2008
Beiträge: 662


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

lass mich mal raten...
du hast eine tür gemacht, wahrscheinlich aus nem rahmen und einem fensterbrush ala supermarkt eben, oder so ähnlich

jedenfalls hast du eine tür aus mehreren brushes
aus jedem brush ein script_brushmodel erstellt und jedem der brusches den gleichen targetname gegeben...

denn die gleiche fehelrmeldung hatte ich auch schon, und bei mir wars so wie oben beschrieben

wenn das so ist, dann mach mal den targetname bei allen brushes bis auf einen wech - dann sollte das funktionieren

__________________
Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende grosses Grinsen
steinacker ist offline E-Mail an steinacker senden Beiträge von steinacker suchen Nehmen Sie steinacker in Ihre Freundesliste auf
Sorkan
Teetrinker


Dabei seit: 18.01.2006
Beiträge: 30


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

Öhm, nö.

So sieht meine Tür aus: 2 Türhälften mit jeweils einem origin-dings verbunden (so wie in der anleitung beschrieben). Jede Türhälfte hat als targetname ihren eigenen, also ...1_tuer_1, ...2_tuer_1, ...1_tuer_2 und ...2_tuer_2. Weil ja jjede Hälfte ansteuerbar sein muss und 2 Siten hat, komme ich (so wie in Nightwings Script zumindest angedacht) auf 4 Trigger. Diese hab ich dann entsprechend auf dem Scriptmodel plaziert und den targetname eingetragen. 1_tuer1 auf die linke seite der tür, 2_tuer_1 auf die rechte seite...
Der Türrahmen ist selbst kein Scriptmodel, sondern nur die Türhälften, die sich so öffnen solen, wies z.B. auch bemi Kwik–E–Marts bei den Simpsons, oder Raumschiff Enterprise. Einzeln kann ich die Dinger mit der hier im Thread zuerstgenannten Scriptvorlage schön bewegen, aber sie sollen ja beide gleichzeitig aufgehen, quasi einmal aufmachen, egal ob rechte oder linke Hälfte, und schon öffnen sich beide gleichzeitig.


Mein Prefab:


Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sorkan: 24.05.2008 14:39.

Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


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

Ich frage mich ernsthaft, wieso Du mit einer Doppeltür arbeitest? Es reicht doch völlig eine Tür. Ein Türblatt links und eins rechts. Hier mal ein einfacheres Script, rotate durch move ersetzen...

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

	thread door1();
}

door1(){

	level.door1_open = false;
	
	thread door1_trigger_right();
	thread door1_trigger_left();
}

door1_trigger_right(){

	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("trigger_1_tuer_1","targetname");
	
	time = 5;
	
	while (1){
	
		door1_trigger_right waittill ("trigger");

		if (level.door1_open == true){

			thread door1_trigger_left();

			return;
		}

		else if (level.door1_open == false){

			level.door1_open = true;

			door1 rotateroll(-90,3.8,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait time;
			
			door1 rotateroll(90,3.3,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			
			thread door1_trigger_right();
			thread door1_trigger_left();
			
			return;
		}
	}
}

door1_trigger_left(){

	door1 = getent ("door1","targetname");
	door1_trigger_left = getent ("trigger_2_tuer_1","targetname");
	
	time = 5;
	
	while (1){

		door1_trigger_left waittill ("trigger");

		if (level.door1_open == true){

			thread door1_trigger_right();

			return;
		}

		else if (level.door1_open == false){

			level.door1_open = true;
			
			door1 rotateroll(90,3.8,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait time;
			
			door1 rotateroll(-90,3.3,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			
			thread door1_trigger_left();
			thread door1_trigger_right();
			
			return;
		}
	}
}


Viel Erfolg

ToM

__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 24.05.2008 15:01.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Sorkan
Teetrinker


Dabei seit: 18.01.2006
Beiträge: 30


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

Dann habe ich mich unverständlich ausgedrückt. Ich arbeite mit 2 Türen (meintest du damit 2 Türblätter?). Diese sollen sich gleichzeitig öffnen. Die eine nach links, die andere nach rechts. Supermarkt halt. Habe Dein Script eben übernommen, dann in meinem Prefab den linken Trigger mit trigger_1_tuer_1 versehen und den rechten entsprechend anders. Habe also nun 2 Scriptbrushmodel mit jeweils einem Trigger. Scriptbrushmodel links (linke tür, also türhälfte der großen tür) ist mit Trigger ..._tuer_1 versehen, der andere brush entsprechend mit dem anderen Trigger. Habe dann in der gsc Dein Script eingefügt, alle betreffenden Dateien nochmal vorher gelöscht und neu erstellen lassen. Aber leider kommt noch immer dereingangs erwähnte Fehler. Ist es wichtig, dass ich mein Prefab mehrmals in der Map habe?
Es tut mir auch wirklich leid, dass ich da nicht alleine weiterkomme.
Vielen Dank für Eure Gedud.

Oder liegts daran, dass ich 2 Scriptbrushmodel habe und eigentlich nur eins bräuchte? Also nur einen, ich nenns mal, Originstreifen und nicht 2 (für jede Türhälfte einen)?
Selbst wenn ich alle Trigger von meinem Prefab entferne, gibts den Fehler.?


Edit: Gut, habe den Fehler lokalisiert. Es ist so, dass das Script für eine Tür funktioniert, sobald ich aber mehrere von diesen Türen in der Map plaziere, gehts nicht mehr, dann kommt dieser Fehler, also nun meine neue Frage:

Wie kann ich mehrere Türen (als Prefab) benutzen mit nur einem Script, das muss irgendwie mit arrays gehn, nur wie?
Und weiter:
Dein Script funzt mit den Schiebetüren separat. Wie kann ich aber mit der Aktivierung einer der Türen BEIDE gleichzeitig aktivieren?
Thx for all help. Augen rollen

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Sorkan: 24.05.2008 20:20.

Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan in Ihre Freundesliste auf
Matrixpro
Milupa-Fan


images/avatars/avatar-759.jpg


Dabei seit: 16.04.2006
Beiträge: 607


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 also mit dem scrip was hier im ersten beitrag geschrieben wurde funzt es nicht, bekomme immer nen runtime fehler,ich nutze nun das für cod2 und es funzt ohne pobs.... aber trozdem großes lob an die die sich die ganze mühe hier gemacht haben. cu
Matrixpro ist offline E-Mail an Matrixpro senden Beiträge von Matrixpro suchen Nehmen Sie Matrixpro in Ihre Freundesliste auf
Thunfischdose
Weichei


Dabei seit: 25.10.2010
Beiträge: 3


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 kann ich auch durch eingabe einer Variablen (z.B. Key = "rotation" und Value = "-90") die Rotation einer Türe einstellen oder muss ich für jede Türe nen eigendes _door script erstellen?

danke schonmal
Thunfischdose ist offline Beiträge von Thunfischdose suchen Nehmen Sie Thunfischdose in Ihre Freundesliste auf
Seiten (3): « vorherige 1 2 [3] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [Tutorial] Öffnende Tür erstellen *

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv