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 nächste » 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 »
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


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

gibt es auch die Möglichkeit dass man z.B. door1_trigger_right deaktivieren kann wenn door1_trigger_left aktiviert wird? So hat das nämlich den Nachteil dass wenn die Tür in Bewegung ist und man den anderen Trigger drückt die Tür einen neuen Nullpunkt annimmt

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BadMan: 28.03.2008 09:09.

BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan 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

um jeweils einen trigger zu deaktivieren, wenn der andere aktiv ist, könntest du auch zwei script dateien verwenden z.b.
_door_right.gsc und _door_left.gsc

und in die jeweilige datei das reinkopieren, was für links bzw. rechts erforderlich ist.

oder du machst eine abfrage ob der eine trigger aktiv ist, wenn der andere aktiviert ist, was aber zur folge hat, dass die türen nicht gleichzeitig zu öffnen sind
z.b. du hast ne riesen map für 30-? player und 70 türen zum öffnen
da kann das schonmal sein

für diejenigen unter euch, die sich im c / c++ programmieren (scripten) nich so gut auskennen
schaut mal ins deutsche COD4-Wiki
da ist ein eintrag unter der kategorie scripting, der einige dinge sehr gut erklärt

__________________
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
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

hier z.b. in zwei scripte aufgeteilt, die gsc-dateien kannst du bennenen wie du willst, du musst sie dann eben in deiner map.gsc richtig aufrufen

_door_right.gsc

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:
main()
{
	door1_trigger1 = getentarray("door1_trigger_right","targetname");
	for(i = 0; i < door1_trigger1.size; i++)
	door1_trigger1[i] thread door1_think1();
}
door1_think1()
{
	self.door1_moving1 = false;
	self.door1_closed1 = true;
	self.door1_model1 = getent(self.target, "targetname");

	while (1)
	{
		self waittill("trigger");
		if(!self.door1_moving1)
			self thread door1_move1();
	}
}

door1_move1()
{
	self.door1_moving1 = true;

	if(self.door1_closed1)
	{
		self.door1_model1 rotateyaw(90,2,1,1);
		self.door1_model1 waittill("rotatedone");
		self.door1_closed1 = false;
	}
	else
	{
		self.door1_model1 rotateyaw(-90,2,1,1);
		self.door1_model1 waittill("rotatedone");
		self.door1_closed1 = true;
	}

	self.door1_moving1 = false;
}



_door_left.gsc

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:
main
{
	door1_trigger2 = getentarray("door1_trigger_left","targetname");
	for(i = 0; i < door1_trigger2.size; i++)
	door1_trigger2[i] thread door1_think2();
}

door1_think2()
{
	self.door1_moving2 = false;
	self.door1_closed2 = true;
	self.door1_model2 = getent(self.target, "targetname");

	while (1)
	{
		self waittill("trigger");
		if(!self.door1_moving2)
			self thread door1_move2();
	}
}

door1_move2()
{
	self.door1_moving2 = true;
	if(self.door1_closed2)
	{
		self.door1_model2 rotateyaw(-90,2,1,1);
		self.door1_model2 waittill("rotatedone");
		self.door1_closed2 = false;
	}
	else
	{
		self.door1_model2 rotateyaw(90,2,1,1);
		self.door1_model2 waittill("rotatedone");
		self.door1_closed2 = true;
	}
	self.door1_moving2 = false;
}



in deiner map.gsc musst du dann beide scripte aufrufen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
	maps\mp\_load::main();
	maps\mp\_door_right::main();
	maps\mp\_door_left::main();
.
.
.
.



__________________
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
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


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

Und hier eine beidseitig öffenbare Tür, die automatisch schliesst:

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:
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");
	
	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;
		}
	}
}



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

__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 04.04.2008 15:25.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
[EF]Nosferatu
Zu-Hause-Esser


Dabei seit: 13.03.2008
Beiträge: 61


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 das Tutorial ist echt super Augenzwinkern Klappt auch wunderbar, nur will ich das es so ein garagentor ist das nach oben aufklappt!

