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 » [SAMMLUNG] Diverse Scripts » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): [1] 2 nächste » Neues Thema erstellen Thema ist geschlossen
Zum Ende der Seite springen [SAMMLUNG] Diverse Scripts 1 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,001 Bewertungen - Durchschnitt: 10,00
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


Lampe [SAMMLUNG] Diverse Scripts Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Scriptsammlung für verschiedene Effekte in Maps

Kleine Bitte: Solltet Ihr Fragen zu den Scripts bzw Ihrem Einbau haben, dann postet es bitte in den hier verlinkten Bereichen, oder erstellt ein neues Thema. Sollte Euch ein Script einfallen, das hier reingehört, bitte melden Freude

Hier eine Liste der Scripts, wird beständig erweitert:



__________________

Dieser Beitrag wurde 46 mal editiert, zum letzten Mal von Nightwing: 07.06.2008 20:46.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_breakable_windows.gsc - Zerstörbare Fenster Version 1.1 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 an -=FD=-

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _breakable_windows
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _breakable_windows.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_breakable_windows.gsc" und "fx,props/car_glass_large" in Dein Zone File ein.
Füge die Zeile maps/mp/_breakable_windows::main(); in Deine map.gsc Datei ein.

Möchtest Du einen Sound FX dazu, musst Du eine soundalias Datei für Deine Map erstellen. Wenn Du keinen Sound FX möchtest (oder keine soundalias Datei erstellen kannst) dann kommentiere diese Zeile aus (also // davor setzen):

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

code:
1:
self PlaySound("glass_break");


Hier das 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:
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:
// ---------------------------------------
// Zerstörbare Fenster Version 1.1 by -=FD=-
// Letztes Update: Freitag, 22. Februar 2008
// ---------------------------------------
//
// Dieses Script ermöglicht den Einbau von Fenstern, die nach einer gewissen Beschädigung zerbrechen
// Ich habe versucht es so einfach wie möglich zu halten um die Nutzung zu vereinfachen.
// Es enthält einen “Zerbrochen”-Status für das Fenster (wie z. B. bei den Autos!)

// Man kann allerdings NOCH keine Granaten durch das Fenster werfen, um es zu zerbrechen…
// Um die Höhe der Beschädigung zu ändern, die das Fenster vertragen kann, musst Du den Wert bei 'targetdamage' anpassen.
// Credit an: Tally, der mir beim Einstieg ins Scripten geholfen hat.
// Credit an: noobCODmapper und Ghost Death für das Script auf modsonline.com, das mich hierzu inspiriert hat.
// Credit an: IW für dieses großartige Game und die Freigabe der Tools, so dass wir überhaupt damit arbeiten können!


main(){

	windfx = loadfx ("props/car_glass_large");
	windtrigs = getentarray("windtrig","targetname");
	
	for(i=0;i<windtrigs.size;i++){

		windtrigs[i] thread dowindow(windfx);
	}
}

dowindow(windfx){

	targetdamage=80;
	totaldamage=0;
	
	WindowShattered=false;
	WindowBroken=false;
	
	self enablegrenadetouchdamage();
	NormalState = getent(self.target,"targetname");
	ShatteredState = getent(NormalState.target,"targetname");ShatteredState hide();
	BrokenState = getent(shatteredState.target,"targetname");BrokenState hide();

	while(!windowbroken){

		self waittill ("damage", amount,attacker, direction_vec, point, type);
		totaldamage+=amount;

		if(totaldamage>targetdamage || getdamagetype(type)=="melee"){

			WindowBroken=true;
		}

		if(!WindowShattered){

			NormalState delete();
			ShatteredState show();
			WindowShattered=true;
		}
	}

	BrokenState show();
	self playsound("glass_break");	
	PlayFX(windfx, BrokenState.origin );	
	ShatteredState delete();
	self delete();
}

getDamageType(type){

	if(!isdefined(type)){
		
		return "unknown";
	}
		
	type = tolower(type);

	switch(type){

		case "mod_melee":
		case "mod_crush":
		case "melee":
		return "melee";
		
		default:
		return "other";
	}
}



__________________

Dieser Beitrag wurde 11 mal editiert, zum letzten Mal von Nightwing: 01.06.2008 23:24.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_crane.gsc - Beweglicher Kran 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 an OLD MAN WITH GUN

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _crane
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _crane.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Datei "rawfile,maps/mp/_crane.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_crane::main(); in Deine map.gsc Datei ein.

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

	//cat1 movez(-512,0.1,0,0);
	level.cat1_stand = true;
	
	cat1_start = (-95, 2373, 185);
	cat1_dest = (1499, 2373, 185);
	
	cat1 = getent ("cat1","targetname"); 
	trig_cat1_1 = getent ("trig_cat1_1","targetname"); 		
	trig_cat1_2 = getent ("trig_cat1_2","targetname"); 
	trig_cat1_stop = getent ("trig_cat1_stop","targetname");
	
	trig_cat1_1 enablelinkto(); 
	trig_cat1_2 enablelinkto(); 
	trig_cat1_stop enablelinkto();
	trig_cat1_1 linkto(cat1);
	trig_cat1_2 linkto(cat1);
	trig_cat1_stop linkto(cat1);
	
	trig_cat1_1 thread cat1_move_2(cat1, cat1_start, cat1_dest);
	trig_cat1_2 thread cat1_move_1(cat1, cat1_start, cat1_dest);
	trig_cat1_stop thread stop(cat1);
}


cat1_move_1(cat1,cat1_start,cat1_dest){

	while (1){
		
		self waittill ("trigger");
		cat1 move_me(cat1_start,cat1_dest);
	}
}

cat1_move_2(cat1,cat1_start,cat1_dest){

	while(1){
		
		self waittill("trigger");
		cat1 move_me(cat1_dest, cat1_start);
	}
}

move_me(cat1_start,cat1_dest){

	if(level.cat1_stand && (self.origin != cat1_dest)){	
	
		dist = distance(self.origin, cat1_dest);
		speed = (1 / 35) * dist;
		level.cat1_stand = false;
		self moveto(cat1_dest, speed);
		self playsound("crane_acceleration");
		self playloopsound("crane_move");
		self waittill("movedone");
		self stoploopsound("crane_move");
		self playsound("crane_deceleration");
		level.cat1_stand = true;
	}
	
	wait 0.1;
}

stop(cat1){

	while(1){
	
		self waittill("trigger");
		
		if (!level.cat1_stand){
			
			cat1 moveto(cat1.origin, 0.01);
			self playsound("crane_deceleration");
			self stoploopsound("crane_move");
		}
		
		wait 0.01;
	}
}



__________________

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von Nightwing: 05.12.2008 19:24.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_damage_amount.gsc - Beschädigung einscripten 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 an OMWG

Hier ein kleines Tutorialscript, wie man eine Beschädigung bei einem Objekt im Script einbindet, hier im Beispiel ein Türblatt:

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

	dmg_trigger = getent("damage_trigger", "targetname");//damage_trigger holen
	doorhealth = 300;// Lebensenergie der Tür
	door_ok = true;// Tür in ordnung
	  
	while(door_ok){// so lange Tür in ordnung, Schleife wiederholen
	  
		dmg_trigger waittill("damage", amount);// trigger wartet auf Schaden und liefert bei Schaden dann den Schadenswert zurück
		doorhealth -= amount;// Schadenswert von der Lebensenergie der Tür abziehen
		
		if (doorhealth <= 0){// Wenn Lebenssenergie kleiner gleich 0 ist, folgende Zeilen ausführen
			
			door_ok = false;// Tür nicht mehr ok (Schleife nach beenden nicht noch einmal durchlaufen)
			  
			// hier kommt das hin was passieren soll, wenn die Lebensenergie der Tür verbraucht ist
		}
	}
}



