kleines Scriptproblem (Eigener MOD hat irgendwo einen Fehler)

Nightwing
hi


ich hab den nukes killingspree in den admiralmod mit reingeschrieben, gametypes tdm dm ctf und ctb, hier (http://rapidshare.com/files/13372418/Admiral_MOD.rar) könnt ihr das mal testen.

habe 2 kleinere fehler drin, die ich nicht wegbekomme. ich habe von der programmiersprache fast keinen blassen schimmer, daher frage ich hier, hoffe einer von euch kann das...

nun zu den bugs:

die entfernungsangabe beim headshot weicht drastisch ab vom mod her und von der nukes anzeige. das lässt sich zwar umgehen, denn die show hit location kann ich deaktivieren in der cfg, aber das ist eben nur das problem umgangen, ausserdem zeigt es manchmal doch noch an

und


stirbt ein player durch einen sturz, hört er beim respawn alle killsounds hintereinander...


sonst tut alles feini

--- edited by yoda: Thema angepasst ---
{LSB} Squall69
Das die Entfernungen voneinander abweichen liegt mit sicherheit daran das du 2 verschieden Variablen benutzt. Vielleicht ist eine in Meter und die andere in Yards.

Such mal nach

distance = distance usw....
meters = distance* usw....
yards = distance* usw....
feet = distance/ usw....

Aendere dann deine Berechnung so das sie identisch ist mit die des Admiral Mods oder umgekehrt.

Hast du irgendetwas im Mod geandert was Sounds betrifft.
{LSB} Squall69

Zitat:

Original von Nightwing
stirbt ein player durch einen sturz, hört er beim respawn alle killsounds hintereinander...


Da dein Bug bei der original Version des Admiral Mod nicht vorkommt hast du entweder von irgendwo einen fehlerhaften Admiral Mod gezogen
oder du hast waehrend deiner Aenderungen am Mod etwas unabsichtlich bzw absichtlich geandert.

Als erstes check mal ob du einen fehlerhaften Admiral Mod hast.

Wenn das nicht der Fall ist dann mach all deine Aenderungen noch einmal da es ein Ding der Unmoeglichkeit ist den Fehler zu finden falls
du etwas unabsichtlich aus den Mod geloescht hast.

Um festzustellen ob dieser Bug durch einen deiner Addon´s verursacht wird teste in nach jeder Modifikation. Denn dann weiss man auch wo man suchen muss.

Und Kennzeichne alle Aenderungen und fuege auch gleich Notizen hinzu.
Nightwing
jabba, bin grad dabei, die änderungen schön zu bezeichnen, nen fehlerhaften mod hab ich nicht.
grad war n kumpel mit freundin da, und die gute ist programmiererin und hat mein problem nullkommanix gelöst, hier die lösung (rot)

das kleine fitzele ist die lösung, wenn mich die map tötet, keine sounds spielen

Callback_StartGameType()
{
level.splitscreen = isSplitScreen();

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

// server cvar overrides
if(getCvar("scr_allies") != "")
game["allies"] = getCvar("scr_allies");
if(getCvar("scr_axis") != "")
game["axis"] = getCvar("scr_axis");

precacheStatusIcon("hud_status_dead");
precacheRumble("damage_heavy");
precacheString(&"PLATFORM_PRESS_TO_SPAWN");

// * AdmiralMOD *
if(game["am_enabled"] == 1) maps\mp\gametypes\_admiral_mod_precache:Zunge raus recache();


thread maps\mp\gametypes\_menus::init();
thread maps\mp\gametypes\_serversettings::init();
thread maps\mp\gametypes\_clientids::init();
thread maps\mp\gametypes\_teams::init();
thread maps\mp\gametypes\_weapons::init();
thread maps\mp\gametypes\_scoreboard::init();
thread maps\mp\gametypes\_killcam::init();
thread maps\mp\gametypes\_shellshock::init();
thread maps\mp\gametypes\_hud_playerscore::init();
thread maps\mp\gametypes\_deathicons::init();
thread maps\mp\gametypes\_hearticons::init();
thread maps\mp\gametypes\_tnticons::init();
thread maps\mp\gametypes\_damagefeedback::init();
thread maps\mp\gametypes\_objpoints::init();
thread maps\mp\gametypes\_healthoverlay::init();
thread maps\mp\gametypes\_grenadeindicators::init();

level.xenon = (getcvar("xenonGame") == "true");
if(level.xenon) // Xenon only
thread maps\mp\gametypes\_richpresence::init();
else // PC only
thread maps\mp\gametypes\_quickmessages::init();

setClientNameMode("auto_change");

spawnpointname = "mp_dm_spawn";
spawnpoints = getentarray(spawnpointname, "classname");

if(!spawnpoints.size)
{
maps\mp\gametypes\_callbacksetup::AbortLevel();
return;
}
//////////////////////////////////////////////////////////////
////////Firstblood definieren/////////////////////////////////
//////////////////////////////////////////////////////////////
level.firstblood=0;
//////////////////////////////////////////////////////////////

for(i = 0; i < spawnpoints.size; i++)
spawnpoints[i] placeSpawnpoint();

allowed[0] = "dm";
maps\mp\gametypes\_gameobjects::main(allowed);

// Time limit per map
if(getCvar("scr_dm_timelimit") == "")
setCvar("scr_dm_timelimit", "30");
else if(getCvarFloat("scr_dm_timelimit") > 1440)
setCvar("scr_dm_timelimit", "1440");
level.timelimit = getCvarFloat("scr_dm_timelimit");
setCvar("ui_dm_timelimit", level.timelimit);
makeCvarServerInfo("ui_dm_timelimit", "30");

// Score limit per map
if(getCvar("scr_dm_scorelimit") == "")
setCvar("scr_dm_scorelimit", "100");
level.scorelimit = getCvarInt("scr_dm_scorelimit");
setCvar("ui_dm_scorelimit", level.scorelimit);
makeCvarServerInfo("ui_dm_scorelimit", "100");

// Force respawning
if(getCvar("scr_forcerespawn") == "")
setCvar("scr_forcerespawn", "0");

if(!isdefined(game["state"]))
game["state"] = "playing";

level.QuickMessageToAll = true;
level.mapended = false;

thread startGame();
thread updateGametypeCvars();
//thread maps\mp\gametypes\_teams::addTestClients();


// * AdmiralMOD *
if(game["am_enabled"] == 1) maps\mp\gametypes\_admiral_mod::StartGame();


}

dummy()
{
waittillframeend;

if(isdefined(self))
level notify("connecting", self);
}

Callback_PlayerConnect()
{
thread dummy();
////////////////////////////////////////////
////////Killcount definieren////////////////
////////////////////////////////////////////
killcount = undefined;
self.pers["kill_spree"] = 0;
//if(getCvar("spree") == "")
//setCvar("spree", "0");
////////////////////////////////////////////

self.statusicon = "";
self waittill("begin");
self.statusicon = "";

level notify("connected", self);

if(!level.splitscreen)
iprintln(&"MP_CONNECTED", self.name);

lpselfnum = self getEntityNumber();
lpselfguid = self getGuid();
logPrint("J;" + lpselfguid + ";" + lpselfnum + ";" + self.name + "\n");



// * AdmiralMOD *
if(game["am_enabled"] == 1) self maps\mp\gametypes\_admiral_mod_player:Zunge raus layerConnect();



if(game["state"] == "intermission")
{
spawnIntermission();
return;
}

level endon("intermission");

if(level.splitscreen)
scriptMainMenu = game["menu_ingame_spectator"];
else
scriptMainMenu = game["menu_ingame"];

if(isdefined(self.pers["team"]) && self.pers["team"] != "spectator")
{
self setClientCvar("ui_allow_weaponchange", "1");
self.sessionteam = "none";

if(isdefined(self.pers["weapon"]))
spawnPlayer();
else
{
spawnSpectator();

scriptMainMenu = self maps\mp\gametypes\_menus::am_menuSelection();

}
}
else
{
self setClientCvar("ui_allow_weaponchange", "0");

if(!level.xenon)
{
if(!isdefined(self.pers["skipserverinfo"])) self openMenu(game["menu_serverinfo"]);
else self openMenu(game["menu_team"]);
}
else
self openMenu(game["menu_team"]);

self.pers["team"] = "spectator";
self.sessionteam = "spectator";

spawnSpectator();
}

self setClientCvar("g_scriptMainMenu", scriptMainMenu);
}

Callback_PlayerDisconnect()
{
if(!level.splitscreen)
iprintln(&"MP_DISCONNECTED", self.name);

if(isdefined(self.clientid))
setplayerteamrank(self, self.clientid, 0);

lpselfnum = self getEntityNumber();
lpselfguid = self getGuid();
logPrint("Q;" + lpselfguid + ";" + lpselfnum + ";" + self.name + "\n");


// * AdmiralMOD *
if(game["am_enabled"] == 1) self maps\mp\gametypes\_admiral_mod_player:Zunge raus layerDisconnect();


}

Callback_PlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime)
{
if(self.sessionteam == "spectator")
return;

// Don't do knockback if the damage direction was not specified
if(!isdefined(vDir))
iDFlags |= level.iDFLAGS_NO_KNOCKBACK;


// * Wenn Vote, dann kein Damage mehr *
if(isDefined(level.vote_starting)) return;


// * Weapon Damage Modifier *
if(game["am_weapon_damage_modifiers"] == 1) {

if(isDefined(sWeapon) && isDefined(sMeansOfDeath) && sMeansOfDeath != "MOD_MELEE") {

iDamage = maps\mp\gametypes\_admiral_mod_weapons::ModifyWeaponDamage(iDamage,sWeapon)
;
}
}



// Make sure at least one point of damage is done
if(iDamage < 1)
iDamage = 1;


// * Spawn Protection *
if(game["am_enabled"] == 1 && game["am_player_spawn_protect"] == 1) {

// * Spawn Protect hier nur wenn nicht Gas/Fire *
if(!isDefined(sWeapon) || (isDefined(sWeapon) && sWeapon != "gas_grenade_mp" && sWeapon != "fire_grenade_mp")) {

// * Gegner anzeigen der Spawn Protected *
if(isPlayer(eAttacker) && isDefined(self.spawnProtection)) {

self thread maps\mp\gametypes\_admiral_mod_player:Zunge raus layerSpawnProtection();
}

// * Wenn getroffener Spieler Spawn Protected, dann kein Damage *
if(isDefined(self.spawnProtection)) return;
}
}

if(sMeansOfDeath == "MOD_FALLING" && game["am_fall_damage_modifier"] > -1) iDamage = game["am_fall_damage_modifier"];



// * AdmiralMOD *
if(game["am_enabled"] == 1) self maps\mp\gametypes\_admiral_mod_player:Zunge raus layerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);