Kann mir jemand sagen wie ich den Origin Brush anordnen und was ich in dem Script ändern muss?
Danke schonmal Augenzwinkern Kann mir grad gar nicht vorstellen wie ich das machen muss^^
Hoffe ihr versteht wie die klappe aufgehen soll.
Grüße
[EF]Nosferatu ist offline E-Mail an [EF]Nosferatu senden Beiträge von [EF]Nosferatu suchen Nehmen Sie [EF]Nosferatu in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


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

Mit dem Radianten kenn ich mich nicht aus, da musst auf jemanden Warten, der diese Frage beantworten kann.

Zum Script:

rotateRoll durch moveZ, sollte dann die gewünschte Bewegung sein. Ich gehe mal davon aus, das die Z Achse diese ist.

ToM

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
[EF]Nosferatu
Zu-Hause-Esser


Dabei seit: 13.03.2008
Beiträge: 61


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

Hmmm wenn es aber nur in der Z achse verschoben wird schiebt sich das Garagentor ja in die Decke und kommt oben wahrscheinlich wieder raus.
Habs nicht getestet, aber könnte mirs so vorstellen^^. Also es müsste ja erst nach oben kurz gehen sich dann drehen und nach hinten schieben. Wird glaub ich zu kompliziert, aber wenn jemand ne Idee hat immer her damit.
Grüße
[EF]Nosferatu ist offline E-Mail an [EF]Nosferatu senden Beiträge von [EF]Nosferatu suchen Nehmen Sie [EF]Nosferatu 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

moveZ würde ich sagen bewegt deinen brush (tor) entlang der z-achse, wie bei einer schiebetür, bei einer "klappe"
würde ich mal versuchen bei dem befehl
rotateyaw oder rotateroll, je nach dem welches script du verwendet hast die koordinaten zu ändern (x,y,z,time)
z.b.

start:
self.door_model rotateyaw(1,2,90,1)

ziel:
self.door_model rotateyaw(1,2,-90,1)

und deinen origin brush drehst du um 90°, so dass er entlang der z-achse liegt- das iss dein "türscharnier"

einfach mal testen und dann am besten dein script dann hier zur ergänzung pousten - hab ich auch schon mal dran gedacht sowas zu probieren, bin aber noch nich dazu gekommen

__________________
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
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


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

Setz den origin_brush einfach an die Unterkante des Garagentors. Dann dreh das Tor mit dem entsprechenden rotatebefehl (rotatepitch oder rotateroll) und bewege es mit movez gleichzeitig in die Höhe. Beide Befehle direkt hintereinander (werden dann quasie beide ausgeführt, drehen und bewegen) und bei beiden die gleiche Zeit angeben. Beim schließen dann das Gleiche, drehen und bewegen.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
[EF]Nosferatu
Zu-Hause-Esser


Dabei seit: 13.03.2008
Beiträge: 61


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

Danke Leute hat funktioniert Augenzwinkern Hier also mal das Script für ein Garagentor:

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:
main() 
{
doortriggers = getentarray("doortrig","targetname");
for(i = 0; i < doortriggers.size; i++)
doortriggers[i] thread door_think();
}

door_think()
{
self.doormoving = false;
self.doorclosed = true;
self.doormodel = getent(self.target, "targetname");

while (1)
{
self waittill("trigger");
if(!self.doormoving)
self thread door_move();
}
}

door_move()
{
self.doormoving = true;
if(self.doorclosed)
{
self.doormodel movez(140,4,1,2);
self.doormodel rotateroll(-90,4,1,2);
self.doormodel waittill("rotatedone");
self.doorclosed = false;
}
else
{
self.doormodel movez(-140,4,1,2);
self.doormodel rotateroll(90,4,1,2);
self.doormodel waittill("rotatedone");
self.doorclosed = true;
}
self.doormoving = false;
}