__________________

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Nightwing: 01.06.2008 23:23.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_doors_1_automatic_close.gsc - Eine Tür, die automatisch schliesst 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 an CCL_DESTROYER

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _doors_1_automatic_close
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _doors_1_automatic_close.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Datei "rawfile,maps/mp/_doors_1_automatic_close.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_doors_1_automatic_close::main(); in Deine map.gsc Datei ein.

Möchtest Du einen Sound FX dazu, musst Du eine soundalias Datei für Deine Map erstellen. Wenn Du keinen Sound FX möchtest (oder keine soundalias Datei erstellen kannst) dann kommentiere diese Zeilen aus (also // davor setzen):

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

code:
1:
2:
door1 playsound ("door_open");
door1 playsound ("door_close");


Hier das 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:
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;
		}
	}
}



Logischerweise lässt sich dieses Script auf 2 oder mehrere Türen erweitern, siehe nächstes Posting.

__________________

Dieser Beitrag wurde 7 mal editiert, zum letzten Mal von Nightwing: 01.06.2008 23:53.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_doors_2_automatic_close.gsc - Zwei Türen, die automatisch schliessen 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 an CCL_DESTROYER

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _doors_2_automatic_close
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _doors_2_automatic_close.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Datei "rawfile,maps/mp/_doors_2_automatic_close.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_doors_2_automatic_close::main(); in Deine map.gsc Datei ein.

Möchtest Du einen Sound FX dazu, musst Du eine soundalias Datei für Deine Map erstellen. Wenn Du keinen Sound FX möchtest (oder keine soundalias Datei erstellen kannst) dann kommentiere diese Zeilen aus (also // davor setzen):

Code einblendenCode angehaengt. Klicke hier zum ein/ausblenden

code:
1:
2:
door1 playsound ("door_open");
door1 playsound ("door_close");

und

Code einblendenCode angehaengt. Klicke hier zum ein/ausblenden

code:
1:
2:
door2 playsound ("door_open");
door2 playsound ("door_close");


Hier das Script:

Code einblendenCode angehaengt. 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:
main(){

	thread door1();
}

door1(){

	level.door1_open = false;
	level.door2_open = false;
	
	thread door1_trigger_right();
	thread door1_trigger_left();
	thread door2_trigger_right();
	thread door2_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;
		}
	}
}

door2_trigger_right(){

	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("trigger_1_tuer_1","targetname");
	
	time = 5;
	
	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 time;
			
			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_1","targetname");
	
	time = 5;
	
	while (1){

		door2_trigger_left waittill ("trigger");

		if (level.door2_open == true){

			thread door2_trigger_right();

			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 time;
			
			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;
		}
	}
}



__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 01.06.2008 23:54.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_doors_damage.gsc - Doppeltür mit Beschädigung, nicht automatisch schliessend 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 an CCL_DESTROYER, OLD MAN WITH GUN, Mapicted

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _doors_damage
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _doors_damage.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_doors_damage.gsc" und fx/dust/abrams_desk_dust in Dein Zone File ein.
Füge die Zeile maps/mp/_doors_damage::main(); in Deine map.gsc Datei ein.

