Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty-Board » Fix-Dateien, Modding-Fragen, Scripting » Operator für einmaliges Ereignis » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Operator für einmaliges Ereignis
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Operator für einmaliges Ereignis Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich benutz den Nukes Killingspree, den ich in den AdmiralMOD eingefügt habe und würde gerne in das Script dazu FIRSTBLOOD einfügen

Hier mal ein Ausschnitt des Scripts, das die Killsounds steuert:

if(killcount == 4)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Ultra Kill!");
attacker iprintlnBold("^1Ultra Kill!");
//playSoundOnPlayers("ultrakill");
self playlocalSound("ultrakill");
attacker playlocalSound("ultrakill");
wait (2);
}


Wie heisst der Operator, der hier (killcount == 4) die zwei "==" ersetzen kann, der ein einmaliges Ereignis auslöst??

so hab i das mal umgeschrieben, nur der Operator fehlt mir (sind die zwei "??"), der das eben einmalig macht:


if(killcount ?? 1)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
//playSoundOnPlayers("firstblood");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
wait (2);
}


kann mir da wer helfen??

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


RE: Operator für einmaliges Ereignis Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von Nightwing
if(killcount == 4)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Ultra Kill!");
attacker iprintlnBold("^1Ultra Kill!");
//playSoundOnPlayers("ultrakill");
self playlocalSound("ultrakill");
attacker playlocalSound("ultrakill");
wait (2);
}


if(killcount ?? 1)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
//playSoundOnPlayers("firstblood");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
wait (2);
}


Du stellst dir die falsche Frage. So wird die Bedingung ja schon nur einmal erfüllt, dann wenn die Anzahl der Kills exakt 4 ist
== 4
Sonst gibt es nur
!= nicht 4 währe immer außer bei 4 Kills
>= beim 5. 6. 7. [...] Kill
<= beim 1. 2. 3. aber nicht beim 4. 5. 6. [...] Kill

Du suchst aber sicher das der erste überhaupt in der Runde gezählt wird. Das geht so einfach nicht da (jetzt ohne das ich es mir angesehen habe) ja die variable $killcount für jeden einzelnen Spieler hochgezählt wird und nicht global für die Runde. Es ist sicher möglich das einzubauen, aber nicht so an dieser Stelle. Da müsste man mal das ganze auseinandernehmen und dann schauen.
So ganz schnell, als Pseudocode denke ich dabei an sowas:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if(killcount == 1 && firstblood == false)
		
			{
                        firstblood == true;
			iprintln("" + attacker.name + " ^1First Blood!");
			attacker iprintlnBold("^1First Blood!");
			self playlocalSound("firstblood");
			attacker playlocalSound("firstblood");
                        wait (2);
			}


Aber ich kenne die Variablenbehandlung und die Syntax dieser Sprache nicht, da müsste ich erst nachlesen ob man $firstblood so verwenden kann. Old Man weiß das bestimmt so ohne nachzusehen. Außerdem muss firstblood bestimmt noch am Anfang der Runde definiert und am Ende der Runde zurückgesetzt werden.

__________________
„ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“

Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.

https://kkde.de/scum/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Soll die Textausgabe wirklich so wie in deinem Post sein?

iprintln............... klein links unten fuer alle
attacker iprintlnBold............... Bildschirmmitte fuer Schuetzen

__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von {LSB} Squall69
Soll die Textausgabe wirklich so wie in deinem Post sein?

iprintln............... klein links unten fuer alle
attacker iprintlnBold............... Bildschirmmitte fuer Schuetzen


Jawoll, bis jetzt störts keinen der 5 Testzocker, im Gegenteil.

ich post hier mal die ganze datei _shmod.gsc, die für die ausführung dieser sounds verantwortlich ist

et voila, hier isch se:

Messages(sMeansOfDeath, attacker)
{

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


if(sMeansOfDeath == "MOD_HEAD_SHOT")
{
distance = distance(Attacker.origin , self.origin); //Inches
meters = distance * 0.0254; //Meters
feet = distance / 12; //Feet

if(!isDefined("shm_metric") || getcvar("shm_metric") == "")
setcvar("shm_metric", "meters");

if(getCVar("shm_metric") != "feet")
{
attacker iprintlnBold("^1Head Shot!^7 " + self.name + " ^5eliminiert. Distanz:^3 " + meters + " ^5Meter!"); //Message to attacker
attacker playlocalSound("headshot");//voice message to attacker

self iprintlnBold("^1Head Shot!^7 " + attacker.name + " ^5hat Dich eliminiert. ^5Distanz:^3 " + meters + " ^5 Meter!"); //Message to death person
self playlocalSound("headshot"); //voice message to dead person

iprintln("^1Head Shot!^7 " + attacker.name + " ^5eliminierte^7 " + self.name + "^5. Distanz:^3 " + meters + " ^5Meter!"); //Message to every player
}

wait (2);
}


attacker.pers["kill_spree"]++;//this is ok
killcount = attacker.pers["kill_spree"];



if(killcount == 3)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Killing Spree!");
attacker iprintlnBold("^1Killing Spree!");
//playSoundOnPlayers("killingspree");
self playlocalSound("killingspree");
attacker playlocalSound("killingspree");
wait (2);
}

if(killcount == 4)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Ultra Kill!");
attacker iprintlnBold("^1Ultra Kill!");
//playSoundOnPlayers("ultrakill");
self playlocalSound("ultrakill");
attacker playlocalSound("ultrakill");
wait (2);
}

if(killcount == 5)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Rampage!");
attacker iprintlnBold("^1Rampage!");
//playSoundOnPlayers("rampage");
self playlocalSound("rampage");
attacker playlocalSound("rampage");
wait (2);
}

if(killcount == 6)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Dominating!");
attacker iprintlnBold("^1Dominating!");
//playSoundOnPlayers("dominating");
self playlocalSound("dominating");
attacker playlocalSound("dominating");
wait (2);
}

if(killcount == 7)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Monster Kill!");
attacker iprintlnBold("^1Monster Kill!");
//playSoundOnPlayers("monsterkill");
self playlocalSound("monsterkill");
attacker playlocalSound("monsterkill");
wait (2);
}

if(killcount == cool

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Holy Shit!");
attacker iprintlnBold("^1Holy Shit!");
//playSoundOnPlayers("holyshit");
self playlocalSound("holyshit");
attacker playlocalSound("holyshit");
wait (2);
}

if(killcount == 9)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Slaughter!");
attacker iprintlnBold("^1Slaughter!");
//playSoundOnPlayers("slaughter");
self playlocalSound("slaughter");
attacker playlocalSound("slaughter");
wait (2);
}

if(killcount == 10)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Unstopable!");
attacker iprintlnBold("^1Unstopable!");
//playSoundOnPlayers("unstoppable");
self playlocalSound("unstoppable");
attacker playlocalSound("unstoppable");
wait (2);
}

if(killcount >= 11)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Godlike!");
attacker iprintlnBold("^1Godlike!");
//playSoundOnPlayers("godlike");
self playlocalSound("godlike");
attacker playlocalSound("godlike");
wait (2);
}
}


playSoundOnPlayers(sound, team)
{
players = getentarray("player", "classname");

if(level.splitscreen)
{
if(isdefined(players[0]))
players[0] playLocalSound(sound);
}
else
{
if(isdefined(team))
{
for(i = 0; i < players.size; i++)
{
if((isdefined(players[i].pers["team"])) && (players[i].pers["team"] == team))
players[i] playLocalSound(sound);
}
}
else
{
for(i = 0; i < players.size; i++)
players[i] playLocalSound(sound);
}
}
}

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


RE: Operator für einmaliges Ereignis Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von Kellerkind
Du stellst dir die falsche Frage. So wird die Bedingung ja schon nur einmal erfüllt, dann wenn die Anzahl der Kills exakt 4 ist
== 4
Sonst gibt es nur
!= nicht 4 währe immer außer bei 4 Kills
>= beim 5. 6. 7. [...] Kill
<= beim 1. 2. 3. aber nicht beim 4. 5. 6. [...] Kill