Bei self.doormodel movez(140,4,1,2); gibt 140 die Höhe an! Hängt also von der Größe eurer Garage ab.
Mit meinen Werten öffnet sich die Garage auch relativ langsam. Kann ja aber alles geändert werden.
Grüße
[EF]Nosferatu ist offline E-Mail an [EF]Nosferatu senden Beiträge von [EF]Nosferatu suchen Nehmen Sie [EF]Nosferatu 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

gib mal bei (x,y,z,2) -->(x,y,z,1) oder als zeit 0,5 ein
je niedriger der wert, desto schneller

__________________
Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende grosses Grinsen

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von steinacker: 09.05.2008 09:06.

steinacker ist offline E-Mail an steinacker senden Beiträge von steinacker suchen Nehmen Sie steinacker in Ihre Freundesliste auf
[EF]Nosferatu
Zu-Hause-Esser


Dabei seit: 13.03.2008
Beiträge: 61


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

Das weiß ich schon^^ War nur ein Hinweis an die Leute die die Garage dann schneller wollen. Mir passt das ja in der Geschwindigkeit smile
[EF]Nosferatu ist offline E-Mail an [EF]Nosferatu senden Beiträge von [EF]Nosferatu suchen Nehmen Sie [EF]Nosferatu 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

Sehr schön, sehr schön. So langsam Kämpfe ich mich vorwärts. Habe aufgrund des Threads hier ne Schiebetür basteln können.
Allerdings scheint er die _door.gsc nicht mit zu kompilieren oder so.
Habe die Version mit 2 Dateien genutzt, also mp_meinemap.gsc und _door.gsc.
Aus dem Compiler heraus wird das Script in der Map ausgeführt. Wenn ich die .ff Dateien nun in den usermaps Ordner packe und das game so starte (ohne mod) läuft alles, denke er greift dabei nicht auf den usermaps ordner zu. Wenn ich den ace mod starte, werden meine eigenen Texturen und sowas alles angezeigt, aber das script lässt sich nicht ausführen. Wenn ich den mod warfare nutzen will, falle ich grundsätzlich durch den boden beim spawn bzw. stecke halb im boden drin. (Der Spawnpunkt is dann eh völlig verschoben)

Werde noch Leveldesigner und Shooterszene und modonline nach einer Lösung abklopfen, aber vielleicht hat ja jemand einen eistesblitz parat und kann mir helfen, auf dass ich wieder einen Erkenntnissprung nach vorne machen kann.
cool

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sorkan: 22.05.2008 09:47.

Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan in Ihre Freundesliste auf
-tiger-
Steuerzahler


images/avatars/avatar-1082.jpg


Dabei seit: 22.01.2008
Beiträge: 189


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:

Original von Sorkan
Sehr schön, sehr schön. So langsam Kämpfe ich mich vorwärts. Habe aufgrund des Threads hier ne Schiebetür basteln können.
Allerdings scheint er die _door.gsc nicht mit zu kompilieren oder so.
Habe die Version mit 2 Dateien genutzt, also mp_meinemap.gsc und _door.gsc.
Aus dem Compiler heraus wird das Script in der Map ausgeführt. Wenn ich die .ff Dateien nun in den usermaps Ordner packe und das game so starte (ohne mod) läuft alles, denke er greift dabei nicht auf den usermaps ordner zu. Wenn ich den ace mod starte, werden meine eigenen Texturen und sowas alles angezeigt, aber das script lässt sich nicht ausführen. Wenn ich den mod warfare nutzen will, falle ich grundsätzlich durch den boden beim spawn bzw. stecke halb im boden drin. (Der Spawnpunkt is dann eh völlig verschoben)

Werde noch Leveldesigner und Shooterszene und modonline nach einer Lösung abklopfen, aber vielleicht hat ja jemand einen eistesblitz parat und kann mir helfen, auf dass ich wieder einen Erkenntnissprung nach vorne machen kann.
cool


Hast du auch die _door.gsc in die .ff gepackt, also unter update zone file hinzugefügt. Wenn ja pack das skript mal in die iwd datei mit gleicher odner-struktur wie unter raw oder du musst den Pfad unter update zone file anpassen.

Kompiliere mal die map neu, vielleicht ist es ja dann weg.

__________________


Processor: Intel Core2 Quad Q6600 | Mainboard: ABIT IP35 | Grafikkarte: GeForce 9800 GTX | Arbeitsspeicher: 2 GB G-Skill | Netzteil: Be Quiet! Straight Power

-tiger- ist offline Homepage von -tiger- Beiträge von -tiger- suchen Nehmen Sie -tiger- 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

Zitat:

Original von Verni@hter

Erstelle einfach die Datei und kopiere alles rein ausser die Zeile da oben und in dein zone File kommt die zeile:

rawfile,maps/mp/_door.gsc





Da er (der Compiler) mich nie beim kompilieren nach der fehlenden _door.gsc gefragt hat, hab ichs so wie im Zitat erwähnt einfach selbst in die Zone-File geschrieben. Danach hatte es auch in der Map (aus dem Compiler gestartet) geklappt. Denke daher, dass er die gsc irgendwie nicht mitkompilieren will. Wenn ich den Eintrag wieder aus der zone-file rausnehme, meckert er nicht rum, dass die _door.gsc fehlt beim bilden der ff Dateien. Habe auch schon die d3dbsp Datei gelöscht und neu kompiliert. Immer das Gleiche, er fragt dann nicht nach der fehlenden _door...
Ich hab zwar schon in den einschlägigen Foren die Script-Sachen gelesen und teils verstanden, aber Grundkenntnisse fehlen da dann doch noch.

Das Skript darf, soweit ich gelesen habe, nicht in die iwd eben weil es ja mitkompiliert wird, soweit ich gelesen habe.


Inahlt meiner map.gsc: (liegt unter map_source, richtig?)

main()
{
maps\mp\_door::main();
maps\mp\_load::main();

ambientPlay("ambient_mhz_aim");

game["allies"] = "american";
game["axis"] = "german";
game["attackers"] = "allies";
game["defenders"] = "axis";

}

Hab die gleiche map.gsc unter raw\maps\mp gefunden, da stand das drin:
(Der grüne Teil hatte dort gefehlt und ich hab ihn dazu getragen)

main ()

{
maps\mp\_door::main();
maps\mp\_load::main();

game["allies"] = "marines";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";




setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");


}

Tja, wie schon erwähnt: Aus dem Compile-Tool heraus gehts alles, nur nicht unter dem ace-mod.
Habe die anderen Foren durschucht und nix gescheites gefunden, mir is schon ganz übel vom vielen gescrolle... Schlechtes Essen?


Zum Problem, dass ich immer im halben Fußboden spawne, wenn ich die Map unter dem Mod warefare laufen lassen will habe ich eine Parallele zum Radianten festgestellt. Er spawnt nämlich genau auf der Höhe, wie ich im Radianten starte.

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Sorkan: 22.05.2008 11:53.

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

Zitat:

Inahlt meiner map.gsc: (liegt unter map_source, richtig?)


deine map.gsc sowie alle anderen script-dateien, _door.gsc usw.
kommen alle in:
raw\maps\mp

aus deiner .map datei wird die .d3dbsp erstellt -->compile bsp
aus dieser wird dann die fast-file erstellt .ff -->build fastfile
in diese fastfile werden dann alle effekte, sounds, soundalias-dateien (.csv), script-datein (.gsc) usw. mit eingebunden

__________________
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

Tja dann bin ich wirklich am Ende. Denn es liegt alles dort, wo es liegen soll.
(in der map_source wahrscheinlich irgendwann mal durch Unachtsamkeit reinkopiert)
Habs jetzt sogar mal versucht wie Old man weiter oben beschrieben. Die ganze Script-Geschichte in die meine_map.gsc reinkopiert und ohne die door versucht, ebenso kein Erfolg. Im normalen Modus läuft es, nur nicht mit m mod.
Meine meine_map.gsc sieht quasi nun so aus:

main()
{


maps\mp\_load::main();

ambientPlay("ambient_mhz_aim");

game["allies"] = "american";
game["axis"] = "german";
game["attackers"] = "allies";
game["defenders"] = "axis";



door1_trigger1 = getentarray("doortrig_left","targetname");
for(i = 0; i < door1_trigger1.size; i++)
door1_trigger1[i] thread door1_think1();

door1_trigger2 = getentarray("doortrig_right","targetname");
for(i = 0; i < door1_trigger2.size; i++)
door1_trigger2[i] thread door1_think2();

}


door1_think1()
{
self.door1_moving1 = false;
self.door1_closed1 = true;
self.door1_model1 = getent(self.target, "targetname");
self enableLinkTo();
self linkto(self.door1_model1);

while (1)
{
self waittill("trigger");
if(!self.door1_moving1)
self thread door1_move1();
}
}

door1_move1()
{
self.door1_moving1 = true;
if(self.door1_closed1)
{
self.door1_model1 movey(-66,2,1,1);
self.door1_model1 waittill("movedone");
self.door1_closed1 = false;
}
else
{
self.door1_model1 movey(66,2,1,1);
self.door1_model1 waittill("movedone");
self.door1_closed1 = true;
}
self.door1_moving1 = false;
}

door1_think2()
{
self.door1_moving2 = false;
self.door1_closed2 = true;
self.door1_model2 = getent(self.target, "targetname");
self enableLinkTo();
self linkto(self.door1_model2);

while (1)
{
self waittill("trigger");
if(!self.door1_moving2)
self thread door1_move2();
}
}

door1_move2()
{
self.door1_moving2 = true;
if(self.door1_closed2)
{
self.door1_model2 movey(66,2,1,1);
self.door1_model2 waittill("movedone");
self.door1_closed2 = false;
}
else
{
self.door1_model2 movey(-66,2,1,1);
self.door1_model2 waittill("movedone");
self.door1_closed2 = true;
}
self.door1_moving2 = false;
}

und liegt unter raw/maps/mp/...
in der csv steht rawfile,maps/mp/mp_bunker.gsc
doorscript liegt wie oben gezeigt mit in der meine_map.gsc.
Einzige fehlermeldung beim kompilieren:

364 vertices couldn`t be merged because the textures point differnt ways emitting cells and portals
Beim bilden der ff kommt keine Fehlermeldung. Noch nicht mal die oft zitierte vision.gsc fehlt.
Habe nochmal alle betroffenden Dateien gelöscht und neu erstellt, das gleiche Problem. Ich würds ja auf den ace mod schieben, aber ich hab keine vergleichsmöglichkeit, da ich beim spawn unter dem normalen mod modwarefare immer an der gleichen stelle im boden spawne, egal welche fraktion ich anwähle.

An dieser Stelle dann auch schonmal VIELEN DANK für Eure Geduld. unglücklich

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Sorkan: 22.05.2008 13:55.

Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan 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

Oh man, ich habs jetzt. Also echt, oh Gott, 6 Stunden völlig im A...
Ich musste noch in der zz_mf.iwd vom ace mod unter maps/mp/die mp_bunker.gsc löschen.
Ich wusste gar nicht, dass in dieser iwd die gscs für einige maps schon drin stehn.
Die Verzweiflung trieb mich zu diesem Schritt, also dort mal reinzugucken.
Ich sollte also meine map dann wohl besser umbenennen, da es die schon gibt, sonst gibts bei uns auf dem Server von 4Netplayers, auf dem der ace mod läuft, auch Probleme, oder ich lösch dort aus der iwd vom ace mod auch die gsc raus.
Argh, na gut, somit ist das Thema erledigt.
Thx.
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.858


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

Das rauslöschen ist ne schlechte Idee, denk an viele Admins, die NICHT Wissen, das es dann 2 Maps mit selbem Namen gibt...
Wähle lieber einen eindeutigen Namen für Deine Map, dann passt das.

ToM

__________________

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

D`accord. Mach ich.
Sorkan ist offline Beiträge von Sorkan suchen Nehmen Sie Sorkan in Ihre Freundesliste auf
Seiten (3): « vorherige 1 [2] 3 nächste » 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