Möchtest Du einen Sound FX dazu, musst Du eine soundalias Datei für Deine Map erstellen. Wenn Du keinen Sound FX möchtest (oder keine soundalias Datei erstellen kannst) dann kommentiere diese Zeilen aus (also // davor setzen):

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

code:
1:
2:
door1 playsound ("door_open");
door1 playsound ("door_close");

und

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

code:
1:
2:
door2 playsound ("door_open");
door2 playsound ("door_close");


Hier das 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:
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:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
514:
515:
516:
517:
518:
519:
520:
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532:
533:
534:
535:
536:
537:
538:
539:
540:
541:
542:
543:
544:
545:
546:
547:
548:
549:
550:
551:
552:
553:
554:
555:
556:
557:
558:
559:
560:
561:
562:
563:
564:
565:
566:
567:
568:
569:
570:
571:
572:
573:
574:
575:
576:
577:
578:
579:
580:
581:
582:
583:
584:
585:
586:
587:
main(){
	
	thread door_move();
	thread door1();
	thread door2();
	thread damage_door1();
	thread damage_door2();

}

door_move(){
	
	door1 = getent ("door1","targetname");
	door2 = getent ("door2","targetname");
	
	door1 rotateyaw(90,0.1,0,0);
	door1 movez(-512,0.1,0,0);

	door2 rotateyaw(-90,0.1,0,0);
	door2 movez(-512,0.1,0,0);
}

door1(){

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

door1_trigger_right(){

	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	while (1){
	
		door1_trigger_right waittill ("trigger");
		
		if (level.door1_open == false){
		
			if(level.door1_moving == false){
			
				level.door1_moving = true;
				level.door1_open = true;
				level.door1_direction = true;
				
				damage_door1_trigger_left TriggerOff();
				damage_door1_trigger_right TriggerOff();
				
				door1 rotateyaw(120,2,0.5,0.5);
				door1 playsound ("door_open");
				door1 waittill ("rotatedone");
				
				level.door1_moving = false;
				
				thread door1_trigger_right();
				
				return;
			}
			
			else if (level.door1_moving == true){
			
				thread door1_trigger_right();
				
				return;
			}
		}
	
		else if(level.door1_open == true){
		
			if(level.door1_moving == false){
	
				if (level.door1_direction == true){
	
					level.door1_moving = true;

					door1 rotateyaw(-120,2,0.5,0.5);
					door1 playsound ("door_close");
					door1 waittill ("rotatedone");
					
					damage_door1_trigger_left TriggerOn();
					damage_door1_trigger_right TriggerOn();
					
					level.door1_open = false;
					level.door1_moving = false;
					
					thread door1_trigger_right();
					
					return;
				}
	
				else if (level.door1_direction == false){
		
					level.door1_moving = true;

					door1 rotateyaw(120,2,0.5,0.5);
					door1 playsound ("door_close");
					door1 waittill ("rotatedone");
					
					damage_door1_trigger_left TriggerOn();
					damage_door1_trigger_right TriggerOn();
					
					level.door1_open = false;
					level.door1_moving = false;
					
					thread door1_trigger_right();
					
					return;
				}
			}
		
			else if (level.door1_moving == true){
	
				thread door1_trigger_right();
				
				return;
			}
		}
	}
}

door1_trigger_left(){

	door1 = getent ("door1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	while (1){
	
		door1_trigger_left waittill ("trigger");
		
		if (level.door1_open == false){
		
			if(level.door1_moving == false){
			
				level.door1_moving = true;
				level.door1_open = true;
				level.door1_direction = false;
				
				damage_door1_trigger_left TriggerOff();
				damage_door1_trigger_right TriggerOff();
			
				door1 rotateyaw(-120,2,0.5,0.5);
				door1 playsound ("door_open");
				door1 waittill ("rotatedone");
				
				level.door1_moving = false;
				
				thread door1_trigger_left();
				
				return;
			}
			
			else if (level.door1_moving == true){
			
				thread door1_trigger_left();
				
				return;
			}
		}
		
		else if(level.door1_open == true){
		
			if(level.door1_moving == false){

				if (level.door1_direction == true){

					level.door1_moving = true;

					door1 rotateyaw(-120,2,0.5,0.5);
					door1 playsound ("door_close");
					door1 waittill ("rotatedone");
					
					damage_door1_trigger_left TriggerOn();
					damage_door1_trigger_right TriggerOn();
					
					level.door1_open = false;
					level.door1_moving = false;
					
					thread door1_trigger_left();
					
					return;
				}

				else if (level.door1_direction == false){
	
					level.door1_moving = true;

					door1 rotateyaw(120,2,0.5,0.5);
					door1 playsound ("door_close");
					door1 waittill ("rotatedone");
					
					damage_door1_trigger_left TriggerOn();
					damage_door1_trigger_right TriggerOn();
					
					level.door1_open = false;
					level.door1_moving = false;
					
					thread door1_trigger_left();
					
					return;
				}
			}
			
			else if (level.door1_moving == true){
	
				thread door1_trigger_left();
				
				return;
			}
		}
	}
}

door2(){

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

door2_trigger_right(){

	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	while (1){
	
		door2_trigger_right waittill ("trigger");
		
		if (level.door2_open == false){
		
			if(level.door2_moving == false){
			
				level.door2_moving = true;
				level.door2_open = true;
				level.door2_direction = true;
				
				damage_door2_trigger_left TriggerOff();
				damage_door2_trigger_right TriggerOff();
				
				door2 rotateyaw(-120,2,0.5,0.5);
				door2 playsound ("door_open");
				door2 waittill ("rotatedone");
				
				level.door2_moving = false;
				
				thread door2_trigger_right();
				
				return;
			}
			
			else if (level.door2_moving == true){
			
				thread door2_trigger_right();
				
				return;
			}
		}
	
		else if(level.door2_open == true){
		
			if(level.door2_moving == false){
	
				if (level.door2_direction == true){
	
					level.door2_moving = true;
					
					door2 rotateyaw(120,2,0.5,0.5);
					door2 playsound ("door_close");
					door2 waittill ("rotatedone");
					
					damage_door2_trigger_left TriggerOn();
					damage_door2_trigger_right TriggerOn();
					
					level.door2_open = false;
					level.door2_moving = false;
					
					thread door2_trigger_right();
					
					return;
				}
	
				else if (level.door1_direction == false){
		
					level.door2_moving = true;
					
					door2 rotateyaw(-120,2,0.5,0.5);
					door2 playsound ("door_close");
					door2 waittill ("rotatedone");
					
					damage_door2_trigger_left TriggerOn();
					damage_door2_trigger_right TriggerOn();
					
					level.door2_open = false;
					level.door2_moving = false;
					
					thread door2_trigger_right();
					
					return;
				}
			}
		
			else if (level.door2_moving == true){
	
				thread door2_trigger_right();
				
				return;
			}
		}
	}
}

door2_trigger_left(){

	door2 = getent ("door2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	while (1){
	
		door2_trigger_left waittill ("trigger");
		
		if (level.door2_open == false){
		
			if(level.door2_moving == false){
			
				level.door2_moving = true;
				level.door2_open = true;
				level.door2_direction = false;
				
				damage_door2_trigger_left TriggerOff();
				damage_door2_trigger_right TriggerOff();
				
				door2 rotateyaw(120,2,0.5,0.5);
				door2 playsound ("door_open");
				door2 waittill ("rotatedone");
				
				level.door2_moving = false;
				
				thread door2_trigger_left();
				
				return;
			}
			
			else if (level.door2_moving == true){
			
				thread door2_trigger_left();
				
				return;
			}
		}
		
		else if(level.door2_open == true){
		
			if(level.door2_moving == false){

				if (level.door2_direction == true){

					level.door2_moving = true;
					
					door2 rotateyaw(120,2,0.5,0.5);
					door2 playsound ("door_close");
					door2 waittill ("rotatedone");
					
					damage_door2_trigger_left TriggerOn();
					damage_door2_trigger_right TriggerOn();
					
					level.door2_open = false;
					level.door2_moving = false;
					
					thread door2_trigger_left();
					
					return;
				}
				
				else if (level.door2_direction == false){
					
					level.door2_moving = true;
					
					door2 rotateyaw(-120,2,0.5,0.5);
					door2 playsound ("door_close");
					door2 waittill ("rotatedone");
					
					damage_door2_trigger_left TriggerOn();
					damage_door2_trigger_right TriggerOn();
					
					level.door2_open = false;
					level.door2_moving = false;
					
					thread door2_trigger_left();
					
					return;
				}
			}
			
			else if (level.door2_moving == true){
	
				thread door2_trigger_left();
				
				return;
			}
		}
	}
}

damage_door1(){

	thread damage_door1_trigger_right();
	thread damage_door1_trigger_left();
}

damage_door1_trigger_right(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door1_trigger_right waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door1_trigger_right TriggerOff();
			door1_trigger_left TriggerOff();
			damage_door1_trigger_right TriggerOff();
			damage_door1_trigger_left TriggerOff();

			door1 rotateto((-90,90,5),0.5,0.3,0);
			door1 playsound("door_crush");	
			door1 waittill ("rotatedone");
			PlayFX(damagefx,(301,546,-316));	
		}
	}
}

damage_door1_trigger_left(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door1_trigger_left waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door1_trigger_right TriggerOff();
			door1_trigger_left TriggerOff();
			damage_door1_trigger_right TriggerOff();
			damage_door1_trigger_left TriggerOff();

			door1 rotateto((90,90,5),0.5,0.3,0);
			door1 playsound("door_crush");	
			door1 waittill ("rotatedone");
			PlayFX(damagefx,(301,650,-316));	
		}
	}
}

damage_door2(){

	level.door2_damage = false;
	
	thread damage_door2_trigger_right();
	thread damage_door2_trigger_left();
}

damage_door2_trigger_right(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door2_trigger_right waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door2_trigger_right TriggerOff();
			door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			damage_door2_trigger_left TriggerOff();

			door2 rotateto((90,-90,5),0.5,0.3,0);
			door2 playsound("door_crush");	
			door2 waittill ("rotatedone");
			PlayFX(damagefx,(258,546,-316));	
		}
	}
}

damage_door2_trigger_left(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");
	
	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door2_trigger_left waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door2_trigger_right TriggerOff();
			door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			damage_door2_trigger_left TriggerOff();
			
			door2 rotateto((-90,-90,5),0.5,0.3,0);
			door2 playsound("door_crush");	
			door2 waittill ("rotatedone");
			PlayFX(damagefx,(258,650,-316));	
		}
	}
}

TriggerOff(){

	if(!isdefined (self.realOrigin))
		self.realOrigin = self.origin;
		
	if(self.origin == self.realorigin)
		self.origin += (0, 0,-10000);
}

TriggerOn(){

	if(isDefined(self.realOrigin))
		self.origin = self.realOrigin;
}



__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 01.06.2008 23:56.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_doors_damage_automatic.gsc - Doppeltür mit Beschädigung, automatisch schliessend 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 an CCL_DESTROYER, OLD MAN WITH GUN, Mapicted

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _doors_damage_automatic
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _doors_damage_automatic.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_doors_damage_automatic.gsc" und fx/dust/abrams_desk_dust in Dein Zone File ein.
Füge die Zeile maps/mp/_doors_damage_automatic::main(); in Deine map.gsc Datei ein.