if(isDefined(sWeapon) && (sWeapon == "gas_grenade_mp" || sWeapon == "fire_grenade_mp")) return;



// Do debug print if it's enabled
if(getCvarInt("g_debugDamage"))
{
println("client:" + self getEntityNumber() + " health:" + self.health +
" damage:" + iDamage + " hitLoc:" + sHitLoc);
}

// Apply the damage to the player
self finishPlayerDamage(eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, psOffsetTime);

// Shellshock/Rumble
self thread maps\mp\gametypes\_shellshock::shellshockOnDamage(sMeansOfDeath, iDamage);
self playrumble("damage_heavy");
if(isdefined(eAttacker) && eAttacker != self)
eAttacker thread maps\mp\gametypes\_damagefeedback::updateDamageFeedback();

if(self.sessionstate != "dead")
{
lpselfnum = self getEntityNumber();
lpselfname = self.name;
lpselfteam = self.pers["team"];
lpselfGuid = self getGuid();
lpattackerteam = "";

if(isPlayer(eAttacker))
{
lpattacknum = eAttacker getEntityNumber();
lpattackGuid = eAttacker getGuid();
lpattackname = eAttacker.name;
lpattackerteam = eAttacker.pers["team"];
}
else
{
lpattacknum = -1;
lpattackGuid = "";
lpattackname = "";
lpattackerteam = "world";
}

logPrint("D;" + lpselfGuid + ";" + lpselfnum + ";" + lpselfteam + ";" + lpselfname + ";" + lpattackGuid + ";" + lpattacknum + ";" + lpattackerteam + ";" + lpattackname + ";" + sWeapon + ";" + iDamage + ";" + sMeansOfDeath + ";" + sHitLoc + "\n");
}
}

Callback_PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
{
////////////////////////////////////////////
////////Killcount definieren////////////////
////////////////////////////////////////////
killcount = undefined;
self.pers["kill_spree"] = 0;
if(getCvar("spree") == "")
setCvar("spree", "0");
////////////////////////////////////////////
self endon("spawned");
self notify("killed_player");

if(self.sessionteam == "spectator")
return;

// 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";

// send out an obituary message to all clients about the kill
obituary(self, attacker, sWeapon, sMeansOfDeath);
//////////////////////////////////////////////////////
////////Killsounds aufrufen///////////////////////////
//////////////////////////////////////////////////////
if(isPlayer(attacker))
thread maps\mp\gametypes\_shmod::Messages(sMeansOfDeath, attacker);
//////////////////////////////////////////////////////


// * AdmiralMOD *
if(game["am_weapon_drop"] == 1) {

self maps\mp\gametypes\_weapons::dropWeapon();
self maps\mp\gametypes\_weapons::dropOffhand();
}


self.sessionstate = "dead";
self.statusicon = "hud_status_dead";


// * AdmiralMOD *
if(game["am_enabled"] == 1) self maps\mp\gametypes\_admiral_mod_player:Zunge raus layerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration);



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;
////////////////////////////////////////////
////////Killcount definieren////////////////
////////////////////////////////////////////
killcount = undefined;
self.pers["kill_spree"] = 0;
//if(getCvar("spree") == "")
//setCvar("spree", "0");
////////////////////////////////////////////

if(!isdefined(self.switching_teams))
attacker.score--;
}
else
{
attackerNum = attacker getEntityNumber();
doKillcam = true;

attacker.score++;
attacker checkScoreLimit();
}

lpattacknum = attacker getEntityNumber();
lpattackguid = attacker getGuid();
lpattackname = attacker.name;

attacker notify("update_playerscore_hud");
attacker notify("update_playerhud_score");

}
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");
self notify("update_playerhud_score");
}

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


// * AdmiralMOD *
if(game["am_deathicons"] == 1) 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();
}
Nightwing
mir fiel grad auf, das die rot markierten sachen hier auskommentiert sind. warum??


ausserdem die frage, ob es programmiertechnisch an der richtigen stelle ist, funktionieren tuts ja...

////////////////////////////////////////////
////////Killcount definieren////////////////
////////////////////////////////////////////
killcount = undefined;
self.pers["kill_spree"] = 0;
//if(getCvar("spree") == "")
//setCvar("spree", "0");

////////////////////////////////////////////
Nightwing

Zitat:

Original von {LSB} Squall69
Das die Entfernungen voneinander abweichen liegt mit sicherheit daran das du 2 verschieden Variablen benutzt. Vielleicht ist eine in Meter und die andere in Yards.

Such mal nach

distance = distance usw....
meters = distance* usw....
yards = distance* usw....
feet = distance/ usw....

Aendere dann deine Berechnung so das sie identisch ist mit die des Admiral Mods oder umgekehrt.

Hast du irgendetwas im Mod geandert was Sounds betrifft.



nein, der versuch ist kläglich gescheitert an der .csv datei verwirrt

am mod geändert sind:

- killsounds
- menüsprache deutsch, eventuell bissel geändert
- weaponskins

i such mal fleissig

dankschee
{LSB} Squall69
Irgendwie sieht das aus als ob du das totale Chaos hast und du machst es noch schlimmer.

Hab heute ein bischen Zeit bin bis min 24:00 GMT +1 in unserem ts, hohl dir die IP und das Passwort
von unserer Webseite und schau vorbei.
Nightwing

Zitat:

Original von {LSB} Squall69
Irgendwie sieht das aus als ob du das totale Chaos hast und du machst es noch schlimmer.

Hab heute ein bischen Zeit bin bis min 24:00 GMT +1 in unserem ts, hohl dir die IP und das Passwort
von unserer Webseite und schau vorbei.


und ich geh grad aus em haus *heul*

danke für dein angebot!!!!!!


schau mal hier:

Zitat:

grad war n kumpel mit freundin da, und die gute ist programmiererin und hat mein problem nullkommanix gelöst, hier die lösung (rot)



das grosse problem ist weg.

der mod tut genauso wie er soll.

um die waffensounds kümmer ich mich irgendwann auch noch, aber erst mal auf märz den server online stellen.

wenn der steht, bekommst die ip, dann schaust dirs mal an

trotz allem, 1000 dank

klasse forum
{LSB} Squall69
Ich rate mal du hast es noch nicht wirklich getestet, denn mit dem if Statement

Zitat:

if(isPlayer(attacker))


wird dein Addon wahrscheinlich nur mehr zu 50% laufen.

Denn durch diese Aenderung werden alle Zeilen die ein self. beinhalten nicht mehr ausgefuehrt.
Dr.Long

Zitat:

Original von {LSB} Squall69

Zitat:

Original von Nightwing
stirbt ein player durch einen sturz, hört er beim respawn alle killsounds hintereinander...


Da dein Bug bei der original Version des Admiral Mod nicht vorkommt hast du entweder von irgendwo einen fehlerhaften Admiral Mod gezogen
oder du hast waehrend deiner Aenderungen am Mod etwas unabsichtlich bzw absichtlich geandert.

Als erstes check mal ob du einen fehlerhaften Admiral Mod hast.

Wenn das nicht der Fall ist dann mach all deine Aenderungen noch einmal da es ein Ding der Unmoeglichkeit ist den Fehler zu finden falls
du etwas unabsichtlich aus den Mod geloescht hast.

Um festzustellen ob dieser Bug durch einen deiner Addon´s verursacht wird teste in nach jeder Modifikation. Denn dann weiss man auch wo man suchen muss.

Und Kennzeichne alle Aenderungen und fuege auch gleich Notizen hinzu.



ihr habt nicht zufällig die möglichkeit einer mod-erweiternden fixdatei in betracht gezogen? damit würden sich einige eurer probleme leicht beheben und auch schneller korrigieren lassen. dazu kommt dass ihr orginale moddateien nicht direkt verändern müsst sondern nur kopien davon, die in der fixdatei wären und durch das abc-system von cod durch das spätere laden der datei die originale beim laden überschreiben würden. Augenzwinkern
Nightwing

Zitat:

Original von {LSB} Squall69
Ich rate mal du hast es noch nicht wirklich getestet, denn mit dem if Statement

Zitat:

if(isPlayer(attacker))


wird dein Addon wahrscheinlich nur mehr zu 50% laufen.

Denn durch diese Aenderung werden alle Zeilen die ein self. beinhalten nicht mehr ausgefuehrt.


testen kann ichs morgen wieder.
meistens zocken wir montag bis donnerstag abends. da hast du recht.

wie gesagt, gestern konnte ich leider nicht in teamspeak kommen, nochmal danke für dein angebot.

ich packe jetzt die moddatei, meine configs, meine verknüpfungen zum starten und so weiter alles in ein .rar archiv, lad das ganze auf rapidshare hoch und sende dir hier den link

ich glaub es ist einfacher, du siehst das ganze selbst einmal

ich schreib dir ne textdatei, die die von mir geänderten dateien angibt, was die scripts anbelangt.

link folgt...

OK hier der link, falls du es dir mal anschauen möchtest

http://rapidshare.com/files/16002359/Adm...-Scripttest.rar
{LSB} Squall69
grosses Grinsen ist nur eine Ausnahme das ich dir den Code schreibe grosses Grinsen

Fuer die Gametypfiles verwende wieder die Originalen vom Admiral Mod bevor dein Chaos perfekt ist.

Den folgen Code fuegst du in die Datei _admiral_mod.gsc unter StartGame() ein.


//** hinzugefügt für HELLZone_AM **//

level.firstblood = 0; //** Variabel für ersten Kill -FIRST BLOOD-

//** ---Ende für HELLZone_AM--- **//



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:
StartGame() {
	
	if(game["am_enabled"] != 1) return;

	if(game["am_error_logfile"] == 1) logPrint("StartGame\n");




	// * MM Missionen *
	level.highscore_text = "";
	level.bomb_on_the_map_allies = 0;
	level.bomb_on_the_map_axis = 0;
	
	// * Sprint Schritte unterdrücken, solage bei S&D nach dem planten PlayerSounds ausgegeben werden  *
	level.sd_sound_play = undefined;

//** hinzugefügt für HELLZone_AM **//

	level.firstblood = 0;	//** Variabel für ersten Kill -FIRST BLOOD-
	
//** ---Ende für HELLZone_AM--- **//	
	
	
	maps\mp\gametypes\_admiral_mod_hud::showAutoDownload();		
	maps\mp\gametypes\_admiral_mod_hud::showClanLevelLogoText();

Nightwing

Zitat:

Original von {LSB} Squall69
grosses Grinsen ist nur eine Ausnahme das ich dir den Code schreibe grosses Grinsen

Fuer die Gametypfiles verwende wieder die Originalen vom Admiral Mod bevor dein Chaos perfekt ist.

Den folgen Code fuegst du in die Datei _admiral_mod.gsc unter StartGame() ein.


//** hinzugefügt für HELLZone_AM **//

level.firstblood = 0; //** Variabel für ersten Kill -FIRST BLOOD-

//** ---Ende für HELLZone_AM--- **//



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:
StartGame() {
	
	if(game["am_enabled"] != 1) return;

	if(game["am_error_logfile"] == 1) logPrint("StartGame\n");




	// * MM Missionen *
	level.highscore_text = "";
	level.bomb_on_the_map_allies = 0;
	level.bomb_on_the_map_axis = 0;
	
	// * Sprint Schritte unterdrücken, solage bei S&D nach dem planten PlayerSounds ausgegeben werden  *
	level.sd_sound_play = undefined;

//** hinzugefügt für HELLZone_AM **//

	level.firstblood = 0;	//** Variabel für ersten Kill -FIRST BLOOD-
	
//** ---Ende für HELLZone_AM--- **//	
	
	
	maps\mp\gametypes\_admiral_mod_hud::showAutoDownload();		
	maps\mp\gametypes\_admiral_mod_hud::showClanLevelLogoText();




ja super sach, vielen dank für die ausnahme!!!

wenn ich wieder die originale dm.gsc , usw nehm, dann fehlt da doch wieder der aufruf für die killsounds, wenn ich das richtig verstehe??

ich verstehe es so, ich soll die definition der variable "firstblood" in der datei dm.gsc löschen, die anderen, von mir zugefügten aber lassen, damit die anderen killsounds tun.
und das firstblood dann hier in die von dir beschriebene datei reintun?

was ist deine allgemeine meinung zu der modifizierung??
{LSB} Squall69
Den folgen Code fuegst du in die Datei _admiral_mod_player.gsc unter
PlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration) ein.


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:
	if(state != "head") //** hinzugefügt für HELLZone_AM **////** wenn show hitlocation im Mod ist an erfolgt keine Ausgabe bei einen Kopfschuss **//
	{
		if(game["am_show_kill_hit_location"] > 0 && isDefined(eAttacker) && isPlayer(eAttacker) && self != eAttacker) {
		
			loc_name 	= GetHitLocation(sHitLoc);		
			weapon		= maps\mp\gametypes\_admiral_mod_weapons::GetWeaponName(maps\mp\gametypes\_admiral_mod_utils::deleteAMextension(sWeapon));
			dist		= distance(self.origin,eAttacker.origin);
			
			
			
			if(sWeapon == "tnt_bomb_mp") 	weapon	= "TNT";
			if(sWeapon == "artillery_mp") 	weapon	= "Artillery";
					
			if(dist < 60 || weapon == "Grenade" || weapon == "TNT" || weapon == "Artillery") dist = randomfloat(30)+60;
		
			s = int(dist/6);
			s = s/10.0;
		
			if(game["am_show_kill_hit_location"] == 1) iprintln("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
			if(game["am_show_kill_hit_location"] == 2) self iprintln("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
			if(game["am_show_kill_hit_location"] == 3) self iprintlnbold("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
		}
	}
	
//** hinzugefügt für HELLZone_AM **//

/**/// Kopfschuss Nachrichten und Sounds

	if(sMeansOfDeath == "MOD_HEAD_SHOT" || state = "head")
	{
		attacker iprintlnBold ( "^1Head Shot!^7 " + self + " ^5eliminiert. Distanz:^3 " + s + " ^5Meter!" );		//** Textnachricht in Bildschirmmitte fuer den Schuetzen **////** s ist die Distanz des kills aus dem Admiral Mod **//
		attacker playlocalSound ( "headshot" );	//** Soundnachricht fuer den Schuetzen **//
		
		self iprintlnBold ( "^1Head Shot!^7 " + attacker.name + " ^5hat Dich eliminiert. ^5Distanz:^3 " + s + " ^5 Meter!" );	//** Textnachricht in Bildschirmmitte fuer den Getöteten **////** s ist die Distanz des kills aus dem Admiral Mod **//
		self playlocalSound ( "headshot" ); //** Soundnachricht fuer den Getöteten **//
		
		iprintln ( "^1Head Shot!^7 " + attacker + " ^5eliminierte^7 " + self + "^5. Distanz:^3 " + s + " ^5Meter!" );//** Textnachricht links unten füralle Spieler **////** s ist die Distanz des kills aus dem Admiral Mod **//
	}
	
/**/// durch die Ausgabe von iprintln erscheinen nun 2 Ausgaben links unten für den Kopfschuss

/**/// Nachricht fuer ersten Kill -FIRST BLOOD-

	if( level.firstblood == 0 && !isDefined ( self.switching_teams ) )
	{
		players = getentarray("player", "classname");
		
		if( isPlayer ( Attacker ) )
		{
			for( i=0;i < players.size;i++ )
			{
				if( players[i] != self )	//** Textnachrichten in Bildschirmmitte fuer alle Spieler mit Ausnahme des Getöteten **//
				{
					players[i] iprintlnbold( "FIRST BLOOD wurde vergossen von ", attacker );	//** 1ste Textnachricht, schreibt uns den Namen des Schützen **//
					
 					if( attacker.pers["team"] != self.pers["team"] )	//** Nachricht wird nur Ausgegeben wenn der Getötete nicht im selben Team war **//
						players[i] iprintlnbold( "und das arme Schwein war ", self );	//** 2te Textnachricht, schreibt uns den Namen des Getöteten **//
					
 					else if( attacker.pers["team"] == self.pers["team"] && attacker != self ) //** Nachricht wird nur Ausgegeben wenn der Getötete im selben Team war **//
						players[i] iprintlnbold( "und es hat sein Teammitglied", self , "erwischt" );	//** 2te Textnachricht, schreibt uns den Namen des Getöteten **//
					
					else if( attacker == self )	//** Nachricht wird nur Ausgegeben dei Selbstmord **//
						players[i] iprintlnbold( "und er leidet an Schizophrenie" ); //** 2te Textnachricht, wir sind ja nicht so **//
					
					players[i] playlocalsound( "firstblood" ); //** Soundnachricht für alle Spieler mit Ausnahme des Getöteten **//
				}
			}
			
			if(game["am_show_kill_hit_location"] > 0 //** Textnachrichten in Bildschirmmitte an den Getöteten erfolgt nur wenn Hilocation Print is an **//
				self iprintlnbold( "First Blood" ); 	//** Textnachrichten in Bildschirmmitte an den Getöteten **//
			
			else
				self iprintlnbold( attacker , "hat dein Blut als erster vergossen" ); 	//** Textnachrichten in Bildschirmmitte an den Getöteten **//
			
			self playlocalsound("firstblood");	//** Soundnachricht für den Getöteten **//
		}
		
		level.firstblood++; //** Erster Kill wurde gemacht Variable != 0 gesetzt **//
	}
 
//** ---Ende für HELLZone_AM--- **//



Killingspree mach ich dir auch noch.

Hab es nicht gestestet, grosses Grinsen das musst schon selber machen grosses Grinsen
{LSB} Squall69
aus den gametyps kannst du alles was du hinzugefuegt hast herausnehmen ich mach dir den code so, das er in den admiral code integriert ist.
Nightwing

Zitat:

Original von {LSB} Squall69
aus den gametyps kannst du alles was du hinzugefuegt hast herausnehmen ich mach dir den code so, das er in den admiral code integriert ist.


Du bist ein Schätzle Zunge raus

vielen vielen dank!!!

iss halt doch feini, das es leute gibt, die in so nem script lesen, wie andre in ner zeitung!!!
Nightwing

Zitat:

PlayerKilled(eInflictor, eAttacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)


code direkt nach der klammer zu hiernach eingefügt. richtig?

da du mir das freundlicherweise in den mod einbaust, kann ich auch die datei _shmod.gsc löschen??
Nightwing
******* script compile error *******
bad syntax: (file 'maps/mp/gametypes/_admiral_mod_player.gsc', line 1174)
if(state != "head") //** hinzugefügt für HELLZone_AM **////** wenn show hitlocation im Mod ist an erfolgt keine Ausgabe bei einen Kopfschuss **//
*
************************************
********************
ERROR: script compile error
(see console for details)
********************
----- Server Shutdown -----
==== ShutdownGame ====



ÖHM muss ich das verstehen??
{LSB} Squall69
ok i seh schon wo das Problem liegt.


ersetze

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

code:
1:
	if(state != "head") //** hinzugefügt für HELLZone_AM **////** wenn show hitlocation im Mod ist an erfolgt keine Ausgabe bei einen Kopfschuss **//


durch

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

code:
1:
	if( sMeansOfDeath == "MOD_HEAD_SHOT" ) //** hinzugefügt für HELLZone_AM **////** wenn show hitlocation im Mod ist an erfolgt keine Ausgabe bei einen Kopfschuss **//


und

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

code:
1:
2:
3:
4:
/**/// Kopfschuss Nachrichten und Sounds

	if(sMeansOfDeath == "MOD_HEAD_SHOT" || state = "head")


durch

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

code:
1:
2:
3:
/**/// Kopfschuss Nachrichten und Sounds

	if(sMeansOfDeath == "MOD_HEAD_SHOT" )



das beheben der Fehler ist einfacher wenn du bei uns im TS vorbeischaust. Dann erparen wir uns das Geschreibe und wir koennen dann den fertigen Code fuer alle posten.
{LSB} Squall69
Soo hier ist der code ohne Bugs.

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:
	if( sMeansOfDeath == "MOD_HEAD_SHOT" ) //** hinzugefügt für HELLZone_AM **////** wenn show hitlocation im Mod ist an erfolgt keine Ausgabe bei einen Kopfschuss **//
	{
		if(game["am_show_kill_hit_location"] > 0 && isDefined(eAttacker) && isPlayer(eAttacker) && self != eAttacker) {
		
			loc_name 	= GetHitLocation(sHitLoc);		
			weapon		= maps\mp\gametypes\_admiral_mod_weapons::GetWeaponName(maps\mp\gametypes\_admiral_mod_utils::deleteAMextension(sWeapon));
			dist		= distance(self.origin,eAttacker.origin);
			
			
			
			if(sWeapon == "tnt_bomb_mp") 	weapon	= "TNT";
			if(sWeapon == "artillery_mp") 	weapon	= "Artillery";
					
			if(dist < 60 || weapon == "Grenade" || weapon == "TNT" || weapon == "Artillery") dist = randomfloat(30)+60;
		
			s = int(dist/6);
			s = s/10.0;
		
			if(game["am_show_kill_hit_location"] == 1) iprintln("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
			if(game["am_show_kill_hit_location"] == 2) self iprintln("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
			if(game["am_show_kill_hit_location"] == 3) self iprintlnbold("^7" + loc_name + ":   ^7"+ s + " m   (^7"+ weapon +")");
		}
	}
	
//** hinzugefügt für HELLZone_AM **//

/**/// Kopfschuss Nachrichten und Sounds

	if( sMeansOfDeath == "MOD_HEAD_SHOT" )
	{
		dist = distance(self.origin,eAttacker.origin);
		
		s = int(dist/6);
		s = s/10.0;
		
		eAttacker iprintlnBold ( "^1Head Shot!^7 " + self + " ^5eliminiert. Distanz:^3 " + s + " ^5Meter!" );		//** Textnachricht in Bildschirmmitte fuer den Schuetzen **////** s ist die Distanz des kills aus dem Admiral Mod **//
		eAttacker playlocalSound ( "headshot" );	//** Soundnachricht fuer den Schuetzen **//
		
		self iprintlnBold ( "^1Head Shot!^7 " + eAttacker + " ^5hat Dich eliminiert. ^5Distanz:^3 " + s + " ^5 Meter!" );	//** Textnachricht in Bildschirmmitte fuer den Getöteten **////** s ist die Distanz des kills aus dem Admiral Mod **//
		self playlocalSound ( "headshot" ); //** Soundnachricht fuer den Getöteten **//
		
		iprintln ( "^1Head Shot!^7 " + eAttacker + " ^5eliminierte^7 " + self + "^5. Distanz:^3 " + s + " ^5Meter!" );//** Textnachricht links unten füralle Spieler **////** s ist die Distanz des kills aus dem Admiral Mod **//
	}
	
/**/// durch die Ausgabe von iprintln erscheinen nun 2 Ausgaben links unten für den Kopfschuss

/**/// Nachricht fuer ersten Kill -FIRST BLOOD-

	if( level.firstblood == 0 && !isDefined ( self.switching_teams ) )
	{
		players = getentarray("player", "classname");
		
		if( isPlayer ( eAttacker ) )
		{
			for( i=0;i < players.size;i++ )
			{
				if( players[i] != self )	//** Textnachrichten in Bildschirmmitte fuer alle Spieler mit Ausnahme des Getöteten **//
				{
					players[i] iprintlnbold( "FIRST BLOOD wurde vergossen von ", eAttacker );	//** 1ste Textnachricht, schreibt uns den Namen des Schützen **//
					
 					if( eAttacker.pers["team"] != self.pers["team"] )	//** Nachricht wird nur Ausgegeben wenn der Getötete nicht im selben Team war **//
						players[i] iprintlnbold( "und das arme Schwein war ", self );	//** 2te Textnachricht, schreibt uns den Namen des Getöteten **//
					
 					else if( eAttacker.pers["team"] == self.pers["team"] && eAttacker != self ) //** Nachricht wird nur Ausgegeben wenn der Getötete im selben Team war **//
						players[i] iprintlnbold( "und es hat sein Teammitglied", self , "erwischt" );	//** 2te Textnachricht, schreibt uns den Namen des Getöteten **//
					
					else if( eAttacker == self )	//** Nachricht wird nur Ausgegeben dei Selbstmord **//
						players[i] iprintlnbold( "und er leidet an Schizophrenie" ); //** 2te Textnachricht, wir sind ja nicht so **//
					
					players[i] playlocalsound( "firstblood" ); //** Soundnachricht für alle Spieler mit Ausnahme des Getöteten **//
				}
			}
			
			if(game["am_show_kill_hit_location"] > 0) //** Textnachrichten in Bildschirmmitte an den Getöteten erfolgt nur wenn Hilocation Print is an **//
				self iprintlnbold( "First Blood" ); 	//** Textnachrichten in Bildschirmmitte an den Getöteten **//
			
			else
				self iprintlnbold( eAttacker , "hat dein Blut als erster vergossen" ); 	//** Textnachrichten in Bildschirmmitte an den Getöteten **//
			
			self playlocalsound("firstblood");	//** Soundnachricht für den Getöteten **//
		}
		
		level.firstblood++; //** Erster Kill wurde gemacht Variable != 0 gesetzt **//
	}
 
//** ---Ende für HELLZone_AM--- **//