AWE3b10 Quakesounds...

spaten
Hallo Freunde!

Gibt es eine Möglichkeit, in den Awe 3beta10 Mod diese Headshot / Killingspree Sounds einzubinden?

Ich habe den Threat gesehen mit Awe3b10B, habe mal angefangen zu probieren, aber ich scheitere schon daran, dass ich nicht weiss, welche iwd Datei diese awe_sound.csv enthält, desweiteren sind manche scripts nicht identisch glaube ich...
Außerdem ist der Link zum Awe3b10b down...
Vielleicht kann mir da einer helfen...

mfg
serthy
shcau mal bei cod2.filefront oder so rein es gibt da viele mods auch den ut headshot/killingspree soundmod

er heißt stand alone killing spree mod

er hat headshotsounds auch drin

schau ihn dir mal an, sind nur 4 oder 5 gsc dateien
ist auch recht einfach zu verstehen smile

hinweis:
-in gametyp gsc (dm,sd,tdm...) bei callback_playerkilled und Check_for_EndofRampage
-damagefeedback.gsc

brauchst du eigentlich nur copy & paste machen, selber neu schreiben oder credits :p
spaten
aber das ding is, ich hab diesen mod gerade getestet, er läuft nicht... (iwd/sum mismatch) , und zwar, weil in dem mod schon gametype daten drin sind, die bei mir auf dem awe3b10 auch vorhanden sind...
-=RD=-thorn
Mit dem AWE3b10b könnte ich dir aushelfen:

AWE3b10b
spaten
Affenstark! Dankeschön...

kannst du mir jetzt noch bei einer Sache helfen?

Die ganzen gsc dateien, vom awe3b10B, welche bearbeitet werden müssen, kannst du mir die mal noch schicken..
In Sachen Scripts bin ich noob...
Selbst weiss ich bei dieser Anleitung aus dem anderen Threat nicht immer genau wohin, welcher Part... Find mich in den Scripten kaum zurecht...
Würdest du das tun ? grosses Grinsen

oder jemand anderes?

oder wenigstens nur die veränderungen in der Funktion Funktion Callback_StartGameType() der Gametype.GSC Daten... damit komm ich nicht klar...
serthy
öhm
also
du müsstest so vorgehen:

guck dir in dem killingspree mod an was was verursacht
das heißt im grunde suche alle daten raus die hinterher eingefügt worden sind (erkennt man am namen oder der modder hat einen hinweis hingescriptet)
die kopierst du dir dann an exakt die selben stellen in deinen awe mod

also zb:
du suchst dir im killingspreemod die tdm gsc raus und guckst was anders ist
und du findest bei callback_playerkilled dann einige neue einträge (z.b. die den headshotsound verursachen)
die kopierst du dir und fügst die dann in deinen awe mod ein (selbe stelle)
du musst allerdings alle komponenten des killingspree mods so in deinen awe einfügen sonst wird es nicht funktionieren

hab grad keine zeit alles zu posten aber das is so ne art grobe anleitung, hoffe du kannst mir folgen grosses Grinsen grosses Grinsen
spaten
habs hinbekommen...

jetzt hab ich nur noch ein anliegen:
wie bekomme ich diese camperoption weg, dass ein klavier auf mich fällt und wie bekomme ich bei einem headshotsound den text dazu weg? (headshot war beispiel, er soll den text allgemein nicht anzeigen....)
serthy
klavier:
entweder du löschst das alles raus (auch alle aufrufe der funktion)

oder du setzt die camperzeit auf 1000 oder so (per cvar: awe_campers_after_sec )

text:
da musst du wohl alle iprintln's rauslöschen

attacker playlocalSound ( "headshot" ); <<< das bleibt stehen
attacker iprintln (&"CUSTOM_HEADSHOT"); <<< das dann alles löschen
bangingbernie
In der Mod ist keine anticamper-Funkion enthalten.

Das Klavier bekommst Du bei entsprechenden teamkills.

// Punishment method for teamkillers (default 3)
// 0 = disabled
// 1 = Use random punishment
// 2 = kill
// 3 = blow up
// 4 = crush
set awe_teamkill_method "3"

Setz das auf 0 oder Teamkill auf aus.
spaten
@serthy:

Hab ich alles gemacht... Hat auch geklappt..

Jedoch irgendwelche Rester sind trotzdem noch geblieben, z.b. stand einmal oben bei dem HTF Balken ganz groß darüber CUSTOM ULTRAKILL...

Wie bekomme ich sowas weg, ich will ausschliesslich die Sounds haben, nix weiter ^^

Allerdings habe ich irgendwas zuviel gelöscht, jetzt startet der Server nicht mehr..

Zum Glück vorher Backups angelegt...

Aber hat denn keiner diese bearbeiteten GSC Dateien für den awe3b10b rumliegen, die er mal verlinken könnte als RAR ?
Geht um die _Player.gsc, _util.gsc, _myaddon.gsc usw.... und die ganzen gametype gsc´s...
serthy

Zitat:

Original von spaten
@serthy:

Hab ich alles gemacht... Hat auch geklappt..

Jedoch irgendwelche Rester sind trotzdem noch geblieben, z.b. stand einmal oben bei dem HTF Balken ganz groß darüber CUSTOM ULTRAKILL...

Wie bekomme ich sowas weg, ich will ausschliesslich die Sounds haben, nix weiter ^^

Allerdings habe ich irgendwas zuviel gelöscht, jetzt startet der Server nicht mehr..

Zum Glück vorher Backups angelegt...



jaaa das sind die fiesen kleinen fallen im leben eines modders xD mit bissl übung gelingt es dir dann

und gut dass du backups gemacht hast Grins 1


aber wie gesagt alle iprintln und iprintlnbolds löschen, cvar davor oder mit // ausklammern, dann sollten auch keine mehr angezeigt werden

und die gsc dateien sind schon etwas alt, bezweifle das die noch jmd hat ^^
aber wär auch dran interessiert
mein modordner ist fast 6gb groß lol
spaten
habe jetz alles zum laufen gebracht.. PROBLEM ist noch:
jeder kill wird 2mal angezeigt ...
wie krieg ich das jetz wieder normal ?

f***

bitte um schnelle antwort Augenzwinkern
die _camping.gsc habe ich (erfolgreich) komplett entfernt.
der server beinhaltet nur ctf und htf, daher habe ich die änderungen auch nur in den beiden gsc´s getätigt... laufen tut es ja...
wie gesagt, hab das jetz im "awe3b10"
hier mal die gsc´s von mir... :

_players.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:
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:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598:
599:
600:
601:
602:
603:
604:
605:
606:
607:
608:
609:
610:
611:
612:
613:
614:
615:
616:
617:
618:
619:
620:
621:
622:
623:
624:
625:
626:
627:
628:
629:
630:
631:
632:
633:
634:
635:
636:
637:
638:
639:
640:
641:
642:
643:
644:
645:
646:
647:
648:
649:
650:
651:
652:
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664:
665:
666:
667:
668:
669:
670:
671:
672:
673:
674:
675:
676:
677:
678:
679:
680:
681:
682:
683:
684:
685:
686:
687:
688:
689:
690:
691:
692:
693:
694:
695:
696:
697:
//////////////////////
// Init and Cleanup //
//////////////////////

// Called from PlayerConnect
PlayerConnect()
{
	Cleanup();

	// Start threads
	self thread StartPlayerThreads();
}

// Called from PlayerDisconnect
PlayerDisconnect()
{
	// Kill running threads
	self notify("awe_killthreads");

	// Clear variables etc...
	CleanupKilled();
}

PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime)
{
	// Block friendly melee in some cases (body search, etc...)
	if(level.awe_teamplay && isPlayer(self) && isPlayer(eAttacker) && self.sessionteam == eAttacker.sessionteam && sMeansOfDeath == "MOD_MELEE")
	{
		if(isDefined(self.awe_tripwiremessage) || isDefined(self.awe_turretmessage))
			return -1;
	}

	// Damaged by a player while under spawnprotection?
	if(isplayer(eAttacker) && self.awe_invulnerable)
		return -1;

	// Damage modifiers
	if(sMeansOfDeath != "MOD_MELEE" && isdefined(level.awe_dmgmod[sWeapon]))
		iDamage = int(iDamage * level.awe_dmgmod[sWeapon]);

	// Was the attacker a spawnprotected player?
	if(isPlayer(eAttacker) && eAttacker != self && eAttacker.awe_invulnerable && level.awe_spawnprotectiondropweapon)
	{
		eAttacker iprintlnbold(&"AWE_SPROT_DONT_ABUSE");
		eAttacker dropItem(eAttacker getcurrentweapon());
	}

	// Stop damage from teamkiller
	if(level.awe_teamplay && isPlayer(eAttacker) && (self != eAttacker) && (self.pers["team"] == eAttacker.pers["team"]))
	{
		if(eAttacker.pers["awe_teamkiller"])
		{
			eAttacker.friendlydamage = true;
			iDamage = int(iDamage * .5);
			// Make sure at least one point of damage is done
			if(iDamage < 1)
				iDamage = 1;

			eAttacker finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);
			eAttacker.friendlydamage = undefined;

			friendly = true;

			iDamage = -1;
		}
	}

	return iDamage;
}

PostPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime)
{
	// Splatter on attacker?
	if(isPlayer(eAttacker) && (sMeansOfDeath == "MOD_MELEE" || distance(eAttacker.origin , self.origin ) < 40 ) )
		eAttacker thread awe\_bloodyscreen::Splatter_View();

	// Still alive?
	if(isalive(self))
	{	
		// Pains sound
		if(level.awe_painsound)
			self painsound();

		// Do helmetpopping etc... ?
		switch(sHitLoc)
		{
			case "helmet":
			case "head":
				self thread awe\_bloodyscreen::Splatter_View();
				if( randomInt(100) < level.awe_pophelmet && !self.awe_helmetpopped)
					self awe\_popping::popHelmet( vDir, iDamage );
				break;
		}
	
/*		// Do stuff
		switch(sHitLoc)
		{
			case "right_hand":
			case "left_hand":
			case "gun":
				if( !isdefined(level.awe_merciless) && randomInt(100)<level.awe_droponhandhit)
					self dropItem(self getcurrentweapon());
				break;
			
			case "right_arm_lower":
			case "left_arm_lower":
				if(!isdefined(level.awe_merciless) && randomInt(100)<level.awe_droponarmhit )
					self dropItem(self getcurrentweapon());
				break;
	
			case "right_foot":
			case "left_foot":
				if(randomInt(100)<level.awe_triponfoothit)
					self thread spankme(1);
				break;

			case "right_leg_lower":
			case "left_leg_lower":
				if(randomInt(100)<level.awe_triponleghit)
					self thread spankme(1);
				break;
		}*/
	}	
}

PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
{
	if(self.sessionteam == "spectator")
		return;

//** Nachricht für ersten Kill - FIRST BLOOD - **//

	if( level.firstblood == 0 && !isDefined ( self.switching_teams ) ){
		players = getentarray("player", "classname");
		
		level.firstblood++; //** Erster Kill wurde gemacht Variable != 0 gesetzt **//
		
		if( isPlayer ( attacker ) ){	//** Wenn Spieler Spieler Schütze ist **//

			for( i=0;i < players.size;i++ ){	//** Variable die alle Spieler Anzahl x definiert **//
						
				if( players[i] != self && players[i] != attacker && attacker != self ){	//** Alle Spieler ausser Schütze und Getöteter und Schütze ist kein Selbstmörder **//
				
					players[i] playlocalsound( "firstblood" ); 	//** Sound für alle Spieler mit Ausnahme des Schützen des Getöteten und des Selbstmörders**//
					
					players[i] iprintln( "" );	//** Text für alle Spieler mit Ausnahme des Schützen des Getöteten und des Selbstmörders  &"CUSTOM_FBALL1", attacker.name**//
						
					if( level.teamplay == 0 )
						players[i] iprintln( "" );	//** Text wenn keine Teams vorhanden sind   &"CUSTOM_FBALL2" , self.name **//
						
					else if( attacker.pers["team"] != self.pers["team"] && level.teamplay == 1 )	//** Text wenn Teams vorhanden sind und Opfer nicht im gleichen Team ist **//
						players[i] iprintln( "" );	//** Text für Gegner Team    &"CUSTOM_FBALL2" , self.name **//
						
					else if( attacker.pers["team"] == self.pers["team"] && level.teamplay == 1 )	//** Text wenn Teams vorhanden sind und Opfer im gleichen Team ist **//
						players[i] iprintln( "" );	//** Text für Opfer Team     &"CUSTOM_FBALL3" , self.name , &"CUSTOM_FBALL4" **//
				}
			}
			
			if( attacker != self ){	//** Schütze jedoch nicht Getöteter - Nachricht an Beide **//
			
				if( attacker.Headshot == 1 )
					wait 1.5;
				attacker playlocalsound( "firstblood" ); 	//** Sound für den Schützen mit Wartezeit beim Headshot**//
				
				self playlocalsound( "firstblood" ); 	//** Sounds für den Getöteten mit Wartezeit zwischen den Sounds **//
				self playLocalSound ( "whyami" );
					
				attacker iprintln( "" );	//** Text für den Schützen    &"CUSTOM_FB",&"CUSTOM_FBATT"**//
				attacker iprintln( "" );	//** &"CUSTOM_FBALL2" , self.name **//
  		
				self iprintln( "" ); 	//** Text für den Getöteten mit Ausnahme eines Selbstmörders  &"CUSTOM_FBSELF1"**//
				self iprintln( "" );     //** attacker.name , &"CUSTOM_FBSELF1" **//
			}
			
			for( i=0;i < players.size;i++ ){	//** Variable die alle Spieler Anzahl x definiert **//
			
				if( attacker == self ){	//** Spieler ist Selbstmörder **//
				
					players[i] playlocalsound( "firstblood" );	//** Sound für alle Spieler **//	
					self playLocalSound ( "hallelujah" );
						
					if( players[i] != self && players[i] != attacker )
						players[i] iprintlnbold( "" );	//** Text für alle Spieler mit Ausnahme des Schützen des Getöteten und des Selbstmörders  &"CUSTOM_FBALL1" , attacker.name**//
						
					self iprintln( "" );		//** Text für den Selbstmörder &"CUSTOM_FB"**//
					self iprintln( "" );		//** &"CUSTOM_FBSELF2" **//
						
					if( level.teamplay == 0 && players[i] != self)	
						players[i] iprintlnbold( "" );	//** Text wenn keine Teams vorhanden sind &"CUSTOM_FBALL5"**//
																	
					else if( attacker.pers["team"] != self.pers["team"] && players[i] != self && level.teamplay == 1 )	//** Text wenn Teams vorhanden sind und Selbstmörder nicht im gleichen Team ist **//
						players[i] iprintln( "" );	//** Text für Gegner Team &"CUSTOM_FBALL5" **//
						
					else if( attacker.pers["team"] == self.pers["team"] && players[i] != self && level.teamplay == 1 )		//** Text wenn Teams vorhanden sind und Selbstmörder im gleichen Team ist **//
						players[i] iprintln( "" );	//** Text für Selbstmörder Team &"CUSTOM_FBTEAM1" , self.name , &"CUSTOM_FBTEAM2"**//
				}	
			}	
		}
	}
	
	thread maps\mp\gametypes\_myaddon::Killingspree(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc);
 
//** ENDE **//

	if(isPlayer(attacker))
	{
		if(attacker == self) // killed himself
		{
		}
		else
		{
			if(level.awe_teamplay && self.pers["team"] == attacker.pers["team"]) // killed by a friendly
			{
				attacker awe\_teamkilling::TeamKill();
			}
			else		// killed by an enemy
			{
			}
		}
	}
	else // If you weren't killed by a player, you were in the wrong place at the wrong time
	{
	}

	dopop = false;
	// Check for headpopping
	switch(sHitLoc)
	{
		case "head":
		case "helmet":
			self thread awe\_bloodyscreen::Splatter_View();
			if( randomInt(100) < level.awe_pophelmet && !self.awe_helmetpopped)
				self awe\_popping::popHelmet( vDir, iDamage );
			if( level.awe_popheadbullet && sMeansOfDeath != "MOD_MELEE" && (awe\_util::isWeaponType("rifle",sWeapon) || awe\_util::isWeaponType("sniper",sWeapon) || awe\_util::isWeaponType("turret",sWeapon)) )
				dopop = true;
			break;
		default:
			break;
	}
//	iprintln("sMoD:"+sMeansOfDeath + " iDmg:" + iDamage + " sHL:" + sHitLoc);
	switch(sMeansOfDeath)
	{
		case "MOD_MELEE":
			if(level.awe_popheadmelee && iDamage>=100 )
				dopop = true;
			break;
		case "MOD_PROJECTILE":
		case "MOD_PROJECTILE_SPLASH":
		case "MOD_GRENADE_SPLASH":
		case "MOD_EXPLOSIVE":
			if(level.awe_popheadexplosion && iDamage>=100 )
				dopop = true;
			break;
		default:
			break;
	}

	if(dopop)
	{
		if(randomInt(100) < level.awe_pophead && !self.awe_headpopped)
			self awe\_popping::popHead( vDir, iDamage);
		else if(randomInt(100) < level.awe_pophelmet && !self.awe_helmetpopped)
			self awe\_popping::popHelmet( vDir, iDamage);
	}

	// Drop health
	awe\_healthpacks::dropHealth();

	// Clear variables etc...
	CleanupKilled(sMeansOfDeath);
}

/////////////
// Threads //
/////////////

StartPlayerThreads()
{
	// End this thread on disconnect only
	self endon("disconnect");

	for(;;)
	{
		// Wait for player to spawn
		self waittill("spawned_player");
		RunOnSpawn();
		wait .05;
	}
}

// Thread run on each player, every second
EverySecondThread()
{
	self endon("awe_killthreads");

	sprinthudvisible = false;
	self.awe_pace = 0;

	oldprimary = level.awe_sprintweapon;
	oldammo = 0;
	oldclip = 0;
	oldprimaryb = level.awe_sprintweapon;
	oldammob = 0;
	oldclipb = 0;

	// Avoid some undefined errors
	self.awe_oldprimary2 	= self getWeaponSlotWeapon("primary");
	self.awe_oldammo2 	= self getWeaponSlotAmmo("primary");
	self.awe_oldclip2 	= self getWeaponSlotClipAmmo("primary");
	self.awe_oldprimaryb = self getWeaponSlotWeapon("primaryb");
	self.awe_oldammob 	= self getWeaponSlotAmmo("primaryb");
	self.awe_oldclipb 	= self getWeaponSlotClipAmmo("primaryb");

	ch_count=0;

	if(level.awe_teamplay)
		myteam = self.sessionteam;
	else
		myteam = self.pers["team"];

	oldpos = self.origin;

	while( isPlayer(self) && isAlive(self) && self.sessionstate=="playing" )
	{
		delayed = 0;
		awe\_healthbar::UpdateHealthBar();

		// Get the current weapon
		cw = self getCurrentWeapon();

		// Get the stance every second
		self.awe_stance = self awe\_util::GetStance(false);

		// Show/Hide the sprint hint
		if(level.awe_sprint && level.awe_sprinthudhint)
		{
			if(!sprinthudvisible && self.awe_sprinttime && !self.awe_sprinting && self.awe_pace && level.awe_sprint>self.awe_stance)
			{
				if(isdefined(self.awe_sprinthud_hint))
				{
					self.awe_sprinthud_hint fadeOverTime (1); 
					self.awe_sprinthud_hint.alpha = 1;
					sprinthudvisible = true;
				}
			}
			else if(sprinthudvisible && (self.awe_sprinting || !self.awe_pace || level.awe_sprint<=self.awe_stance) )
			{
				{
					if(isdefined(self.awe_sprinthud_hint))
					{
						self.awe_sprinthud_hint fadeOverTime (1); 
						self.awe_sprinthud_hint.alpha = 0;
						sprinthudvisible = false;
					}
				}
			}
		}

		// Save old weapon data
		if(level.awe_sprint)
		{
			// Save 1 second old data
			if(oldprimary != level.awe_sprintweapon)
			{
				self.awe_oldprimary2 = oldprimary;
				self.awe_oldammo2 = oldammo;
				self.awe_oldclip2 = oldclip;
			}
			if(oldprimaryb != level.awe_sprintweapon)
			{
				self.awe_oldprimaryb = oldprimaryb;
				self.awe_oldammob = oldammob;
				self.awe_oldclipb = oldclipb;
			}
			
			// Save new data
			oldprimary 	= self getWeaponSlotWeapon("primary");
			oldammo 	= self getWeaponSlotAmmo("primary");
			oldclip 	= self getWeaponSlotClipAmmo("primary");
			oldprimaryb = self getWeaponSlotWeapon("primaryb");
			oldammob 	= self getWeaponSlotAmmo("primaryb");
			oldclipb 	= self getWeaponSlotClipAmmo("primaryb");
		}

		// Be un-nice to Unknown Players?
		if(level.awe_unknownmethod && self awe\_util::isUnknown())
		{
			self iprintlnbold("^" + randomInt(8) + "Change your name!");
			switch(level.awe_unknownmethod)
			{
				case 1:
					self dropItem(self getcurrentweapon());
					break;
				case 2:
					self shellshock("default", 1);;
					break;
				default:
					break;
			}
		}

		// Override client cvars
		if(ch_count>=15)
		{
			// Allow crosshairs?
			switch(level.awe_allowcrosshair)
			{
				case 2:		// Force crosshair on
					self setClientCvar("cg_drawcrosshair", "1");
					wait 0.05;
					delayed += 0.05;
					break;

				case 1:		// Let player choose
					break;

				default:		// Force crosshair off
					self setClientCvar("cg_drawcrosshair", "0");
					wait 0.05;
					delayed += 0.05;
					break;
			}
			// Allow crosshairs names?
			switch(level.awe_allowcrosshairnames)
			{
				case 2:		// Force crosshair names on
					self setClientCvar("cg_drawcrosshairnames", "1");
					wait 0.05;
					delayed += 0.05;
					break;

				case 1:		// Let player choose
					break;

				default:		// Force crosshair names off
					self setClientCvar("cg_drawcrosshairnames", "0");
					wait 0.05;
					delayed += 0.05;
					break;
			}
			// Allow crosshairs to switch color when aiming enemies?
			switch(level.awe_allowcrosshaircolor)
			{
				case 2:		// Force crosshair color on
					self setClientCvar("cg_crosshairenemycolor", "1");
					wait 0.05;
					delayed += 0.05;
					break;

				case 1:		// Let player choose
					break;

				default:		// Force crosshair color off
					self setClientCvar("cg_crosshairenemycolor", "0");
					wait 0.05;
					delayed += 0.05;
					break;
			}
			if(level.awe_stopclientexploits)
			{
				self setClientCvar("r_lighttweakambient","0");	// "glowing" models
				wait 0.05;
				delayed += 0.05;
				self setClientCvar("r_lodscale","1");		// See through bushes/trees
				wait 0.05;
				delayed += 0.05;
				self setClientCvar("mss_Q3fs","1");			// Ambient sounds
				wait 0.05;
				delayed += 0.05;
				self setClientCvar("r_polygonOffsetBias","-1");	// Not sure what this does
				wait 0.05;
				delayed += 0.05;
				self setClientCvar("r_polygonOffsetScale","-1");// Same here, not a clue...
			}
			if(level.awe_quickfadecompassdots)
			{
				self setClientCvar("cg_hudCompassSoundPingFadeTime","0");
				wait 0.05;
				delayed += 0.05;
			}
			ch_count=randomInt(15); // Use a random interval between cvar forcing to create some chaos (1-15 seconds)
		}
		ch_count++;

		// Do some unlimted voodoo magic to the ammo counters
		if(level.awe_unlimitedammo)
		{
			self setWeaponSlotAmmo("primary", 999);
			self setWeaponSlotAmmo("primaryb", 999);
			if(level.awe_unlimitedammo == 2)
			{
				self setWeaponSlotClipAmmo("primary", 999);
				self setWeaponSlotClipAmmo("primaryb", 999);
			}
		}
		if(level.awe_unlimitedgrenades)
		{
			sWeapon = awe\_util::GetGrenadeType(game[myteam]);
			ammo = self getammocount(sWeapon);
			if(!ammo)	self giveWeapon(sWeapon);
			self setWeaponClipAmmo(sWeapon, 999);
		}
		if(level.awe_unlimitedsmokegrenades)
		{
			sWeapon = awe\_util::GetSmokeGrenadeType(game[myteam]);
			ammo = self getammocount(sWeapon);
			if(!ammo)	self giveWeapon(sWeapon);
			self setWeaponClipAmmo(sWeapon, 999);
		}

		// Calculate current speed
		wait 1 - delayed;				// Wait 1 seconds minus whatever we were delayed while setting cvars
		newpos = self.origin;
		speed = distance(oldpos,newpos);
		oldpos = newpos;

		if (speed > 20)
			self.awe_pace = 1;
		else
			self.awe_pace = 0;
	}
}

// Thread run on each player, every frame
EveryFrameThread()
{
	if(level.awe_teamplay)
		team = self.sessionteam;
	else
		team = self.pers["team"];

	if(team == "axis")
		otherteam = "allies";
	else
		otherteam = "axis";

	self endon("awe_killthreads");

//	mindist = 9999;
//	maxdist = 0;
	count = 0;
	for(;;)
	{
		count++;
		// Get the stance every half second
		if(count>10)
		{
			self.awe_stance = self awe\_util::GetStance(false);
			count = 0;
		}
		
		myammo	= self getammocount(awe\_util::GetGrenadeType(game[team]));
		otherammo 	= self getammocount(awe\_util::GetGrenadeType(game[otherteam]));
		ammo = myammo + otherammo;
		if( level.awe_tripwire && ammo>1 && self.awe_stance==2 && !isDefined(self.awe_turretmessage) && !isDefined(self.awe_tripwiremessage))
			self thread awe\_tripwire::checkTripwirePlacement(team, otherteam, myammo, otherammo);

/*		if(self meleeButtonPressed())
		{
			while(self meleeButtonPressed())
				wait .05;
			level thread awe\_util::DropPiano(self);
		}*/
//		z = self.origin[2];
		wait .05;
/*		dist = self.awe_spinemarker.origin[2] - z;
		if(dist<mindist) mindist = dist;
		if(dist>maxdist) maxdist = dist;
		if(self meleebuttonpressed())
		{
			self iprintlnbold("Min:" + mindist + " Max:" + maxdist);
			mindist = 9999;
			maxdist = 0;
		}*/
	}
}

///////////////
// Functions //
///////////////

Cleanup()
{
	CleanupKilled();
	CleanupSpawned();

	awe\_teamkilling::Cleanup();
	awe\_welcomemessages::Cleanup();
}

CleanupKilled(sMeansOfDeath)
{
	// Create/Reset variables
	if(!isdefined(self.pers["awe_unknown_name"]))	self.pers["awe_unknown_name"] = "Unknown Soldier";
	self.awe_stance = 0;

	// Remove spine marker if present
	if(isdefined(self.awe_spinemarker))
	{
		self.awe_spinemarker unlink();
		self.awe_spinemarker delete();
	}

	awe\_healthbar::CleanupKilled();
	awe\_laserdot::CleanupKilled();
	awe\_popping::CleanupKilled();
	awe\_spawnprotection::CleanupKilled();
	awe\_sprinting::CleanupKilled();
	awe\_tripwire::CleanupKilled();
	awe\_turrets::CleanupKilled(sMeansOfDeath);
}

CleanupSpawned()
{
	awe\_bloodyscreen::CleanupSpawned();
}

RunOnSpawn()
{
	CleanupSpawned();

	// Kill any running threads
	self notify("awe_killthreads");

	// Limit ammo
	awe\_weaponlimiting::ammoLimiting();

	// Wait for threads to die
	wait .05;

	// Attach spinemarker, used by GetStance()
	self.awe_spinemarker = spawn("script_origin",(0,0,0));
	self.awe_spinemarker linkto (self, "J_Spine4",(0,0,0),(0,0,0));	
//	self.awe_spinemarker linkto (self, "J_Neck",(0,0,0),(0,0,0));	

	// Handle the Unknown Soldiers
	if(self awe\_util::isUnknown())
	{
		// Rename Unknown Soldiers
		// Get names
		names = [];
		count = 0;
		name = awe\_util::cvardef("awe_unknown_name" + count, "", "", "", "string");
		while(name != "")
		{
			names[names.size] = name;
			count++;
			name = awe\_util::cvardef("awe_unknown_name" + count, "", "", "", "string");
		}
		if(names.size)
		{
			self.pers["awe_unknown_name"] = names[randomInt(names.size)] + " " + randomInt(1000);
			self setClientCvar("name", self.pers["awe_unknown_name"]);
			if(level.awe_unknownrenamemsg != "none")
				self iprintlnbold(level.awe_unknownrenamemsg);
		}

		// Make sure an unknown player can't do much damage
		if(level.awe_unknownreflect)
			self.pers["awe_teamkiller"] = true;
	}

	// Start new threads
	self thread EverySecondThread();
	self thread EveryFrameThread();

	self awe\_coldbreath::RunOnSpawn();
	self awe\_healthbar::RunOnSpawn();
	self awe\_laserdot::RunOnSpawn();
	self awe\_servermessages::RunOnSpawn();
	self awe\_spawnprotection::RunOnSpawn();
	self awe\_sprinting::RunOnSpawn();
	self awe\_turrets::RunOnSpawn();
	self awe\_welcomemessages::RunOnSpawn();

//*** hinzugefügt ***//
	
//    self awe\_camping::RunOnSpawn();
	
//*** ENDE ***//

}

painsound()
{
	if(level.awe_teamplay)
		team = self.sessionteam;
	else
		team = self.pers["team"];

	nationality = game[team];
	num =  randomInt(level.awe_voices[nationality]) + 1;

	scream = "generic_pain_" + nationality + "_" + num; // i.e. "generic_pain_german_2"
	self playSound(scream);
}

spaten
_global.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:
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:
////////////////////
// Initialization //
////////////////////

// Do various startup things
init()
{
	// Kill any global threads that are running
	level notify("awe_killthreads");

	SetupVariables();

	// Init stuff
	awe\_bloodyscreen::init();
	awe\_bots::init();
	awe\_coldbreath::init();
	awe\_deadbody::init();
	awe\_dmgmod::init();
	awe\_falldmg::init();
 	awe\_fog::init();
	awe\_healthbar::init();
	awe\_healthpacks::init();
	awe\_laserdot::init();
	awe\_logos::init();
	awe\_mapvote::init();
	awe\_minefields::init();
	awe\_maprotation::init();
	awe\_mortars::init();
	awe\_popping::init();
	awe\_servermessages::init();
	awe\_showteamstatus::init();
	awe\_spawnprotection::init();
	awe\_sprinting::init();
	awe\_teamkilling::init();
	awe\_tripwire::init();
	awe\_turrets::init();
	awe\_weaponlimiting::init();
	awe\_welcomemessages::init();

//** hinzugefügt  **//

	awe\_precache::init();
//	awe\_camping::init();

//** Ende **//

	amok\_grenades::init();


	DoPrecaching();
	LoadEffects();

	Setup();
}

// Read cvars and setup variables
SetupVariables()
{
	////////////////////////////
	// Setup global variables //
	////////////////////////////
	
	level.awe_gametype = getcvar("g_gametype");		// Save gametype in case we are pretending to be another gametype

	switch(level.awe_gametype)
	{
		case "dm":
			level.awe_teamplay = false;
			break;

		case "lms":
			level.awe_teamplay = false;
			break;

		case "ihtf":
			level.awe_teamplay = false;
			break;

		default:
			level.awe_teamplay = true;
			break;
	}

	// defaults if not defined in level script
	if(!isDefined(game["allies"]))	game["allies"] = "american";
	if(!isDefined(game["axis"]))		game["axis"] = "german";

	// Number of available punishments
	level.awe_punishments = 3;

	if(!isdefined(game["roundsplayed"]))
		level.awe_roundbased = false;
	else
		level.awe_roundbased = true;

	// Create player array
	level.awe_allplayers = getentarray("player", "classname");

	// Set up number of voices
	level.awe_voices["german"] = 3;
	level.awe_voices["american"] = 7;
	level.awe_voices["russian"] = 6;
	level.awe_voices["british"] = 6;

	if(isdefined(game["german_soldiertype"]) && (game["german_soldiertype"] == "winterlight" || game["german_soldiertype"] == "winterdark") )
		level.awe_wintermap = true;
	else
		level.awe_wintermap = false;

	////////////////
	// Read cvars //
	////////////////

	// Debug
	level.awe_debug 			= awe\_util::cvardef("awe_debug", 0, 0, 1, "int");	

     	// pain & death sounds
	level.awe_painsound		= awe\_util::cvardef("awe_painsound", 1, 0, 1, "int");
	level.awe_deathsound		= awe\_util::cvardef("awe_deathsound", 1, 0, 1, "int");

	// Use deathicons, nadeicons, weapon drop etc...
	level.awe_allowcrosshair	= awe\_util::cvardef("awe_allow_crosshair", 1, 0, 2, "int");
	level.awe_allowcrosshairnames	= awe\_util::cvardef("awe_allow_crosshair_names", 1, 0, 2, "int");
	level.awe_allowcrosshaircolor	= awe\_util::cvardef("awe_allow_crosshair_color", 1, 0, 2, "int");
	
	// Unknown Soldiers handling
	level.awe_unknownreflect 	= awe\_util::cvardef("awe_unknown_reflect",1,0,1,"int");
	level.awe_unknownmethod 	= awe\_util::cvardef("awe_unknown_method",0,0,2,"int");
	level.awe_unknownrenamemsg 	= awe\_util::cvardef("awe_unknown_rename_msg","Unknown Soldier is not a valid name! You have been renamed by the server.","","","string");

	// Override gravity?
	level.awe_gravity 		= awe\_util::cvardef("awe_gravity",100,0,9999,"int");
	// Override speed?
	level.awe_speed	 		= awe\_util::cvardef("awe_speed",100,0,9999,"int");

	// Crush models
	level.awe_crushmodels = [];
	level.awe_crushmodels[level.awe_crushmodels.size] = awe\_util::cvardef("awe_crush_model0","furniture_piano_d","","","string");
	for(i=1;i<100;i++)
	{
		crushmodel = awe\_util::cvardef("awe_crush_model" + i,"none","","","string");
		if(crushmodel == "none") break;
		level.awe_crushmodels[level.awe_crushmodels.size] = crushmodel;
	}

	// Stop client exploits
	level.awe_stopclientexploits	= awe\_util::cvardef("awe_stop_client_exploits",1,0,1,"int");

	// Force quick fading compass dots
	level.awe_quickfadecompassdots= awe\_util::cvardef("awe_quickfade_compass_dots",0,0,1,"int");

	// Use grenade cooking?
	level.awe_grenadecooking	= awe\_util::cvardef("awe_grenade_cooking", 1, 0, 3, "int");
	switch(level.awe_grenadecooking)
	{
		case 1:
			level.awe_cook = "cook_";
			break;
		case 2:
			level.awe_cook = "cook2_";
			break;
		case 3:
			level.awe_cook = "cook3_";
			break;
		default:
			level.awe_cook = "";
			break;
	}

	// Use colored smoke grenades?
	level.awe_coloredsmokes	= awe\_util::cvardef("awe_colored_smokes", 1, 0, 2, "int");
	switch(level.awe_coloredsmokes)
	{
		case 1:
			level.awe_smoke = "dale_";
			break;
		case 2:
			level.awe_smoke = "dave_";
			break;
		default:
			level.awe_smoke = "";
			break;
	}
}

DoPrecaching()
{
	if(!isdefined(game["gamestarted"]))
	{
		if(level.awe_debug)
		{
			precacheModel("xmodel/vehicle_stuka_flying");
		}
	}
}

LoadEffects()
{
	// Used to blow up players. Using same effect as sd.gsc (should save resources)
	level._effect["bombexplosion"] = loadfx("fx/props/barrelexp.efx");
}

Setup()
{
	// Find map limits
	awe\_util::FindMapDimensions();

	// Find play area by checking all the spawnpoints
	awe\_util::FindPlayArea();

	// Override speed and/or gravity?
	if(level.awe_gravity != 100) setcvar("g_gravity", 8 * level.awe_gravity);
	if(level.awe_speed != 100) setcvar("g_speed", int(1.9 * level.awe_speed) );

	// Warm up round
//	WarmupRound();
}


///////////////
// Functions //
///////////////

EndMap()
{
	if(level.awe_disable)
		return;

	setcvar("g_gametype",level.awe_gametype);		// Restore gametype in case we are pretending

	awe\_mapvote::Initialise();
}
--------------------------------------------------------------------------------------------------------
_precache.gsc:



Init(){

	// Killingspree
	precachestring(&"CUSTOM_KILLINGSPREE");
	precachestring(&"CUSTOM_ULTRAKILL");
	precachestring(&"CUSTOM_RAMPAGE");
	precachestring(&"CUSTOM_DOMINATING");
	precachestring(&"CUSTOM_MONSTERKILL");
	precachestring(&"CUSTOM_HOLYSHIT");
	precachestring(&"CUSTOM_SLAUGHTER");
	precachestring(&"CUSTOM_UNSTOPABLE");
	precachestring(&"CUSTOM_GODLIKE");
	precachestring(&"CUSTOM_ENDE_KILLSPREE1");
	precachestring(&"CUSTOM_ENDE_KILLSPREE2");
}

spaten
_myaddon.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:
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:
Killingspree(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc){
	self endon("disconnected");
	
	//** Grösse und Koordinaten für Text **//
	Textsize = 2.0;
	xcoord = 0;
	ycoord = 0;
	
	
	
	if(!isDefined(attacker.KillsiRow)){
		attacker.KillsiRow = 0;
		attacker.EndSpree = 0;
	}
	
	if(!isDefined(self.KillsiRow)){
		self.KillsiRow = 0;
		self.EndSpree = 0;
	}
	
	//** Setzen der Variable für Killspree wenn Player stirbt **//
	if( self.KillsiRow  <= 2 ){
		self.KillsiRow = 0;
	}	
	
	
	if(isdefined(attacker.hud_costumprint))
	attacker.hud_costumprint destroy();
	
	if(isdefined(self.hud_costumprint))
	self.hud_costumprint destroy();
	
	
	//** Setzen der Variable wenn Killspree Ende **//
	if( self.KillsiRow >= 3 )
		self.EndSpree = 1;


	//** Check ob eine Killspree zu Ende ist **//
	if( self.EndSpree == 1 ){
		
		if( self.KillsiRow >= 11 )
			iprintln ( "" );     
		
		else if( self.KillsiRow >= 10 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 9 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 8 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 7 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 6 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 5 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 4 ){
			iprintln ( "" );     
		}
		
		else if( self.KillsiRow >= 3 ){
			iprintln ( "" );     
		}
		
		self playLocalSound ( "monsterlache" );
		
		if( attacker != self ){
			attacker playLocalSound ( "wixxer" );
			self iprintln ( "" );   
		}
		
		//** Killingspree ist vorbei setze Variablen neu **//
		self.EndSpree = 0;
		self.KillsiRow = 0;
	}
	
	//** Check ob Killspree im Gange ist **//
	if( attacker != self ){	//** ohh für einen Selbstmord gibt es schon gar nix **//
		
		attacker.KillsiRow++;
		
		if( !isdefined ( attacker.hud_costumprint ) ){
			attacker.hud_costumprint = newClientHudElem ( attacker );
			attacker.hud_costumprint.horzAlign = "center";
			attacker.hud_costumprint.vertAlign = "top";
			attacker.hud_costumprint.Alignx = "center";
			attacker.hud_costumprint.x = xcoord;
			attacker.hud_costumprint.y = ycoord;
			attacker.hud_costumprint.font = "default";
			attacker.hud_costumprint.fontscale = Textsize;
		}
		
		if( attacker.KillsiRow == 3 ){
			iprintln ( "" ); 
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("killingspree");
		}
		
		if( attacker.KillsiRow == 4 ){
			iprintln ( "" );  
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("ultrakill");
		}
		
		if( attacker.KillsiRow == 5 ){
			iprintln ( "" );   
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("rampage");
		}
		
		if( attacker.KillsiRow == 6 ){
			iprintln ( "" );   
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("dominating");
		}
		
		if( attacker.KillsiRow == 7 ){
			iprintln ( "" ); 
			attacker.hud_costumprint setText( "" );  
			attacker playLocalSound ("monsterkill");
		}
		
		if( attacker.KillsiRow == 8 ){
			iprintln ( "" );   
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("holyshit");
		}
		
		if( attacker.KillsiRow == 9 ){
			iprintln ( "" );   
			attacker.hud_costumprint setText( "" );  
			attacker playLocalSound ("slaughter");
		}
		
		if( attacker.KillsiRow == 10 ){
			iprintln ( "" );   
 			attacker.hud_costumprint setText( "" );  
			attacker playLocalSound ("unstoppable");

		}
		
		if( attacker.KillsiRow >= 11 ){
			iprintln ( "" );  
			attacker.hud_costumprint setText( "" ); 
			attacker playLocalSound ("godlike");
			
		}
	}
}
--------------------------------------------------------------------------------------------------------
_util.gsc:

PunishMe(iMethod, sReason)
{
	self endon("awe_killthreads");

	sMethodname = "";

	if(iMethod == 1)
		iMethod = 2 + randomInt(level.awe_punishments);

	switch (iMethod)
	{
		case 2:
			self suicide();
			sMethodname = &"CUSTOM_PUNISH4";
			break;

		case 3:
			wait 0.5;
			// explode 
			playfx(level._effect["bombexplosion"], self.origin);
			wait .05;
			self suicide();
			sMethodname = &"CUSTOM_PUNISH5";
			break;
		
		case 4:
			// Drop a piano on the player
			level thread DropPiano(self);
			sMethodname = &"CUSTOM_PUNISH6";
			break;

		default:
			break;
	}
	if(iMethod)
		iprintln(self.name , &"CUSTOM_PUNISH1" , sMethodname , &"CUSTOM_PUNISH2" , sReason);

}

getGrenadeType(team)
{
	switch(team)
	{
		case "american":
			type = level.awe_cook + "frag_grenade_american_mp";
			break;
		case "british":
			type = level.awe_cook + "frag_grenade_british_mp";
			break;
		case "russian":
			type = level.awe_cook + "frag_grenade_russian_mp";
			break;
		default:
			type = level.awe_cook + "frag_grenade_german_mp";
			break;
	}
	return type;
}

getSmokeGrenadeType(team)
{
	switch(team)
	{
		case "american":
			type = level.awe_smoke + "smoke_grenade_american_mp";
			break;
		case "british":
			type = level.awe_smoke + "smoke_grenade_british_mp";
			break;
		case "russian":
			type = level.awe_smoke + "smoke_grenade_russian_mp";
			break;
		default:
			type = level.awe_smoke + "smoke_grenade_german_mp";
			break;
	}
	return type;
}

DropPiano(victim)
{
	level endon("awe_killthreads");

	falltime = 2;
	yaw = victim.angles[1];
	offset = (-25 + randomInt(51), -25 + randomInt(51), 3000);
	piano = spawn("script_model", victim.origin + offset);
	piano setModel("xmodel/" + level.awe_crushmodels[randomInt(level.awe_crushmodels.size)]);
	piano.angles = (0,yaw,0);
	piano show();
	piano moveto(victim.origin, falltime);
	origin = victim.origin;

	deltayaw = -10 + randomInt(21);

	for(i=2;i<falltime*20;i++)
	{
		if(isDefined(victim) && isPlayer(victim) && isAlive(victim))
			victim setOrigin(origin);

		piano.angles = (0,yaw,0);
		yaw += deltayaw;
		wait .05;
	}
	if(isDefined(victim) && isPlayer(victim) && isAlive(victim))
	{
		victim setOrigin(origin);
		victim suicide();
	}
	wait 0.1;
	playfx(level._effect["awe_dustimpact"],origin);
	piano playsound("wood_door_shoulderhit");
	piano thread putinQ("piano");
	wait 45;
	if(isdefined(piano))
	{
//		playfx(level._effect["awe_dustimpact"],origin);
		piano moveto(origin + offset, falltime);
		wait falltime;
		if(isdefined(piano)) piano delete();
	}
}



Die Datei custom.str im localisedstrings ordner habe ich weg gelassen, dient ja meiner meinung nach nur dazu, die killtexte anzuzeigen, was ja genau das ist, was ich nicht will. Gewünscht ist ja nur der Sound.

Also egal ob Headshot, Killingspree, Selfkill oder sonstiges, die Frags werden immer 2 mal "angezeigt und auch gezählt".
Finde den Fehler einfach nicht!
Oder liegt es daran, dass dieses Verfahren doch erst ab Awe3b10B möglich ist ?

Wäre wahnsinnig hilfreich, wenn sich einer, oder du mal die Teile von mir anschauen könnte. Ich sitze jetzt schon 2 Tage und 1,5 Nächte daran..

MfG !
Nightwing
Warum nimmst Du nicht gleich den komplett veränderten AWE Mod, wenn Du eh schon die gsc's davon nimmst?
Die DL Links sind leider tot, die Homepage existiert seit längerem nicht mehr, aber habs Dir hier nochmal hochgeladen.
Die Anleitung in Post 1 hätte es Dir auch ermöglicht, die gewünschten Änderungen selbst herbeizuführen, auch wenn der DL Link tot ist. Augenzwinkern


ToM
spaten
Danke erstmal für deine mühe, aber ich will nicht mit awe3b10b die Sounds haben, sondern mit awe3b10 und ohne die Text messages headshot usw... habe es nach Anleitung gemacht, aber jetzt zeigt er immer alle frags Doppelt an und wertet sie auch doppelt . Das ist mein Problem momentan.
spaten
habs endlich hinbekommen...

Danka an alle !

mfg