AWE 3.0beta10b mit Camperoption, Headshotsound, Firstblood und Killingspree |
sefeschnut
Milupa-Fan
  
Dabei seit: 02.02.2007
Beiträge: 531

|
|
Headshotsound, Firstblood und Killingspree |
 |
Hi,bräuchte mal wieder hilfe und zwar habe ich wie oben die Sound Scripte eingebaut aber ohne den awe mod. Die funktionieren alle ohne scriptfehler und die Sounds sind auch alle zuhören.
Mein Problem ist das nach einiger zeit auf dem Server mein Spiel abstürzt ohne eine Fehlermeldung und das nicht nur bei mir sondern bei allen Spielern auf dem Server nach und nach.
Leider weiß ich jetzt nicht mehr weiter und werde mal schritt für schritt auflisten wie ich wo was eingefügt habe, vielleicht findet ihr den Fehler warum das Spiel immer abstürzt.
Es kann nur an den Einstellungen liegen, wenn ich die Scripte wieder vom Server nehme läuft alles ohne Probleme das Spiel stürzt nicht ab.
in der dm.gsc habe ich folgendes eingetragen:
unter Callback_PlayerKilled: Nachricht für ersten Kill - FIRST BLOOD
unter Callback_StartGameType: level.teamplay = 0;
unter startGame: level.firstblood = 0; //** Variabel für ersten Kill -FIRST BLOOD- *
alles in der dm.gsc
In meinem gametype Ordner habe ich die _precache.gsc und _myaddon.gsc liegen.
Die _precache.gsc starte ich in der _callbacksetup.gsc so thread maps\mp\gametypes\_precache::init();
hier die dm.gsc wo alles drin ist:
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:
|
Callback_PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
{
self endon("spawned");
self notify("killed_player");
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( &"CUSTOM_FBALL1", attacker.name ); //** Text für alle Spieler mit Ausnahme des Schützen des Getöteten und des Selbstmörders **//
if( level.teamplay == 0 )
players[i] iprintln( &"CUSTOM_FBALL2" , self.name ); //** Text wenn keine Teams vorhanden sind **//
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( &"CUSTOM_FBALL2" , self.name ); //** Text für Gegner Team **//
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( &"CUSTOM_FBALL3" , self.name , &"CUSTOM_FBALL4" ); //** Text für Opfer Team **//
}
}
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( &"CUSTOM_FB",&"CUSTOM_FBATT" ); //** Text für den Schützen **//
attacker iprintln( &"CUSTOM_FBALL2" , self.name );
self iprintln( &"CUSTOM_FBSELF1" ); //** Text für den Getöteten mit Ausnahme eines Selbstmörders **//
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( &"CUSTOM_FBALL1" , attacker.name ); //** Text für alle Spieler mit Ausnahme des Schützen des Getöteten und des Selbstmörders **//
self iprintln( &"CUSTOM_FB" ); //** Text für den Selbstmörder **//
self iprintln( &"CUSTOM_FBSELF2" );
if( level.teamplay == 0 && players[i] != self)
players[i] iprintlnbold( &"CUSTOM_FBALL5" ); //** Text wenn keine Teams vorhanden sind **//
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( &"CUSTOM_FBALL5"); //** Text für Gegner Team **//
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( &"CUSTOM_FBTEAM1" , self.name , &"CUSTOM_FBTEAM2" ); //** Text für Selbstmörder Team **//
}
}
}
}
thread maps\mp\gametypes\_myaddon::Killingspree(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc);
//** ENDE **//
//attacker thread maps\mp\gametypes\_rank::killedplayer(attacker);
//thread maps\mp\gametypes\_addairstrike::addAirstrike(attacker);
// If the player was killed by a head shot, let players know it was a head shot kill
if(sHitLoc == "head" && sMeansOfDeath != "MOD_MELEE")
sMeansOfDeath = "MOD_HEAD_SHOT";
thread maps\mp\gametypes\_shmod::Messages(sMeansOfDeath, attacker);
thread maps\mp\gametypes\_myaddon::Messages(sMeansOfDeath, attacker);
// send out an obituary message to all clients about the kill
obituary(self, attacker, sWeapon, sMeansOfDeath);
//** Kopfschuss Nachrichten und Sounds **//
if( sMeansOfDeath == "MOD_HEAD_SHOT" ){
attacker playlocalSound ( "headshot" ); //** Sound und Text für den Schützen **//
attacker iprintln (&"CUSTOM_HEADSHOT");
}
self maps\mp\gametypes\_weapons::dropWeapon();
self maps\mp\gametypes\_weapons::dropOffhand();
self.sessionstate = "dead";
self.statusicon = "hud_status_dead";
if(!isdefined(self.switching_teams))
self.deaths++;
lpselfnum = self getEntityNumber();
lpselfname = self.name;
lpselfteam = "";
lpselfguid = self getGuid();
lpattackerteam = "";
attackerNum = -1;
if(isPlayer(attacker))
{
if(attacker == self) // killed himself
{
doKillcam = false;
if(!isdefined(self.switching_teams))
attacker.score--;
}
else
{
attackerNum = attacker getEntityNumber();
doKillcam = true;
attacker.score++;
attacker checkScoreLimit();
//--- Artillery ---
//attacker notify( "killed_someone" );
//-----------------
}
lpattacknum = attacker getEntityNumber();
lpattackguid = attacker getGuid();
lpattackname = attacker.name;
attacker notify("update_playerscore_hud");
}
else // If you weren't killed by a player, you were in the wrong place at the wrong time
{
doKillcam = false;
self.score--;
lpattacknum = -1;
lpattackguid = "";
lpattackname = "";
self notify("update_playerscore_hud");
}
logPrint("K;" + lpselfguid + ";" + lpselfnum + ";" + lpselfteam + ";" + lpselfname + ";" + lpattackguid + ";" + lpattacknum + ";" + lpattackerteam + ";" + lpattackname + ";" + sWeapon + ";" + iDamage + ";" + sMeansOfDeath + ";" + sHitLoc + "\n");
// Stop thread if map ended on this death
if(level.mapended)
return;
self.switching_teams = undefined;
self.joining_team = undefined;
self.leaving_team = undefined;
body = self cloneplayer(deathAnimDuration);
thread maps\mp\gametypes\_deathicons::addDeathicon(body, self.clientid, self.pers["team"]);
delay = 2; // Delay the player becoming a spectator till after he's done dying
wait delay; // ?? Also required for Callback_PlayerKilled to complete before respawn/killcam can execute
if(doKillcam && level.killcam)
self maps\mp\gametypes\_killcam::killcam(attackerNum, delay, psOffsetTime, true);
self thread respawn();
}
spawnPlayer()
{
self endon("disconnect");
self notify("spawned");
self notify("end_respawn");
resettimeout();
// Stop shellshock and rumble
self stopShellshock();
self stoprumble("damage_heavy");
self.sessionteam = "none";
self.sessionstate = "playing";
self.spectatorclient = -1;
self.archivetime = 0;
self.psoffsettime = 0;
self.statusicon = "";
self.maxhealth = 100;
self.health = self.maxhealth;
spawnpointname = "mp_dm_spawn";
spawnpoints = getentarray(spawnpointname, "classname");
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM(spawnpoints);
if(isdefined(spawnpoint))
self spawn(spawnpoint.origin, spawnpoint.angles);
else
maps\mp\_utility::error("NO " + spawnpointname + " SPAWNPOINTS IN MAP");
if(!isdefined(self.pers["savedmodel"]))
maps\mp\gametypes\_teams::model();
else
maps\mp\_utility::loadModel(self.pers["savedmodel"]);
maps\mp\gametypes\_weapons::givePistol();
maps\mp\gametypes\_weapons::giveGrenades();
maps\mp\gametypes\_weapons::giveBinoculars();
self giveWeapon(self.pers["weapon"]);
self giveMaxAmmo(self.pers["weapon"]);
self setSpawnWeapon(self.pers["weapon"]);
if(!level.splitscreen)
{
if(level.scorelimit > 0)
self setClientCvar("cg_objectiveText", &"MP_GAIN_POINTS_BY_ELIMINATING", level.scorelimit);
else
self setClientCvar("cg_objectiveText", &"MP_GAIN_POINTS_BY_ELIMINATING_NOSCORE");
}
else
self setClientCvar("cg_objectiveText", &"MP_ELIMINATE_ENEMIES");
waittillframeend;
self notify("spawned_player");
//self thread jenny\_camping2::CheckCamping();
}
spawnSpectator(origin, angles)
{
self notify("spawned");
self notify("end_respawn");
resettimeout();
// Stop shellshock and rumble
self stopShellshock();
self stoprumble("damage_heavy");
self.sessionstate = "spectator";
self.spectatorclient = -1;
self.archivetime = 0;
if(self.pers["team"] == "spectator")
self.statusicon = "";
if(isdefined(origin) && isdefined(angles))
self spawn(origin, angles);
else
{
spawnpointname = "mp_global_intermission";
spawnpoints = getentarray(spawnpointname, "classname");
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(spawnpoints);
if(isdefined(spawnpoint))
self spawn(spawnpoint.origin, spawnpoint.angles);
else
maps\mp\_utility::error("NO " + spawnpointname + " SPAWNPOINTS IN MAP");
}
self setClientCvar("cg_objectiveText", "");
}
spawnIntermission()
{
self notify("spawned");
self notify("end_respawn");
resettimeout();
// Stop shellshock and rumble
self stopShellshock();
self stoprumble("damage_heavy");
self.sessionstate = "intermission";
self.spectatorclient = -1;
self.archivetime = 0;
spawnpointname = "mp_global_intermission";
spawnpoints = getentarray(spawnpointname, "classname");
spawnpoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random(spawnpoints);
if(isdefined(spawnpoint))
self spawn(spawnpoint.origin, spawnpoint.angles);
else
maps\mp\_utility::error("NO " + spawnpointname + " SPAWNPOINTS IN MAP");
}
respawn()
{
if(!isdefined(self.pers["weapon"]))
return;
self endon("end_respawn");
if(getCvarInt("scr_forcerespawn") <= 0)
{
self thread waitRespawnButton();
self waittill("respawn");
}
self thread spawnPlayer();
}
waitRespawnButton()
{
self endon("end_respawn");
self endon("respawn");
wait 0; // Required or the "respawn" notify could happen before it's waittill has begun
self.respawntext = newClientHudElem(self);
self.respawntext.horzAlign = "center_safearea";
self.respawntext.vertAlign = "center_safearea";
self.respawntext.alignX = "center";
self.respawntext.alignY = "middle";
self.respawntext.x = 0;
self.respawntext.y = -50;
self.respawntext.archived = false;
self.respawntext.font = "default";
self.respawntext.fontscale = 2;
self.respawntext setText(&"PLATFORM_PRESS_TO_SPAWN");
thread removeRespawnText();
thread waitRemoveRespawnText("end_respawn");
thread waitRemoveRespawnText("respawn");
while((isdefined(self)) && (self useButtonPressed() != true))
wait .05;
if(isdefined(self))
{
self notify("remove_respawntext");
self notify("respawn");
}
}
removeRespawnText()
{
self waittill("remove_respawntext");
if(isdefined(self.respawntext))
self.respawntext destroy();
}
waitRemoveRespawnText(message)
{
self endon("remove_respawntext");
self waittill(message);
self notify("remove_respawntext");
}
startGame()
{
level.firstblood = 0; //** Variabel für ersten Kill -FIRST BLOOD- **//
level.starttime = getTime();
if(level.timelimit > 0) |
|
hier ist die custom.str
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:
|
REFERENCE HEADSHOT
LANG_ENGLISH "^1Headshot!^7 "
REFERENCE METER1
LANG_ENGLISH " ^5Meter!^7"
REFERENCE METER2
LANG_ENGLISH " ^5Meter! Waffe:^3 "
REFERENCE ELIDISTATT
LANG_ENGLISH " ^5eliminiert. Distanz:^3 "
REFERENCE ELISELF
LANG_ENGLISH " ^5hat Dich eliminiert.^7"
REFERENCE ELI
LANG_ENGLISH " ^5eliminierte^7 "
REFERENCE DIST
LANG_ENGLISH "^5Distanz:^3 "
REFERENCE DOUBLEKILL
LANG_ENGLISH " ^1Double Kill! ^3+2"
REFERENCE TRIPLEKILL
LANG_ENGLISH " ^1Triple Kill! ^3+3"
REFERENCE KILLINGSPREE
LANG_ENGLISH " ^1Killing Spree! ^3+4"
REFERENCE MULTIKILL
LANG_ENGLISH " ^1Multi Kill! ^3+5"
REFERENCE MEGAKILL
LANG_ENGLISH " ^1Mega Kill! ^3+6"
REFERENCE ULTRAKILL
LANG_ENGLISH " ^1Ultra Kill! ^3+7"
REFERENCE RAGE
LANG_ENGLISH " ^1Rage! ^3+8"
REFERENCE RAMPAGE
LANG_ENGLISH " ^1Rampage! ^3+9"
REFERENCE DOMINATING
LANG_ENGLISH " ^1Dominating! ^3+10"
REFERENCE MONSTERKILL
LANG_ENGLISH " ^1Monster Kill! ^3+11"
REFERENCE LUDICROUSKILL
LANG_ENGLISH " ^1Ludicrous Kill! ^3+12"
REFERENCE HOLYSHIT
LANG_ENGLISH " ^1Holy Shit! ^3+13"
REFERENCE SLAUGHTER
LANG_ENGLISH " ^1Slaughter! ^3+14"
REFERENCE UNSTOPABLE
LANG_ENGLISH " ^1Unstopable! ^3+15"
REFERENCE OWNAGE"
LANG_ENGLISH " ^1Ownage! ^3+16"
REFERENCE BERZERK
LANG_ENGLISH " ^1Berzerk! ^3+17"
REFERENCE WICKEDSICK
LANG_ENGLISH " ^1WICKEDSICK! ^3+18"
REFERENCE GODLIKE
LANG_ENGLISH " ^1Godlike! ^3+19"
REFERENCE ENDE_KILLSPREE1
LANG_ENGLISH " ^5beendete Dein Gemetzel!^7"
REFERENCE ENDE_KILLSPREE2
LANG_ENGLISH " ^5beendete^7 "
REFERENCE HEADSHOT
LANG_ENGLISH "^1Headshot!^7 "
REFERENCE FB
LANG_ENGLISH "^1First Blood!^7"
REFERENCE FBALL1
LANG_ENGLISH " ^5wurde vergossen von:^7"
REFERENCE FBALL2
LANG_ENGLISH " ^5...und das arme Schwein war:^7 "
REFERENCE FBALL3
LANG_ENGLISH " ^5...und es hat Dein Teammitglied^7 "
REFERENCE FBALL4
LANG_ENGLISH " ^5erwischt!^7"
REFERENCE FBALL5
LANG_ENGLISH " ^5...und er leidet an Schizophrenie!^7"
REFERENCE FBATT
LANG_ENGLISH " ^5wurde von Dir vergossen!^7"
REFERENCE FBSELF1
LANG_ENGLISH " ^5hat Dein Blut als Erster vergossen!^7"
REFERENCE FBSELF2
LANG_ENGLISH " ^5...und es war Dein eigenes Blut!^7"
REFERENCE FBTEAM1
LANG_ENGLISH "^5Dein Teammitglied^7 "
REFERENCE FBTEAM2
LANG_ENGLISH " ^5leidet an Schizophrenie!^7"
REFERENCE CAMP1
LANG_ENGLISH "^5Los beweg Dich, scheiss ^1Camper!!"
REFERENCE CAMP2
LANG_ENGLISH " ^5ist hier irgendwo am Campen!!!"
REFERENCE PUNISH1
LANG_ENGLISH " ^5wird mit "
REFERENCE PUNISH2
LANG_ENGLISH " ^5bestraft für: "
REFERENCE PUNISH3
LANG_ENGLISH "^1Camping!!!"
REFERENCE PUNISH4
LANG_ENGLISH " ^3seinem Tod"
REFERENCE PUNISH5
LANG_ENGLISH "^3einer Explosion"
REFERENCE PUNISH6
LANG_ENGLISH "^3einer Überraschung"
ENDMARKER
|
|
hoffe mir kann einer helfen und findet den fehler
oder liegt es daran das mein Server auf vesion 1.0 läuft
merci grüße Schenk
__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von sefeschnut: 22.03.2021 18:21.
|
|
|
|
|
|
RE: Headshotsound, Firstblood und Killingspree |
 |
Genau daran wirds 100%ig liegen, da war meines Wissens nach der Speicher für Mods kleiner. Du musst auf die letzte Version updaten, sonst wird das nix...
ToM
__________________

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