öhm, das ab der 3 tut, jeder spieler, der 3 4 5 usw in reihe tötet, ohne selbst getötet zu werden, erhält anzeige und sound, passt feini


nach selbstmord oder tod ist der killcount dann wieder auf 0


nur komisch ist, dass nach einem sturz, oder einem minenfeld, der das leben kostet, alle sounds hintereinander ausgeführt werden, OHNE anzeige!!!!

wär das script nicht etwa 8000 zeichen zu lang, könnt ichs ja mal posten, aber wer mir da helfen will, dem kann ich das gern per mail zusenden

soweit mal 1000 dank


PS von mike bekam ich seine moddateien zugesendet, aber zwischen admiral mod und extreme+ mod liegen ein paar lichtjährchen, was die scripts angeht, so wie ich das als laie sehe...
trotzdem danke

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 08.02.2007 17:41.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das mit dem "first blood" hat nichts mit dem deiner "killingspree" zu tun.
Wen du es wirklich so haben willst dan def. dir eine neue Variabel auf "level" Basis

level.myvar=0;

und dann nimmst du deinen komischen "print & sound" code

if( level.myvar == 0 )

{
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
level.myvar++;
wait (2);
}

__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von {LSB} Squall69

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
level.myvar=0;
if( level.myvar == 0 )
{
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
level.myvar++;
wait (2);
}



Dann hätte meine Version so aussehen müssen:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if(killcount == 1 && level.firstblood == 0)
		
			{
                        level.firstblood == 1;
			iprintln("" + attacker.name + " ^1First Blood!");
			attacker iprintlnBold("^1First Blood!");
			self playlocalSound("firstblood");
			attacker playlocalSound("firstblood");
                        wait (2);
			}


Aber wird das dann nicht für jeden Spieler einmal aufgerufen? (Sowohl meine als auch deine Lösung)

__________________
„ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“

Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.

https://kkde.de/scum/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

die zeile hier


level.firstblood == 1;


mag er nicht ---> script compile error

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 08.02.2007 20:50.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ROFL
Naja, ich sag doch ich bin nur Amateur in der CoD2 Language.
Hab das einfach mal so gemacht wie ich das in einer anderen Sprache gelöst hätte.
Squall69´s level.myvar++; wird wohl richtig sein.
Ich bin mir jetzt auch sicher das bei meiner Lösung bei jedem Spieler beim ersten Kill getriggert wird. Mich würde zu fortbildungszwecken jetzt nur mal interessieren ob das bei Squall69´s Schnipsel auch so ist, oder wenn nicht warum eigentlich nicht.

__________________
„ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“

Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.

https://kkde.de/scum/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Was ich dir geschrieben hab funktioniert 100%tig.

Viele Wege fueren nach Rom einer durch den dunklen Wald und ein anderer das Seeufer entlang.

Warum ich es so geloest habe, ist einfach erklaert. Er hat nicht viel Ahnung vom den Scripts und ich hab sein Script so erweitert das er es auch verstehen sollte.

Die killcount var hab ich nicht verwendet da "first blood" nichts mit mit einer "Killingspree" zu schaffen hat, denn falls er sich entschliesst es woanders unerzubringen funktieoniert es auch weiterhin, desshalb auch level.

__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von {LSB} Squall69
Das mit dem "first blood" hat nichts mit dem deiner "killingspree" zu tun.
Wen du es wirklich so haben willst dan def. dir eine neue Variabel auf "level" Basis

level.myvar=0;

und dann nimmst du deinen komischen "print & sound" code

if( level.myvar == 0 )

{
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
level.myvar++;
wait (2);
}




so sieht das jetzt aus:

