Frage zu: Radiation, Problem mit: Rolltreppe

Marvin
Hallo ich fang mal an:

Radiation:

Kann man den Grauschleier verlängern wenn man in der Zone steht?

Rollstair:

Meine Rolltreppe läuft, nur falsch. Man sieht die Stufen wie sie durch die gerade hochfahren wieder zum Startplatz
fahren, kann man das ändern?

mfg Marvin

Edit: Wenn's hilft habe ich hier mal meine beiden scripte:

radiation:

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:
main()
{
	if ( getdvar( "pripyat_radiation" ) == "0" )
		return;

	if ( getdvar( "pripyat_suit_respawntime" ) == "" )
		setdvar( "pripyat_suit_respawntime", "20" );
		
	level.pripyat_suit_respawntime = getdvarfloat( "pripyat_suit_respawntime" );
	
	if ( getdvar( "pripyat_radiation_kill" ) == "20" )
		setdvar( "pripyat_radiation_kill", "20" );
		
	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);
				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("^3Sie haben einen Schutzanzung aufgenommen");
								players[i] iprintln("^3Jetzt sind sie gegen Radioaktivität geschützt");
								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 = " wurde in einer radioaktiven Zone  getötet";	

			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();
       	}
}



rollstair:

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

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

move(){

	stufe = [];
	speed = 1.3; // Geschwindigkeit der Rolltreppe (je niedriger der Wert, desto schneller)
	anzahl = 8; // 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");
	}
}

bangingbernie
Rolltreppe

Server-dvar: set pripyat_radiation_kill "5" // Setzt die Zeit in Sekungen fest bevor der Spieler in der radioaktiven Zone stirbt (normal "15")
Marvin
Also nach dem Paternoster-Prinzip funktioniert es gut. Habe zwei Rolltreppen nebeneinander,
eine hoch die andere runter. Jetzt habe ich das Problem dass für einen Moment die Stufen verschwinden:
Game:

Radiant:


mfg Marvin
Nightwing
Lad Dir doch mal die Metro von Graves und schau, wie er den Boden um die Rolltreppe herum gebaut hat.
ToM
Marvin
Die habe ich schon aber das hilft mir auch nicht weiter, ich schaue mir nochmal das von bangingbernie an! Augenzwinkern
bangingbernie
Du hast auch die Lösung von OMWG gelesen?

Rolltreppe
Marvin
Nein hilft alles nicht. Diese blöde Rolltreppe. Erst fährt sie richtig dann bleiben plötzlich ein paar Stufen stehen,
andere fahren weiter und dann fahren die, die angehalten haben rückwärts, obwohl ich alles nach Graves
Anleitung gemacht habe! auch böse Baby Zornig

Edit: Sorry zu spät ich schau mir mal die Lösung von OMWG an! Augenzwinkern
Marvin
Habs an der mp_bewegte_teile ausporbiert,
jetzt bekomme ich einen script Error Teufel
Error:

Konsole:


Weiß einer weiter?

mfg Marvin

Edit: Die mapname.gsc

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
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:
main()
{

	maps\mp\_bewe::main();
	//maps\mp\mp_crash_fx::main();
	//maps\createart\mp_crash_art::main();
        thread maps\mp\_leak::main();
        maps\mp\_paternoster::main();
        maps\mp\_radiation::main();
        maps\mp\mp_bewegte_teile_fx::main();
	maps\mp\_load::main();
	thread bew();
	maps\mp\_compass::setupMiniMap("compass_map_mp_crash");
	
	ambientPlay("ambient_cargoshipmp_ext");

	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "allies";
	game["defenders"] = "axis";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";
	
	setdvar( "r_specularcolorscale", "1" );
	
	setdvar("compassmaxrange","1600");


}


bew()
{
platte = getent("platte001","targetname");

while(1)
{
platte rotatePitch(2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(2,2);
wait 2;

}
}

//Rolltreppe\\

thread rolltreppe_move();


rolltreppe_move()
{
	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");
	}
}

bangingbernie
Vllt. so:

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

	maps\mp\_bewe::main();
	//maps\mp\mp_crash_fx::main();
	//maps\createart\mp_crash_art::main();
        thread maps\mp\_leak::main();
        maps\mp\_paternoster::main();
        maps\mp\_radiation::main();
        maps\mp\mp_bewegte_teile_fx::main();
	maps\mp\_load::main();
	thread bew();
        thread rolltreppe_move();
	maps\mp\_compass::setupMiniMap("compass_map_mp_crash");
	
	ambientPlay("ambient_cargoshipmp_ext");

	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "allies";
	game["defenders"] = "axis";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";
	
	setdvar( "r_specularcolorscale", "1" );
	
	setdvar("compassmaxrange","1600");


}
bew()
{
platte = getent("platte001","targetname");

while(1)
{
platte rotatePitch(2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(2,2);
wait 2;

}
}

//Rolltreppe\\

rolltreppe_move()
{
	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");
	}
}

Marvin
Was läuft: Die Map
Was läuft nicht: Die Rolltreppe

mfg Marvin
G*Skillz Jack
Hallo Marvin

Die Antwort hätte etwas genauer sein können.


Gibt es fehler u.s.w?
Marvin
Eig. gibt es keine Fehler, die Rolltreppe läuft einfach nicht.
Hab ich irgendwas falsch gemacht:

(klick mich)

Nach der Anleitung von OMWG erstellt.

mfg Marvin
bangingbernie
Das müsste doch wohl so aussehen:



Deine Rolltreppe hat 6 Stufen x 2 = 12
Marvin
Nein meine Treppe hat 7 Stufen auf jeder Seite, aber kannst du ja nicht wissen. Augenzwinkern
Ich habe unter der Erde noch eine gesetzt damit man nicht sieht wie die Treppenstufen auf die andere Seite farhen. Augenzwinkern

mfg Marvin