trigger_damage+sound?

-tiger-
Wie kann ich einem Sound per trigger_damage abspielen?
-tiger-
Ich will ja nicht nerven, aber hat den keiner eine Idee oder ein Trigger-Skript.

Ich habe es schon geschafft ein Objekt ein Effekt zugewiesen, nun fehlt halt nur noch der Sound. Und ein Effekt ohne Sound ist blöd.



Oder gibt es eine möglichkeit unter Entity noch eine Sound Variable einzufügen?

Private Grob
Könnte so in der Art funktionieren:


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:
  
trigger() 
{ 

	sound_trigger = getent ("sound_trigger","targetname"); 

	while (1) 
	{ 
	self waittill ("trigger"); 
	sound_trigger playsound ("dein Sound"); 
	wait (0.1);
	} 
}




Ob ein trigger_damage darauf reagiert weiß ich nicht. Mußt du einfach mal ausprobieren.


Grüße
Private Grob
-tiger-
ok, werde es mal antesten.

Leider hat dein Skript nicht funktioniert, habe eine anderes gefunden und es etwas angepasst.

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:
main()
{	
tvtrigs = getentarray("strom","targetname");
for(i=0;i<tvtrigs.size;i++)
tvtrigs[i] thread tvtrigger();
}

tvtrigger()
{
while(1)
{
self waittill("trigger");
self playsound("exp_television");
wait 10;
self Delete("strom");
}
}

Private Grob
Okay, Zeile 3 und 4 bewirken das mehrere Entities mit dem Targetnamen "strom" gefunden werden dürfen.

Zeile 15 löscht alle gefundenen Trigger. Erstaunlich das dann der Sound mehrmals funktioniert. Hätte ich nicht vermutet.

..... Obwohl wenn ich television lese, dann soll der Sound natürlich nur einmal abgespielt werden. Denke ich mir zumindest wenn ein Fernseher kaputt geht... Deswegen auch ein Trigger_Damage.... Okay, jetzt ist es logisch grosses Grinsen Dann war ich natürlich ein wenig von falschen Vorraussetzungen ausgegangen unglücklich


Grüße
Private Grob
-tiger-
Zeile 15 musste ich einfügen, weil sonnst würde der Sound beim Beschuss des triggers immer wieder abgespielt. Wo ich noch nicht weiter komme ist das mit der Zerstörung stärke des triggers, weil jetzt ist es so eingestellt das ein schuss reicht.

Aber trotzdem danke für deine Hilfe...

mfg Tiger
Private Grob

Zitat:

Original von -tiger-
......Wo ich noch nicht weiter komme ist das mit der Zerstörung stärke des triggers, weil jetzt ist es so eingestellt das ein schuss reicht....


Ich meine das konnte man hier irgendwo einstellen:




Siehe die Punkte: accumulate und Threshold!


Such auch mal in dem CoD2 Forum, ich meine wir hatten so etwas schon mal. Bin mir aber nicht sicher....


Grüße
Private Grob
-tiger-
Ich hatte mir ein zerstörbare Tür prefab angeschaut und da waren die auch angeben, aber mit einen skript davor. Und was noch wichtig ist der targetname muss "destructable" heißen, sonnst funkz es bei mir nicht.

skript_accumulate 2
skript_Threshold 1
targetname destructable
OLD MAN WITH GUN

Zitat:

Original von Private Grob

Zitat:

Original von -tiger-
......Wo ich noch nicht weiter komme ist das mit der Zerstörung stärke des triggers, weil jetzt ist es so eingestellt das ein schuss reicht....


Ich meine das konnte man hier irgendwo einstellen:
Einfacher ist es per Script. (dann brauch man auch die Map nicht neu compilieren, wenn man an den Werten noch etwas rumschrauben will)
(Nur der Ausschnitt)

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:
...
tvtrigger()
{
  health = 500; // Lebensenergie
  while(1)
  {
    self waittill("damage", amount);
    health -= amount;
    if (health <= 0) 
    {
      self playsound("exp_television");
      wait 10;
      self Delete("strom");
    }
  }
}



Edit: Fehler bei waittill beseitigt.
-tiger-
OLD MAN WITH GUN leider ist das skript fehlerhaft, sobald ich das skript auslöse wird mir eine Fehlermeldung angezeigt.

OLD MAN WITH GUN
Ups, kleiner Fehler von mir.
Die Zeile:
self waittill("trigger", amount);
muss natürlich so heißen:
self waittill("damage", amount);

Habe es sicherheitshalber noch mal auf meiner Testmap ausprobiert, und da geht es.
-tiger-
OLD MAN WITH GUN

Jetzt funktioniert das skript. Respekt!

Und wie müsste ich das skript änderen um 2 sounds abzuspielen, so wie bei dem Tür Skript?
OLD MAN WITH GUN

Zitat:

Original von -tiger-
Und wie müsste ich das skript änderen um 2 sounds abzuspielen, so wie bei dem Tür Skript?

An der Stelle, wo der zweite Sound abgespielt werden soll einfach ein weiteres <entity> playsound ("<soundaliasname>"); einfügen. Du musst nur darauf achten, das das Entity auch noch existiert und nicht vorher schon mit delete gelöscht wurde.
-tiger-
Ja das habe ich mit dem Tür-skript ausprobiert, aber ich bekomme es nicht hin entwerder Skript,soundalias,kein sound problem. Es geht darum habe eine Radio Xmodel genommen und trigger_use erstellt mit Namen und möchte eine mp3 abspielen, bei nochmaligen Drücken Soll ein anderer Sound abgespielt werden oder wenn das geht die Musik ausschalten.

Edit:

Es funktioniert nun endlich, es lag an den fehlenden Sounds in der iwd Datei.

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:
main()
{
thread radio();
}

radio()
{

radiotrigger = getent ("sound1","targetname");
while (1)
{
radiotrigger waittill ("trigger");
musicplay ("deepandhard_music");
{
radiotrigger waittill ("trigger");
MusicStop( 0 );
radiotrigger playsound ("click");
}
}
self thread radio();
return;
}