Probleme mit Script

Nightwing
Hi!

Habe meinem Admiral Mod folgendes hinzugefügt:

In der globalen Datei _admiral_mod_player.gsc unter der Funktion PlayerKilled();

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
	// Bloodyscreen für Schütze
	if( sMeansOfDeath == "MOD_MELEE" || distance(self.origin,eAttacker.origin) < 150 )
		eAttacker thread maps\mp\gametypes\_myaddon::Bloodyscreen();
		
	// Blackscreen für Opfer
	if( self.sessionstate == "dead" )
		self thread maps\mp\gametypes\_myaddon::Blackscreen();

	// Bulletholes für Angeschossenen
	if( sMeansOfDeath == "MOD_PISTOL_BULLET" || sMeansOfDeath == "MOD_RIFLE_BULLET" )
		self thread maps\mp\gametypes\_myaddon::Bulletholes();



Hier dazu die aufgerufenen Funktionen:

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

	self endon("disconnect");
	self endon("end_map");
	
	self.blackscreen = newClientHudElem(self);
	self.blackscreentext = newClientHudElem(self);
	self.blackscreen.sort = -2;
	self.blackscreen.archived = false;
	self.blackscreen.alignX = "left";
	self.blackscreen.alignY = "top";
	self.blackscreen.x = 0;
	self.blackscreen.y = 0;
	self.blackscreen.alpha = 0;
	self.blackscreen setShader("black", 640, 480);
	self.blackscreen fadeOverTime(0.1);
	self.blackscreen.alpha = 1;
		
	// Remove Blackscreen
	self waittill("spawned");
	if(isDefined(self.blackscreen))
		self.blackscreen destroy();
}

Bloodyscreen(){

	self endon("disconnect");
	self endon("end_map");
	self endon("killed_player");
	self endon("death");
	
	self.bloodyscreen = newClientHudElem(self);
	self.bloodyscreen1 = newClientHudElem(self);
	self.bloodyscreen2 = newClientHudElem(self);
	self.bloodyscreen3 = newClientHudElem(self);
	
	self.bloodyscreen.alignX = "left";
	self.bloodyscreen.alignY = "top";
		
	self.bloodyscreen1.alignX = "left";
	self.bloodyscreen1.alignY = "top";
	
	self.bloodyscreen2.alignX = "left";
	self.bloodyscreen2.alignY = "top";
			
	self.bloodyscreen3.alignX = "left";
	self.bloodyscreen3.alignY = "top";
			
	bs1 = (randomint(496));
	bs2 = (randomint(336));
	bs1a = (randomint(496));
	bs2a = (randomint(336));
	bs1b = (randomint(496));
	bs2b = (randomint(336));
	bs1c = (randomint(496));
	bs2c = (randomint(336));
	
	self.bloodyscreen.x = bs1;
	self.bloodyscreen.y = bs2;
	
	self.bloodyscreen1.x = bs1a;
	self.bloodyscreen1.y = bs2a;
	
	self.bloodyscreen2.x = bs1b;
	self.bloodyscreen2.y = bs2b;
	
	self.bloodyscreen3.x = bs1c;
	self.bloodyscreen3.y = bs2c;
	
	bs3 = randomint(48);
	bs3a = randomint(48);
	bs3b = randomint(48);
	bs3c = randomint(48);
	self.bloodyscreen.color = (1,1,1);
	self.bloodyscreen1.color = (1,1,1);
	self.bloodyscreen2.color = (1,1,1);
	self.bloodyscreen3.color = (1,1,1);
	self.bloodyscreen.alpha = 1;
	self.bloodyscreen1.alpha = 1;
	self.bloodyscreen2.alpha = 1;
	self.bloodyscreen3.alpha = 1;
	
	self.bloodyscreen SetShader("gfx/impact/flesh_hit2",96 + bs3 , 96 + bs3);
	self.bloodyscreen1 SetShader("gfx/impact/flesh_hitgib",96 + bs3a , 96 + bs3a);
	self.bloodyscreen2 SetShader("gfx/impact/flesh_hit2",96 + bs3b , 96 + bs3b);
	self.bloodyscreen3 SetShader("gfx/impact/flesh_hitgib",96 + bs3c , 96 + bs3c);
	
	wait (4);
	
	if(!isdefined(self.bloodyscreen))
		return;
	
	self.bloodyscreen fadeOverTime (2); 
	self.bloodyscreen.alpha = 0;
	self.bloodyscreen1 fadeOverTime (2);
	self.bloodyscreen1.alpha = 0;
	self.bloodyscreen2 fadeOverTime (2);
	self.bloodyscreen2.alpha = 0;
	self.bloodyscreen3 fadeOverTime (2);
	self.bloodyscreen3.alpha = 0;
			
	wait(2);
			
	// Remove Bloodyscreen
	if (isDefined(self.bloodyscreen))	self.bloodyscreen destroy();
	if (isDefined(self.bloodyscreen1))	self.bloodyscreen1 destroy();
	if (isDefined(self.bloodyscreen2))	self.bloodyscreen2 destroy();
	if (isDefined(self.bloodyscreen3))	self.bloodyscreen3 destroy();
}


Bulletholes(){

	self endon("disconnect");
	self endon("end_map");
	self endon("killed_player");
	self endon("death");

	hole = self.bulletholes.size;
	
	self.bulletholes[hole] = newClientHudElem(self);
	self.bulletholes[hole].alignX = "center";
	self.bulletholes[hole].alignY = "middle";
	self.bulletholes[hole].x = 48 + randomInt(544);
	self.bulletholes[hole].y = 48 + randomInt(304);
	self.bulletholes[hole].color = (1,1,1);
	self.bulletholes[hole].alpha = 0.8 + randomFloat(0.2);

	xsize = 64 + randomInt(32);
	ysize = 64 + randomInt(32);
	
	if(randomInt(2)) self.bulletholes[hole] setShader("gfx/custom/bullethit_glass.tga", xsize, ysize);
	else self.bulletholes[hole] setShader("gfx/custom/bullethit_glass2.tga", xsize, ysize);

	self playLocalSound("glass_break");

	wait 5;

	if( isPlayer(self) ){
	
		if( isDefined(self.bulletholes) ){
		
			if( isDefined(self.bulletholes[hole]) ){
			
				self.bulletholes[hole] fadeOverTime(1);
				self.bulletholes[hole].alpha = 0;
				wait 1;
				if(isPlayer(self) && isDefined(self.bulletholes[hole])) self.bulletholes[hole] destroy();
			}
		}
	}
}




Folgende Probleme treten auf:

- Bulletholes kommen erst beim Tod des Spielers, nicht schon beim anschiessen.

- Blackscreen entfernt ab und an fast das ganze HUD und den Mapvotehintergrund, man sieht nicht mehr, was gevotet wird.

- Bloodyscreen: Bei 2 Gegnern hintereinander Bashen kann es passieren, das die Blutspritzer von einem Kill nicht mehr vom Bildschirm verschwinden.

Kann mir da scripttechnisch jemand unter die Arme greifen, der mehr Ahnung als ich davon hat??

Danke

ToM