kleines Scriptproblem (Eigener MOD hat irgendwo einen Fehler) |
|
|
| kleines Scriptproblem (Eigener MOD hat irgendwo einen Fehler) |
 |
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 ---
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von yoda: 16.02.2007 01:11.
|
|
|
|
|
|
|
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:
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:
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:
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:
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:
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:
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();
}
__________________

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 10.02.2007 19:25.
|
|
|
|
|
Dr.Longunregistriert

|
|
| RE: kleines Scriptproblem |
 |
Original von {LSB} Squall69
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.
|
|
|
|
|
|
|
Original von {LSB} Squall69
Ich rate mal du hast es noch nicht wirklich getestet, denn mit dem if Statement
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
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 11.02.2007 14:28.
|
|
|
|
|
|
|
Original von {LSB} Squall69

ist nur eine Ausnahme das ich dir den Code schreibe
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 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??
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 11.02.2007 21:59.
|
|
|
|
|
|
|
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 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,
das musst schon selber machen
__________________

|
|
|
|
|
|
|
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.
__________________

|
|
|
|
|
|
|
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??
__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 11.02.2007 23:26.
|
|
|
|
|
|
|
******* 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??
__________________

|
|
|
|
|
|
|
Soo hier ist der code ohne Bugs.
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:
|
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--- **// |
|
__________________

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