[Tutorial] Öffnende Tür erstellen (überarbeitet)

Marvin
Hier mal eine überarbeitete version von dem Tutorial "Öffnende Tür erstellen" :
Also damit ihr gleich die Tür erstellen könnt gehe ich noch etwas zurück.

Teil 1: Die Tür erstellen.

Schritt 1:

Wir gehen davon aus dass ihr eine Türöffnung in eurer Wand habt. In diese Türöffnung baut ihr jetzt einen Türramen ein. zb. den aus dem ordner prefabs/bog/doors.

Schritt 2:

Geht oben im Menü aud grid - grid 1 oder drückt Taste 1. Nun wählt ihr eine Türtextur aus. Zoomt nun soweit ran bis ihr kleinere Felder bekommt (Mausrad auf) und macht einen Brush der 2 Einheiten breit ist. Nun passt ihr noch die Länge und größe in der seitenansicht an.

Schritt 3:

Geht wieder auf die Topansicht und zoomt wieder zurück (Mausrad ab). Markiert euren Türbrush und öffnet den surface inspector mit der Taste s und drückt auf Fit. Jetzt zieht ihr eure Tür nach vorne bis ihr alle Seiten gut seht. Belegt diese Seiten mit einer normalen Textur die zu eurer Tür passt (Ctrl + Shift + Linksklick auf die Seite). Nun zieht ihr die Tür wieder soweit zurück wie es geht.

Schrit 4:

Kopiert eure Tür und legt das kopierte Teil genau auf das originale Teil. Zieht es nun mit Grid 0.5 (Menü --> Grid --> Grid 0.5) soweit nach rechts oder links wie es geht. (Jenach dem wie rum die Tür öffnen soll. Stellt nun wieder zurück auf Grid 8 und lasst das nun kleine Türteil makiert. Dieses belegt ihr jetzt mit der Textur origin. Dieser Origin Brush funktioniert später wie ein Schanier. Wählt nun euer Origin und eure Tür. Jetzt macht ihr einen rechtsklick in der 2d Ansicht und wählt script --> brushmodel.

Schritt 5:

Erstellt einen Brush in dem Bereich indem der Spieler die Tür öffnen/schließen können soll. Ich empfehle diesen sehr groß zu machen da dieser Trigger sich beim öffnen nicht mit bewegt. Macht einen rechtsklick in der 2d Ansicht und wählt Trigger --> use_touch. Lasst den großen Trigger markiert und drückt Taste n um das entity fenster zu öffnen und tragt folgende Werte ein:

Key: targetname
Value: doortrig

Wenn ihr einen Hilfetext wollt kommt noch etwas dazu:

Key: hintstring
Value: Dein Hilfetext

Wenn ihr noch ein interagierungs Symbol wohlt tragt noch das ein:

Key: cursorhint
Value: HINT_ACTIVATE

Schritt 5:

schließt das entity menü wieder mit Taste n und wählt euren Trigger und eure Tür aus. Nun drückt Taste W um sie miteinander zu verknüpfen. So das wars schonmal im editor jetzt zum script

Teil 2: Den script erstellen:

Schitt 1:

saved eure Map und schließt den Radianten. Geht über Arbeitsplatz in euren cod4mod ordner und geht dann diesen Pfad. raw/maps/mp. Macht einen rechtsklick und wählt neu --> neues Textdokument. Nennt dieses dann um in _door.gsc. Kopiert den folgenden 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:
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 rotateyaw(-90,1,0.5,0.5);
		self.doormodel waittill("rotatedone");
		self.doorclosed = false;
	}
	
	else{
	
		self.doormodel rotateyaw(90,1,0.5,0.5);
		self.doormodel waittill("rotatedone");
		self.doorclosed = true;
	}
	
	self.doormoving = false;
} 



Öffnet eure _door.gsc mit dem editor und fügt den script ein. Noch abspeichern.

Schritt 2:

Öffnet eure mapname.gsc und verwandelt es in sowas:

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:
main()
{
         maps\mp\_door::main();
	maps\mp\_load::main();

	ambientPlay("ambient_backlot_ext");
	
	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "axis";
	game["defenders"] = "allies";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";
	
	setdvar( "r_specularcolorscale", "1" );
	
	setdvar("r_glowbloomintensity0",".25");
	setdvar("r_glowbloomintensity1",".25");
	setdvar("r_glowskybleedintensity0",".3");
	setdvar("compassmaxrange","1800");
 
}



Speichert es ab und geht nun auf compilie tools/ level compilig

Schritt 3:

Wählt eure Map und machr update zonefile hier tragt ihr diese Zeile auf der rechten Seite ein:

rawfile,maps/mp/_door.gsc

Schritt 4:

Vorausgesetzt du hast mindestens den global_intermission punkt und die spawns für tdm. Mach compilie BSP und danach build fastfile. Die Länge ist jenach dem wie groß die Map ist. Hier sollten keine ERRORS kommen wenn ja bitte posten! Nun noch auf run selected map und ihr müsstet die Tür öffnen können.

Ich hoffe es ist einigermaßen verständlich!

Viel Spaß beim Mappen wünscht euch: Marvin

PS: Leider hat der Editor das meiste aus den scripts in Smilies umgewandelt. Ändert diese bitte in ihr zeichen was immer im Standard-Editor angezeigt wird.

Edit by bangingbernie: Einfach beim posten unter Optionen "Smilies in diesem Beitrag deaktivieren" anklicken.