Möchtest Du einen Sound FX dazu, musst Du eine soundalias Datei für Deine Map erstellen. Wenn Du keinen Sound FX möchtest (oder keine soundalias Datei erstellen kannst) dann kommentiere diese Zeilen aus (also // davor setzen):

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

code:
1:
2:
door1 playsound ("door_open");
door1 playsound ("door_close");

und

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

code:
1:
2:
door2 playsound ("door_open");
door2 playsound ("door_close");


Hier das 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:
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:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
main(){
	
	thread door_move();
	thread door1();
	thread door2();
	thread damage_door1();
	thread damage_door2();

}

door_move(){
	
	door1 = getent ("door1","targetname");
	door2 = getent ("door2","targetname");
	
	door1 rotateyaw(90,0.1,0,0);
	door1 movez(-512,0.1,0,0);

	door2 rotateyaw(-90,0.1,0,0);
	door2 movez(-512,0.1,0,0);
}

door1(){

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

door1_trigger_right(){

	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_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;
			damage_door1_trigger_right TriggerOff();
			damage_door1_trigger_left TriggerOff();
			
			door1 rotateyaw(120,2,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait time;
			
			door1 rotateyaw(-120,2,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			damage_door1_trigger_right TriggerOn();
			damage_door1_trigger_left TriggerOn();
			
			thread door1_trigger_right();
			thread door1_trigger_left();
			
			return;
		}
	}
}

door1_trigger_left(){

	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_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;
			damage_door1_trigger_left TriggerOff();
			damage_door1_trigger_right TriggerOff();
			
			door1 rotateyaw(-120,2,0.5,0.5);
			door1 playsound ("door_open");
			door1 waittill ("rotatedone");
			
			wait time;
			
			door1 rotateyaw(120,2,0.5,0.5);
			door1 playsound ("door_close");
			door1 waittill ("rotatedone");
			
			level.door1_open = false;
			damage_door1_trigger_left TriggerOn();
			damage_door1_trigger_right TriggerOn();
			
			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 ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	time = 5;

	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;
			damage_door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			
			door2 rotateyaw(-120,2,0.5,0.5);
			door2 playsound ("door_open");
			door2 waittill ("rotatedone");
			
			wait time;
			
			door2 rotateyaw(120,2,0.5,0.5);
			door2 playsound ("door_close");
			door2 waittill ("rotatedone");
			
			level.door2_open = false;
			damage_door2_trigger_left TriggerOn();
			damage_door2_trigger_right TriggerOn();
			
			thread door2_trigger_right();
			thread door2_trigger_left();
			
			return;
		}
	}
}

door2_trigger_left(){

	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	time = 5;

	while (1){

		door2_trigger_left waittill ("trigger");

		if (level.door2_open == true){

			thread door2_trigger_right();

			return;
		}

		else if (level.door2_open == false){

			level.door2_open = true;
			damage_door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			
			door2 rotateyaw(120,2,0.5,0.5);
			door2 playsound ("door_open");
			door2 waittill ("rotatedone");
			
			wait time;
			
			door2 rotateyaw(-120,2,0.5,0.5);
			door2 playsound ("door_close");
			door2 waittill ("rotatedone");
			
			level.door2_open = false;
			damage_door2_trigger_left TriggerOn();
			damage_door2_trigger_right TriggerOn();
			
			thread door2_trigger_left();
			thread door2_trigger_right();
			
			return;
		}
	}
}

damage_door1(){

	thread damage_door1_trigger_right();
	thread damage_door1_trigger_left();
}

damage_door1_trigger_right(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door1_trigger_right waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door1_trigger_right TriggerOff();
			door1_trigger_left TriggerOff();
			damage_door1_trigger_right TriggerOff();
			damage_door1_trigger_left TriggerOff();

			door1 rotateto((-90,90,5),0.5,0.3,0);
			door1 playsound("door_crush");	
			door1 waittill ("rotatedone");
			PlayFX(damagefx,(301,546,-316));	
		}
	}
}

damage_door1_trigger_left(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door1 = getent ("door1","targetname");
	door1_trigger_right = getent ("open_trigger_1_tuer_1","targetname");
	door1_trigger_left = getent ("open_trigger_2_tuer_1","targetname");
	damage_door1_trigger_right = getent ("damage_trigger_1_tuer_1","targetname");
	damage_door1_trigger_left = getent ("damage_trigger_2_tuer_1","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door1_trigger_left waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door1_trigger_right TriggerOff();
			door1_trigger_left TriggerOff();
			damage_door1_trigger_right TriggerOff();
			damage_door1_trigger_left TriggerOff();

			door1 rotateto((90,90,5),0.5,0.3,0);
			door1 playsound("door_crush");	
			door1 waittill ("rotatedone");
			PlayFX(damagefx,(301,650,-316));	
		}
	}
}

damage_door2(){

	level.door2_damage = false;
	
	thread damage_door2_trigger_right();
	thread damage_door2_trigger_left();
}

damage_door2_trigger_right(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");

	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door2_trigger_right waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door2_trigger_right TriggerOff();
			door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			damage_door2_trigger_left TriggerOff();

			door2 rotateto((90,-90,5),0.5,0.3,0);
			door2 playsound("door_crush");	
			door2 waittill ("rotatedone");
			PlayFX(damagefx,(258,546,-316));	
		}
	}
}

damage_door2_trigger_left(){

	damagefx = loadfx ("dust/abrams_desk_dust");
	door2 = getent ("door2","targetname");
	door2_trigger_right = getent ("open_trigger_1_tuer_2","targetname");
	door2_trigger_left = getent ("open_trigger_2_tuer_2","targetname");
	damage_door2_trigger_right = getent ("damage_trigger_1_tuer_2","targetname");
	damage_door2_trigger_left = getent ("damage_trigger_2_tuer_2","targetname");
	
	doorhealth = 300;
	door_ok = true;
	doordamage = 50;

	while(door_ok){
			
		damage_door2_trigger_left waittill ("damage", amount);
		doorhealth -= amount;
		
		if (doorhealth <= doordamage){
	
			door_ok = false;
			
			door2_trigger_right TriggerOff();
			door2_trigger_left TriggerOff();
			damage_door2_trigger_right TriggerOff();
			damage_door2_trigger_left TriggerOff();
			
			door2 rotateto((-90,-90,5),0.5,0.3,0);
			door2 playsound("door_crush");	
			door2 waittill ("rotatedone");
			PlayFX(damagefx,(258,650,-316));	
		}
	}
}

TriggerOff(){

	if(!isdefined (self.realOrigin))
		self.realOrigin = self.origin;
		
	if(self.origin == self.realorigin)
		self.origin += (0, 0,-10000);
}

TriggerOn(){

	if(isDefined(self.realOrigin))
		self.origin = self.realOrigin;
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 00:11.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_door.gsc - Eine bewegliche Tür Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vorlage von HarkoninVSC auf MODSonline.com

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _door
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _door.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Datei "rawfile,maps/mp/_door.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_door::main(); in Deine map.gsc Datei ein.

Hier das 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:
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;
} 



__________________

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 00:18.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_drown.gsc - Player ertrinken lassen 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 an [D]delica, Marc aka Wildcard

Wildcard hat den Code etwas bearbeitet, da das Script aus CoD 2 stammt und wohl kleinere Fehler verursacht hat.

Um dieses Script zu Nutzen, brauchst Du 2 trigger_multiple, genau wie in r0gers' _noprone Script.
Einer sollte die Fläche ausfüllen, wo Wasser sein wird, sodass Player in Berührung des Triggers sind, solange sie im Wasser sind.
Öffne die Entity Eigenschaften und vergebe den targetname: drown
Erstelle einen neuen trigger_multiple über diesem und verbinde ihn mit dem drown Trigger als Ziel. (Wähle den drown Trigger, dann den Ziel Trigger und drücke W)
Die Basis dieses Triggers sollte auf der Wasseroberfläche sein, oder etwas darüber, je nachdem wie Du vorhast, die Player ertrinken zu lassen.
Das war alles im Radiant, Speichern, schliessen und kompilieren.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _drown
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _drown.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Datei "rawfile,maps/mp/_drown.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_drown::main(); in Deine map.gsc Datei ein.

(Alternativ kann man auch die *.gsc Datei umnennen in mp_dein_mapname_drown.gsc. Dies schlägt der Scripter in der readme vor. Dann aber bitte die Zonefiles und den Aufruf entsprechend ändern!)