Messages(sMeansOfDeath, attacker)
{

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


if(sMeansOfDeath == "MOD_HEAD_SHOT")
{
distance = distance(Attacker.origin , self.origin); //Inches
meters = distance * 0.0254; //Meters
feet = distance / 12; //Feet

if(!isDefined("shm_metric") || getcvar("shm_metric") == "")
setcvar("shm_metric", "meters");

if(getCVar("shm_metric") != "feet")
{
attacker iprintlnBold("^1Head Shot!^7 " + self.name + " ^5eliminiert. Distanz:^3 " + meters + " ^5Meter!"); //Message to attacker
attacker playlocalSound("headshot");//voice message to attacker

self iprintlnBold("^1Head Shot!^7 " + attacker.name + " ^5hat Dich eliminiert. ^5Distanz:^3 " + meters + " ^5 Meter!"); //Message to death person
self playlocalSound("headshot"); //voice message to dead person

iprintln("^1Head Shot!^7 " + attacker.name + " ^5eliminierte^7 " + self.name + "^5. Distanz:^3 " + meters + " ^5Meter!"); //Message to every player
}

wait (2);
}


attacker.pers["kill_spree"]++;//this is ok
killcount = attacker.pers["kill_spree"];


if( level.firstblood == 0 )

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1First Blood!");
attacker iprintlnBold("^1First Blood!");
//playSoundOnPlayers("firstblood");
self playlocalSound("firstblood");
attacker playlocalSound("firstblood");
level.firstblood++;
wait (2);
}


if(killcount == 3)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Killing Spree!");
attacker iprintlnBold("^1Killing Spree!");
//playSoundOnPlayers("killingspree");
self playlocalSound("killingspree");
attacker playlocalSound("killingspree");
wait (2);
}

if(killcount == 4)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Ultra Kill!");
attacker iprintlnBold("^1Ultra Kill!");
//playSoundOnPlayers("ultrakill");
self playlocalSound("ultrakill");
attacker playlocalSound("ultrakill");
wait (2);
}

if(killcount == 5)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Rampage!");
attacker iprintlnBold("^1Rampage!");
//playSoundOnPlayers("rampage");
self playlocalSound("rampage");
attacker playlocalSound("rampage");
wait (2);
}

if(killcount == 6)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Dominating!");
attacker iprintlnBold("^1Dominating!");
//playSoundOnPlayers("dominating");
self playlocalSound("dominating");
attacker playlocalSound("dominating");
wait (2);
}

if(killcount == 7)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Monster Kill!");
attacker iprintlnBold("^1Monster Kill!");
//playSoundOnPlayers("monsterkill");
self playlocalSound("monsterkill");
attacker playlocalSound("monsterkill");
wait (2);
}

if(killcount == cool

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Holy Shit!");
attacker iprintlnBold("^1Holy Shit!");
//playSoundOnPlayers("holyshit");
self playlocalSound("holyshit");
attacker playlocalSound("holyshit");
wait (2);
}

if(killcount == 9)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Slaughter!");
attacker iprintlnBold("^1Slaughter!");
//playSoundOnPlayers("slaughter");
self playlocalSound("slaughter");
attacker playlocalSound("slaughter");
wait (2);
}

if(killcount == 10)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Unstopable!");
attacker iprintlnBold("^1Unstopable!");
//playSoundOnPlayers("unstoppable");
self playlocalSound("unstoppable");
attacker playlocalSound("unstoppable");
wait (2);
}

if(killcount >= 11)

{
//iprintln(killcount);
iprintln("" + attacker.name + " ^1Godlike!");
attacker iprintlnBold("^1Godlike!");
//playSoundOnPlayers("godlike");
self playlocalSound("godlike");
attacker playlocalSound("godlike");
wait (2);
}
}


playSoundOnPlayers(sound, team)
{
players = getentarray("player", "classname");

if(level.splitscreen)
{
if(isdefined(players[0]))
players[0] playLocalSound(sound);
}
else
{
if(isdefined(team))
{
for(i = 0; i < players.size; i++)
{
if((isdefined(players[i].pers["team"])) && (players[i].pers["team"] == team))
players[i] playLocalSound(sound);
}
}
else
{
for(i = 0; i < players.size; i++)
players[i] playLocalSound(sound);
}
}
}



sind deine bemühungen richtig umgesetzt???

nur 1 problem, der firstblood sound kommt bei JEDEM kill, nicht nur beim allerersten...


PS: level.myvar geändert in level.firstblood

__________________

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Nightwing: 09.02.2007 03:00.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du hast die Variabe level.firstblood=0; zu spaet definiert.

Wo genau es in den Admiral mod .gsc Files hingehoert kann ich dir leider nicht sagen.

