|
 |
AWE3b10 Quakesounds... |
|
|
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
Teetrinker
 
Dabei seit: 18.02.2011
Beiträge: 40

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

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Nightwing: 05.04.2011 09:01.
|
|
|
|
|
spaten
Teetrinker
 
Dabei seit: 18.02.2011
Beiträge: 40

|
|
_global.gsc:
Code 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");
} |
|
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 05.04.2011 09:02.
|
|
|
|
|
spaten
Teetrinker
 
Dabei seit: 18.02.2011
Beiträge: 40

|
|
_myaddon.gsc:
Code 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 !
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 05.04.2011 09:02.
|
|
|
|
|
|
|
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.
ToM
__________________

|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|