Hier das 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:
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:
// Multiplayer drown script for CoD
//
// written by [D]delica
// based on _noprone.gsc by r0ger and the stock IW S&D scripts ;)
// Modifed by Spikenaylor for COD2 using the tintscreen script from//[Nip] Drowning Water Script v1
//[Nip] by BionicNipple (bionic.nipple@gmail.com)
// To use this script, you'll need two trigger_multiples, set up pretty much the same
// way as r0gers' _noprone script. One should fill the area where you have water, so as
// long as the player is in the water they will be in contact with it. Open entity
// properties and give it the targetname 'drown'. Create another trigger_multiple above it,
// and connect it to the 'drown' trig as a target. (select 'drown' trig, then the target trig,
// and press W.) The base of this trigger should be at the same level as the surface of
// your water, or a little above, depending on how soon you want people to start drowning.
// This is all you need to do in radiant. Save, close and compile.
//
// In your yourmap.gsc, call _drown with "mapsmp_drown::main();" (no quotes ;) ), and make
// sure you place _drown.gsc in the maps/mp folder of your iwd. For compatibility's sake,
// please rename _drown.gsc if you use it (viz "mp_mymapname_drown.gsc", so ppl can customise
// it to their taste without creating problems with other mods/maps ;).
//
// N.B: the sounds and fx used in this script are all custom. If you want the same sounds,
// I suggest you rip them from Hamlet.pk3. Ditto the fx ^_^
//
// delicauk@gmail.com

main(){ 

	drownage = getentarray("drown","targetname");
	
	if (isDefined("drownage")){
	
		precacheShader("black");
		precacheShader("white"); 
		
		level.barsize = 288;
		level.drowntime = 0.20;
		level.hurttime = 0.20; 
		
		for(d = 0; d < drownage.size; d++){
		
			drownage[d] thread water();
		}
	}
}

Water(){

	while (1){
	
		self waittill("trigger", other); 
		
		if(isPlayer(other) && other istouching(self))
			other thread drown(self);
	}
}

drown(trigger){

	self endon("disconnect");

	dceiling = getent(trigger.target,"targetname");
	water_vision = undefined;
	
	while (self istouching(trigger) && !self istouching(dceiling)){
	
		wait .125;
		
		if(isDefined(self.drowning))
			return;
		
		self.drowning = true; 
		
		
		if(!isDefined(water_vision)){
		
			water_vision = newClientHudElem(self);
			water_vision.x = 0;
			water_vision.y = 0;
			water_vision setshader ("white", 640, 480);
			water_vision.alignX = "left";
			water_vision.alignY = "top";
			water_vision.horzAlign = "fullscreen";
			water_vision.vertAlign = "fullscreen";
			water_vision.color = (.16, .38, .5);
			water_vision.alpha = .75;
		}
		
		level.barincrement = (level.barsize / (20.0 * level.drowntime));
		// level.player allowProne(false);	
		
		if(!isDefined(self.progressbackground)){
		
			self.progressbackground = newClientHudElem(self);
			self.progressbackground.alignX = "center";
			self.progressbackground.alignY = "middle";
			self.progressbackground.x = 320;
			self.progressbackground.y = 385;
			self.progressbackground.alpha = 0.5;
		}
		
		self.progressbackground setShader("black", (level.barsize + 4), 14); 

		if(!isDefined(self.progressbar)){
		
			self.progressbar = newClientHudElem(self);
			self.progressbar.alignX = "left";
			self.progressbar.alignY = "middle";
			self.progressbar.x = (320 - (level.barsize / 2.0));
			self.progressbar.y = 385;
		}

		self.progressbar setShader("white", 0, 8);
		self.progressbar scaleOverTime(level.drowntime, level.barsize, 8); 
		self.progresstime = 0;
		d = 0;
		f = 0; 
		
		while(isalive(self) && self istouching(trigger) && !self istouching(dceiling) && (self.progresstime < level.drowntime)){
		
			d ++;
			f ++;

			wait 0.05;
			self.progresstime += 0.05;

			if(self.progresstime >= level.hurttime){
			
				if(f >= 4){
				
					radiusDamage(self.origin,9, 1, 1);
					f = 0;
				}
			}
		} 
		
		if(isalive(self) && self istouching(trigger) && !self istouching(dceiling) && (self.progresstime >= level.drowntime)){ 
		
			self.progressbackground destroy();
			self.progressbar destroy(); 
			wait 0.025;
			radiusDamage(self.origin,22, 3000, 3000); 
			self.drowning = undefined;
			self.sounder = undefined; 
			randb = randomInt(4);
			deathmethod1 = " made a hole in the water and lay down quietly to rest forever.";
			deathmethod2 = " paid a long lasting visit to Davy Jones's Locker.";
			deathmethod3 = " went diving without breathing apparatus.";
			deathmethod4 = " swam like a brick.";

			if (randb == 0)
				iPrintLn( self.name, deathmethod1);
			
			if (randb == 1)
				iPrintLn( self.name, deathmethod2);

			if (randb == 2)
				iPrintLn( self.name, deathmethod3);
			
			if (randb == 3)
				iPrintLn( self.name, deathmethod4);

			wait .05;
			
			water_vision destroy();
		}
		
		else{
		
			water_vision.alpha = .5;
			water_vision fadeOverTime(3);
			water_vision.alpha = 0;
			wait 0.05;
			self.progressbackground destroy();
			self.progressbar destroy();
			self.drowning = undefined;
			self.sounder = undefined;
			
		}
		
		wait .05;
	}
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 00:40.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


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

Vorlage von nuthowz auf Zeroy's Homepage

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _elevator
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _elevator.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_elevator.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_elevator::main(); in Deine map.gsc Datei ein.

Hier das Script:

Code einblendenCode angehaengt. 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:
main(){

	level.elevatorDown = true;
	level.elevatorMoving = false;
	thread elevator_start();
}

elevator_start(){

	elevator = getentarray ("switch","targetname");
	
	if ( isdefined(elevator) )
	
		for (n = 0; n < elevator.size; n++)
			elevator2[n] thread elevator_think();
}

elevator_think(){

	while (1){
	
		self waittill ("trigger");
		
		if (!level.elevatorMoving)
			thread elevator_move();
	}
}

elevator_move(){

	elevator = getentarray ("switch","targetname");
	elevatormodel = getent ("elevator", "targetname");
	
	level.elevatorMoving = true;
	
	speed = 5;
	height = 5600;
	
	if (level.elevatorDown){
	
		elevatormodel playloopsound ("elevator_move");
		elevatormodel movex (height, speed);
		elevator linkto (elevatormodel2);
		elevatormodel waittill ("movedone");
		level.elevatorDown = false;
	}

	else{
	
		elevatormodel playloopsound ("elevator_move");
		elevatormodel movex (height - (height * 2), speed);
		elevator linkto (elevatormodel);
		elevatormodel waittill ("movedone");
		level.elevatorDown = true;
	}
	
	level.elevatorMoving = false;
}



__________________

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 00:47.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_fan.gsc - Ventilator 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 an Zeroy

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _fan
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _fan.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_fan.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_fan::main(); in Deine map.gsc Datei ein.

Hier das 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:
//**** ZeRoY 2008 -- www.zeroy.com **** //

main(){

	thread fanspin();
}

fanspin(){

	fan = getentarray("fan", "targetname");
	
	for(i = 0; i < fan.size; i++)
		fan[i] thread fanrotate(randomint(4) + 2);
}

fanrotate(speed){

	while(1){
	
		self rotateyaw(360, speed, 0 ,0);
		wait(speed - 0.1);
	}
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 00:55.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_jumppad.gsc - Jumppad 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 an OLD MAN WITH GUN
Ursprüngliche Vorlage von Marshall2006 auf Modsonline

Links im Board: Klick & Klick
Hier findet Ihr auch eine kleine Beispielmap von BadMan, die zeigt, was das kleine Script alles kann.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _jumppad
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _jumppad.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_jumppad.gsc" und "fx,misc/ui_pickup_available" in Dein Zone File ein.
Füge die Zeile maps/mp/_jumppad::main(); in Deine map.gsc Datei ein.

Hier das 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:
47:
48:
49:
50:
51:
main(){

	level._effect[ "beacon_glow" ] = loadfx( "misc/ui_pickup_available" );
	jumpx = getentarray ("jump","targetname");
	
	for(i = 0; i < jumpx.size; i++)
		jumpx[i] thread jump_pad_think();
}

jump_pad_think(){

	glow = getent (self.target, "targetname");
	
	air1 = getent (glow.target, "targetname");
	air2 = getent (air1.target, "targetname");
	air3 = getent (air2.target, "targetname");
	air4 = getent (air3.target, "targetname");

	maps\mp\_fx::loopfx("beacon_glow", (glow.origin), 3, (glow.origin) + (0, 0, 90));

	while (1){

		self waittill ("trigger",user);

		if (user istouching(self)){

			//throw = user.origin + (100, 100, 0);
			air = spawn ("script_model",(0,0,0));
			air.origin = user.origin;
			air.angles = user.angles;
			
			user linkto (air);
			
			air moveto (air1.origin, 1);
			wait 1;
			
			air moveto (air2.origin, 1);
			wait .5;
			
			air moveto (air3.origin, 1);
			wait .5;
			
			air moveto (air4.origin, 1);
			wait 1;
			
			user unlink();
			
			wait 1;
		}
	}
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 12:36.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_multiple_doors.gsc - Türscript für viele Türen 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 an OLD MAN WITH GUN

Link im Board: Klick

Zuerst erstellt man einen Brush für die Tür und einen origin brush als Türangel.
Daraus macht man ein script_brushmodel und gibt ihm folgende keys/values
key: targetname
value: door
key: script_noteworthy
value: rechts
(soll die Tür nach links auf gehen, dann "links" anstatt "rechts" bei script_noteworthy eintragen).
Dann erstellt man noch zwei trigger_use, die man dann vor die beiden Seiten der Tür platziert (einen auf jede Seite). Dann selektiert man die Tür und einen der beiden Trigger und verbindet diese mit "w". Als nächstes selektiert man den Trigger, den man gerade mit der Tür verbunden hat und den verbliebenen Trigger und verbindet diese wiederum mit "w". Trigger 2 ist jetzt also mit Trigger 1 verbunden, der wiederum mit der Tür verbunden ist.
Davon kann man jetzt beliebig viele in der Map verteilen.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _multiple_doors
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _multiple_doors.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_multiple_doors.gsc" und "fx,misc/ui_pickup_available" in Dein Zone File ein.
Füge die Zeile maps/mp/_multiple_doors::main(); in Deine map.gsc Datei ein.

Hier das 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:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
// Zuerst erstellt man einen Brush für die Tür und einen origin brush als Türangel.
// Daraus macht man ein script_brushmodel und gibt ihm folgende keys/values
// key: targetname
// value: door
// key: script_noteworthy
// value: rechts
// (soll die Tür nach links auf gehen, dann "links" anstatt "rechts" bei script_noteworthy eintragen).
// Dann erstellt man noch zwei trigger_use, die man dann vor die beiden Seiten der Tür platziert (einen auf jede Seite). Dann selektiert man die Tür und einen der beiden Trigger und verbindet diese mit "w". Als nächstes selektiert man den Trigger, den man gerade mit der Tür verbunden hat und den verbliebenen Trigger und verbindet diese wiederum mit "w". Trigger 2 ist jetzt also mit Trigger 1 verbunden, der wiederum mit der Tür verbunden ist.
// Davon kann man jetzt beliebig viele in der Map verteilen.

{
	maps\mp\_load::main();
	
	thread doors_init();
}

doors_init(){

	door = getentarray("door","targetname");
	
	for (i= 0; i < door.size; i++){
	
		trig1 = getent(door[i].target,"targetname");
		trig2 = getent(trig1.target,"targetname");
		
		level.door_open[i] = false;
		
		door[i] thread door_think(i, trig1, trig2);
		door[i] thread door_think(i, trig2, trig1);
	}
}

door_think(i, trig1, trig2){

	while(1){
	
		trig1 waittill("trigger");
		
		richtung = self.script_noteworthy;
		
		if(!level.door_open[i]){
		
			level.door_open[i] = true;
			
			if (richtung == "links")
				self rotateto((0,90,0),1);
				
			else
				self rotateto((0,-90,0),1);
				
			self waittill("rotatedone");
			
			wait 2;
			
			self rotateto((0,0,0),1);
			self waittill("rotatedone");
			
			level.door_open[i] = false;
		}
	}
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 12:38.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_paternoster.gsc - Paternoster 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 an OLD MAN WITH GUN, Mapicted, Andreas Plesnik

Link im Board: Klick

Dieses Script stammt aus der CoD 2 Map mp_andees_asylum. Mapicted und ich versuchten, damit eine Rolltreppe zu Bauen, OLD MAN WITH GUN und T.R. Graves hatten aber eine bessere Lösung. Siehe auch hier: Klick & Klick

Zuerst baue eine Fahrstuhlkabine mit einem Origin-Brush in der Mitte.
Der Origin-Brush muss 16x16 WE groß sein und mit der Textures/Locale/Tools/origin Textur belegt sein.
Jetzt selektierst du die Kabine und den Origin-Brush und klickst im 2D Fenster die rechte Maustaste und machst daraus ein Script/Brushmodel,
und gibst diesem den Targetname "paternoster_floor".


Erstelle jetzt ein Script/origin mit dem Targetname "paternoster_WP" und schiebe ihn genau an die selbe Position des Origin-Brushes der Fahrstuhlkabine, dieser dient als Wegpunkt.


Jetzt selektiere das komplette Fahrstuhlkabinen-Script-Brushmodel und den Script-Origin (beides muss gleichzeitig selktiert sein, weil jede Kabine auch einen Wegpunkt braucht)
und kopiere das ganze (strg+C und strg+V) mehrmals und ordne die Kabinen so an, wie sie sich bewegen sollen.
Das Script orientiert sich an der Brush Nummerierung im Mapfile, also dreht sich das ganze in die selbe Richtung nach welcher Reihenfolge Du die Kabinen gebaut hast.
Wichtig hierbei ist dass du die Kabinen nacheinander im Kreis und nicht durcheinander baust, weil sich dann die Kabinen auch durcheinander bewegen würden.


Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _paternoster
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _paternoster.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_paternoster.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_paternoster::main(); in Deine map.gsc Datei ein.
Hier das 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:
main(){

	// a Paternoster is some kind of elevator (as well as the latin name of the lords prayer)
	level.Waypoints = getentarray("paternoster_WP","targetname");
	level.Paternosterfloors = getentarray("paternoster_floor","targetname");
	
	paternoster_init();
}

paternoster_init(){

	iTemp = 0;
	
	while(iTemp < level.Paternosterfloors.size){
	
		level.Paternosterfloors[iTemp] thread floor_move(iTemp);
		iTemp++;
	}
}

floor_move(iFloornumber){

	myWaypoints = level.Waypoints;
	iSpeed = 50;
	iWaypoint = iFloornumber;
	tempZiel = myWaypoints[iWaypoint].origin;
	self.origin = tempZiel;

	while(1){
	
		iWaypoint += 1;
		
		if (iWaypoint >= myWaypoints.size)
			iWaypoint = 0;
		
		tempZiel = myWaypoints[iWaypoint].origin;
		iZeit = distance(self.origin,tempZiel)/iSpeed;
		self moveto(tempZiel, iZeit, 0.0, 0.0);
		wait iZeit;
		self.origin = tempZiel;
	}
}



__________________

Dieser Beitrag wurde 9 mal editiert, zum letzten Mal von Nightwing: 07.06.2008 20:29.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_radiation.gsc - Radioaktive Zonen 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 an Zeroy, NovemberDobby, [D]delica

Um dieses Script zu Nutzen, brauchst Du einen trigger_multiple, Targetname: radiation
Für das Spawnen des Schutzanzugs, platziere ein paar script_origin am Boden der Map mit dem targetname: nukespot
In der Map mp_pripyat finden sich die benötigten Skins für die Schutzanzüge, die geändert werden dürfen.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _radiation
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _radiation.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_radiation.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_radiation::main(); in Deine map.gsc Datei ein.

Hier das Script:

Code einblendenCode angehaengt. 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:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
//      **** ZeRoY 2008 -- www.zeroy.com **** //
//      Multiplayer Radiation script for CoD4 by ZeRoY
//	Radiation suit pickup by NovemberDobby
// 	Loosely based on a Drowning tutorial by [D]delica
// 	
//	To use this script, you'll need a trigger_multiple, and give it the targetname 'radiation'
//	For the suit spawning, place a bunch of script_origin in the map (on the ground) with a targetname of 'nukespot'
//	All models used in here can of course be replaced. Enjoy!

main()
{
	if ( getdvar( "pripyat_radiation" ) == "0" )
		return;

	if ( getdvar( "pripyat_suit_respawntime" ) == "" )
		setdvar( "pripyat_suit_respawntime", "15" );
		
	level.pripyat_suit_respawntime = getdvarfloat( "pripyat_suit_respawntime" );
	
	if ( getdvar( "pripyat_radiation_kill" ) == "" )
		setdvar( "pripyat_radiation_kill", "15" );
		
	level.pripyat_radiation_kill = getdvarfloat( "pripyat_radiation_kill" );


	level.respawnTime = level.pripyat_suit_respawntime;
	radiation = getentarray("radiation","targetname");
	level.FXpickup = loadfx( "custom/pickup_suit" );
	
	if (isDefined("radiation"))
		{
			precacheShader("hint_health");
			precachemodel("ap_luggage03");
			if ( getdvar( "pripyat_nosuit" ) != "1" )
				{
					precacheModel("body_mp_sas_urban_assault");
					precacheModel("viewhands_black_kit");
				}
				
			precacheShellShock( "radiation_zeroy" );
			level.radiationtime = 5;
			level.hurttime = (level.pripyat_radiation_kill);
			for(d = 0; d < radiation.size; d++) radiation[d] thread zone();
		}
	thread nukesuit();
	//thread onPlayerKilled();
}

nukesuit()
{
	while(1)
	{
		wait .05;
		if(!isdefined(level.nukesuit))
			{
				//wait .5;
				nukespots = getentarray("nukespot","targetname");
				level.nukespot = nukespots[randomint(nukespots.size)];
				level.nukesuit = spawn("script_model",level.nukespot.origin + (0, 0, 30));
				thread spin_suit();
				//iprintlnbold("Suit Spawned");
				level.effectObj = spawnPickupFX( level.nukespot.origin, level.FXpickup );
				level.nukesuit setmodel("ap_luggage03");
				//level.nukesuit.angles = (0, 0, -90);
											
			}
		
		else if(isdefined(level.nukesuit))
			{
				players = getentarray("player","classname");
				for(i = 0; i < players.size; i++)
					{
						if(!isdefined(players[i].nukesuit) && isdefined(distance(players[i].origin, level.nukesuit.origin))) if(distance(players[i].origin, level.nukesuit.origin) <= 50)
							{
								//pick it up
								level.nukesuit delete();
								level.nukesuit = undefined;
								players[i].nukesuit = "lolz";
								if ( getdvar( "pripyat_nosuit" ) != "1" )
									{
										players[i] detachall();
										players[i] setModel("body_mp_sas_urban_assault");
										players[i] setViewmodel("viewhands_black_kit");
									}
								players[i] iprintln("^3You picked up a Radiation Suit");
								players[i] iprintln("^3You are now protected from Radiation");
								players[i] playlocalsound("pickup");
								players[i] thread waittilldeath();
								level.effectObj delete();
								wait level.respawnTime;
															
							}
					}
			}
	}
}

spin_suit()
{
	
	while(1)
		{
			if(isdefined(level.nukesuit)) level.nukesuit rotateyaw(-360,1.5);
				wait 1.5;
		}
}

waittilldeath()
{
	while(1)
		{
			wait .05;
			if(isdefined(self))
			if(self.health < 1 || self.pers["team"] == "spectator")	self.nukesuit = undefined;
		}
}


zone()
{

	while (1)
		{
			self waittill("trigger", other);
			if(isPlayer(other) && other istouching(self) && !isdefined(other.nukesuit))
			other thread irradiate(self);
		}
}

irradiate(trigger)
{
	
	while (self istouching(trigger))
	{
		wait .125;
		if(isDefined(self.irradiate))
			return;		
		self.irradiate = true;
		self shellshock( "radiation_zeroy", 1.3 );
		
		if(isAlive(self))
		  self playsound("geiger");
		
						
	if(!isDefined(self.hud_nuke))
		{
			self.hud_nuke = newClientHudElem(self);				
			self.hud_nuke.alignX = "center";
			self.hud_nuke.alignY = "middle";
			self.hud_nuke.x = 320;
			self.hud_nuke.y = 385;
			self.hud_nuke.color = (1,1,0);
			self.hud_nuke.alpha = 0.7;
		}
	
	self.hud_nuke setShader("hint_health");
	self.progresstime = 0;
	//self iPrintLn("^3 Danger! you are in a radiation zone!");
	d = 0;
	f = 0;

	while(isalive(self) && self istouching(trigger) && (self.progresstime < level.radiationtime))
		{		
			d ++;
			f ++;

			wait 0.05;
			self.progresstime += 0.05;


			if(self.progresstime >= level.hurttime)					
				{
				if(f >= 4)
					{
					radiusDamage(self.origin,9, 1, 1);
					f = 0;
					}
				}
		}

	if(isalive(self) && self istouching(trigger) && (self.progresstime >= level.radiationtime))
		{

			self.hud_nuke destroy();

			wait 0.025;
			radiusDamage(self.origin,22, 3000, 3000);

			self.irradiate = undefined;
			self.sounder = undefined;

			deathmethod = " died by exposure to radiation";	

			iPrintLn( self.name, deathmethod);
			wait .05;
		}
	else
		{
			wait 0.05;
			self.hud_nuke destroy();
			self.irradiate = undefined;
			self.sounder = undefined;
		}			
		wait .05;
		}
}

spawnPickupFX( groundpoint, fx )
{
	effect = spawnFx( fx, groundpoint, (0,0,1), (1,0,0) );
	triggerFx( effect );
	
	return effect;
}

onPlayerKilled()
{
	self endon("disconnect");
	
	for(;;)
	{
		self waittill("killed_player");
		if(isDefined(self.nukesuit)) 
			self.nukesuit = undefined;
      		if(isDefined(self.hud_nuke)) 
      			self.hud_nuke destroy();
       	}
}


__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 13:05.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_rollstair.gsc - Eine Rolltreppe 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 an OLD MAN WITH GUN, T.R. Graves

Link im Board: Klick

Im Radianten erstellen wir als erstes einen brush (Treppe) und machen daraus ein
script-brushmodel und geben diesem den targetname rolltreppe
dann machen wir wiederum ein script-brushmodel und geben diesen die Textur Origin und schieben diesen auf die Stufe wie man auf den Bild sehen
kann.
Dann erstellen wir noch weitere Brushe (Treppenstufen) und machen alle zu
script-brushmodel und setzen in alle ein script-brushmodel mit der textur origin.
Wichtig ist das man nur die Treppenbrushe mit der Taste w in Richtung der Bewegung der Rolltreppe verbinden.
Die letzte Treppenstufe mit der ersten Treppenstufe verbinden mit w, so das in Kreislauf entsteht.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _rollstair
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _rollstair.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_rollstair.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_rollstair::main(); in Deine map.gsc Datei ein.

Hier das 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:
// _rollstair.gsc by OLD MAN WITH GUN

// Für 1 Rolltreppe

main(){

	rolltreppe = getent ("rolltreppe","targetname");
	rolltreppe thread move();
}

move(){

	stufe = [];
	speed = 1.3; // Geschwindigkeit der Rolltreppe (je niedriger der Wert, desto schneller)
	anzahl = 30; // Anzahl aller Treppenstufen
	stufe[0] = getent(self.target,"targetname");
  
	for (i = 0; i < anzahl; i++)
		stufe[i+1] = getent(stufe[i].target,"targetname");

	while(1){
	  
		self moveto(stufe[0].origin,speed);
		
		for (j = 0; j < anzahl; j++)
			stufe[j] moveto(stufe[j+1].origin,speed);
			
		stufe[anzahl-1] waittill ("movedone");
	}
}



__________________

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 13:08.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_rollstairs.gsc - Mehrere Rolltreppen 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 an OLD MAN WITH GUN

Link im Board: Klick

Füge einen script_origin hinzu, um die Rolltreppe zu identifizieren.
Dieser script_origin bekommt als targetname "rolltreppe" und zusätzlich noch folgenden key/value:
key: script_noteworthy
value: 22
(22 = Anzahl der Stufen dieser Rolltreppe, entsprechend eurer Rolltreppe anpassen).
Die Treppenstufen bekommen keinen targetname (keine der Stufen).
Einfach alle im Kreis mit "w" miteinander verbinden, sodass der Kreis vollständig geschlossen ist (wo man anfängt dürfte eigentlich egal sein).
Dann noch das script_origin mit einer der Stufen verbinden.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _rollstairs
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _rollstairs.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_rollstairs.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_rollstairs::main(); in Deine map.gsc Datei ein.

Hier das Script:

Code einblendenCode angehaengt. 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:
// _rollstairs.gsc by OLD MAN WITH GUN

// Für mehrere Rolltreppen

// Füge einen script_origin hinzu, um die Rolltreppe zu identifizieren.
// Dieser script_origin bekommt als targetname "rolltreppe" und zusätzlich noch folgenden key/value:
// key: script_noteworthy
// value: 22
// (22 = Anzahl der Stufen dieser Rolltreppe, entsprechend eurer Rolltreppe anpassen).
// Die Treppenstufen bekommen keinen targetname (keine der Stufen).
// Einfach alle im Kreis mit "w" miteinander verbinden, sodass der Kreis vollständig geschlossen ist (wo man anfängt dürfte eigentlich egal sein).
// Dann noch das script_origin mit einer der Stufen verbinden.

main(){

	rolltreppe = getentarray ("rolltreppe","targetname");
	  
	for(z = 0; z < rolltreppe.size; z++)
		rolltreppe[z] thread move();
}

move(){

	stufe = [];
	speed = 1.5; // Geschwindigkeit der Rolltreppe (je größer der Wert, desto langsamer)
	anzahl = int(self.script_noteworthy); // Anzahl der Stufen vom script_origin holen
	
	stufe[0] = getent(self.target,"targetname");
	  
	for (i = 0; i < anzahl; i++)
		stufe[i+1] = getent(stufe[i].target,"targetname");
			
	while(1){
	  
		for (j = 0; j < anzahl; j++)
			stufe[j] moveto(stufe[j+1].origin,speed);
			  
		stufe[anzahl-1] waittill ("movedone");
	}
}


__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 13:09.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


_rotate.gsc - Rotierende Elemente 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 an Roger Abrahamsson

Link im Board: Klick

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _rotate
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _rotate.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_rotate.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_rotate::main(); in Deine map.gsc Datei ein.

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

	rotate_obj = getentarray("fan1","targetname");
	
	if(isdefined(rotate_obj)){
	
		for(i=0;i<rotate_obj.size;i++){
		
			rotate_obj[i] thread ra_rotate();
		}
	}
}

ra_rotate(){

	if (!isdefined(self.speed) || self.speed == 0)
		self.speed = .3;
		
	if (!isdefined(self.script_noteworthy))
		self.script_noteworthy = "y";

	while(true){
	
		// rotateYaw(float rot, float time, <float acceleration_time>, <float deceleration_time>);
		if (self.script_noteworthy == "y")
			self rotateYaw(360,self.speed);
			
		else if (self.script_noteworthy == "x")
			self rotateRoll(360,self.speed);
			
		else if (self.script_noteworthy == "z")
			self rotatePitch(360,self.speed);
			
		wait ((self.speed)-0.1); // removes the slight hesitation that waittill("rotatedone"); gives.
	}
}



__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 13:15.

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


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.857


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

Grundlage sind die Anleitung und das Script von Dad of Azz und cybershot in ihrer CoD2-Anleitung auf modsonline.com

Danke an OLD MAN WITH GUN und Vernichter

Link im Board: Klick
Hier findet Ihr auch eine genau Einbauanleitung.

Den Code im Codefenster kopieren und in eine neue, leere Textdatei einfügen, abspeichern als: _teleporter
Danach die Dateierweiterung von *.txt in *.gsc ändern. (Im Windows Explorer: Extras --> Ordneroptionen --> Ansicht - Haken raus bei: Erweiterung bei bekannten Dateitypen ausblenden)

Kopiere dieses Script unter dem Namen _teleporter.gsc in Deinen Ordner "/raw/maps/mp".
Füge die Dateien "rawfile,maps/mp/_teleporter.gsc" in Dein Zone File ein.
Füge die Zeile maps/mp/_teleporter::main(); in Deine map.gsc Datei ein.

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

	level._effect[ "teleporter" ] = loadfx( "teleporter/teleport_red" );
	level.scr_sound["teleport_start"] = "teleport_start";
	level.scr_sound["teleport_dest"] = "teleport_dest";
	
	entTransporter = getentarray("enter","targetname");
	
	if(isdefined(entTransporter)){
	
		for(lp=0;lp<entTransporter.size;lp++)
			entTransporter[lp] thread Transporter();
	}
}


Transporter(){

	maps\mp\_fx::loopfx("teleporter", (self.origin), 3, (self.origin) + (0, 0, 270));

	while(true){
	
		self waittill("trigger",other);
		entTarget = getent(self.target, "targetname");
		other playsound("teleport_start");
		
		wait(0.30); //hier die Zeit etwas höher setzen (von 0.1 auf 0.3)
		other setorigin(entTarget.origin);
		other setplayerangles(entTarget.angles);
		//iprintlnbold ("You have been teleported !!!");
		wait(0.10);
		other playsound("teleport_dest");
	}
}



__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 02.06.2008 13:31.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Seiten (2): [1] 2 nächste » Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Thema ist geschlossen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [SAMMLUNG] Diverse Scripts

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv