[Tutorial] Öffnende Tür erstellen *

BadMan
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
steinacker
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
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();
.
.
.
.

Nightwing
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
[EF]Nosferatu
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
Nightwing
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
[EF]Nosferatu
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
steinacker
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
OLD MAN WITH GUN
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.
[EF]Nosferatu
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
steinacker
gib mal bei (x,y,z,2) -->(x,y,z,1) oder als zeit 0,5 ein
je niedriger der wert, desto schneller
[EF]Nosferatu
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
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
-tiger-

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.
Sorkan

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.
steinacker

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
Sorkan
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
Sorkan
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.
Nightwing
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
Sorkan
D`accord. Mach ich.