Aber auf alle faelle kannst du deine var in den Gametyp .gsc files defienieren. Such dort nach Callback_StartGameType() hier ist dann der richtige Platz.
Musst halt fuer jeden Spieltyp extra machen.
Aber in Callback_StartGameType() muss auch ein File vom Admiral mod aufgerfufen werden, wenn du deine Variable es in diesem File plazierst musst du es nur einmal tun,
da dieser Aufruf schon in allen Gametyps enthalten ist.

Und dein Print fuer "first blood" solltest du eigentlich wo anders unterbringen, das macht dann ein weiterbearbeiten und wiederfinden wesentlich einfacher.

Such mal in einem der Gametyps nach Callback_PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
Innerhalb dieser Funktion muss wieder ein File bzw eine Funktion des Admiral Mod aufgerufen werden. Dort waer dann auch ein guter Platz fuer dein "first blood"

__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


RE: Operator für einmaliges Ereignis Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Originale von Kellerkind

Ich bin mir jetzt auch sicher das bei meiner Lösung bei jedem Spieler beim ersten Kill getriggert wird. Mich würde zu fortbildungszwecken jetzt nur mal interessieren ob das bei Squall69´s Schnipsel auch so ist, oder wenn nicht warum eigentlich nicht.


Bei mir erfolgt der Print nur einmal da meine Variable def wird wenn die Karte laedt und sie nicht an einen Spieler gebunden ist sondern eine allgemeine var ist.

Dein Code triggerd bei jeden Spieler da du die var killcount verwendest die fuer jeden Spieler seperat def ist.

Um es mit der killcount var zu loesen mass man die killcount bzw. attacker.pers["kill_spree"] var aller Spieler abfragen und kontrolieren ob alle null sind, und anhand dieser Abfrage deine var firstblood true oder fals setzen, was die Sache unnoetig kompliziert macht.

__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Kelli
... sehr viel alleine


Dabei seit: 09.11.2006
Beiträge: 2.504


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Kellerkind
Ich bin mir jetzt auch sicher das bei meiner Lösung bei jedem Spieler beim ersten Kill getriggert wird. Mich würde zu fortbildungszwecken jetzt nur mal interessieren ob das bei Squall69´s Schnipsel auch so ist, oder wenn nicht warum eigentlich nicht
.

Zitat:

Original von Nightwing
[...]nur 1 problem, der firstblood sound kommt bei JEDEM kill, nicht nur beim allerersten...

Zitat:

Original von {LSB} Squall69
Du hast die Variabe level.firstblood=0; zu spaet definiert.
[...]
Such mal in einem der Gametyps nach Callback_PlayerKilled [...]
Dort waer dann auch ein guter Platz fuer dein "first blood"[...]

Zitat:

Original von {LSB} Squall69
Bei mir erfolgt der Print nur einmal da meine Variable def wird wenn die Karte laedt und sie nicht an einen Spieler gebunden ist sondern eine allgemeine var ist.

Nach dem Nachtrag^^^^"Such mal in einem der[...]guter Platz fuer dein "first blood"", ja. Damit ist es dann klar. Genau das hab ich gemeint.

__________________
„ Allah ist Groß, und wir sind armselige Tröpfe mit unseren ganzen Wissenschaften Herrlichkeit.“

Dieser Beitrag wurde 420 mal editiert, zum letzten Mal von der Bundesregierung Niemand: Heute, 11:42.

https://kkde.de/scum/
Kelli ist offline Homepage von Kelli Beiträge von Kelli suchen Nehmen Sie Kelli in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Kellerkind es funktieniert auch wenn er es in seiner headshot,killingspree Datei laesst.


Zitat:

Original von {LSB} Squall69

Und dein Print fuer "first blood" solltest du eigentlich wo anders unterbringen, das macht dann ein weiterbearbeiten und wiederfinden wesentlich einfacher.

Such mal in einem der Gametyps nach Callback_PlayerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, vDir, sHitLoc, psOffsetTime, deathAnimDuration)
Innerhalb dieser Funktion muss wieder ein File bzw eine Funktion des Admiral Mod aufgerufen werden. Dort waer dann auch ein guter Platz fuer dein "first blood"


Gruender warum er es in eine andere Funktion packen soll?

Ich weiss von mir selbst das man nie Zufrieden ist mit dem was man hat , und da seine Prints etwas komisch sind bin ich mir sicher das er sie noch aendern wird.
Und wenn er diesen Platz waehlt kann er alles was zu dem Kill gehoert in seine prints einbauen ohne gross scripten zu koennen.

BBB has drawn the first blood and the victim was GGG
Holy shit the first blood was a headshot
First bood was drawn with a shot in the right hand
BBBB used the kar98 for the first blood
First blood was a Teamkill

Ein weiter Grund sind dann die code Aenderungen, denn er muss mindestens den Fix machen das die Nachricht nicht kommt wenn er das Team wechselt.
Und wenn er es in der richtigen Funktion hat ist es dann auch logisch weshalb er diesen Fix benoetigt.
zb wenn er nicht haben will das first blood bei einen Teamkill ausgegeben wird findet er hier auch gleich ein Beispiel.

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von {LSB} Squall69: 09.02.2007 13:58.

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

SO hab i das jetzt mal reingesetzt, wenn ich connecte, tuts auch, mal nachher mim kumpel testen

ist das level.firstblood richtig so an der stelle?

die killprints inbold hab ich jetzt mal weg, unrecht hast du nicht ;-)

noch was: firstblood kommt auch bei selbstmord, sturz etc, das ist schon korrekt so, oder?? ist ja das erste blut so gesehen *lach*


auf jeden fall möcht ich mich bei euch ganz herzlich bedanken, supertolle arbeit!!!!

darf ich so unverschämt sein, und an andrer stelle noch ein winziges scriptproblem erläutern?? Augenzwinkern


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

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 09.02.2007 18:21.

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
{LSB} Squall69
Tele-Tubbie


Dabei seit: 08.05.2006
Beiträge: 123


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier ist es ok.

Tipp um ein Bearbeiten und Wiederfinden zu vereinfachen:

Wenn du etwas zu einem bestehen Script hinzufuegst mach dir gleich Notizen dafuer im Script und such nach aehnlichen Dingen in der Funktion wie zB.


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

code:
1:
2:
3:
4:
5:
6:
7:
8:
level.QuickMessageToAll = true;
level.mapended = false;

/////// Hinzugefuegt fuer meinen server ////////////

level.firstblood=0; // allgemeine Variabel fuer first kill

////////////////////////////////////////////////////////




Wie vorher beschrieben ist hier auch der Aufruf fuer den Admiral Mod wo du ebenfalls deine var def kannst.

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

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



Wie schon erwaehnt hast du dadurch den Vorteil das du deine Varibel nur eimal def musst und nicht fuer jeden Spieltyp seperat.
maps\mp\gametypes\ ...Pfad
_admiral_mod ...Dateiname
StartGame() ...Funktion


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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
	// * MM Missionen *
	level.highscore_text = "";
	level.bomb_on_the_map_allies = 0;
	level.bomb_on_the_map_axis = 0;
	
/////// Hinzugefuegt fuer meinen server ////////////

                level.firstblood=0; // allgemeine Variabel fuer first kill

////////////////////////////////////////////////////////

	// * Sprint Schritte unterdrücken, solage bei S&D nach dem planten PlayerSounds ausgegeben werden  *
	level.sd_sound_play = undefined;



__________________

{LSB} Squall69 ist offline E-Mail an {LSB} Squall69 senden Homepage von {LSB} Squall69 Beiträge von {LSB} Squall69 suchen Nehmen Sie {LSB} Squall69 in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.858


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

na super!!!

i hab für jeden spieltyp ne .gsc und in jeder ist das callback player connected enthalten, also hab ichs in denen, die ich anbiete einfach reingetan, tut ja auch ;-)

also in dm, tdm, ctf, ctb

und in der _shmod.gsc ist dann headshot, killsound und firstblood definiert.


super dank dir

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty-Board » Fix-Dateien, Modding-Fragen, Scripting » Operator für einmaliges Ereignis

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv